jekyll-theme-low 1.1.1 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8813be8b5a52689788814716f726fa030bb491fe7b4a2943cba313acf47b74ba
4
- data.tar.gz: c54bf6af6f53aaad6622cffe559c8ee4c2ae7649b85d793e2db5943245616bb7
3
+ metadata.gz: f930874916c2ea07e8f63a97ce44301be3c3f7f3f428f4728618a556cbada1f4
4
+ data.tar.gz: 57a69f021ce781bdbe9c1327efa0f20b0f0677aa91dc73c6021a5f9f706a6374
5
5
  SHA512:
6
- metadata.gz: b48f9b27cbd98878d87ded3ca84ca7d9bafe83b1ceda0883fffcb9bc9d336052cb2287a5cfcd580e65c79f4ce142786908f93e1aed308506ac64239443650913
7
- data.tar.gz: c798e6597aaa4489e99090d6f4a94e303901918f435c98961526efea6f6569610ba3b3acb48ed8deec094c5ab1573c5f7f40276011f0f3501fc0b4535bdc997c
6
+ metadata.gz: 07f75c562495ad909e78cc43384878964f66143eca8324ab5cf91310d6fc4aeecf4676b97e9c169f5d6bba5c04dc6876ac59350a6320e23cc77ea211756c4752
7
+ data.tar.gz: 54ad03c830a8d12a70f499384b08f757ff4071396aedb59b20a07b7c1a8d425d6ab215493ce26b808106a16a0a333444a591e1aa552b4a7efdab603f129c2918
data/_includes/head.html CHANGED
@@ -2,6 +2,12 @@
2
2
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=12.0, minimum-scale=1.0, user-scalable=yes">
3
3
  <title>{% if page.title %}{{ page.title }} · {% endif %}{{ site.title }}</title>
4
4
 
5
+ {% if page.description %}
6
+ <meta name="description" content="{{ page.description | strip_html | truncate: 160 }}">
7
+ {% elsif site.description %}
8
+ <meta name="description" content="{{ site.description | strip_html | truncate: 160 }}">
9
+ {% endif %}
10
+
5
11
  <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
6
12
 
7
13
  {% if site.favicon %}
@@ -11,3 +17,25 @@
11
17
  <link rel="alternate" type="application/rss+xml" title="{{ site.title }} RSS" href="{{ site.feed.path | default: '/rss.xml' | relative_url }}">
12
18
 
13
19
  {% seo %}
20
+
21
+ {% if page.layout == 'post' %}
22
+ <script type="application/ld+json">
23
+ {
24
+ "@context": "https://schema.org",
25
+ "@type": "TechArticle",
26
+ "headline": {{ page.title | jsonify }},
27
+ "datePublished": "{{ page.date | date_to_xmlschema }}",
28
+ "dateModified": "{{ page.last_modified_at | default: page.date | date_to_xmlschema }}",
29
+ "author": {
30
+ "@type": "Person",
31
+ "name": {{ site.author.name | default: site.author | jsonify }},
32
+ x "url": {{ site.url | jsonify }}
33
+ },
34
+ "description": {{ page.description | default: site.description | strip_html | jsonify }},
35
+ "url": "{{ site.url }}{{ page.url }}"
36
+ {% if page.tags and page.tags.size > 0 %}
37
+ ,"keywords": {{ page.tags | join: ", " | jsonify }}
38
+ {% endif %}
39
+ }
40
+ </script>
41
+ {% endif %}
@@ -1,11 +1,19 @@
1
+ {% assign words = content | number_of_words %}
2
+ {% assign reading_time = words | divided_by: 200 %}
3
+ {% if reading_time == 0 %}{% assign reading_time = 1 %}{% endif %}
4
+
1
5
  <p class="meta" style="margin:0 0 2ch 0; opacity:.8;">
2
6
  <time datetime="{{ page.date | date_to_xmlschema }}">
3
7
  {{ page.date | date: "%d/%m/%Y" }}
4
8
  </time>
9
+ · {{ reading_time }} min read
5
10
  {% if page.categories and page.categories.size > 0 %}
6
11
  · {{ page.categories | array_to_sentence_string }}
7
12
  {% endif %}
8
13
  {% if page.tags and page.tags.size > 0 %}
9
- · tags: {{ page.tags | array_to_sentence_string }}
14
+ · tags:
15
+ {% for tag in page.tags %}
16
+ <a class="tag-link" href="{{ site.baseurl }}/tags/{{ tag | slugify }}/">{{ tag }}</a>{% unless forloop.last %},{% endunless %}
17
+ {% endfor %}
10
18
  {% endif %}
