henry-jekyll 0.1.0 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b8d088b2603874b55bc7a573b66b58c4e66c9e50e8d8f91578b7acba4951b3a8
4
- data.tar.gz: 1b6b055a8fbc38fa485e3b77a01d4b651016912053f11a46f40761eccee10bbf
3
+ metadata.gz: 90f6f133a69ea0f25ccf08a42b461f67ddcb6b66e786d5a8a42f04c7e51c7903
4
+ data.tar.gz: b8a93e2eac44fd3baf5d79267f5180eb2079f81dbff520fcaa3bf996423efac2
5
5
  SHA512:
6
- metadata.gz: 396711f81fdfca6d9bb89aa1d60a01366c5fb97fefa2e2905a9343784173228d93220c7138d0d31c67efec102874e77d79af07db3b18efd83d41ffca740ab946
7
- data.tar.gz: f32121c2dfef3849025367a0444b80082ad4ec901cb6bc1ab3d8fec92ae9377e750bba5960ee68a82d2354aa04f820f91667384937ff1a6e2e53bb8692fe7797
6
+ metadata.gz: 89a76982a03a1b3b5c3a0d9622beb9f4f86fc5c84d83b936c61db6d06530b303f5fdf43e939ba293df6b805a0b06e78512465b9ae2d73f0a4c6a20b314d5d40d
7
+ data.tar.gz: bda755fa2bd92d55b01accdaf981c256934d11fcc303d6875771596b71c3cd2f540f7bc9bb77d5af2609fd4accb5ac6cea2402a8b62b5d84b1631ad9814e751a
data/README.md CHANGED
@@ -1,52 +1,57 @@
1
- # henry-jekyll
1
+ # Henry
2
2
 
3
- Welcome to your new Jekyll theme! In this directory, you'll find the files you need to be able to package up your theme into a gem. Put your layouts in `_layouts`, your includes in `_includes`, your sass files in `_sass` and any other assets in `assets`.
3
+ <p align="center"><img src="assets/img/henry.png"></p>
4
4
 
