add 3 kinds of buttons to open toc content
This commit is contained in:
parent
d30991a039
commit
5f6611839f
11 changed files with 130 additions and 17 deletions
|
@ -36,6 +36,14 @@ $screens: (
|
||||||
margin-left: $size;
|
margin-left: $size;
|
||||||
margin-right: $size;
|
margin-right: $size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.#{$prefix}pb-#{$scale} {
|
||||||
|
padding-bottom: $size;
|
||||||
|
}
|
||||||
|
.#{$prefix}py-#{$scale} {
|
||||||
|
padding-top: $size;
|
||||||
|
padding-bottom: $size;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@each $scale in $scales {
|
@each $scale in $scales {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
@import "atom.scss";
|
@import "atom.scss";
|
||||||
@import "markdown.scss";
|
@import "markdown.scss";
|
||||||
@import "syntax.scss";
|
@import "syntax.scss";
|
||||||
|
@import "toc.scss";
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--pm: #0fa0ce;
|
--pm: #0fa0ce;
|
||||||
|
@ -99,16 +100,6 @@ header nav {
|
||||||
color: var(--tag);
|
color: var(--tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
details.toc ul {
|
|
||||||
list-style-type: none;
|
|
||||||
padding-inline-start: 1em;
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
details.toc ul > li {
|
|
||||||
margin: 1em 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 4px;
|
width: 4px;
|
||||||
height: 4px;
|
height: 4px;
|
||||||
|
|
89
assets/sass/toc.scss
Normal file
89
assets/sass/toc.scss
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
details.toc {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
background-color: var(--bg);
|
||||||
|
transition: .5s all;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc summary {
|
||||||
|
position: relative;
|
||||||
|
width: fit-content;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: var(--bg);
|
||||||
|
transition: .5s all;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc div {
|
||||||
|
background-color: var(--bg);
|
||||||
|
transition: .5s all;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc ul {
|
||||||
|
list-style-type: none;
|
||||||
|
padding-inline-start: 1em;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc ul > li {
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc-bar,
|
||||||
|
details.toc-lines {
|
||||||
|
& summary {
|
||||||
|
padding-right: 0.5em;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
& summary::-webkit-details-marker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
& div {
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc-bar {
|
||||||
|
top: 1rem;
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
& div {
|
||||||
|
top: -1em;
|
||||||
|
padding-top: 2em;
|
||||||
|
background-color: var(--bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
& summary {
|
||||||
|
--toc-bar-ht: 4px;
|
||||||
|
--toc-bar-wd: 8%;
|
||||||
|
width: var(--toc-bar-wd);
|
||||||
|
height: var(--toc-bar-ht);
|
||||||
|
margin-left: calc(50% - var(--toc-bar-wd) / 2);
|
||||||
|
border-radius: calc(var(--toc-bar-ht) / 2);
|
||||||
|
background-color: var(--ft);
|
||||||
|
box-shadow: var(--bg) 0 0 8px 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc-default,
|
||||||
|
details.toc-lines {
|
||||||
|
& summary {
|
||||||
|
padding-top: 1em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
details.toc-lines {
|
||||||
|
& summary::before {
|
||||||
|
content: "≡";
|
||||||
|
font-size: 1.5em;
|
||||||
|
position: relative;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
details[open] {
|
||||||
|
&.toc-lines summary::before {
|
||||||
|
content: "×";
|
||||||
|
font-size: 1.7em;
|
||||||
|
top: -4px;
|
||||||
|
}
|
||||||
|
}
|
3
config.toml
Normal file
3
config.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[module]
|
||||||
|
[module.hugoVersion]
|
||||||
|
extended = true
|
|
@ -37,10 +37,12 @@ displayDate = true
|
||||||
selectable = true
|
selectable = true
|
||||||
# Custom global font. notice: `globalFontFamily` won't be working
|
# Custom global font. notice: `globalFontFamily` won't be working
|
||||||
# on texts in some special positions like on titles
|
# on texts in some special positions like on titles
|
||||||
globalFontFamily = 'Helvatica sans-serif'
|
globalFontFamily = 'LXGW WenKai'
|
||||||
# If set true, all your posts will use the chosen comment plugin
|
# If set true, all your posts will use the chosen comment plugin
|
||||||
# except those with a `comment: false` in their front-matter
|
# except those with a `comment: false` in their front-matter
|
||||||
commentOnAllPosts = false
|
commentOnAllPosts = false
|
||||||
|
# toc decides the shape of the toc button. e.g. default, lines, bar
|
||||||
|
toc = "lines"
|
||||||
|
|
||||||
# Disqus configuration
|
# Disqus configuration
|
||||||
[params.disqus]
|
[params.disqus]
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 191 KiB |
Binary file not shown.
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 200 KiB |
BIN
images/tn.png
BIN
images/tn.png
Binary file not shown.
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 181 KiB |
|
@ -2,7 +2,7 @@
|
||||||
{{ if .Params.toc }}
|
{{ if .Params.toc }}
|
||||||
{{ partial "toc.html" . }}
|
{{ partial "toc.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<h1 class="mt-8 mb-6">{{ .Title }}</h1>
|
<h1 class="mt-6 mb-6">{{ .Title }}</h1>
|
||||||
<div class="mb-3 text-xs flex justify-between sm:flex-col">
|
<div class="mb-3 text-xs flex justify-between sm:flex-col">
|
||||||
<div>
|
<div>
|
||||||
{{ if .Site.Params.displayDate }}
|
{{ if .Site.Params.displayDate }}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<header class="flex justify-between items-center sm:my-3">
|
<header class="flex justify-between items-center mb-6 sm:my-3">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
{{ if .Site.Params.brand }}
|
{{ if .Site.Params.brand }}
|
||||||
<div class="mr-3 text-3xl"><a href="/">{{ .Site.Params.brand }}</a></div>
|
<div class="mr-3 text-3xl"><a href="/">{{ .Site.Params.brand }}</a></div>
|
||||||
|
|
|
@ -1,6 +1,26 @@
|
||||||
<details class="toc mt-8">
|
{{ if eq .Site.Params.toc "default" }}
|
||||||
<summary>Table of Contents</summary>
|
<details class="toc toc-default">
|
||||||
<div>
|
<summary></summary>
|
||||||
|
<div class="pb-1">
|
||||||
{{ .TableOfContents }}
|
{{ .TableOfContents }}
|
||||||
</div>
|
</div>
|
||||||
</details>
|
</details>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq .Site.Params.toc "bar" }}
|
||||||
|
<details class="toc toc-bar">
|
||||||
|
<summary></summary>
|
||||||
|
<div class="pb-1">
|
||||||
|
{{ .TableOfContents }}
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq .Site.Params.toc "lines" }}
|
||||||
|
<details class="toc toc-lines">
|
||||||
|
<summary></summary>
|
||||||
|
<div class="pb-1">
|
||||||
|
{{ .TableOfContents }}
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
{{ end }}
|
Loading…
Reference in a new issue