11
19
  </p>
data/_layouts/post.html CHANGED
@@ -1,12 +1,14 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- <article class="post">
5
- <h1>{{ page.title }}</h1>
4
+ <article class="post" itemscope itemtype="https://schema.org/TechArticle">
5
+ <h1 itemprop="headline">{{ page.title }}</h1>
6
6
 
7
7
  {% include post-meta.html %}
8
8
 
9
- {{ content }}
9
+ <div itemprop="articleBody">
10
+ {{ content }}
11
+ </div>
10
12
 
11
13
  <hr>
12
14
  <nav class="post-nav" style="display:flex; justify-content:space-between;">
data/_layouts/tag.html ADDED
@@ -0,0 +1,13 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+ <h1>TAG: {{ page.tag | upcase }}</h1>
5
+ <hr>
6
+ {% assign tagged_posts = site.posts | where_exp: "post", "post.tags contains page.tag" %}
7
+ {% if tagged_posts.size == 0 %}
8
+ <p>No posts found.</p>
9
+ {% else %}
10
+ {% for post in tagged_posts %}
11
+ {% include post-list.html %}
12
+ {% endfor %}
13
+ {% endif %}
@@ -0,0 +1,27 @@
1
+ module Jekyll
2
+ class TagPageGenerator < Generator
3
+ safe true
4
+
5
+ def generate(site)
6
+ tags = site.posts.docs.flat_map { |post| post.data["tags"] || [] }.uniq
7
+ tags.each do |tag|
8
+ site.pages << TagPage.new(site, site.source, tag)
9
+ end
10
+ end
11
+ end
12
+
13
+ class TagPage < Page
14
+ def initialize(site, base, tag)
15
+ @site = site
16
+ @base = base
17
+ @dir = File.join("tags", Jekyll::Utils.slugify(tag))
18
+ @name = "index.html"
19
+
20
+ process(@name)
21
+ read_yaml(File.join(base, "_layouts"), "tag.html")
22
+ data["tag"] = tag
23
+ data["title"] = "Tag: #{tag}"
24
+ data["layout"] = "tag"
25
+ end
26
+ end
27
+ end
data/assets/css/main.scss CHANGED
@@ -250,6 +250,25 @@ blockquote div {
250
250
  color: #C34E00;
251
251
  }
252
252
 
253
+ /* ===============================
254
+ TAG LINKS
255
+ =============================== */
256
+ a.tag-link {
257
+ font-weight: normal;
258
+ opacity: .8;
259
+ }
260
+ a.tag-link:hover {
261
+ opacity: 1;
262
+ text-decoration: underline;
263
+ }
264
+
265
+ /* ===============================
266
+ POST NAV
267
+ =============================== */
268
+ nav.post-nav a {
269
+ font-weight: normal;
270
+ }
271
+
253
272
  /* ===============================
254
273
  SYTAX STYLE END
255
274
  =============================== */
data/lib/low/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Low
3
- VERSION = "1.1.1"
3
+ VERSION = "1.2.2"
4
4
  end
5
5
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-low
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Levent Kaya
@@ -70,7 +70,6 @@ extensions: []
70
70
  extra_rdoc_files: []
71
71
  files:
72
72
  - Gemfile
73
- - Gemfile.lock
74
73
  - LICENSE.txt
75
74
  - README.md
76
75
  - _includes/footer.html
@@ -80,18 +79,12 @@ files:
80
79
  - _includes/post-meta.html
81
80
  - _layouts/archive.html
82
81
  - _layouts/default.html
83
- - _layouts/head.html
84
- - _layouts/header.html
85
82
  - _layouts/home.html
86
83
  - _layouts/page.html
87
- - _layouts/post-list.html
88
- - _layouts/post-meta.html
89
84
  - _layouts/post.html
85
+ - _layouts/tag.html
86
+ - _plugins/tag_generator.rb
90
87
  - _sass/theme/_syntax.scss
91
- - assets/_site/css/main.css
92
- - assets/_site/css/main.css.map
93
- - assets/_site/font/DejaVuSansMono-Bold.woff2
94
- - assets/_site/font/DejaVuSansMono.woff2
95
88
  - assets/css/_syntax.scss
96
89
  - assets/css/main.scss
97
90
  - assets/font/DejaVuSansMono-Bold.woff2
