jekyll-theme-paperwiki 0.1.10 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -12
- data/_data/navigation.yml +0 -2
- data/_includes/global_head.html +0 -11
- data/_includes/search_results.html +1 -0
- data/_layouts/launchpad.html +1 -1
- data/_layouts/wiki.html +2 -2
- data/_layouts/work.html +6 -2
- data/_sass/partials/_base.scss +154 -70
- data/_sass/partials/_collections.scss +12 -0
- data/_sass/partials/_entries.scss +23 -16
- data/_sass/partials/_global.scss +3 -0
- data/_sass/partials/_launchpad.scss +18 -18
- data/_sass/partials/_search.scss +9 -0
- data/_sass/style.scss +1 -0
- data/_sass/variables/_colors.scss +21 -11
- data/_sass/variables/_media-queries.scss +17 -0
- data/_sass/variables/_misc.scss +1 -1
- data/assets/css/style.scss +1 -1
- data/assets/js/search.js +1 -1
- metadata +4 -9
- data/_plugins/blockquote.rb +0 -28
- data/_plugins/gloss.rb +0 -22
- data/_plugins/interlinear.rb +0 -37
- data/_plugins/ipa.rb +0 -23
- data/_plugins/lang.rb +0 -28
- data/_plugins/sidenote.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cb963cda9b21065fa315c571b4c3f3752c33dd3282cfc86cebe06faad26699f2
|
4
|
+
data.tar.gz: 1ecb198c0da561d7de362321a82f894ec38a091e3a5beb9ce2e35ac5819161b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f9b48b9cacf556a5078962d1b7f1bea5ad1f520316ba0235ea7fd69f51906737d18631c686bba29adb287ff606d3bbf3994506d9cd782bfdc510b98553fa52fc
|
7
|
+
data.tar.gz: 974f52b2ab01f55a1e81dfeca9bf33d4e612b954853260dcabc7337db668d9d79420491fc5f5dbf91aedd36d3746bead4c917bf322447a195c66e0d8ea013245
|
data/README.md
CHANGED
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
For storing your worldbuilding notes! The intent of this theme is to get all the code out of the way and to allow you to write Markdown articles; the best way to do that is to install the theme as a gem. However, if you want to tinker with the code, just download this repository.
|
4
4
|
|
5
|
-
For the easiest starting point, I have uploaded a sample site that you can download with everything preconfigured, so if you're unfamiliar with Jekyll you can bypass all the setup and get right to it. See that repo for instructions.
|
5
|
+
For the easiest starting point, I have uploaded a [sample site](https://github.com/pomeloshark/paperwiki-example) that you can download with everything preconfigured, so if you're unfamiliar with Jekyll you can bypass all the setup and get right to it. See that repo for instructions.
|
6
6
|
|
7
7
|
I've tried to adhere to accessible and easy to read design principles while retaining the look and layout of a classic wiki that we're all familiar with - I've aped some elements of Wikipedia's organizational system and layout while trying to make it as clean and user friendly as possible.
|
8
8
|
|
9
|
-
This theme is not mobile friendly, as I personally do absolutely no work on mobile and thus my development skills are lacking. There is also no dark mode or other alternate colour scheme, but please feel free to fork this project and add whatever functionality
|
9
|
+
This theme is not mobile friendly, as I personally do absolutely no work on mobile and thus my development skills are lacking. I stuck in a couple CSS breakpoints, so it'll be mostly legible on a medium-sized tablet, but don't expect great results on a phone. There is also no dark mode or other alternate colour scheme, but please feel free to fork this project and add whatever functionality you're looking for.
|
10
|
+
|
11
|
+
This theme is not really intended for blogging, but you could add in the functionality easily enough by creating a `_posts` collection and setting a default post layout in the config file, as there is a dedicated `post` layout, as well as a `blog.md` which will list all of your blog posts on one page. If you have no need for it you can delete this file.
|
10
12
|
|
11
13
|
|
12
14
|
|
@@ -53,7 +55,7 @@ This will give you a very bare bones Jekyll site, with an index page, a folder f
|
|
53
55
|
To use this theme, open your Jekyll site's `Gemfile`, delete the line that says `gem "minima"` and replace it with this line:
|
54
56
|
|
55
57
|
```ruby
|
56
|
-
gem "jekyll-theme-paperwiki", "~>
|
58
|
+
gem "jekyll-theme-paperwiki", "~> [version]"
|
57
59
|
```
|
58
60
|
|
59
61
|
And add this line to your Jekyll site's `_config.yml`:
|
@@ -117,7 +119,7 @@ collections:
|
|
117
119
|
permalink: /:collection/:name
|
118
120
|
```
|
119
121
|
|
120
|
-
`/:collection/:name` means the url to each wiki entry will be `wiki/
|
122
|
+
`/:collection/:name` means the url to each wiki entry will be `wiki/article-title` without the article file extension.
|
121
123
|
|
122
124
|
However, if you would like to have additional collections akin to the Wikimedia Foundation's other projects - such as Wikisource, Wikispecies, or Wiktionary - then you can specify them in the same format as above, also under the `collections` key:
|
123
125
|
|
@@ -151,13 +153,6 @@ This will add links to each different collection on your homepage, and allow you
|
|
151
153
|
|
152
154
|
|
153
155
|
|
154
|
-
## Development
|
155
|
-
|
156
|
-
When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
|
157
|
-
To add a custom directory to your theme-gem, please edit the regexp in `jekyll-theme-paperwiki.gemspec` accordingly.
|
158
|
-
|
159
|
-
|
160
|
-
|
161
156
|
## License
|
162
157
|
|
163
158
|
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
@@ -168,4 +163,4 @@ The theme is available as open source under the terms of the [MIT License](https
|
|
168
163
|
|
169
164
|
This theme uses the fonts [Inter](https://rsms.me/inter/), [Libertinus Serif](https://github.com/alerque/libertinus), and [Liberation Mono](https://fontlibrary.org/en/font/liberation-mono), all of which are released under the SIL Open Font License; and the icon font [RemixIcon](https://remixicon.com/), which is available under the Apache License 2.0. The [example favicon](https://www.flaticon.com/free-icon/toucan_3002355) is by Freepik at Flaticon.
|
170
165
|
|
171
|
-
The search function uses [Lunr.js](https://lunrjs.com/).
|
166
|
+
The search function uses [Lunr.js](https://lunrjs.com/). Random page functionality is from [Jekyll Random Redirect](https://github.com/jekylltools/jekyll-random-redirect).
|
data/_data/navigation.yml
CHANGED
data/_includes/global_head.html
CHANGED
@@ -17,15 +17,4 @@
|
|
17
17
|
|
18
18
|
<link rel="icon" type="image/png" sizes="512x512" href="/assets/images/favicon.png">
|
19
19
|
|
20
|
-
<!-------
|
21
|
-
<script src="http://files.keyes.ie/things/baseliner/baseliner-latest.min.js">
|
22
|
-
</script>
|
23
|
-
|
24
|
-
<script>
|
25
|
-
window.onload = function() {
|
26
|
-
baseliner = new Baseliner(28);
|
27
|
-
}
|
28
|
-
</script>
|
29
|
-
-------->
|
30
|
-
|
31
20
|
</head>
|
@@ -1,6 +1,7 @@
|
|
1
1
|
"{{ page.url | slugify }}": {
|
2
2
|
"title": "{{ page.title | xml_escape }}",
|
3
3
|
"content": {{ page.content | markdownify | strip_newlines | strip_html | jsonify }},
|
4
|
+
"collection": "{{ page.collection | xml_escape }}",
|
4
5
|
"portal": "{{ page.portal | xml_escape }}",
|
5
6
|
"categories": "{{ page.categories | array_to_sentence_string: "" | xml_escape }}",
|
6
7
|
"url": "{{ site.url | append: page.url | xml_escape }}",
|
data/_layouts/launchpad.html
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
<label for="input__text">What do you want to know?</label><br>
|
14
14
|
<input id="input__text" name="q" class="launchpad-searchbar" required type="search" placeholder="Search">
|
15
15
|
|
16
|
-
<
|
16
|
+
<button type="submit" class="launchpad-search_submit">Go!</button>
|
17
17
|
|
18
18
|
</form>
|
19
19
|
|
data/_layouts/wiki.html
CHANGED
data/_layouts/work.html
CHANGED
@@ -2,12 +2,16 @@
|
|
2
2
|
layout: entry
|
3
3
|
---
|
4
4
|
|
5
|
-
<article class="entry
|
5
|
+
<article class="entry entry_work">
|
6
6
|
|
7
7
|
<h1>
|
8
8
|
{{ page.title }}
|
9
9
|
</h1>
|
10
10
|
|
11
|
-
{
|
11
|
+
{% if page.format==verse %}
|
12
|
+
<section class="entry_work-verse">{{ content }}</section>
|
13
|
+
{% else %}
|
14
|
+
{{ content }}
|
15
|
+
{% endif %}
|
12
16
|
|
13
17
|
</article>
|
data/_sass/partials/_base.scss
CHANGED
@@ -3,10 +3,18 @@
|
|
3
3
|
# styling universal to all pages
|
4
4
|
\*------------------------------------*/
|
5
5
|
|
6
|
-
|
6
|
+
html {
|
7
7
|
/* Correct box-sizing in IE. */
|
8
8
|
box-sizing: border-box;
|
9
|
+
}
|
10
|
+
|
11
|
+
*,
|
12
|
+
*::before,
|
13
|
+
*::after {
|
14
|
+
box-sizing: inherit;
|
15
|
+
}
|
9
16
|
|
17
|
+
* {
|
10
18
|
/* Hard reset on spacing, for the insane. */
|
11
19
|
margin: 0;
|
12
20
|
padding: 0;
|
@@ -16,8 +24,6 @@
|
|
16
24
|
}
|
17
25
|
|
18
26
|
body {
|
19
|
-
width: 85%;
|
20
|
-
|
21
27
|
display: grid;
|
22
28
|
grid-template-columns: repeat(12, 1fr);
|
23
29
|
|
@@ -25,7 +31,22 @@ body {
|
|
25
31
|
|
26
32
|
background-color: $color-body_background;
|
27
33
|
font-family: $fontfamily-body;
|
28
|
-
|
34
|
+
@include for-phone-only {
|
35
|
+
width: 100%;
|
36
|
+
font-size: 85%;
|
37
|
+
}
|
38
|
+
@include for-tablet-portrait-up {
|
39
|
+
width: 100%;
|
40
|
+
font-size: 85%;
|
41
|
+
}
|
42
|
+
@include for-tablet-landscape-up {
|
43
|
+
width: 90%;
|
44
|
+
font-size: 90%;
|
45
|
+
}
|
46
|
+
@include for-desktop-up {
|
47
|
+
width: 85%;
|
48
|
+
font-size: $fontsize-body;
|
49
|
+
}
|
29
50
|
}
|
30
51
|
|
31
52
|
main {
|
@@ -39,6 +60,8 @@ main {
|
|
39
60
|
background-color: $color-content_background;
|
40
61
|
}
|
41
62
|
|
63
|
+
|
64
|
+
|
42
65
|
h1,
|
43
66
|
h2,
|
44
67
|
h3 {
|
@@ -72,31 +95,84 @@ a:active {
|
|
72
95
|
|
73
96
|
a:hover {
|
74
97
|
color: $color-link_hover;
|
98
|
+
transition: $transition;
|
75
99
|
}
|
76
100
|
|
77
|
-
a
|
78
|
-
|
101
|
+
a.active,
|
102
|
+
a:focus {
|
103
|
+
border: 0;
|
104
|
+
border-radius: 0.05em;
|
105
|
+
outline: 3px solid $color-link_focus;
|
106
|
+
outline-offset: 0.2em;
|
107
|
+
transition: $transition;
|
79
108
|
}
|
80
109
|
|
81
110
|
p {
|
82
111
|
margin-bottom: 1.75em; // Equal to one line-height.
|
83
112
|
}
|
84
113
|
|
85
|
-
|
86
|
-
|
114
|
+
sup,
|
115
|
+
sub {
|
116
|
+
font-size: $fontsize-small;
|
117
|
+
line-height: 0;
|
118
|
+
}
|
87
119
|
|
88
|
-
|
89
|
-
|
120
|
+
abbr {
|
121
|
+
cursor: help;
|
122
|
+
}
|
123
|
+
|
124
|
+
dl,
|
125
|
+
ol,
|
126
|
+
ul {
|
127
|
+
margin-bottom: 1.75em;
|
128
|
+
}
|
129
|
+
|
130
|
+
ul ul,
|
131
|
+
ol ol {
|
132
|
+
margin-left: 2em;
|
133
|
+
margin-bottom: 0;
|
134
|
+
}
|
135
|
+
|
136
|
+
ul ul {
|
137
|
+
list-style-type: circle;
|
138
|
+
}
|
139
|
+
|
140
|
+
ol,
|
141
|
+
ul {
|
142
|
+
margin-left: 3em;
|
143
|
+
margin-right: 3em;
|
144
|
+
}
|
145
|
+
|
146
|
+
dl {
|
147
|
+
margin-left: 2em;
|
148
|
+
margin-right: 3em;
|
149
|
+
}
|
150
|
+
|
151
|
+
dt {
|
152
|
+
font-weight: bold;
|
90
153
|
}
|
91
154
|
|
155
|
+
dd {
|
156
|
+
margin-left: 1em;
|
157
|
+
}
|
158
|
+
|
159
|
+
|
160
|
+
|
92
161
|
img {
|
93
162
|
border: 0;
|
94
163
|
}
|
95
164
|
|
165
|
+
figure {}
|
166
|
+
|
167
|
+
figcaption {
|
168
|
+
font-size: $fontsize-small;
|
169
|
+
text-align: center;
|
170
|
+
}
|
171
|
+
|
96
172
|
blockquote {
|
97
173
|
margin-left: 3em;
|
98
174
|
margin-right: 3em;
|
99
|
-
margin-bottom: 1.
|
175
|
+
margin-bottom: 1.75em;
|
100
176
|
padding: 1.75em;
|
101
177
|
|
102
178
|
background-color: $color-blockquote_background;
|
@@ -111,23 +187,57 @@ blockquote {
|
|
111
187
|
}
|
112
188
|
}
|
113
189
|
|
114
|
-
|
115
|
-
|
190
|
+
|
191
|
+
|
192
|
+
table {
|
193
|
+
margin: auto;
|
194
|
+
margin-bottom: 1.75em;
|
195
|
+
border-collapse: collapse;
|
196
|
+
border-bottom: 0;
|
116
197
|
}
|
117
198
|
|
118
|
-
|
119
|
-
|
120
|
-
font-size: $fontsize-small;
|
121
|
-
line-height: 0;
|
199
|
+
tr:nth-child(even) {
|
200
|
+
background-color: $color-paper_dark;
|
122
201
|
}
|
123
202
|
|
124
|
-
|
125
|
-
|
203
|
+
th:first-child,
|
204
|
+
td:first-child {
|
205
|
+
border-left: 0;
|
206
|
+
}
|
207
|
+
|
208
|
+
th:last-child,
|
209
|
+
td:last-child {
|
210
|
+
border-right: 0;
|
211
|
+
}
|
212
|
+
|
213
|
+
th,
|
214
|
+
td {
|
215
|
+
border: 1px solid $color-shortbread_dark;
|
216
|
+
padding: 0.5em;
|
217
|
+
}
|
218
|
+
|
219
|
+
th {
|
220
|
+
border-top: 0;
|
221
|
+
background-color: $color-shortbread_dark;
|
126
222
|
text-align: center;
|
127
223
|
}
|
224
|
+
td {
|
225
|
+
border-bottom: 0;
|
226
|
+
}
|
128
227
|
|
129
|
-
|
130
|
-
|
228
|
+
caption {
|
229
|
+
caption-side: bottom;
|
230
|
+
font-size: $fontsize-small;
|
231
|
+
padding-top: 1em;
|
232
|
+
}
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
hr {
|
237
|
+
margin: 2*1.75em 6em 2*1.68em;
|
238
|
+
|
239
|
+
border-style: solid;
|
240
|
+
border-color: $color-hr;
|
131
241
|
}
|
132
242
|
|
133
243
|
code,
|
@@ -149,8 +259,8 @@ kbd {
|
|
149
259
|
position: relative;
|
150
260
|
top: -1px;
|
151
261
|
display: inline-block;
|
152
|
-
min-width: 0.
|
153
|
-
padding: 0.
|
262
|
+
min-width: 0.75em;
|
263
|
+
padding: 0.2em 0.5em;
|
154
264
|
line-height: 1;
|
155
265
|
|
156
266
|
background-color: $color-kbd_background;
|
@@ -172,72 +282,46 @@ kbd {
|
|
172
282
|
}
|
173
283
|
|
174
284
|
pre {
|
175
|
-
padding:
|
285
|
+
padding: 1em;
|
286
|
+
margin-bottom: 1.75em;
|
287
|
+
white-space: pre-wrap;
|
176
288
|
|
177
289
|
background-color: $color-code_background;
|
178
290
|
color: $color-code_text;
|
179
291
|
border-radius: 6px;
|
292
|
+
code {
|
293
|
+
padding: 0;
|
294
|
+
}
|
180
295
|
}
|
181
296
|
|
297
|
+
|
298
|
+
|
182
299
|
input[type="search"] {
|
183
300
|
background-color: $color-searchbar_background;
|
184
301
|
border: 1px solid $color-searchbar_border;
|
185
|
-
appearance: none;
|
186
|
-
outline: none;
|
187
|
-
|
188
302
|
transition: $transition;
|
189
303
|
|
190
304
|
&:hover {
|
191
305
|
border: 1px solid $color-searchbar_border_hover;
|
192
306
|
box-shadow: 0 0 6px $color-searchbar_shadow_hover;
|
193
|
-
transition: $transition;
|
194
307
|
}
|
195
308
|
&:focus {
|
196
|
-
border
|
309
|
+
border: 1px solid $color-searchbar_border_focus;
|
310
|
+
outline: 1px solid $color-searchbar_border_focus;
|
197
311
|
box-shadow: 0 0 6px $color-searchbar_shadow_focus;
|
198
|
-
transition: $transition;
|
199
312
|
}
|
200
313
|
}
|
201
314
|
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
.tooltip:before {
|
207
|
-
content: attr(data-tooltip);
|
208
|
-
position: absolute;
|
209
|
-
width: 100px;
|
210
|
-
background-color: #062B45;
|
211
|
-
color: #fff;
|
212
|
-
text-align: center;
|
213
|
-
padding: 10px;
|
214
|
-
line-height: 1.2;
|
215
|
-
border-radius: 6px;
|
216
|
-
z-index: 1;
|
217
|
-
opacity: 0;
|
218
|
-
transition: opacity .6s;
|
219
|
-
bottom: 125%;
|
220
|
-
left: 50%;
|
221
|
-
margin-left: -60px;
|
222
|
-
font-size: 0.75em;
|
223
|
-
visibility: hidden;
|
224
|
-
}
|
225
|
-
|
226
|
-
.tooltip:after {
|
227
|
-
content: "";
|
228
|
-
position: absolute;
|
229
|
-
bottom: 75%;
|
230
|
-
left: 50%;
|
231
|
-
margin-left: -5px;
|
232
|
-
border-width: 5px;
|
233
|
-
border-style: solid;
|
234
|
-
opacity: 0;
|
235
|
-
transition: opacity .6s;
|
236
|
-
border-color: #062B45 transparent transparent transparent;
|
237
|
-
visibility: hidden;
|
238
|
-
}
|
315
|
+
button {
|
316
|
+
background-color: $color-button_background;
|
317
|
+
border: 1px solid transparent;
|
318
|
+
transition: $transition;
|
239
319
|
|
240
|
-
|
241
|
-
|
242
|
-
|
320
|
+
&:hover {
|
321
|
+
box-shadow: 0 0 7px $color-button_shadow_hover;
|
322
|
+
}
|
323
|
+
&:focus {
|
324
|
+
box-shadow: 0 0 7px $color-button_shadow_focus;
|
325
|
+
outline: 1px solid $color-button_outline-focus;
|
326
|
+
}
|
243
327
|
}
|
@@ -13,6 +13,7 @@
|
|
13
13
|
|
14
14
|
ul {
|
15
15
|
margin-bottom: 0;
|
16
|
+
margin-left: 0;
|
16
17
|
padding-left: 0;
|
17
18
|
list-style-type: none;
|
18
19
|
}
|
@@ -31,6 +32,7 @@
|
|
31
32
|
|
32
33
|
ul {
|
33
34
|
list-style-type: none;
|
35
|
+
margin-left: 0;
|
34
36
|
}
|
35
37
|
}
|
36
38
|
|
@@ -148,6 +150,16 @@
|
|
148
150
|
color: $color-body_text;
|
149
151
|
}
|
150
152
|
|
153
|
+
.collections-portal_card:active,
|
154
|
+
.collections-portal_card:focus {
|
155
|
+
outline: 1px solid $color-portal_card_focus;
|
156
|
+
outline-offset: 0;
|
157
|
+
border: 1px solid transparent;
|
158
|
+
border-radius: 1.5em;
|
159
|
+
box-shadow: 0 0 7px $color-portal_card_focus;
|
160
|
+
transition: $transition;
|
161
|
+
}
|
162
|
+
|
151
163
|
|
152
164
|
|
153
165
|
.collections-wrapper {
|
@@ -10,17 +10,10 @@
|
|
10
10
|
|
11
11
|
border-left: 1px solid $color-article_border;
|
12
12
|
border-right: 1px solid $color-article_border;
|
13
|
-
|
14
|
-
ul {
|
15
|
-
margin: 0 2rem 1.75rem;
|
16
|
-
ul {
|
17
|
-
margin-bottom: 0;
|
18
|
-
margin-right: 0;
|
19
|
-
}
|
20
|
-
}
|
21
13
|
}
|
22
14
|
|
23
|
-
.
|
15
|
+
.entry_wiki,
|
16
|
+
.entry_work {
|
24
17
|
grid-column: span 7 / auto;
|
25
18
|
|
26
19
|
h1 {
|
@@ -29,8 +22,7 @@
|
|
29
22
|
}
|
30
23
|
}
|
31
24
|
|
32
|
-
.
|
33
|
-
.entry-grammar {
|
25
|
+
.entry_grammar {
|
34
26
|
grid-column: span 10 / auto;
|
35
27
|
}
|
36
28
|
|
@@ -40,7 +32,7 @@
|
|
40
32
|
.entry-index {
|
41
33
|
position: -webkit-sticky; /* Safari */
|
42
34
|
position: sticky;
|
43
|
-
top:
|
35
|
+
top: 5.1458rem;
|
44
36
|
align-self: start;
|
45
37
|
|
46
38
|
grid-column: span 2 / auto;
|
@@ -52,19 +44,21 @@
|
|
52
44
|
|
53
45
|
.entry-index ul {
|
54
46
|
list-style: none;
|
55
|
-
padding-left: 1rem;
|
56
47
|
a {
|
57
48
|
text-decoration: none;
|
58
49
|
}
|
59
50
|
}
|
60
51
|
|
61
52
|
.entry-index_return {
|
62
|
-
margin-bottom: 1.
|
53
|
+
margin-bottom: 1.5em;
|
54
|
+
margin-left: 1em;
|
63
55
|
}
|
64
56
|
|
65
57
|
.entry-index ol {
|
66
58
|
list-style: none;
|
67
59
|
padding-left: 1rem;
|
60
|
+
margin-left: 0;
|
61
|
+
margin-right: 0;
|
68
62
|
/* This is an arbitrary name as the value. */
|
69
63
|
counter-reset: counter-index;
|
70
64
|
}
|
@@ -89,7 +83,7 @@
|
|
89
83
|
}
|
90
84
|
|
91
85
|
.entry-other_projects {
|
92
|
-
padding:
|
86
|
+
padding: 1em;
|
93
87
|
margin: 1em;
|
94
88
|
border-radius: 1em;
|
95
89
|
background-color: $color-entry_secondary;
|
@@ -116,10 +110,12 @@
|
|
116
110
|
.stats-table {
|
117
111
|
border-collapse: separate;
|
118
112
|
border-spacing: 3px;
|
119
|
-
border:
|
113
|
+
border: 0;
|
120
114
|
width: 100%;
|
115
|
+
margin-bottom: 0;
|
121
116
|
td {
|
122
117
|
padding: 0.5em;
|
118
|
+
border: 0;
|
123
119
|
}
|
124
120
|
tr td:first-child {
|
125
121
|
text-align: right;
|
@@ -222,3 +218,14 @@ a.footnote::after {
|
|
222
218
|
margin-right: -24vw; /* sets the distance away from the body text */
|
223
219
|
font-size: $fontsize-small;
|
224
220
|
}
|
221
|
+
|
222
|
+
|
223
|
+
|
224
|
+
.entry_work-verse {
|
225
|
+
p {
|
226
|
+
margin-bottom: 0;
|
227
|
+
}
|
228
|
+
p:last-child {
|
229
|
+
margin-bottom: 1.75em;
|
230
|
+
}
|
231
|
+
}
|
data/_sass/partials/_global.scss
CHANGED
@@ -43,25 +43,10 @@
|
|
43
43
|
|
44
44
|
.launchpad-search_submit {
|
45
45
|
padding: 12px 20px;
|
46
|
-
appearance: none;
|
47
|
-
outline: none;
|
48
46
|
|
49
|
-
background: $color-launchpad_search_submit;
|
50
|
-
border: 0;
|
51
47
|
border-radius: 1rem;
|
52
48
|
|
53
49
|
font-size: $fontsize-body;
|
54
|
-
|
55
|
-
transition: $transition;
|
56
|
-
|
57
|
-
&:hover {
|
58
|
-
box-shadow: 0 0 7px $color-launchpad_search_submit_hover;
|
59
|
-
transition: $transition;
|
60
|
-
}
|
61
|
-
&:focus {
|
62
|
-
box-shadow: 0 0 7px $color-launchpad_search_submit_focus;
|
63
|
-
transition: $transition;
|
64
|
-
}
|
65
50
|
}
|
66
51
|
|
67
52
|
.launchpad-projects {
|
@@ -83,7 +68,7 @@
|
|
83
68
|
|
84
69
|
padding: 36px 28px 28px;
|
85
70
|
|
86
|
-
border-radius: 1.
|
71
|
+
border-radius: 1.5em;
|
87
72
|
border: 1px solid $color-project_card_border;
|
88
73
|
|
89
74
|
text-decoration: none;
|
@@ -101,7 +86,7 @@
|
|
101
86
|
.project-icon {
|
102
87
|
padding: 1rem;
|
103
88
|
|
104
|
-
border-radius:
|
89
|
+
border-radius: 3em;
|
105
90
|
background-color: $color-project_card_icon;
|
106
91
|
|
107
92
|
color: #ffffff;
|
@@ -135,6 +120,16 @@
|
|
135
120
|
color: $color-body_text;
|
136
121
|
}
|
137
122
|
|
123
|
+
.launchpad-card:active,
|
124
|
+
.launchpad-card:focus {
|
125
|
+
outline: 1px solid $color-project_card_focus;
|
126
|
+
outline-offset: 0;
|
127
|
+
border: 1px solid transparent;
|
128
|
+
border-radius: 1.5em;
|
129
|
+
box-shadow: 0 0 7px $color-project_card_focus;
|
130
|
+
transition: $transition;
|
131
|
+
}
|
132
|
+
|
138
133
|
|
139
134
|
|
140
135
|
/*------------------------------------*\
|
@@ -154,10 +149,15 @@
|
|
154
149
|
transition: $transition;
|
155
150
|
|
156
151
|
.project-icon {
|
157
|
-
background-color: $color-
|
152
|
+
background-color: $color-wiki_icon_background;
|
158
153
|
|
159
154
|
color: $color-project_card_icon;
|
160
155
|
|
161
156
|
transition: $transition;
|
162
157
|
}
|
163
158
|
}
|
159
|
+
|
160
|
+
.launchpad-card_wiki:active,
|
161
|
+
.launchpad-card_wiki:focus {
|
162
|
+
outline: 1px solid $color-wiki_card_focus;
|
163
|
+
}
|
data/_sass/partials/_search.scss
CHANGED
data/_sass/style.scss
CHANGED
@@ -5,10 +5,10 @@
|
|
5
5
|
// neutrals
|
6
6
|
$color-paper_light: #fdfcfc; // off white
|
7
7
|
$color-paper_dark: #fbf9f8;
|
8
|
-
$color-linen: #f6f2ef;
|
8
|
+
$color-linen: #f6f2ef;
|
9
9
|
$color-shortbread: #f9f6f4;//#f8f4f2;
|
10
10
|
$color-shortbread_dark: #f3efec;
|
11
|
-
$color-ink: #4b4a46; // dark umber
|
11
|
+
$color-ink: #4b4a46; // dark umber; // #292924 wcag a pass
|
12
12
|
$color-ink_warm: #504b38;
|
13
13
|
$color-ink_faded: #828077;
|
14
14
|
|
@@ -21,9 +21,10 @@ $color-peach: #f7dcd3;
|
|
21
21
|
$color-mango: #f6bf5d;
|
22
22
|
|
23
23
|
// links
|
24
|
-
$color-blue_light: #4083ae;
|
24
|
+
$color-blue_light: #4083ae; // #3B79A0 wcag a pass
|
25
25
|
$color-blue_dark: #356d90;
|
26
26
|
$color-purple: #61609d;
|
27
|
+
$color-blue_pale: #c6dffc;
|
27
28
|
|
28
29
|
/*------------------------------------*\
|
29
30
|
# COLOUR SCHEME values
|
@@ -41,23 +42,31 @@ $color-link: $color-blue_light;
|
|
41
42
|
$color-link_hover: $color-blue_dark;
|
42
43
|
$color-link_active: $color-purple;
|
43
44
|
$color-link_visited: $color-purple;
|
45
|
+
$color-link_focus: $color-blue_pale;
|
44
46
|
|
45
47
|
// General searchbar colours.
|
46
48
|
$color-searchbar_background: $color-paper_light;
|
47
49
|
$color-searchbar_border: $color-shortbread_dark;
|
48
50
|
$color-searchbar_border_hover: $color-linen;
|
49
|
-
$color-searchbar_border_focus: $color-
|
51
|
+
$color-searchbar_border_focus: $color-melon;
|
50
52
|
$color-searchbar_shadow_hover: $color-peach;
|
51
|
-
$color-searchbar_shadow_focus: $color-
|
53
|
+
$color-searchbar_shadow_focus: $color-melon;
|
52
54
|
|
55
|
+
// General button colours.
|
56
|
+
$color-button_background: $color-peach;
|
57
|
+
$color-button_shadow_hover: $color-melon;
|
58
|
+
$color-button_shadow_focus: $color-melon;
|
59
|
+
$color-button_outline-focus: $color-melon;
|
60
|
+
|
61
|
+
// Miscellaneous
|
53
62
|
$color-code_background: $color-pistachio;
|
54
63
|
$color-code_text: $color-ink_warm;
|
55
64
|
$color-hr: $color-linen;
|
56
65
|
|
57
66
|
$color-kbd_background: $color-paper_light;
|
58
|
-
$color-kbd_border: $color-
|
59
|
-
$color-kbd_box_shadow: $color-
|
60
|
-
$color-kbd_hover: $color-
|
67
|
+
$color-kbd_border: $color-shortbread_dark;
|
68
|
+
$color-kbd_box_shadow: $color-shortbread_dark;
|
69
|
+
$color-kbd_hover: $color-shortbread_dark;
|
61
70
|
|
62
71
|
$color-blockquote_background: $color-paper_dark;
|
63
72
|
$color-blockquote_border: $color-shortbread;
|
@@ -75,18 +84,18 @@ $color-global_nav_underline: $color-mango;
|
|
75
84
|
// Colours that apply to the index page or launchpad.
|
76
85
|
$color-launchpad_search: $color-linen;
|
77
86
|
$color-launchpad_search_border: $color-shortbread_dark;
|
78
|
-
$color-launchpad_search_submit: $color-melon;
|
79
|
-
$color-launchpad_search_submit_hover: $color-melon;
|
80
|
-
$color-launchpad_search_submit_focus: $color-melon;
|
81
87
|
|
82
88
|
$color-project_card_icon: $color-kiwi;
|
83
89
|
$color-project_card_border: $color-linen;
|
84
90
|
$color-project_card_hover_shadow: $color-linen;
|
85
91
|
$color-project_card_icon_hover: $color-limeade;
|
92
|
+
$color-project_card_focus: $color-limeade;
|
86
93
|
|
87
94
|
$color-wiki_card_background: $color-limeade;
|
95
|
+
$color-wiki_icon_background: $color-paper_light;
|
88
96
|
$color-wiki_card_border: $color-limeade;
|
89
97
|
$color-wiki_card_hover_shadow: $color-limeade;
|
98
|
+
$color-wiki_card_focus: $color-kiwi;
|
90
99
|
|
91
100
|
// Colours that apply only to collections pages.
|
92
101
|
$color-collections_sidebar: $color-paper_dark;
|
@@ -96,6 +105,7 @@ $color-collections_header_border: $color-shortbread;
|
|
96
105
|
|
97
106
|
$color-portal_card_border: $color-linen;
|
98
107
|
$color-portal_card_icon_hover: $color-kiwi;
|
108
|
+
$color-portal_card_focus: $color-limeade;
|
99
109
|
|
100
110
|
// Colours that apply only to entry pages.
|
101
111
|
$color-article_border: $color-linen;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
// Taken directly from https://www.freecodecamp.org/news/the-100-correct-way-to-do-css-breakpoints-88d6a5ba1862/
|
2
|
+
|
3
|
+
@mixin for-phone-only {
|
4
|
+
@media (max-width: 599px) { @content; }
|
5
|
+
}
|
6
|
+
|
7
|
+
@mixin for-tablet-portrait-up {
|
8
|
+
@media (min-width: 600px) and (max-width: 899px) { @content; }
|
9
|
+
}
|
10
|
+
|
11
|
+
@mixin for-tablet-landscape-up {
|
12
|
+
@media (min-width: 900px) { @content; }
|
13
|
+
}
|
14
|
+
|
15
|
+
@mixin for-desktop-up {
|
16
|
+
@media (min-width: 1200px) { @content; }
|
17
|
+
}
|
data/_sass/variables/_misc.scss
CHANGED
data/assets/css/style.scss
CHANGED
data/assets/js/search.js
CHANGED
@@ -44,7 +44,7 @@ resultsString = "";
|
|
44
44
|
resultPages.forEach(function (r) {
|
45
45
|
resultsString += "<dt class='search_result'>";
|
46
46
|
resultsString += "<a href='" + r.url + "'>" + r.title + "</a>";
|
47
|
-
resultsString += "<span class='search_result-details'>" + r.portal + " ⋅ " + r.categories + "</span></dt>"
|
47
|
+
resultsString += "<span class='search_result-details'>" + "<a href='/" + r.collection + "'>" r.collection + "</a>: " + r.portal + " ⋅ " + r.categories + "</span></dt>"
|
48
48
|
resultsString += "<dd class='search_result-preview'>" + r.content.substring(0, 200) + "..." + "</dd>";
|
49
49
|
});
|
50
50
|
document.querySelector("#search-results").innerHTML = resultsString;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-paperwiki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- pomeloshark
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -55,12 +55,6 @@ files:
|
|
55
55
|
- _layouts/search_global.html
|
56
56
|
- _layouts/wiki.html
|
57
57
|
- _layouts/work.html
|
58
|
-
- _plugins/blockquote.rb
|
59
|
-
- _plugins/gloss.rb
|
60
|
-
- _plugins/interlinear.rb
|
61
|
-
- _plugins/ipa.rb
|
62
|
-
- _plugins/lang.rb
|
63
|
-
- _plugins/sidenote.rb
|
64
58
|
- _sass/partials/_base.scss
|
65
59
|
- _sass/partials/_blog.scss
|
66
60
|
- _sass/partials/_collections.scss
|
@@ -74,6 +68,7 @@ files:
|
|
74
68
|
- _sass/style.scss
|
75
69
|
- _sass/variables/_colors.scss
|
76
70
|
- _sass/variables/_fonts.scss
|
71
|
+
- _sass/variables/_media-queries.scss
|
77
72
|
- _sass/variables/_misc.scss
|
78
73
|
- assets/.DS_Store
|
79
74
|
- assets/css/style.scss
|
@@ -136,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
131
|
- !ruby/object:Gem::Version
|
137
132
|
version: '0'
|
138
133
|
requirements: []
|
139
|
-
rubygems_version: 3.
|
134
|
+
rubygems_version: 3.2.15
|
140
135
|
signing_key:
|
141
136
|
specification_version: 4
|
142
137
|
summary: A theme meant for use as a personal wiki.
|
data/_plugins/blockquote.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# usage: {% blockquote text[0] text[1] text[2]%}
|
2
|
-
# usage: {% blockquote text[0] text[1] text[2]%}
|
3
|
-
# text[0]: the text of the blockquote
|
4
|
-
# text[1]: the author of the blockquote
|
5
|
-
# text[2]: the source of the blockquote
|
6
|
-
|
7
|
-
module Jekyll
|
8
|
-
module Tags
|
9
|
-
class RenderBlockquoteTag < Liquid::Tag
|
10
|
-
|
11
|
-
require "shellwords"
|
12
|
-
|
13
|
-
# initialize is called when we encounter the {% blockquote %} Liquid tag; 'blockquote' is the tag name and anything immediately after it is passed in via the second argument
|
14
|
-
def initialize(tag_name, text, tokens)
|
15
|
-
super
|
16
|
-
@text = text.shellsplit
|
17
|
-
end
|
18
|
-
|
19
|
-
def render(context)
|
20
|
-
"<figure><blockquote>#{@text[0]}<figcaption>#{@text[1]}, <cite>#{@text[2]}</cite></figcaption></blockquote></figure>"
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# The register_tag method takes two arguments: the user-facing name of the tag [blockquote], and the class that implements it [RenderBlockquoteTag].
|
28
|
-
Liquid::Template.register_tag("blockquote", Jekyll::Tags::RenderBlockquoteTag)
|
data/_plugins/gloss.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
module Jekyll
|
2
|
-
module InterlinearGlossFilter # Liquid just uses the method name as the filter name; there's no extra level of name-mapping like there is with tags and blocks
|
3
|
-
|
4
|
-
def gloss(input) # will be available as the "gloss" filter
|
5
|
-
@text = input
|
6
|
-
puts "<table><tbody><tr>"
|
7
|
-
|
8
|
-
lexemes = @text.split(" ")
|
9
|
-
lexemes.each do |word|
|
10
|
-
puts "<td class=\"gloss_item\">#{word}</td>"
|
11
|
-
end
|
12
|
-
|
13
|
-
puts "</tr></tbody><table>"
|
14
|
-
|
15
|
-
# morphemic_analysis
|
16
|
-
# morphemic_gloss
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
Liquid::Template.register_filter(Jekyll::InterlinearGlossFilter)
|
data/_plugins/interlinear.rb
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# usage:
|
2
|
-
# {% interlinear %}
|
3
|
-
# sentence in object lang
|
4
|
-
# sentence in object lang broken down into morphemes
|
5
|
-
# interlinear gloss of morphemes
|
6
|
-
# translation into target lang
|
7
|
-
# {% endinterlinear %}
|
8
|
-
|
9
|
-
module Jekyll
|
10
|
-
module Tags
|
11
|
-
class InterlinearGlossTag < Liquid::Block
|
12
|
-
|
13
|
-
require "shellwords"
|
14
|
-
|
15
|
-
# initialize is called when we encounter the {% interlinear %} Liquid tag; 'interlinear' is the tag name and anything immediately after it is passed in via the second argument
|
16
|
-
def initialize(tag_name, text, tokens)
|
17
|
-
super
|
18
|
-
@text = text.shellsplit # splits the input string into individual words
|
19
|
-
# @wordcount = @text[0].length # counts the number of words in the string
|
20
|
-
|
21
|
-
# object_lang, morphemic_analysis, morphemic_gloss, target_lang
|
22
|
-
end
|
23
|
-
|
24
|
-
def render(context)
|
25
|
-
"<table class=\"interlinear-gloss\">
|
26
|
-
<tbody>
|
27
|
-
<tr>
|
28
|
-
<td colspan=\"#{@wordcount}\">#{@text[0]}</td>
|
29
|
-
</tr>" + "<tr><td>#{@text[1]}</td></tr><tr><td>#{@text[2]}</td></tr><tr><td>#{@text[3]}</td></tr></tbody></table>"
|
30
|
-
end
|
31
|
-
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
# The register_tag method takes two arguments: the user-facing name of the tag [interlinear], and the class that implements it [InterlinearGlossTag].
|
37
|
-
Liquid::Template.register_tag("interlinear", Jekyll::Tags::InterlinearGlossTag)
|
data/_plugins/ipa.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# usage: {% ipa /phonemic text/%}
|
2
|
-
# usage: {% ipa [phonetic text]%}
|
3
|
-
|
4
|
-
module Jekyll
|
5
|
-
module Tags
|
6
|
-
class RenderPhoneticTag < Liquid::Tag
|
7
|
-
|
8
|
-
# initialize is called when we encounter the {% ipa %} Liquid tag; 'ipa' is the tag name and anything immediately after it is passed in via the second argument
|
9
|
-
def initialize(tag_name, text, tokens)
|
10
|
-
super
|
11
|
-
@text = text
|
12
|
-
end
|
13
|
-
|
14
|
-
def render(context)
|
15
|
-
"<abbr class=\"gloss\" title=\"International Phonetic Alphabet\">IPA</abbr>: <span class=\"ipa\">#{@text}</span>"
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# The register_tag method takes two arguments: the user-facing name of the tag [ipa], and the class that implements it [RenderPhoneticTag].
|
23
|
-
Liquid::Template.register_tag("ipa", Jekyll::Tags::RenderPhoneticTag)
|
data/_plugins/lang.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# usage: {% lang text[0] text[1] text[2]%}
|
2
|
-
# usage: {% lang ko 바이 괕 모 iced jelly dish%}
|
3
|
-
# text[0] = language code
|
4
|
-
# text[1] = the text, in latin script or not
|
5
|
-
# text[2] = the translation into english
|
6
|
-
|
7
|
-
module Jekyll
|
8
|
-
module Tags
|
9
|
-
class DefineLanguageTag < Liquid::Tag
|
10
|
-
|
11
|
-
require "shellwords"
|
12
|
-
|
13
|
-
# initialize is called when we encounter the {% lang %} Liquid tag; 'lang' is the tag name and anything immediately after it is passed in via the second argument
|
14
|
-
def initialize(tag_name, text, tokens)
|
15
|
-
super
|
16
|
-
@text = text.shellsplit
|
17
|
-
end
|
18
|
-
|
19
|
-
def render(context)
|
20
|
-
"<abbr class=\"gloss\" title=\"#{@text[0]}\">#{@text[0]}</abbr>: <strong>#{@text[1]}</strong> <em>#{@text[2]}</em>"
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# The register_tag method takes two arguments: the user-facing name of the tag [lang], and the class that implements it [DefineLanguageTag].
|
28
|
-
Liquid::Template.register_tag('lang', Jekyll::Tags::DefineLanguageTag)
|
data/_plugins/sidenote.rb
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
# usage: {% sidenote %}
|
2
|
-
|
3
|
-
module Jekyll
|
4
|
-
module Tags
|
5
|
-
class RenderSideNoteTag < Liquid::Tag
|
6
|
-
|
7
|
-
require "shellwords"
|
8
|
-
|
9
|
-
# initialize is called when we encounter the {% sidenote %} Liquid tag; 'sidenote' is the tag name and anything immediately after it is passed in via the second argument
|
10
|
-
def initialize(tag_name, text, tokens)
|
11
|
-
super
|
12
|
-
@text = text.shellsplit
|
13
|
-
end
|
14
|
-
|
15
|
-
def render(context)
|
16
|
-
"<label for='#{@text[0]}' class='margin-toggle sidenote-number'></label><input type='checkbox' id='#{@text[0]}' class='margin-toggle'/><span class='sidenote'>#{@text[1]} </span>"
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
# The register_tag method takes two arguments: the user-facing name of the tag [sidenote], and the class that implements it [RenderSideNoteTag].
|
24
|
-
Liquid::Template.register_tag("sidenote", Jekyll::Tags::RenderSideNoteTag)
|