hematite 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +58 -0
  4. data/_config.yml +33 -0
  5. data/_data/strings/en.yml +32 -0
  6. data/_data/strings/es.yml +33 -0
  7. data/_includes/img/hamburger_menu.svg +78 -0
  8. data/_includes/img/search_icon.svg +99 -0
  9. data/_includes/katex_includes.html +26 -0
  10. data/_includes/nav/page_navigation.html +10 -0
  11. data/_includes/nav/pages_list.html +17 -0
  12. data/_includes/nav/pinned_page.html +12 -0
  13. data/_includes/nav/sidebar.html +25 -0
  14. data/_layouts/calendar.html +36 -0
  15. data/_layouts/default.html +31 -0
  16. data/_layouts/page.html +5 -0
  17. data/_layouts/post.html +42 -0
  18. data/_sass/_animations.scss +16 -0
  19. data/_sass/_calendar.scss +63 -0
  20. data/_sass/_colors.scss +73 -0
  21. data/_sass/_elements.scss +125 -0
  22. data/_sass/_layout.scss +224 -0
  23. data/_sass/_nav.scss +180 -0
  24. data/_sass/_rogue.scss +50 -0
  25. data/_sass/_sizes.scss +18 -0
  26. data/_sass/hematite.scss +10 -0
  27. data/assets/html/all_tags.html +26 -0
  28. data/assets/img/favicon.svg +12 -0
  29. data/assets/js/AnimationUtil.mjs +72 -0
  30. data/assets/js/AsyncUtil.mjs +18 -0
  31. data/assets/js/DateUtil.mjs +123 -0
  32. data/assets/js/PageAlert.mjs +143 -0
  33. data/assets/js/UrlHelper.mjs +118 -0
  34. data/assets/js/assertions.mjs +9 -0
  35. data/assets/js/dropdownExpander.mjs +78 -0
  36. data/assets/js/layout/calendar.mjs +478 -0
  37. data/assets/js/layout/post.mjs +65 -0
  38. data/assets/js/linkButtonGenerator.mjs +45 -0
  39. data/assets/js/main.mjs +19 -0
  40. data/assets/js/search.mjs +358 -0
  41. data/assets/js/sidebar.mjs +97 -0
  42. data/assets/js/string_data.mjs +19 -0
  43. data/assets/js/strings.mjs +167 -0
  44. data/assets/plugin/katex/README.md +119 -0
  45. data/assets/plugin/katex/contrib/auto-render.min.js +1 -0
  46. data/assets/plugin/katex/contrib/copy-tex.min.css +1 -0
  47. data/assets/plugin/katex/contrib/copy-tex.min.js +1 -0
  48. data/assets/plugin/katex/contrib/mathtex-script-type.min.js +1 -0
  49. data/assets/plugin/katex/contrib/mhchem.min.js +1 -0
  50. data/assets/plugin/katex/contrib/render-a11y-string.min.js +1 -0
  51. data/assets/plugin/katex/fonts/KaTeX_AMS-Regular.ttf +0 -0
  52. data/assets/plugin/katex/fonts/KaTeX_AMS-Regular.woff +0 -0
  53. data/assets/plugin/katex/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  54. data/assets/plugin/katex/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  55. data/assets/plugin/katex/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  56. data/assets/plugin/katex/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  57. data/assets/plugin/katex/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  58. data/assets/plugin/katex/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  59. data/assets/plugin/katex/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  60. data/assets/plugin/katex/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  61. data/assets/plugin/katex/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  62. data/assets/plugin/katex/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  63. data/assets/plugin/katex/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  64. data/assets/plugin/katex/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  65. data/assets/plugin/katex/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  66. data/assets/plugin/katex/fonts/KaTeX_Main-Bold.ttf +0 -0
  67. data/assets/plugin/katex/fonts/KaTeX_Main-Bold.woff +0 -0
  68. data/assets/plugin/katex/fonts/KaTeX_Main-Bold.woff2 +0 -0
  69. data/assets/plugin/katex/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  70. data/assets/plugin/katex/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  71. data/assets/plugin/katex/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  72. data/assets/plugin/katex/fonts/KaTeX_Main-Italic.ttf +0 -0
  73. data/assets/plugin/katex/fonts/KaTeX_Main-Italic.woff +0 -0
  74. data/assets/plugin/katex/fonts/KaTeX_Main-Italic.woff2 +0 -0
  75. data/assets/plugin/katex/fonts/KaTeX_Main-Regular.ttf +0 -0
  76. data/assets/plugin/katex/fonts/KaTeX_Main-Regular.woff +0 -0
  77. data/assets/plugin/katex/fonts/KaTeX_Main-Regular.woff2 +0 -0
  78. data/assets/plugin/katex/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  79. data/assets/plugin/katex/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  80. data/assets/plugin/katex/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  81. data/assets/plugin/katex/fonts/KaTeX_Math-Italic.ttf +0 -0
  82. data/assets/plugin/katex/fonts/KaTeX_Math-Italic.woff +0 -0
  83. data/assets/plugin/katex/fonts/KaTeX_Math-Italic.woff2 +0 -0
  84. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  85. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  86. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  87. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  88. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  89. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  90. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  91. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  92. data/assets/plugin/katex/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  93. data/assets/plugin/katex/fonts/KaTeX_Script-Regular.ttf +0 -0
  94. data/assets/plugin/katex/fonts/KaTeX_Script-Regular.woff +0 -0
  95. data/assets/plugin/katex/fonts/KaTeX_Script-Regular.woff2 +0 -0
  96. data/assets/plugin/katex/fonts/KaTeX_Size1-Regular.ttf +0 -0
  97. data/assets/plugin/katex/fonts/KaTeX_Size1-Regular.woff +0 -0
  98. data/assets/plugin/katex/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  99. data/assets/plugin/katex/fonts/KaTeX_Size2-Regular.ttf +0 -0
  100. data/assets/plugin/katex/fonts/KaTeX_Size2-Regular.woff +0 -0
  101. data/assets/plugin/katex/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  102. data/assets/plugin/katex/fonts/KaTeX_Size3-Regular.ttf +0 -0
  103. data/assets/plugin/katex/fonts/KaTeX_Size3-Regular.woff +0 -0
  104. data/assets/plugin/katex/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  105. data/assets/plugin/katex/fonts/KaTeX_Size4-Regular.ttf +0 -0
  106. data/assets/plugin/katex/fonts/KaTeX_Size4-Regular.woff +0 -0
  107. data/assets/plugin/katex/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  108. data/assets/plugin/katex/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  109. data/assets/plugin/katex/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  110. data/assets/plugin/katex/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  111. data/assets/plugin/katex/katex.min.css +1 -0
  112. data/assets/plugin/katex/katex.min.js +1 -0
  113. data/assets/search_data.json +36 -0
  114. data/assets/style.scss +15 -0
  115. metadata +170 -0