@@ -118,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
111
  - !ruby/object:Gem::Version
119
112
  version: '0'
120
113
  requirements: []
121
- rubygems_version: 3.6.7
114
+ rubygems_version: 3.6.9
122
115
  specification_version: 4
123
116
  summary: A minimal, retro-inspired Jekyll theme for engineers who care about the metal.
124
117
  test_files: []
data/Gemfile.lock DELETED
@@ -1,97 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- low (0.1.0)
5
- jekyll (>= 4.3, < 5.0)
6
- jekyll-feed (>= 0.17)
7
- jekyll-seo-tag (>= 2.8)
8
- jekyll-sitemap (>= 1.4)
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- addressable (2.8.7)
14
- public_suffix (>= 2.0.2, < 7.0)
15
- base64 (0.3.0)
16
- bigdecimal (3.2.3)
17
- colorator (1.1.0)
18
- concurrent-ruby (1.3.5)
19
- csv (3.3.5)
20
- em-websocket (0.5.3)
21
- eventmachine (>= 0.12.9)
22
- http_parser.rb (~> 0)
23
- eventmachine (1.2.7)
24
- ffi (1.17.2)
25
- forwardable-extended (2.6.0)
26
- google-protobuf (4.32.1)
27
- bigdecimal
28
- rake (>= 13)
29
- http_parser.rb (0.8.0)
30
- i18n (1.14.7)
31
- concurrent-ruby (~> 1.0)
32
- jekyll (4.4.1)
33
- addressable (~> 2.4)
34
- base64 (~> 0.2)
35
- colorator (~> 1.0)
36
- csv (~> 3.0)
37
- em-websocket (~> 0.5)
38
- i18n (~> 1.0)
39
- jekyll-sass-converter (>= 2.0, < 4.0)
40
- jekyll-watch (~> 2.0)
41
- json (~> 2.6)
42
- kramdown (~> 2.3, >= 2.3.1)
43
- kramdown-parser-gfm (~> 1.0)
44
- liquid (~> 4.0)
45
- mercenary (~> 0.3, >= 0.3.6)
46
- pathutil (~> 0.9)
47
- rouge (>= 3.0, < 5.0)
48
- safe_yaml (~> 1.0)
49
- terminal-table (>= 1.8, < 4.0)
50
- webrick (~> 1.7)
51
- jekyll-feed (0.17.0)
52
- jekyll (>= 3.7, < 5.0)
53
- jekyll-sass-converter (3.1.0)
54
- sass-embedded (~> 1.75)
55
- jekyll-seo-tag (2.8.0)
56
- jekyll (>= 3.8, < 5.0)
57
- jekyll-sitemap (1.4.0)
58
- jekyll (>= 3.7, < 5.0)
59
- jekyll-watch (2.2.1)
60
- listen (~> 3.0)
61
- json (2.15.0)
62
- kramdown (2.5.1)
63
- rexml (>= 3.3.9)
64
- kramdown-parser-gfm (1.1.0)
65
- kramdown (~> 2.0)
66
- liquid (4.0.4)
67
- listen (3.9.0)
68
- rb-fsevent (~> 0.10, >= 0.10.3)
69
- rb-inotify (~> 0.9, >= 0.9.10)
70
- mercenary (0.4.0)
71
- pathutil (0.16.2)
72
- forwardable-extended (~> 2.6)
73
- public_suffix (6.0.2)
74
- rake (13.3.0)
75
- rb-fsevent (0.11.2)
76
- rb-inotify (0.11.1)
77
- ffi (~> 1.0)
78
- rexml (3.4.4)
79
- rouge (4.6.1)
80
- safe_yaml (1.0.5)
81
- sass-embedded (1.93.2)
82
- google-protobuf (~> 4.31)
83
- rake (>= 13)
84
- terminal-table (3.0.2)
85
- unicode-display_width (>= 1.1.1, < 3)
86
- unicode-display_width (2.6.0)
87
- webrick (1.9.1)
88
-
89
- PLATFORMS
90
- ruby
91
- x86_64-linux
92
-
93
- DEPENDENCIES
94
- low!
95
-
96
- BUNDLED WITH
97
- 2.6.9
data/_layouts/head.html DELETED
@@ -1,7 +0,0 @@
1
- <meta charset="utf-8">
2
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=12.0, minimum-scale=1.0, user-scalable=yes">
3
- <title>{% if page.title %}{{ page.title }} · {% endif %}{{ site.title }}</title>
4
- <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
5
- <link rel="alternate" type="application/rss+xml" title="RSS" href="{{ site.feed.path | default: '/rss.xml' | relative_url }}">
6
- {% seo %}
7
-
data/_layouts/header.html DELETED
@@ -1,14 +0,0 @@
1
- <header class="site-header">
2
- <div class="header-content">
3
- <a href="{{ '/' | relative_url }}" class="site-title">
4
- <strong>{{ site.title | upcase }}</strong>
5
- </a>
6
- <hr>
7
- <nav class="site-nav">
8
- {% if site.email %}
9
- <a class="nav-link" href="mailto:{{ site.email }}">CONTACT</a>
10
- {% endif %}
11
- <a class="nav-link" href="{{ site.feed.path | default: '/rss.xml' | relative_url }}">RSS</a>
12
- </nav>
13
- </div>
14
- </header>
@@ -1,7 +0,0 @@
1
- <p style="text-align:left; margin-bottom:1ch;">
2
- {% assign posts_sorted = include.posts | default: site.posts | sort: "date" | reverse %}
3
- {% for post in posts_sorted %}
4
- {{ post.date | date: "%d/%m/%Y" }}:
5
- <a href="{{ post.url | relative_url }}">{{ post.title }}</a><br>
6
- {% endfor %}
7
- </p>
@@ -1,11 +0,0 @@
1
- <p class="meta" style="margin:0 0 2ch 0; opacity:.8;">
2
- <time datetime="{{ page.date | date_to_xmlschema }}">
3
- {{ page.date | date: "%d/%m/%Y" }}
4
- </time>
5
- {% if page.categories and page.categories.size > 0 %}
6
- · {{ page.categories | array_to_sentence_string }}
7
- {% endif %}
8
- {% if page.tags and page.tags.size > 0 %}
9
- · tags: {{ page.tags | array_to_sentence_string }}
10
- {% endif %}
11
- </p>
@@ -1,126 +0,0 @@
1
- @font-face {
2
- font-family: "fabfont";
3
- src: url("/assets/font/DejaVuSansMono.woff2") format("woff2"), url("/assets/font/DejaVuSansMono.woff") format("woff");
4
- font-weight: normal;
5
- font-style: normal;
6
- font-display: block;
7
- }
8
- @font-face {
9
- font-family: "fabfont";
10
- src: url("/assets/font/DejaVuSansMono-Bold.woff2") format("woff2"), url("/assets/font/DejaVuSansMono-Bold.woff") format("woff");
11
- font-weight: bold;
12
- font-style: normal;
13
- font-display: block;
14
- }
15
- * {
16
- font-size: 16px;
17
- }
18
-
19
- html {
20
- font-family: "fabfont", "DejaVu Sans Mono", "Consolas", "Monaco", "Courier New", monospace;
21
- max-width: 900px;
22
- padding-left: 2%;
23
- padding-right: 3%;
24
- margin: 0 auto;
25
- background: #F5F5F0;
26
- }
27
-
28
- a {
29
- color: black;
30
- font-weight: bold;
31
- }
32
-
33
- img {
34
- border: none;
35
- }
36
-
37
- p {
38
- margin-top: 0px;
39
- text-align: justify;
40
- }
41
-
42
- sup {
43
- vertical-align: 0.3em;
44
- font-size: 0.65em;
45
- }
46
-
47
- pre {
48
- font-family: "fabfont", monospace;
49
- background-color: white;
50
- border: 1px solid black;
51
- padding-left: 2%;
52
- padding-top: 1ch;
53
- padding-bottom: 1ch;
54
- overflow: hidden;
55
- }
56
-
57
- div.heading {
58
- font-weight: bold;
59
- text-transform: uppercase;
60
- margin-top: 4ch;
61
- }
62
-
63
- @media (max-width: 500px) {
64
- * {
65
- font-size: 12px;
66
- }
67
- }
68
- .title {
69
- text-decoration: none;
70
- }
71
-
72
- img.pixel, canvas.pixel {
73
- image-rendering: pixelated;
74
- image-rendering: -moz-crisp-edges;
75
- image-rendering: crisp-edges;
76
- }
77
-
78
- blockquote {
79
- background-color: #f3f3f3;
80
- border: dashed 1px grey;
81
- width: 97.5%;
82
- font-style: italic;
83
- text-align: justify;
84
- padding: 1ch;
85
- padding-top: 2ch;
86
- padding-bottom: 2ch;
87
- margin: 0ch 0ch 2ch 0ch;
88
- }
89
-
90
- blockquote div {
91
- text-transform: none;
92
- text-align: right;
93
- width: 100%;
94
- }
95
-
96
- code {
97
- font-weight: bold;
98
- background-color: #e1e1e1;
99
- border-radius: 0.5ch;
100
- padding-left: 0.3ch;
101
- padding-right: 0.3ch;
102
- }
103
-
104
- .trivia {
105
- border-left: 1px black solid;
106
- padding-left: 1ch;
107
- }
108
-
109
- .trivia::before {
110
- font-weight: bold;
111
- text-decoration: underline;
112
- padding-right: 1ch;
113
- content: "Trivia:";
114
- }
115
-
116
- /* container hook */
117
- /* --- Footer --- */
118
- .footer {
119
- text-align: center;
120
- margin-top: 4ch;
121
- margin-bottom: 2ch;
122
- opacity: 0.7;
123
- font-size: 0.9em;
124
- }
125
-
126
- /*# sourceMappingURL=main.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;EAEA;EACA;EACA;;AAGF;EACE;EACA;EAEA;EACA;EACA;;AAGF;EAAI;;;AAEJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAAI;EAAc;;;AAClB;EAAM;;;AAEN;EAAI;EAAiB;;;AAErB;EAAM;EAAuB;;;AAE7B;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;IAAI;;;AAGN;EAAS;;;AAET;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EAAU;EAA8B;;;AAExC;EACE;EACA;EACA;EACA;;;AAGF;AAGA;AACA;EACE;EACA;EACA;EACA;EACA","sourcesContent":["@font-face {\n font-family: 'fabfont';\n src: url('/assets/font/DejaVuSansMono.woff2') format('woff2'),\n url('/assets/font/DejaVuSansMono.woff') format('woff');\n font-weight: normal;\n font-style: normal;\n font-display: block;\n}\n\n@font-face {\n font-family: 'fabfont';\n src: url('/assets/font/DejaVuSansMono-Bold.woff2') format('woff2'),\n url('/assets/font/DejaVuSansMono-Bold.woff') format('woff');\n font-weight: bold;\n font-style: normal;\n font-display: block;\n}\n\n* { font-size: 16px; }\n\nhtml {\n font-family: 'fabfont', 'DejaVu Sans Mono', 'Consolas', 'Monaco', 'Courier New', monospace;\n max-width: 900px;\n padding-left: 2%;\n padding-right: 3%;\n margin: 0 auto;\n background: #F5F5F0;\n}\n\na { color: black; font-weight: bold; }\nimg { border: none; }\n\np { margin-top: 0px; text-align: justify; }\n\nsup { vertical-align: 0.3em; font-size: 0.65em; }\n\npre {\n font-family: 'fabfont', monospace;\n background-color: white;\n border: 1px solid black;\n padding-left: 2%;\n padding-top: 1ch;\n padding-bottom: 1ch;\n overflow: hidden;\n}\n\ndiv.heading {\n font-weight: bold;\n text-transform: uppercase;\n margin-top: 4ch;\n}\n\n@media (max-width: 500px) {\n * { font-size: 12px; }\n}\n\n.title { text-decoration: none; }\n\nimg.pixel, canvas.pixel {\n image-rendering: pixelated;\n image-rendering: -moz-crisp-edges;\n image-rendering: crisp-edges;\n}\n\nblockquote {\n background-color: #f3f3f3;\n border: dashed 1px grey;\n width: 97.5%;\n font-style: italic;\n text-align: justify;\n padding: 1ch;\n padding-top: 2ch;\n padding-bottom: 2ch;\n margin: 0ch 0ch 2ch 0ch;\n}\n\nblockquote div {\n text-transform: none;\n text-align: right;\n width: 100%;\n}\n\ncode {\n font-weight: bold;\n background-color: #e1e1e1;\n border-radius: 0.5ch;\n padding-left: 0.3ch;\n padding-right: 0.3ch;\n}\n\n.trivia { border-left: 1px black solid; padding-left: 1ch; }\n\n.trivia::before {\n font-weight: bold;\n text-decoration: underline;\n padding-right: 1ch;\n content: \"Trivia:\";\n}\n\n/* container hook */\n.container {}\n\n/* --- Footer --- */\n.footer {\n text-align: center;\n margin-top: 4ch;\n margin-bottom: 2ch;\n opacity: 0.7;\n font-size: 0.9em;\n}\n\n"],"file":"main.css"}
Binary file