aboutsummaryrefslogtreecommitdiff
path: root/assets
diff options
context:
space:
mode:
authorTrack3 <34504964+Track3@users.noreply.github.com>2018-12-28 23:24:34 +0800
committerGitHub <noreply@github.com>2018-12-28 23:24:34 +0800
commitc7ebd82a83c4fd854407f9695d22c4d969cd49ca (patch)
treef05d3f1f73ae78a08932e788d565bb35ff7aa40c /assets
parent1770524126121164f3b566fa74d88db536d644d3 (diff)
parent451d527ae61cc47bf11d63d3d03054384e1bd237 (diff)
downloadhermit-c7ebd82a83c4fd854407f9695d22c4d969cd49ca.tar.gz
Merge pull request #18 from Track3/feature-toc
Add support for Table of Contents
Diffstat (limited to 'assets')
-rw-r--r--assets/js/main.js10
-rw-r--r--assets/scss/style.scss69
2 files changed, 75 insertions, 4 deletions
diff --git a/assets/js/main.js b/assets/js/main.js
index ed98d94..9ba2939 100644
--- a/assets/js/main.js
+++ b/assets/js/main.js
@@ -65,12 +65,18 @@ const showContent = () => {
document.getElementById('bg-img').classList.remove('show-bg-img');
}
+// Toggle TOC
+//
+const toggleToc = () => {
+ document.getElementById('toc').classList.toggle('show-toc');
+}
+
if (haveHeader == true) {
document.getElementById('menu-btn').addEventListener('click', mobileMenuToggle);
-
+
window.addEventListener('scroll', throttle(() => {
autoHideHeader();
-
+
if (mobileMenuVisible == true) {
mobileMenuToggle();
}
diff --git a/assets/scss/style.scss b/assets/scss/style.scss
index 49a1dc1..6606273 100644
--- a/assets/scss/style.scss
+++ b/assets/scss/style.scss
@@ -145,6 +145,10 @@ table {
height: 1em;
}
+.desktop-only, .desktop-only-ib {
+ display: none;
+}
+
// Accessibility
//
.screen-reader-text {
@@ -234,6 +238,7 @@ table {
border: none;
background: none;
padding: 0;
+ margin-left: .4em;
cursor: pointer;
}
@@ -587,6 +592,43 @@ hr.post-end {
}
}
+#toc {
+ position: fixed;
+ left: 50%;
+ top: 0;
+ display: none;
+}
+
+.toc-title {
+ margin-left: 1em;
+ margin-bottom: .5em;
+ font-size: .8em;
+ font-weight: bold;
+}
+
+#TableOfContents {
+ font-size: .8em;
+ @include dimmed;
+
+ ul {
+ padding-left: 1em;
+ margin: 0;
+ }
+
+ &>ul {
+ list-style-type: none;
+
+ ul ul {
+ font-size: .9em;
+ }
+ }
+
+ a:hover {
+ border-bottom: $theme 1px solid;
+ }
+}
+
+
.post-nav {
display: flex;
justify-content: space-between;
@@ -619,6 +661,9 @@ hr.post-end {
text-align: center;
}
+// Media Queries
+//
+
@media (min-width: 800px) {
.site-main {
margin-top: 3em;
@@ -640,6 +685,15 @@ hr.post-end {
margin-top: 8em;
}
+ .desktop-only,
+ #toc.show-toc {
+ display: block;
+ }
+
+ .desktop-only-ib {
+ display: inline-block;
+ }
+
figure.left {
margin-left: -240px;
p {
@@ -662,6 +716,12 @@ hr.post-end {
hr.post-end {
width: 30%;
}
+
+ #toc {
+ top: 13em;
+ margin-left: 370px;
+ max-width: 220px;
+ }
}
@media (min-width: 1800px) {
@@ -695,6 +755,12 @@ hr.post-end {
hr.post-end {
width: 30%;
}
+
+ #toc {
+ top: 15em;
+ margin-left: 490px;
+ max-width: 300px;
+ }
}
@media (max-width: 760px) {
@@ -704,8 +770,7 @@ hr.post-end {
display: none;
}
- #menu-btn,
- #search-btn {
+ #menu-btn {
display: inline-block;
}