5
- To experiment with this code, add some sample content and run `bundle exec jekyll serve` this directory is setup just like a Jekyll site!
5
+ Henry is a [Jekyll](https://github.com/jekyll/) theme with a gorgeous reading experience, chock-full of features. To find out more about all the features check out this [blog post](https://blog.jkl.gg/henry-jekyll-theme/).
6
6
 
7
- TODO: Delete this and the text above, and describe your gem
7
+ # Getting Started
8
8
 
9
+ The easiest way to get up and running with a Jekyll blog using Henry is using the included [Docker](https://www.docker.com/) configuration file.
9
10
 
10
- ## Installation
11
-
12
- Add this line to your Jekyll site's `Gemfile`:
13
-
14
- ```ruby
15
- gem "henry-jekyll"
11
+ ```shell
12
+ # 1. clone Henry
13
+ git clone git@github.com:kaushikgopal/henry-jekyll.git my_blog
14
+ # 2. cleanup script so unnecessary files are remoed
15
+ ./start_new_blog.sh
16
+ # 3. spin up blog with docker
17
+ docker-compose up
16
18
  ```
17
19
 
18
- And add this line to your Jekyll site's `_config.yml`:
20
+ You're good to go!
19
21
 
20
- ```yaml
21
- theme: henry-jekyll
22
+ ```shell
23
+ ## on a Mac
24
+ http://0.0.0.0:4000/
25
+ ## on Windows
26
+ http://localhost:4000/
22
27
  ```
23
28
 
24
- And then execute:
29
+ You can setup new/existing blogs with Henry, with or without Docker. Feel free to refer to this [setup guide](./setup.md) for details.
25
30
 
26
- $ bundle
31
+ # Publishing guide
27
32
 
28
- Or install it yourself as:
33
+ ## Github Pages
29
34
 
30
- $ gem install henry-jekyll
35
+ If you wish to publish your blog using [Github Pages](https://pages.github.com) (a popular free hosting option) you can follow this [publishing guide](./publishing_github_pages.md).
31
36
 
32
- ## Usage
37
+ ## Firebase Hosting (included with Docker container)
33
38
 
34
- TODO: Write usage instructions here. Describe your available layouts, includes, sass and/or assets.
39
+ Another good option to publish your blog is [Firebase hosting](https://firebase.google.com/docs/hosting). It includes a pretty generous free plan and allows plenty of customizability. Here's a [setup guide](./publishing_firebase_hosting.md).
35
40
 
36
- ## Contributing
41
+ # Contributing
37
42
 
38
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/hello. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
43
+ Bug reports and pull requests are welcome on [GitHub](https://github.com/kaushikgopal/henry-jekyll). This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
39
44
 
40
- ## Development
45
+ To get started check out the [DEVELOPMENT](https://github.com/kaushikgopal/henry-jekyll/blob/main/DEVELOPMENT.md) page.
41
46
 
42
- To set up your environment to develop this theme, run `bundle install`.
47
+ # Henry in the Wild
43
48
 
44
- Your theme is setup just like a normal Jekyll site! To test your theme, run `bundle exec jekyll serve` and open your browser at `http://localhost:4000`. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
49
+ Here are a couple of blogs that use Henry:
45
50
 
46
- When your theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
47
- To add a custom directory to your theme-gem, please edit the regexp in `henry-jekyll.gemspec` accordingly.
51
+ 1. [Karthick Gopal's blog](https://blog.karthickg.com)
52
+ 2. [Kaushik Gopal's blog](https://blog.jkl.gg)
53
+ 3. [Nic Finn's blog](https://neodymiumphi.sh) _(Github Pages)_
48
54
 
49
- ## License
55
+ # License
50
56
 
51
57
  The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
52
-
data/_config.yml CHANGED
@@ -1,3 +1,17 @@
1
+ # Welcome to Jekyll!
2
+ #
3
+ # This config file is meant for settings that affect your whole blog, values
4
+ # which you are expected to set up once and rarely edit after that. If you find
5
+ # yourself editing this file very often, consider using Jekyll's data files
6
+ # feature for the data you need to update frequently.
7
+ #
8
+ # For technical reasons, this file is *NOT* reloaded automatically when you use
9
+ # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10
+ #
11
+ # If you need help with YAML syntax, here are some quick references for you:
12
+ # https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13
+ # https://learnxinyminutes.com/docs/yaml/
14
+
1
15
  # Docker for OSX uses a VM so we need 0.0.0.0 instead of 127.0.0.1
2
16
  host: 0.0.0.0
3
17
 
@@ -6,32 +20,63 @@ host: 0.0.0.0
6
20
  # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
7
21
  # You can create any custom variable you would like, and they will be accessible
8
22
  # in the templates via {{ site.myvariable }}.
9
- title: Kaushik Gopal's Blog
23
+
24
+ title: Kaushik's new blog
10
25
  author:
11
26
  name: "Kaushik Gopal"
12
27
  twitter: kaushikgopal
13
28
  bio-url: "https://jkl.gg"
29
+ description: >- # this means to ignore newlines until "baseurl:"
30
+ Write an awesome description for your new site here. You can edit this
31
+ line in _config.yml. It will appear in your document head meta (for
32
+ Google search results) and in your feed.xml site description.
33
+ baseurl: "" # the subpath of your site, e.g. /blog
34
+ url: "" # the base hostname & protocol for your site, e.g. http://example.com
35
+ root: /
36
+ permalink: /:title/
37
+ external-url-indicator: " »"
38
+
39
+ # Build settings
40
+ theme: henry-jekyll
41
+ markdown: kramdown
42
+ highlighter: rouge
43
+ encoding: utf-8
44
+
45
+ # Jekyll Plugins (only needed for GitHub Pages)
46
+ plugins:
47
+ - jekyll-feed
48
+ - jekyll-seo-tag
14
49
 
15
- external-url-indicator: " ⬏"
50
+ # front matter defaults https://jekyllrb.com/docs/configuration/front-matter-defaults/
51
+ defaults:
52
+ - scope:
53
+ path: "" # an empty string here means all files in the project
54
+ type: "posts" # pages, posts, drafts are valid
55
+ values:
56
+ layout: "post"
16
57
 
17
58
  # Exclude from processing.
18
- # The following items will not be processed, by default. Create a custom list
19
- # to override the default setting.
59
+ # The following items will not be processed, by default.
60
+ # Any item listed under the `exclude:` key here will be automatically added to
61
+ # the internal "default list".
62
+ #
63
+ # Excluded items can be processed by explicitly listing the directories or
64
+ # their entries' file path in the `include:` list.
65
+
20
66
  exclude:
21
- - docker-compose-publish.yml
22
- - docker-compose.yml
23
- - firebase.json
24
- - .idea/
25
- # - Gemfile
26
- # - Gemfile.lock
67
+ - .idea/
68
+ - DEVELOPMENT.md
69
+ - Gemfile
70
+ - Gemfile.lock
71
+ - README.md
72
+ - docker-compose-publish.yml
73
+ - docker-compose.yml
74
+ - firebase.json
75
+ - henry-jekyll.gemspec
76
+ - publishing_firebase_hosting.md
77
+ - publishing_github_pages.md
27
78
  # - node_modules
28
79
  # - vendor/bundle/
29
80
  # - vendor/cache/
30
81
  # - vendor/gems/
31
82
  # - vendor/ruby/
32
-
33
- plugins:
34
- - jekyll-feed
35
- - jekyll-redirect-from
36
- - jekyll-seo-tag
37
- - jekyll-sitemap
data/_includes/head.html CHANGED
@@ -3,10 +3,6 @@
3
3
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
4
4
  <meta name="viewport" content="width=device-width, initial-scale=1">
5
5
 
6
- <!--[if lt IE 9]>
7
- <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
8
- <![endif]-->
9
-
10
6
  <link rel="stylesheet" href="/assets/css/style.css">
11
7
  {% include _head.html %}
12
8
 
@@ -0,0 +1,23 @@
1
+ ---
2
+ layout: default
3
+ permalink: /categories/
4
+ title: Categories
5
+ ---
6
+
7
+ <section class="post-index categories">
8
+ {% for category in site.categories %}
9
+ {% capture category_name %}{{ category | first }}{% endcapture %}
10
+
11
+ <h2 class="post-list-header post-list-category" id="{{ category_name }}">#{{category_name}}</h2>
12
+
13
+ <ul class="post-list-content">
14
+ {% for post in site.categories[category_name] %}
15
+ <li class="post-link">
16
+ <a class="post-link-url" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
17
+ {% if post.external_url %}<a class="linklog" href="{{ post.external_url }}">{{ site.external-url-indicator }}</a>{% endif %}
18
+ <p class="post-link-date">{{ post.date | date: "%m/%-d" }}</p>
19
+ </li>
20
+ {% endfor %}
21
+ </ul>
22
+ {% endfor %}
23
+ </section>
@@ -0,0 +1,34 @@
1
+ ---
2
+ layout: default
3
+ title: All Posts
4
+ ---
5
+
6
+ <section class="post-index index">
7
+ {% for post in site.posts %}
8
+ {% capture this_year %}{{ post.date | date: "%Y" }}{% endcapture %}
9
+ {% capture next_year %}{{ post.previous.date | date: "%Y" }}{% endcapture %}
10
+
11
+ {% if forloop.first %}
12
+ <h2 class="post-list-header" id="{{ this_year }}-ref">{{this_year}}</h2>
13
+ <ul class="post-list-content">
14
+ {% endif %}
15
+ <li class="post-link">
16
+ <a class="post-link-url" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
17
+ {% if post.external_url %}<a class="linklog" href="{{ post.external_url }}">{{ site.external-url-indicator }}</a>{% endif %}
18
+ <p class="post-link-date">{{ post.date | date: "%b %-d" }}</p>
19
+ {% if post.draft %} <span class="draft">Draft</span> {% endif %}
20
+ </li>
21
+
22
+ {% if forloop.last %}
23
+ </ul>
24
+ {% else %}
25
+ {% if this_year != next_year %}
26
+ </ul>
27
+
28
+ <h2 class="post-list-header" id="{{ next_year }}-ref">{{next_year}}</h2>
29
+
30
+ <ul class="post-list-content">
31
+ {% endif %}
32
+ {% endif %}
33
+ {% endfor %}
34
+ </section>
data/_layouts/page.html CHANGED
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- <div class="post">
4
+ <section class="post">
5
5
 
6
- <header class="post-header">
7
- <h1 class="post-title">{{ page.title }}</h1>
8
- </header>
6
+ <header class="post-header">
7
+ <h1 class="post-title">{{ page.title }}</h1>
8
+ </header>
9
9
 
10
- <article class="post-content">
11
- {{ content }}
12
- </article>
10
+ <article class="post-content">
11
+ {{ content }}
12
+ </article>
13
13
 
14
- </div>
14
+ </section>
data/_layouts/post.html CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- <div class="post">
4
+ <section class="post">
5
5
 
6
6
  <header class="post-header">
7
7
  <h1 class="post-title">
@@ -27,4 +27,4 @@ layout: default
27
27
 
28
28
  {% include meta.html %}
29
29
 
30
- </div>
30
+ </section>
data/_layouts/raw.html ADDED
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+
8
+ {{ content }}
9
+
10
+ </body>
11
+
12
+ </html>
@@ -0,0 +1,3 @@
1
+ @import "theme", "theme_override";
2
+ @import "mixins", "code", "base";
3
+ @import "main", "main_override";
@@ -1,12 +1,16 @@
1
1
  /**
2
2
  * Reset some basic elements
3
3
  */
4
+
5
+ html {
6
+ font-size: 100%; // for accessibility
7
+ }
8
+
4
9
  body, h1, h2, h3, h4, h5, h6,
5
10
  p, blockquote, pre, hr,
6
11
  dl, dd, ol, ul, figure {
7
12
  margin: 0;
8
13
  padding: 0;
9
- // -webkit-font-smoothing: antialiased;
10
14
  }
11
15
 
12
16
 
@@ -21,11 +25,6 @@ body {
21
25
  color: $color-text;
22
26
  background-color: $background-color;
23
27
  -webkit-text-size-adjust: 100%;
24
-
25
- strong {
26
- // letter-spacing: -1px;
27
- // Varela Round looks ghastly when bold
28
- }
29
28
  }
30
29
 
31
30
  /**
@@ -79,7 +78,7 @@ ul, ol {
79
78
  li {
80
79
  > ul,
81
80
  > ol {
82
- margin-bottom: 0;
81
+ margin-bottom: 0;
83
82
  }
84
83
  }
85
84
 
File without changes
data/_sass/main.scss CHANGED
@@ -1,52 +1,552 @@
1
- @charset "utf-8";
1
+ .post-index, .post, .site-footer {
2
+ display: grid;
3
+ grid-template-columns:
4
+ 0.2fr
5
+ #{"min(65ch, 100%)"}
6
+ 1fr;
2
7
 
3
- //region Variables
4
- $font-size-regular: 20px;
8
+ @include media-query-small-screen() {min-width: $mobile-width;}
5
9
 
6
- $font-size-xlarge: $font-size-regular * 2;
7
- $font-size-large: $font-size-regular * 1.5;
8
- //regular
9
- $font-size-medium: $font-size-regular * 0.875;
10
- $font-size-small: $font-size-regular * 0.75;
10
+ > * {
11
+ grid-column: 2;
11
12
 
12
- $base-line-height: 1.4;
13
+ margin-right: $spacing-unit;
14
+ margin-left: $spacing-unit;
15
+ }
16
+ }
17
+
18
+
19
+ .post .full-bleed {
20
+ // correct to match exact 100vw
21
+ width: calc(
22
+ 100vw
23
+ - 2 * #{$spacing-micro-unit}
24
+ - 1.5px
25
+ );
26
+
27
+ /*
28
+ .post-content margin
29
+ */
30
+ margin-left: calc(
31
+ (-1)
32
+ * (100vw - #{"min(65ch, 100vw)"}) * (.2/1.2)
33
+ - #{$spacing-unit}
34
+ );
35
+ }
36
+
37
+ /* Header
38
+ ================================================== */
39
+ .site-header {
40
+
41
+ // Positioning context for the mobile navigation icon
42
+ position: relative;
43
+
44
+ #banner {
45
+ font-size: 1.6em;
46
+ text-align: center;
47
+ margin-top : $spacing-unit;
48
+ margin-bottom : $spacing-unit/3;
49
+
50
+ h1 {
51
+ margin-bottom: 0;
52
+ font-size: 0.8em;
53
+ text-align: left;
54
+ }
55
+
56
+ .site-title {
57
+ font-family: $header-font-family;
58
+ font-weight: normal;
59
+ color: $color-text2;
60
+
61
+ &:hover {
62
+ color: $color-link;
63
+ }
64
+
65
+ }
66
+ }
67
+ }
68
+
69
+ /* Content
70
+ ================================================== */
71
+
72
+
73
+ /* Post metadata section
74
+ ========================= */
75
+
76
+
77
+ .post-meta {
78
+ margin-top: $spacing-micro-unit;
79
+ padding: 2px 4px 0 0;
80
+
81
+ margin-top: 0;
82
+ padding: 0;
83
+ text-transform: none;
84
+
85
+ div {
86
+ margin: $spacing-micro-unit 0 $spacing-micro-unit 0;
87
+ }
88
+
89
+ .post-permalink {
90
+ border-top: 1px solid $color-text;
91
+ width: 20%;
92
+ padding-top: 1em;
93
+
94
+ a {
95
+ color: $color-text2;
96
+
97
+ &:hover {
98
+ color: $color-link;
99
+ }
100
+ }
101
+ }
102
+
103
+ .post-date { color: $color-text; }
104
+
105
+ .post-categories {
106
+ margin: auto;
107
+ margin: 1em 0 1.5em 0;
108
+ display: flex;
109
+ justify-content: flex-start;
110
+ }
111
+
112
+ .post-related {
113
+
114
+ border: 3px solid $color-textunderline;
115
+ padding: 1em;
116
+ margin-top: $spacing-unit * 3;
117
+
118
+ h4 { font-family: $header-2-font-family; }
119
+
120
+ &:hover {
121
+ color: $color-text2;
122
+ border-color: $color-text2;
123
+ }
124
+
125
+ a {
126
+ color: inherit;
127
+ text-decoration: none;
128
+ &:hover { color: $color-link; }
129
+ }
130
+ }
131
+
132
+
133
+ .post-category {
134
+ border: 2px solid;
135
+ margin-right: 1em;
136
+ padding: $spacing-micro-unit $spacing-micro-unit*2;
137
+ text-align: center;
138
+ font-family: $fixed-width-font-family;
139
+ font-size: 0.8em;
140
+
141
+ &:hover {
142
+ color: $color-link;
143
+ border-color: $color-link;
144
+ }
145
+
146
+ a {
147
+ text-decoration: none;
148
+ color: inherit;
149
+ &:hover { color: inherit; }
150
+ }
151
+ }
152
+
153
+
154
+ }
155
+
156
+ .post-link {
157
+ display: block;
158
+ float: left;
159
+ font-size: $font-size-regular + 2px;
160
+
161
+ @include media-query-small-screen() {
162
+ font-size: $font-size-small;
163
+ }
164
+
165
+ .linklog {
166
+ color: $color-link;
167
+ font-family: $fixed-width-font-family;
168
+ text-decoration: none;
169
+
170
+ &:hover {
171
+ color: $color-text;
172
+ }
173
+ }
174
+ }
175
+
176
+
177
+ .draft {
178
+ background-color: $color-link;
179
+ border-radius: $spacing-unit / 2;
180
+ border: 2px solid #000;
181
+ color: black;
182
+ font-size: $font-size-small * .89;
183
+ font-weight: bold;
184
+ padding: $spacing-micro-unit;
185
+ text-transform: uppercase;
186
+ vertical-align: middle;
187
+ font-family: $fixed-width-font-family;
188
+
189
+ margin-left: $spacing-unit / 4;
190
+ }
191
+
192
+ /* Landing posts - grouped by year
193
+ =============================== */
194
+
195
+ h2.post-list-header {
196
+ color: $color-header-index;
197
+ font-family: $fixed-width-font-family;
198
+ font-size: $font-size-regular * 1.25;
199
+ font-weight: normal;
200
+ }
201
+ h2.post-list-header:first-child {
202
+ margin-top: $spacing-unit;
203
+ }
204
+
205
+ h2.post-list-header.post-list-category {
206
+
207
+ &:hover {
208
+ color: $color-text;
209
+ border-color: $color-text;
210
+ }
211
+ }
212
+
213
+ ul.post-list-content {
214
+
215
+ float: left;
216
+ list-style: none;
217
+
218
+ .post-link {
219
+ font-family: $header-font-family;
220
+
221
+ clear: left;
222
+ margin: $spacing-micro-unit 0;
223
+
224
+ @include media-query-small-screen() {
225
+ margin: ($spacing-micro-unit - 2) 0;
226
+ }
227
+
228
+ .post-link-date {
229
+ display: inline;
230
+ color: darken($color-textunderline, 8%);
231
+ margin: 0;
232
+ clear: left;
233
+ white-space: nowrap;
234
+
235
+ font-size: $font-size-medium;
236
+ @include media-query-small-screen() {
237
+ font-size: $font-size-small;
238
+ }
239
+ }
240
+
241
+ a.post-link-url {
242
+ color: $color-text2;
243
+ text-decoration: none;
244
+ padding-right: $spacing-micro-unit;
245
+
246
+ &:hover { text-decoration: $color-textunderline underline; }
247
+ }
248
+ }
249
+ }
250
+
251
+
252
+ /* Post content section
253
+ ========================= */
254
+
255
+ .post {
256
+ padding-top: $spacing-unit/2;
257
+
258
+ @include media-query-small-screen() {
259
+ margin: 0 auto;
260
+ font-size: $font-size-medium;
261
+ }
262
+
263
+ .post-header {
264
+
265
+ margin-top: $spacing-unit * 4;
266
+
267
+ @include media-query-small-screen() {
268
+ margin-top: $spacing-unit * 1.5;
269
+ float: none;
270
+ }
13
271
 
14
- $spacing-unit: 30px;
15
- $spacing-micro-unit: 6px;
272
+ .post-author {
273
+ font-weight: normal;
274
+ font-style: italic;
275
+ }
16
276
 
17
- $mobile-width: 375px;
18
- $tablet-width: 685px;
19
- $screen-width: 780px;
277
+ .post-title {
278
+ color: $color-text2;
279
+ margin: $spacing-unit 0 $spacing-unit/2 0;
280
+ font-size: $font-size-xlarge + 10px;
281
+ font-weight: bold;
282
+ font-family: $header-2-font-family;
20
283
 
21
- //endregion
22
284
 
23
- //region Mixins
24
- @mixin media-query-small-screen() {
25
- @media only screen and (max-width: $tablet-width) {
26
- @content;
285
+ .article-link {
286
+
287
+ color: $color-text2;
288
+ text-decoration: none;
289
+
290
+ &:hover {
291
+ text-decoration: underline;
292
+ }
293
+ }
294
+
295
+ @include media-query-small-screen() {
296
+ font-size: $font-size-large + 5px;
297
+ margin-top: 0;
298
+ }
299
+ }
300
+
301
+ }
302
+ }
303
+
304
+ .post-content {
305
+ clear: left;
306
+ margin: $spacing-unit;
307
+ line-height: 1.5;
308
+
309
+ font-size: $font-size-regular;
310
+
311
+ @include media-query-small-screen() {
312
+ font-size: $font-size-medium;
313
+ }
314
+
315
+ p { margin-bottom: $spacing-unit; }
316
+ p + ul { margin-top: -0.5 * $spacing-unit; }
317
+
318
+ a {
319
+ text-decoration-color: $color-textunderline;
320
+ text-underline-offset: $spacing-micro-unit;
321
+ &:hover { text-decoration: none; }
322
+ }
323
+
324
+ hr {
325
+ border: 1px solid #d8d8d8;
326
+ margin: 1em 0;
327
+ width: 100%;
328
+ }
329
+
330
+ h1 {
331
+ font-size: $font-size-xlarge;
332
+ @include media-query-small-screen() {
333
+ font-size: $font-size-large;
334
+ }
335
+
336
+ margin: 1.8em 0 0.8em 0em;
337
+ }
338
+
339
+ > h1:first-child {
340
+ margin-top: 1em;
341
+ }
342
+
343
+ h2 {
344
+ font-size: $font-size-large;
345
+ font-style: italic;
346
+
347
+ @include media-query-small-screen() {
348
+ font-size: $font-size-medium + 2px;
349
+ }
350
+
351
+ margin: 2em 0 0.4em 0em;
352
+ }
353
+
354
+ h3 {
355
+ font-size: 1.0em;
356
+ font-style: italic;
357
+ font-weight: normal;
358
+
359
+ @include media-query-small-screen() {
360
+ font-size: $font-size-medium;
361
+ }
362
+ }
363
+ }
364
+
365
+
366
+ figure { text-align: left; }
367
+ figcaption {
368
+ font-size: 0.8em;
369
+ font-family: $header-font-family;
370
+ text-align: center;
371
+ margin-bottom: $spacing-unit;
372
+ margin-top: -1 * $spacing-unit / 2;
373
+ }
374
+
375
+ /**
376
+ * Blockquotes
377
+ */
378
+ blockquote {
379
+ border-left: 4px solid $color-textunderline;
380
+ padding-left: $spacing-unit / 2;
381
+ padding-top: $spacing-unit / 3;
382
+ padding-bottom: $spacing-unit / 3;
383
+ margin-bottom: $spacing-unit;
384
+ font-style: italic;
385
+
386
+ code {
387
+ font-size: 0.8em
388
+ }
389
+
390
+ > :last-child {
391
+ margin-bottom: 0;
392
+ }
393
+ }
394
+
395
+
396
+ .callout {
397
+ border: 2px solid $color-textunderline;
398
+ padding: 1em;
399
+ margin-bottom: $spacing-unit;
400
+ text-align: center;
401
+ }
402
+
403
+ ul.callout {
404
+ margin-left: 0;
405
+ padding-left: 30px; // reset
406
+ }
407
+
408
+ /* sidenote
409
+ ================================================== */
410
+
411
+ .sidenote {
412
+ padding-left: 20px;
413
+ margin-bottom: 1.5em;
414
+ border-left: 1px solid $color-textunderline;
415
+
416
+ color: $color-textunderline;
417
+ font-style: italic;
418
+ font-size: 0.8em;
419
+ }
420
+
421
+ .sidenote-hover {
422
+ color: #F99B6D;;
423
+ border-color: #F99B6D;
424
+ }
425
+
426
+ /* footnotes
427
+ ================================================== */
428
+
429
+ .footnotes {
430
+ border-bottom: 1px solid $color-textunderline;
431
+ border-top: 1px solid $color-textunderline;
432
+ padding: 1em 0;
433
+ }
434
+
435
+ a.footnote {
436
+ text-decoration: none;
437
+ &:hover {
438
+ color: $color-link;
439
+ }
440
+ }
441
+
442
+ /* Code snippets
443
+ ================================================== */
444
+ code {
445
+ font-family: $fixed-width-font-family;
446
+ }
447
+
448
+ article.post-content {
449
+ pre {
450
+ font-size: 0.75em;
451
+ padding: 1em;
452
+ line-height: 1.4em;
453
+ overflow: auto;
454
+ }
455
+
456
+ ol code, ul code, p>code {
457
+ font-size: 0.85em;
458
+ }
459
+ p>code {
460
+ color: $color-code;
27
461
  }
28
462
  }
29
463
 
30
- @mixin media-query-laptop() {
31
- @media only screen and (min-width: $tablet-width + 1px) {
32
- @content;
464
+
465
+ .site-footer {
466
+ padding: $spacing-unit 0;
467
+
468
+ @include media-query-laptop() {
469
+ margin-top: 2em;
470
+ }
471
+
472
+ .newsletter {
473
+
474
+ grid-column: 2;
475
+
476
+ display: grid;
477
+ grid-gap: $spacing-micro-unit;
478
+
479
+ margin-bottom: $spacing-unit * 2;
480
+
481
+ @include media-query-small-screen() {
482
+ padding: 0 $spacing-micro-unit * 2;
483
+ }
484
+
485
+ @include media-query-laptop() {
486
+ grid-template-columns: 48% 1fr 48%;
487
+ }
488
+
489
+ input {
490
+ text-align: center;
491
+ padding: 0.5em;
492
+ font-family: $font-family-base;
493
+ font-size: 0.8em;
494
+ }
495
+
496
+ input[type=text] {
497
+ border: 1px solid $color-divider;
498
+
499
+ @include media-query-laptop() {
500
+ grid-column-start: 1;
501
+ }
502
+ }
503
+
504
+ input[type=submit] {
505
+ -webkit-appearance: none;
506
+ -moz-appearance: none;
507
+ appearance: none;
508
+ background-color: lightgray;
509
+
510
+ @include media-query-laptop() {
511
+ grid-column-start: 3;
512
+ }
513
+ }
33
514
  }
34
515
  }
35
516
 
36
- // Using media queries with like this:
37
- // @include media-query-mobile() {
38
- // .wrapper {
39
- // padding-right: $spacing-unit / 2;
40
- // padding-left: $spacing-unit / 2;
41
- // }
42
- // }
517
+ .site-nav {
518
+
519
+ ul {
520
+ display: grid;
521
+ row-gap: $spacing-unit / 2;
522
+ grid-template-columns: repeat(auto-fit, minmax((7 * $font-size-regular), 1fr));
523
+ @include media-query-small-screen() {
524
+ grid-template-columns: repeat(auto-fit, minmax((4 * $font-size-regular), 1fr));
525
+ }
43
526
 
44
- //endregion
527
+ list-style-type: none;
528
+ margin-left: 0;
529
+ text-align: center;
45
530
 
46
- @import "theme";
531
+ .nav-link {
532
+ display: block;
47
533
 
48
- // Import partials from `sass_dir` (defaults to `_sass`)
49
- @import url(code-colorful.css),
50
- "base",
51
- "layout",
52
- "custom";
534
+ padding-top: $spacing-micro-unit;
535
+ padding-bottom: $spacing-micro-unit;
536
+ text-decoration: none;
537
+
538
+ @include media-query-small-screen() {
539
+ font-size: $font-size-small;
540
+ }
541
+
542
+
543
+ border-top: 2px solid transparent;
544
+ border-bottom: 2px solid transparent;
545
+
546
+ &:hover {
547
+ border-top: 2px solid $color-link;
548
+ border-bottom: 2px solid $color-link;
549
+ }
550
+ }
551
+ }
552
+ }