diff options
author | Volpeon <git@volpeon.ink> | 2020-12-26 09:52:34 +0100 |
---|---|---|
committer | Volpeon <git@volpeon.ink> | 2020-12-26 09:52:34 +0100 |
commit | 15147ca676f7f77697889b65721540f8b8a813ab (patch) | |
tree | 563902c127d644f0f58fd26a901794c585d9c993 | |
parent | Improved CSS definitions, more fine-grained content build script (diff) | |
download | volpeon.ink-15147ca676f7f77697889b65721540f8b8a813ab.tar.gz volpeon.ink-15147ca676f7f77697889b65721540f8b8a813ab.tar.bz2 volpeon.ink-15147ca676f7f77697889b65721540f8b8a813ab.zip |
Generate precompressed files, use variables for some nav-related values
-rw-r--r-- | Makefile | 23 | ||||
-rw-r--r-- | assets/css/_vars.scss | 5 | ||||
-rw-r--r-- | assets/css/components/_nav.scss | 8 | ||||
-rwxr-xr-x | scripts/build_content.sh | 12 | ||||
-rwxr-xr-x | scripts/build_fonts.sh | 4 | ||||
-rwxr-xr-x | scripts/build_sass.sh | 2 | ||||
-rw-r--r-- | templates/base.html | 3 |
7 files changed, 37 insertions, 20 deletions
@@ -13,24 +13,33 @@ build_sass: clean | |||
13 | build_content: clean | 13 | build_content: clean |
14 | @scripts/build_content.sh | 14 | @scripts/build_content.sh |
15 | 15 | ||
16 | build: build_fonts build_sass build_content | 16 | build_only: build_fonts build_sass build_content |
17 | # @pigz -R -k -9 -- `find output -type f -iregex '.*\\.\\(css\\|js\\|json\\|html\\|xml\\|txt\\|svg\\|ico\\)'` | ||
18 | 17 | ||
19 | watch_sass: build | 18 | compress_gz: build_only |
19 | @echo "[COMPRESS] Gzip" | ||
20 | @pigz -R -k -9 -- `find output -type f -iregex '.*\\.\\(css\\|js\\|json\\|html\\|xml\\|txt\\|svg\\|ico\\)'` | ||
21 | |||
22 | compress_br: build_only | ||
23 | @echo "[COMPRESS] Brotli" | ||
24 | @brotli -k -- `find output -type f -iregex '.*\\.\\(css\\|js\\|json\\|html\\|xml\\|txt\\|svg\\|ico\\|woff\\)'` | ||
25 | |||
26 | build: compress_gz compress_br | ||
27 | |||
28 | watch_sass: build_only | ||
20 | @scripts/watch_sass.sh | 29 | @scripts/watch_sass.sh |
21 | 30 | ||
22 | watch_content: build | 31 | watch_content: build_only |
23 | @scripts/watch_content.sh | 32 | @scripts/watch_content.sh |
24 | 33 | ||
25 | watch_templates: build | 34 | watch_templates: build_only |
26 | @scripts/watch_templates.sh | 35 | @scripts/watch_templates.sh |
27 | 36 | ||
28 | watch_metadata: build | 37 | watch_metadata: build_only |
29 | @scripts/watch_metadata.sh | 38 | @scripts/watch_metadata.sh |
30 | 39 | ||
31 | watch: watch_sass watch_content watch_templates watch_metadata | 40 | watch: watch_sass watch_content watch_templates watch_metadata |
32 | 41 | ||
33 | serve_only: build | 42 | serve_only: build_only |
34 | @python -m http.server --bind 127.0.0.1 --directory output | 43 | @python -m http.server --bind 127.0.0.1 --directory output |
35 | 44 | ||
36 | serve: watch serve_only | 45 | serve: watch serve_only |
diff --git a/assets/css/_vars.scss b/assets/css/_vars.scss index 1ed64a5..f9c80da 100644 --- a/assets/css/_vars.scss +++ b/assets/css/_vars.scss | |||
@@ -7,6 +7,11 @@ $code-block-line-height: 1.4; | |||
7 | 7 | ||
8 | $content-width: 75ch; | 8 | $content-width: 75ch; |
9 | 9 | ||
10 | $nav-item-spacing: 4ch; | ||
11 | $nav-item-spacing-sm: 3ch; | ||
12 | $nav-item-pad-h: 1ch; | ||
13 | $nav-item-pad-v: 1rem; | ||
14 | |||
10 | $page-item-prefix-max-chars: 3ch; | 15 | $page-item-prefix-max-chars: 3ch; |
11 | $page-item-prefix-pad: 2ch; | 16 | $page-item-prefix-pad: 2ch; |
12 | $page-item-prefix-width: $page-item-prefix-max-chars + $page-item-prefix-pad; | 17 | $page-item-prefix-width: $page-item-prefix-max-chars + $page-item-prefix-pad; |
diff --git a/assets/css/components/_nav.scss b/assets/css/components/_nav.scss index 834b6a0..a85c7d8 100644 --- a/assets/css/components/_nav.scss +++ b/assets/css/components/_nav.scss | |||
@@ -8,6 +8,8 @@ | |||
8 | 8 | ||
9 | &__logo { | 9 | &__logo { |
10 | display: inline-block; | 10 | display: inline-block; |
11 | margin: 0; | ||
12 | padding: $nav-item-pad-v 0; | ||
11 | color: var(--nav-logo-fg); | 13 | color: var(--nav-logo-fg); |
12 | text-decoration: none; | 14 | text-decoration: none; |
13 | 15 | ||
@@ -23,8 +25,8 @@ | |||
23 | 25 | ||
24 | &__item { | 26 | &__item { |
25 | display: inline-block; | 27 | display: inline-block; |
26 | padding: 1rem 1ch calc(1rem - 2px); | 28 | padding: $nav-item-pad-v $nav-item-pad-h calc(#{$nav-item-pad-v} - 2px); |
27 | margin: 0 -1ch 0 3ch; | 29 | margin: 0 (-1 * $nav-item-pad-h) 0 ($nav-item-spacing - $nav-item-pad-h); |
28 | color: var(--nav-item-idle-fg); | 30 | color: var(--nav-item-idle-fg); |
29 | text-decoration: none; | 31 | text-decoration: none; |
30 | border-bottom: 2px solid transparent; | 32 | border-bottom: 2px solid transparent; |
@@ -38,7 +40,7 @@ | |||
38 | 40 | ||
39 | @media (max-width: map-get($breakpoints, "sm")) { | 41 | @media (max-width: map-get($breakpoints, "sm")) { |
40 | &__item { | 42 | &__item { |
41 | margin-left: 2ch; | 43 | margin-left: $nav-item-spacing-sm - $nav-item-pad-h; |
42 | } | 44 | } |
43 | } | 45 | } |
44 | 46 | ||
diff --git a/scripts/build_content.sh b/scripts/build_content.sh index 6ce857f..9623427 100755 --- a/scripts/build_content.sh +++ b/scripts/build_content.sh | |||
@@ -13,7 +13,7 @@ handle () { | |||
13 | mkdir -p $(dirname "$TARGET") | 13 | mkdir -p $(dirname "$TARGET") |
14 | 14 | ||
15 | if [ "${1#*.}" = "md" ]; then | 15 | if [ "${1#*.}" = "md" ]; then |
16 | echo "[COMPILE] $1 -> $TARGET" | 16 | echo "[COMPILE ] $1 -> $TARGET" |
17 | 17 | ||
18 | pandoc "$1" \ | 18 | pandoc "$1" \ |
19 | -f markdown \ | 19 | -f markdown \ |
@@ -22,7 +22,7 @@ handle () { | |||
22 | -o "$TARGET" \ | 22 | -o "$TARGET" \ |
23 | --metadata-file metadata/metadata.json | 23 | --metadata-file metadata/metadata.json |
24 | else | 24 | else |
25 | echo "[COPY ] $1 -> $TARGET" | 25 | echo "[ COPY ] $1 -> $TARGET" |
26 | 26 | ||
27 | cp "$1" "$TARGET" | 27 | cp "$1" "$TARGET" |
28 | fi | 28 | fi |
@@ -45,18 +45,18 @@ elif [ "$1" = "md" ]; then | |||
45 | done | 45 | done |
46 | elif [ "$1" = "single" ]; then | 46 | elif [ "$1" = "single" ]; then |
47 | if [ -z "$2" ]; then | 47 | if [ -z "$2" ]; then |
48 | echo "[ERROR ] \"single\" operation requires file argument" | 48 | echo "[ ERROR ] \"single\" operation requires file argument" |
49 | else | 49 | else |
50 | handle "$2" | 50 | handle "$2" |
51 | fi | 51 | fi |
52 | elif [ "$1" = "delete" ]; then | 52 | elif [ "$1" = "delete" ]; then |
53 | if [ -z "$2" ]; then | 53 | if [ -z "$2" ]; then |
54 | echo "[ERROR ] \"delete\" operation requires file argument" | 54 | echo "[ ERROR ] \"delete\" operation requires file argument" |
55 | else | 55 | else |
56 | TARGET=$(target "$2") | 56 | TARGET=$(target "$2") |
57 | echo "[DELETE ] $2 -> $TARGET" | 57 | echo "[ DELETE ] $2 -> $TARGET" |
58 | rm -rf $TARGET | 58 | rm -rf $TARGET |
59 | fi | 59 | fi |
60 | else | 60 | else |
61 | echo "[ERROR ] Unknown operation: \"$1\"" | 61 | echo "[ ERROR ] Unknown operation: \"$1\"" |
62 | fi | 62 | fi |
diff --git a/scripts/build_fonts.sh b/scripts/build_fonts.sh index 11c01db..d8ed9ea 100755 --- a/scripts/build_fonts.sh +++ b/scripts/build_fonts.sh | |||
@@ -1,6 +1,6 @@ | |||
1 | #!/bin/bash | 1 | #!/bin/bash |
2 | 2 | ||
3 | echo "[MINIFY ] assets/fonts/iosevka-term-ss09-regular.ttf -> output/iosevka-term-ss09-regular.woff2" | 3 | echo "[ MINIFY ] assets/fonts/iosevka-term-ss09-regular.ttf -> output/iosevka-term-ss09-regular.woff2" |
4 | 4 | ||
5 | pyftsubset assets/fonts/iosevka-term-ss09-regular.ttf \ | 5 | pyftsubset assets/fonts/iosevka-term-ss09-regular.ttf \ |
6 | --text-file='assets/fonts/glyphs.txt' \ | 6 | --text-file='assets/fonts/glyphs.txt' \ |
@@ -8,7 +8,7 @@ pyftsubset assets/fonts/iosevka-term-ss09-regular.ttf \ | |||
8 | --flavor='woff2' \ | 8 | --flavor='woff2' \ |
9 | --output-file='output/iosevka-term-ss09-regular.woff2' | 9 | --output-file='output/iosevka-term-ss09-regular.woff2' |
10 | 10 | ||
11 | echo "[MINIFY ] assets/fonts/iosevka-term-ss09-bold.ttf -> output/iosevka-term-ss09-bold.woff2" | 11 | echo "[ MINIFY ] assets/fonts/iosevka-term-ss09-bold.ttf -> output/iosevka-term-ss09-bold.woff2" |
12 | 12 | ||
13 | pyftsubset assets/fonts/iosevka-term-ss09-bold.ttf \ | 13 | pyftsubset assets/fonts/iosevka-term-ss09-bold.ttf \ |
14 | --text-file='assets/fonts/glyphs.txt' \ | 14 | --text-file='assets/fonts/glyphs.txt' \ |
diff --git a/scripts/build_sass.sh b/scripts/build_sass.sh index 2e25f10..2711a89 100755 --- a/scripts/build_sass.sh +++ b/scripts/build_sass.sh | |||
@@ -1,4 +1,4 @@ | |||
1 | #!/bin/bash | 1 | #!/bin/bash |
2 | 2 | ||
3 | echo "[COMPILE] assets/css/style.scss -> output/style.css" | 3 | echo "[COMPILE ] assets/css/style.scss -> output/style.css" |
4 | sassc assets/css/style.scss | node_modules/.bin/csso > output/style.css | 4 | sassc assets/css/style.scss | node_modules/.bin/csso > output/style.css |
diff --git a/templates/base.html b/templates/base.html index d381984..cecb657 100644 --- a/templates/base.html +++ b/templates/base.html | |||
@@ -41,7 +41,7 @@ | |||
41 | <main class="s-page l-container l-container--content l-container--pad-v"> | 41 | <main class="s-page l-container l-container--content l-container--pad-v"> |
42 | <div class="s-page__content"> | 42 | <div class="s-page__content"> |
43 | $if(isHome)$ | 43 | $if(isHome)$ |
44 | <header class="c-page-header" role="presentation"> | 44 | <header class="c-page-header u-hidden@sm-down" role="presentation"> |
45 | ${pageHeader()} | 45 | ${pageHeader()} |
46 | </header> | 46 | </header> |
47 | $endif$ | 47 | $endif$ |
@@ -60,6 +60,7 @@ ${pageHeaderSm()} | |||
60 | var headerTemplateEl = document.getElementById("header-sm"); | 60 | var headerTemplateEl = document.getElementById("header-sm"); |
61 | var headerSmEl = headerTemplateEl.content.cloneNode("true"); | 61 | var headerSmEl = headerTemplateEl.content.cloneNode("true"); |
62 | 62 | ||
63 | headerEl.classList.remove("u-hidden@sm-down"); | ||
63 | headerEl.appendChild(headerSmEl); | 64 | headerEl.appendChild(headerSmEl); |
64 | </script> | 65 | </script> |
65 | $endif$ | 66 | $endif$ |