mirror of
https://git.ari.lt/ari.lt/blog.ari.lt.git
synced 2025-02-04 09:39:25 +01:00
update @ Mon 31 Oct 16:50:02 EET 2022
Signed-off-by: Ari Archer <ari.web.xyz@gmail.com>
This commit is contained in:
parent
483fc41c0b
commit
14b0e75426
3 changed files with 70 additions and 24 deletions
|
@ -5,7 +5,7 @@ _blog() {
|
||||||
|
|
||||||
_init_completion -s || return
|
_init_completion -s || return
|
||||||
COMPREPLY=($(compgen -W "help new build ls\
|
COMPREPLY=($(compgen -W "help new build ls\
|
||||||
rm edit defcfg clean metadata static" -- "$cur"))
|
rm edit defcfg clean metadata static css" -- "$cur"))
|
||||||
|
|
||||||
} && complete -F _blog -o bashdefault -o default blog
|
} && complete -F _blog -o bashdefault -o default blog
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
|
|
||||||
scroll-behavior: smooth;
|
scroll-behavior: smooth;
|
||||||
|
|
||||||
outline-offset: 3px;
|
outline-offset: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar,
|
::-webkit-scrollbar,
|
||||||
|
@ -180,9 +180,31 @@ blockquote * {
|
||||||
color: var(--clr-blockquote-fg);
|
color: var(--clr-blockquote-fg);
|
||||||
}
|
}
|
||||||
|
|
||||||
a[data-pl] {
|
*[data-pl] {
|
||||||
margin-right: 0.3em;
|
padding-top: 0.06em;
|
||||||
float: left !important;
|
padding-bottom: 0.06em;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[data-pl] * {
|
||||||
|
display: inline;
|
||||||
|
font-size: inherit !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[data-pl] a {
|
||||||
|
padding-right: 0.3em;
|
||||||
|
opacity: 0.3;
|
||||||
|
transition: opacity 0.1s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
*[data-pl]:hover a,
|
||||||
|
*[data-pl]:focus a {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (max-width: 1360px) {
|
||||||
|
*[data-pl] a {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-reduced-motion: reduce) {
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
|
62
scripts/blog
62
scripts/blog
|
@ -16,7 +16,7 @@ from shutil import rmtree
|
||||||
from tempfile import gettempdir
|
from tempfile import gettempdir
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from timeit import default_timer as code_timer
|
from timeit import default_timer as code_timer
|
||||||
from typing import Callable, Dict, Iterable, List, Set, Tuple
|
from typing import Callable, Dict, Iterable, List, Set, Tuple, Union
|
||||||
from warnings import filterwarnings as filter_warnings
|
from warnings import filterwarnings as filter_warnings
|
||||||
|
|
||||||
import ujson # type: ignore
|
import ujson # type: ignore
|
||||||
|
@ -249,27 +249,51 @@ def truncate_str(string: str, length: int) -> str:
|
||||||
|
|
||||||
class AddHeaderLinks(Treeprocessor):
|
class AddHeaderLinks(Treeprocessor):
|
||||||
def run(self, root):
|
def run(self, root):
|
||||||
self.ids: List[str] = []
|
ids: List[str] = []
|
||||||
|
heading_sizes_em: Dict[str, Union[float, int]] = {
|
||||||
|
"h1": 1.52,
|
||||||
|
"h2": 1.32,
|
||||||
|
"h3": 1.15,
|
||||||
|
"h4": 1,
|
||||||
|
"h5": 0.87,
|
||||||
|
"h6": 0.76,
|
||||||
|
}
|
||||||
|
all_headings: Tuple[str] = tuple(f"h{hl}" for hl in range(2, 7))
|
||||||
|
|
||||||
for h_level in range(2, 7):
|
for idx, elem in enumerate(root):
|
||||||
for h in root.findall(f"h{h_level}"):
|
if elem.tag not in all_headings:
|
||||||
gen_id: str = sanitise_title(h.text, self.ids)
|
continue
|
||||||
self.ids.append(gen_id)
|
|
||||||
|
|
||||||
link = h.makeelement(
|
gen_id: str = sanitise_title(elem.text, ids)
|
||||||
"a",
|
ids.append(gen_id)
|
||||||
{
|
|
||||||
"href": f"#{gen_id}",
|
|
||||||
"data-pl": "",
|
|
||||||
"aria-hidden": "true",
|
|
||||||
"focusable": "false",
|
|
||||||
"tabindex": "-1",
|
|
||||||
},
|
|
||||||
)
|
|
||||||
link.text = "#"
|
|
||||||
|
|
||||||
h.append(link)
|
heading_parent = elem.makeelement(
|
||||||
h.set("id", gen_id)
|
"div",
|
||||||
|
{
|
||||||
|
"data-pl": "",
|
||||||
|
"style": f"font-size:{heading_sizes_em[elem.tag] + 0.1}em",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
heading = heading_parent.makeelement(elem.tag, {"id": gen_id})
|
||||||
|
link = heading.makeelement(
|
||||||
|
"a",
|
||||||
|
{
|
||||||
|
"href": f"#{gen_id}",
|
||||||
|
"aria-hidden": "true",
|
||||||
|
"focusable": "false",
|
||||||
|
"tabindex": "-1",
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
link.text = "#"
|
||||||
|
heading_parent.append(link)
|
||||||
|
|
||||||
|
heading.text = elem.text
|
||||||
|
heading_parent.append(heading)
|
||||||
|
|
||||||
|
root.remove(elem)
|
||||||
|
root.insert(idx, heading_parent)
|
||||||
|
|
||||||
|
|
||||||
class AddHeaderLinksExt(Extension):
|
class AddHeaderLinksExt(Extension):
|
||||||
|
|
Loading…
Add table
Reference in a new issue