@@ -0,0 +1,73 @@
1
+ :root {
2
+ --primary-text-color: black;
3
+ --secondary-text-color: black;
4
+ --text-color-faint: #444;
5
+ --link-color: #940;
6
+ --visited-link-color: #904;
7
+
8
+ --selected-item-fg-color: black;
9
+ --selected-item-bg-color: #ffaaaa;
10
+
11
+ --primary-background-color: white;
12
+ --secondary-background-color: #eee;
13
+
14
+ --color-alert-background: #ffb998;
15
+ --color-alert-foreground: black;
16
+
17
+ --shadow-color-light: rgba(0, 0, 0, 0.6);
18
+ --line-color-light: #eee;
19
+ --code-background-color: #fafafa;
20
+ }
21
+
22
+ @media screen {
23
+ :root {
24
+ --code-background-color: #f9f5f5;
25
+ }
26
+ }
27
+
28
+ :root {
29
+ // Syntax highlighting
30
+ --syntax-keyword-fg: #d00;
31
+ --syntax-string-fg: #c07;
32
+ --syntax-number-fg: #036;
33
+ --syntax-bracket-fg: #052;
34
+ --syntax-operator-fg: #046;
35
+ --syntax-comment-fg: #338;
36
+ --syntax-name-fg: #331;
37
+ --syntax-normal-fg: black;
38
+ }
39
+
40
+ @media screen and (prefers-color-scheme: dark) {
41
+ :root {
42
+ --primary-text-color: white;
43
+ --secondary-text-color: white;
44
+ --text-color-faint: #ccc;
45
+ --link-color: #fa0;
46
+ --visited-link-color: #f0a;
47
+
48
+ --selected-item-fg-color: white;
49
+ --selected-item-bg-color: #530033;
50
+
51
+ --primary-background-color: black;
52
+ --secondary-background-color: #111;
53
+ --code-background-color: #222;
54
+ --line-color-light: #222;
55
+
56
+ --color-alert-background: #300;
57
+ --color-alert-foreground: white;
58
+
59
+ --shadow-color-light: rgba(200, 200, 200, 0.5);
60
+
61
+
62
+ // Syntax highlighting
63
+ --syntax-keyword-fg: pink;
64
+ --syntax-string-fg: #cfc;
65
+ --syntax-number-fg: #eef;
66
+ --syntax-bracket-fg: #faf;
67
+ --syntax-operator-fg: #aff;
68
+ --syntax-comment-fg: #aef;
69
+ --syntax-name-fg: #edf;
70
+ --syntax-normal-fg: white;
71
+ }
72
+ }
73
+
@@ -0,0 +1,125 @@
1
+
2
+ a {
3
+ color: var(--link-color);
4
+ }
5
+
6
+ a:visited {
7
+ color: var(--visited-link-color);
8
+ }
9
+
10
+ button {
11
+ background-color: var(--secondary-background-color);
12
+ border-radius: 10px;
13
+ border: none;
14
+ box-shadow: 0 0 0px var(--shadow-color-light);
15
+ cursor: pointer;
16
+
17
+ color: var(--primary-text-color);
18
+
19
+ transition: box-shadow 0.5s ease;
20
+ }
21
+
22
+ button:hover {
23
+ box-shadow: 0px 0px 4px var(--shadow-color-light);
24
+ }
25
+
26
+ button[disabled] {
27
+ &:hover {
28
+ box-shadow: none;
29
+ }
30
+
31
+ opacity: 0.5;
32
+ filter: saturate(0);
33
+ cursor: not-allowed;
34
+ }
35
+
36
+ input {
37
+ color: var(--secondary-text-color);
38
+ background-color: var(--secondary-background-color);
39
+ border: 1px solid var(--line-color-light);
40
+ border-radius: 4px;
41
+ padding: 5px;
42
+
43
+ font-family: $serif-font;
44
+ font-size: $font-size-main;
45
+ }
46
+
47
+ input::placeholder {
48
+ color: var(--secondary-text-color);
49
+ opacity: 0.6;
50
+ font-style: italic;
51
+ }
52
+
53
+ .main-container code, .main-container pre {
54
+ background-color: var(--code-background-color);
55
+ padding: 4px;
56
+ border-radius: 4px;
57
+ }
58
+
59
+ .main-container pre {
60
+ padding: 6px;
61
+ }
62
+
63
+ .main-container details {
64
+ summary {
65
+ cursor: pointer;
66
+ }
67
+
68
+ break-inside: avoid;
69
+ transition: border 0.25s ease, padding 0.5s ease;
70
+ }
71
+
72
+ .main-container details[open] {
73
+ border: 1px solid var(--line-color-light);
74
+ border-radius: 10px;
75
+ padding: 10px;
76
+
77
+ > :not(summary) {
78
+ animation: fade-in 0.5s ease 1;
79
+ }
80
+ }
81
+
82
+ .main-container {
83
+ h1, h2, h3 {
84
+ break-before: auto;
85
+ break-after: avoid;
86
+ }
87
+
88
+ aside {
89
+ border-left: 2px solid var(--line-color-light);
90
+ padding-left: 13px;
91
+ padding-right: 13px;
92
+ padding-top: 5px;
93
+ padding-bottom: 5px;
94
+ }
95
+
96
+ aside.warning {
97
+ color: var(--color-alert-foreground);
98
+ background-color: var(--color-alert-background);
99
+ background-image: linear-gradient(rgba(255, 255, 255, 0.25), rgba(0, 0, 0, 0.0));
100
+ box-shadow: 0px 0px 4px var(--shadow-color-light);
101
+
102
+ border-bottom-right-radius: 10px;
103
+ border-radius: 2px;
104
+
105
+ a {
106
+ background-color: var(--secondary-background-color);
107
+ border-radius: 4px;
108
+ padding: 4px;
109
+ }
110
+
111
+ code {
112
+ box-shadow: inset -1px -1px 4px var(--shadow-color-light);
113
+ }
114
+ }
115
+ }
116
+
117
+ // Markdown parsers may put `code` elements inside of `pre`
118
+ // elements. We don't want the background color of the `code` element
119
+ // to make parts of lines invisible.
120
+ .main-container pre code {
121
+ background-color: transparent;
122
+
123
+ // Let the `pre` handle the padding
124
+ padding: 0;
125
+ }
@@ -0,0 +1,224 @@
1
+ @charset "utf-8";
2
+
3
+ @import "_nav";
4
+ @import "_calendar";
5
+
6
+ .main-container {
7
+ box-shadow: 1px 1px 3px var(--shadow-color-light);
8
+ background-color: var(--primary-background-color);
9
+
10
+ max-width: $site-content-preferred-width;
11
+ padding-left: $content-main-padding;
12
+ padding-right: $content-main-padding;
13
+ padding-top: 20px;
14
+ padding-bottom: 30px;
15
+
16
+ // Center
17
+ margin-left: auto;
18
+ margin-right: auto;
19
+ margin-top: 10px;
20
+
21
+ // Resize images to prevent overflow.
22
+ img {
23
+ max-width: $site-content-preferred-width;
24
+ }
25
+ }
26
+
27
+ :root {
28
+ background-color: var(--secondary-background-color);
29
+ }
30
+
31
+ body {
32
+ // Add additional padding — notifictions that appear at the bottom of the
33
+ // screen should be ignorable.
34
+ padding-bottom: 140px;
35
+ margin: 0;
36
+
37
+ font-size: $font-size-main;
38
+ font-family: $serif-font;
39
+ color: var(--primary-text-color);
40
+ }
41
+
42
+ nav#post_next_prev {
43
+ display: flex;
44
+ flex-direction: row;
45
+
46
+ & > a {
47
+ flex-grow: 1;
48
+ text-align: center;
49
+
50
+ // Show the top of the page, in addition to the
51
+ // link.
52
+ scroll-margin-top: calc(25vh + 2em);
53
+ }
54
+ }
55
+
56
+ .prev-post-link, .next-post-link, .post-tag, .tag {
57
+ border: none;
58
+ padding: 6px;
59
+ border-radius: 10px;
60
+ margin: 2px;
61
+
62
+ text-decoration: none;
63
+ font-weight: bold;
64
+ box-shadow: 0px 0px 3px var(--shadow-color-light);
65
+
66
+ background-color: var(--primary-background-color);
67
+ transition: background-color 0.5s ease;
68
+
69
+ &:hover, &:focus-visible {
70
+ background-color: var(--secondary-background-color);
71
+ }
72
+ }
73
+
74
+ .post-tag, .tag {
75
+ color: var(--primary-text-color);
76
+
77
+ &:visited {
78
+ color: var(--primary-text-color);
79
+ }
80
+ }
81
+
82
+ .post-assigned-date {
83
+ font-style: italic;
84
+ color: var(--text-color-faint);
85
+ text-align: end;
86
+ }
87
+
88
+ .next-post-link {
89
+ float: right;
90
+ }
91
+
92
+ .prev-post-link {
93
+ float: left;
94
+ }
95
+
96
+ .end-of-post-space {
97
+ height: 100px;
98
+ break-after: always;
99
+ }
100
+
101
+ .pageAlert {
102
+ position: fixed;
103
+ bottom: 0;
104
+ left: 0;
105
+ right: 0;
106
+ z-index: 200;
107
+
108
+ box-shadow: 0px -1px 1px var(--shadow-color-light);
109
+ background-color: var(--color-alert-background);
110
+ color: var(--color-alert-foreground);
111
+
112
+ font-family: $serif-font;
113
+ font-size: 14pt;
114
+
115
+ padding: 20px;
116
+ animation: grow-in 0.7s ease 1;
117
+ }
118
+
119
+ .pageAlert:not(.hidden) > :first-child::before, aside.warning > :first-child::before {
120
+ content: "❕";
121
+ text-shadow: 0px 0px 1px var(--shadow-color-light);
122
+ box-shadow: inset 0px 1px 2px var(--shadow-color-light);
123
+ aspect-ratio: 1;
124
+
125
+ padding: 7px;
126
+ margin-right: 10px;
127
+ width: 15px;
128
+ height: 15px;
129
+
130
+ border-radius: 100%;
131
+ background-color: red;
132
+ color: white;
133
+ font-weight: bold;
134
+ font-size: 16pt;
135
+ }
136
+
137
+ .pageAlert.closing {
138
+ animation: shrink-out 0.5s ease 1;
139
+ }
140
+
141
+ .linkToHeaderContainer {
142
+ float: right;
143
+ opacity: 0.1;
144
+ cursor: pointer;
145
+
146
+ transition: opacity 0.2s ease;
147
+ }
148
+
149
+ .linkToHeaderContainer:hover, .linkToHeaderContainer:focus-within {
150
+ opacity: 1;
151
+ }
152
+
153
+ .spacer {
154
+ flex-grow: 1;
155
+ }
156
+
157
+ // On mobile devices,
158
+ @media screen and (max-width: $site-content-preferred-width) {
159
+ .main-container {
160
+ box-shadow: none;
161
+ margin: 0;
162
+
163
+ img {
164
+ max-width: calc(100vw - 2 * #{$content-main-padding});
165
+ }
166
+ }
167
+
168
+ // Don't scroll if the sidebar is filling the screen.
169
+ :root.hasOpenSidebar, body.hasOpenSidebar {
170
+ overflow: hidden;
171
+ }
172
+
173
+ body, :root {
174
+ margin: 0;
175
+ padding: 0;
176
+
177
+ background-color: var(--primary-background-color);
178
+ }
179
+
180
+ body {
181
+ padding-bottom: 140px;
182
+ }
183
+
184
+ // Move the header links to the margin
185
+ .linkToHeaderContainer {
186
+ margin-right: -$content-main-padding;
187
+ }
188
+
189
+ }
190
+
191
+ // Printing?
192
+ @media print {
193
+ .main-container {
194
+ box-shadow: none;
195
+ background: transparent;
196
+ margin: 0;
197
+ padding: 0;
198
+ }
199
+
200
+ :root {
201
+ background: transparent;
202
+ }
203
+
204
+ .linkToHeaderContainer {
205
+ display: none;
206
+ }
207
+
208
+ .pageAlert {
209
+ display: none;
210
+ }
211
+
212
+ nav.sidebar {
213
+ display: none;
214
+ }
215
+
216
+ nav#post_next_prev {
217
+ display: none;
218
+ }
219
+
220
+ .tag, .post-tag, .post-next-btn, .post-prev.btn {
221
+ box-shadow: none;
222
+ border: 1px solid var(--line-color-light);
223
+ }
224
+ }
data/_sass/_nav.scss ADDED
@@ -0,0 +1,180 @@
1
+ @charset "utf-8";
2
+
3
+ $header-z-index: 100;
4
+
5
+ header {
6
+ position: sticky;
7
+ top: 0;
8
+ z-index: $header-z-index;
9
+ height: var(--header-height);
10
+ overflow: hidden;
11
+
12
+ background-color: var(--primary-background-color);
13
+ font-size: var(--nav-font-size);
14
+ color: var(--primary-text-color);
15
+ display: flex;
16
+ flex-direction: row;
17
+ padding-right: 10px;
18
+
19
+ box-shadow: 0 0 2px var(--shadow-color-light);
20
+
21
+ margin: 0;
22
+
23
+ a, a:visited {
24
+ text-decoration: none;
25
+ color: var(--primary-text-color);
26
+
27
+ // Vertically center text
28
+ display: flex;
29
+ align-items: center;
30
+ }
31
+
32
+ #toggle_sidebar_btn {
33
+ margin-right: 10px;
34
+ background-color: var(--primary-background-color);
35
+ }
36
+
37
+ @media print {
38
+ #toggle_sidebar_btn {
39
+ display: none;
40
+ }
41
+ }
42
+ }
43
+
44
+ nav.sidebar {
45
+ position: fixed;
46
+ top: var(--header-height);
47
+ left: 0;
48
+ bottom: 0;
49
+
50
+ width: var(--nav-width);
51
+
52
+ display: flex;
53
+ flex-direction: column;
54
+
55
+ opacity: 0;
56
+ transform: scale(0, 1) translate(-30px, 0);
57
+
58
+ color: var(--primary-text-color);
59
+ background-color: var(--primary-background-color);
60
+ box-shadow: 0 0 2px var(--shadow-color-light);
61
+ padding: 10px;
62
+
63
+ z-index: $header-z-index - 1;
64
+
65
+ &.open {
66
+ transform: scale(1, 1);
67
+ opacity: 1;
68
+ }
69
+
70
+ transform-origin: left;
71
+ transition: opacity 0.5s ease, transform 0.5s ease, width 0.5s ease;
72
+
73
+
74
+ // Container with search box and button
75
+ > .search-container {
76
+ display: flex;
77
+ flex-direction: row;
78
+
79
+ input {
80
+ flex-grow: 1;
81
+ flex-shrink: 1;
82
+ }
83
+ }
84
+
85
+ & > .pinned-pages {
86
+ flex-grow: 1;
87
+ flex-shrink: 1;
88
+
89
+ min-height: 30px;
90
+ }
91
+
92
+ & > .search-results-container, & > .pinned-pages {
93
+ overflow: auto;
94
+ }
95
+
96
+ & > .search-results-container > .search-results {
97
+ &.hidden {
98
+ display: none;
99
+ }
100
+
101
+ .results-description {
102
+ color: var(--text-color-faint);
103
+ border-bottom: 1px solid var(--line-color-light);
104
+ margin-right: 30px;
105
+ }
106
+
107
+ // Context for each result.
108
+ .context {
109
+ margin-left: 15px;
110
+ margin-right: 20px;
111
+ padding-left: 5px;
112
+
113
+ color: var(--text-color-faint);
114
+ border-left: 1px solid var(--line-color-light);
115
+ text-decoration: none;
116
+
117
+ word-wrap: anywhere;
118
+ }
119
+
120
+ // Search result link
121
+ a {
122
+ background-color: transparent;
123
+ transition: background-color 0.2s ease;
124
+ display: list-item;
125
+ padding: 5px;
126
+ color: var(--primary-text-color);
127
+ }
128
+
129
+ a:hover, a:focus-visible {
130
+ background-color: var(--selected-item-bg-color);
131
+ }
132
+ }
133
+
134
+ & > .search-results-container > ul.search-results, & > ul.pinned-pages {
135
+ list-style: none;
136
+ padding-left: 0;
137
+
138
+ a {
139
+ text-decoration: none;
140
+ display: block;
141
+ color: var(--primary-text-color);
142
+ }
143
+
144
+
145
+ li, & > a {
146
+ padding: 4px;
147
+ border-bottom: 1px solid var(--line-color-light);
148
+
149
+ a:hover {
150
+ text-decoration: underline;
151
+ }
152
+
153
+ &.current_page {
154
+ background-color: var(--selected-item-bg-color);
155
+ }
156
+
157
+ &.current_page a {
158
+ color: var(--selected-item-fg-color);
159
+ font-weight: bold;
160
+ text-align: end;
161
+ }
162
+ }
163
+ }
164
+
165
+ footer {
166
+ font-style: italic;
167
+ margin-left: 22px;
168
+ margin-right: 22px;
169
+ margin-top: 30px;
170
+
171
+ color: var(--text-color-faint);
172
+ }
173
+ }
174
+
175
+ // To make space for the navigation bar, add padding to
176
+ // hash links. See
177
+ // https://gomakethings.com/how-to-prevent-anchor-links-from-scrolling-behind-a-sticky-header-with-one-line-of-css/
178
+ .main-container * {
179
+ scroll-margin-top: 2.5em;
180
+ }
data/_sass/_rogue.scss ADDED
@@ -0,0 +1,50 @@
1
+
2
+ // Created while referencing rouge-github.scss as published
3
+ // at https://github.com/pages-themes/cayman/blob/master/_sass/rouge-github.scss
4
+
5
+ .highlight {
6
+ color: var(--syntax-normal-fg);
7
+ display: block;
8
+ white-space: pre-wrap;
9
+
10
+ // Keywords
11
+ .k, .kn, .kc, .kd, .kt {
12
+ color: var(--syntax-keyword-fg);
13
+ }
14
+
15
+ // Strings
16
+ .s, .s1, .s2, .s3 {
17
+ color: var(--syntax-string-fg);
18
+ }
19
+
20
+ // Numbers
21
+ .mi, .mn, .mf {
22
+ color: var(--syntax-number-fg);
23
+ }
24
+
25
+ // Operators
26
+ .o {
27
+ font-weight: bold;
28
+ color: var(--syntax-operator-fg);
29
+ }
30
+
31
+ // Brackets and parentheticals
32
+ .p {
33
+ color: var(--syntax-bracket-fg);
34
+ }
35
+
36
+ // Comments
37
+ .c, .c1, .c2, .cm {
38
+ color: var(--syntax-comment-fg);
39
+ font-style: italic;
40
+ }
41
+
42
+ .cp {
43
+ font-style: italic;
44
+ }
45
+
46
+ // Variables/names
47
+ .n, .nv, .nf, .nt, .na, .nx, .nd {
48
+ color: var(--syntax-name-fg);
49
+ }
50
+ }
data/_sass/_sizes.scss ADDED
@@ -0,0 +1,18 @@
1
+
2
+ // Macro-like variables
3
+ $site-content-preferred-width: 700px;
4
+ $font-size-main: 12pt;
5
+ $content-main-padding: 30px;
6
+
7
+ // CSS variables
8
+ :root {
9
+ --nav-font-size: 22pt;
10
+ --header-height: 30pt;
11
+ --nav-width: 300px;
12
+ }
13
+
14
+ @media (max-width: $site-content-preferred-width) {
15
+ :root {
16
+ --nav-width: 95vw;
17
+ }
18
+ }
@@ -0,0 +1,10 @@
1
+ @charset "utf-8";
2
+
3
+ $serif-font: 'FoulisGreek', 'EB Garamond', 'TeX Gyre Bonum', serif;
4
+
5
+ @import "_colors";
6
+ @import "_sizes";
7
+ @import "_animations";
8
+ @import "_layout";
9
+ @import "_elements";
10
+ @import "_rogue";
@@ -0,0 +1,26 @@
1
+ ---
2
+ layout: default
3
+ title: All Tags
4
+ permalink: /assets/html/all_tags.html
5
+ ---
6
+
7
+ <h1 id="all_tags_header"></h1>
8
+
9
+ {% for tag in site.tags %}
10
+ <details><summary><code>{{ tag[0] }}</code></summary>
11
+
12
+ <ul id="tag__{{ tag[0] | escape }}">
13
+ {% for post in tag[1] %}
14
+ <li>
15
+ <a href="{{ post.url | relative_url }}">{{ post.title }}</a>
16
+ </li>
17
+ {% endfor %}
18
+ </ul>
19
+ </details>
20
+ {% endfor %}
21
+
22
+ <script type="module">
23
+ import stringLookup from "{{ 'assets/js/strings.mjs' | relative_url }}";
24
+ document.querySelector("#all_tags_header").innerText
25
+ = stringLookup(`all_tags_header`);
26
+ </script>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="512" height="512" version="1.1" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
3
+ <defs>
4
+ <filter id="filter7674" x="-.25" y="-.25" width="1.5" height="1.5" color-interpolation-filters="sRGB">
5
+ <feGaussianBlur stdDeviation="12.0308382"/>
6
+ </filter>
7
+ </defs>
8
+ <g>
9
+ <path d="m122.52 34.551-94.311 117.48 4.503 246.11 127.26 70.081 258.18-41.737 71.954-66.215-38.507-266.18s-1.2406-30.237-85.384-44.738-243.69-14.797-243.69-14.797z" fill="#9300cf" filter="url(#filter7674)" transform="scale(1.01) translate(2, 10)" transform-origin="center"/>
10
+ <path d="m122.52 34.551-94.311 117.48 4.503 246.11 127.26 70.081 258.18-41.737 71.954-66.215-38.507-266.18s-1.2406-30.237-85.384-44.738-243.69-14.797-243.69-14.797z" fill="#161616"/>
11
+ </g>
12
+ </svg>