jekyll-theme-purple 1.0.0 → 1.0.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/_data/origin/cors.yml +8 -8
  4. data/_includes/embed/audio.html +1 -1
  5. data/_includes/embed/spotify.html +22 -0
  6. data/_includes/favicons.html +3 -8
  7. data/_includes/footer.html +1 -1
  8. data/_includes/head.html +1 -1
  9. data/_includes/post-summary.html +39 -0
  10. data/_includes/refactor-content.html +1 -1
  11. data/_includes/related-posts.html +1 -1
  12. data/_layouts/default.html +1 -1
  13. data/_layouts/home.html +28 -9
  14. data/_layouts/post.html +0 -1
  15. data/_sass/base/_base.scss +8 -1
  16. data/_sass/base/_syntax.scss +0 -1
  17. data/_sass/base/_typography.scss +1 -3
  18. data/_sass/pages/_home.scss +0 -3
  19. data/assets/feed.xml +1 -1
  20. data/assets/img/favicons/apple-touch-icon.png +0 -0
  21. data/assets/img/favicons/favicon-96x96.png +0 -0
  22. data/assets/img/favicons/favicon.ico +0 -0
  23. data/assets/img/favicons/favicon.svg +3 -0
  24. data/assets/img/favicons/site.webmanifest +6 -4
  25. data/assets/img/favicons/web-app-manifest-192x192.png +0 -0
  26. data/assets/img/favicons/web-app-manifest-512x512.png +0 -0
  27. data/assets/js/data/search.json +2 -1
  28. metadata +7 -18
  29. data/_includes/post-description.html +0 -30
  30. data/_sass/vendors/_bootstrap.scss +0 -5
  31. data/assets/img/favicons/android-chrome-192x192.png +0 -0
  32. data/assets/img/favicons/android-chrome-512x512.png +0 -0
  33. data/assets/img/favicons/browserconfig.xml +0 -13
  34. data/assets/img/favicons/favicon-16x16.png +0 -0
  35. data/assets/img/favicons/favicon-32x32.png +0 -0
  36. data/assets/img/favicons/mstile-150x150.png +0 -0
  37. data/assets/js/dist/app.min.js +0 -7
  38. data/assets/js/dist/categories.min.js +0 -4
  39. data/assets/js/dist/commons.min.js +0 -4
  40. data/assets/js/dist/home.min.js +0 -4
  41. data/assets/js/dist/misc.min.js +0 -4
  42. data/assets/js/dist/page.min.js +0 -4
  43. data/assets/js/dist/post.min.js +0 -4
  44. data/assets/js/dist/sw.min.js +0 -7
  45. data/assets/js/dist/theme.min.js +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '098bcf9a52f9aef815fd7360b77db6fb425e5c8fe4c35b5b119ee968cfa40cfc'
4
- data.tar.gz: 835cb21b195092b2c6bd8d61b056bdea9dbad76672b9c771974c0c19b099b65b
3
+ metadata.gz: a8f29ed91b5c8df9b220e47ad85dd754046c3ba02e160934614e3e7d6c28447f
4
+ data.tar.gz: ca03e9906865b72c7584ed1ca40bd0d9b5b034331f45009a0fee9c974779e2ef
5
5
  SHA512:
6
- metadata.gz: 536c6c3da295bd07c042ab590f49b11c18eb05879ba0dce7a450ee515c160e256db4394563c4293fb473ca87fed1f9e5e676f075770080e0060aba570f573a9a
7
- data.tar.gz: a3694a4103eb694a25329d2c3b0d15378375870326734257dda15cd3fa0f8fcab0c54fc17aa8347ab98acae45d28e3ac1b50e0baa3965d9298de43ba22ede577
6
+ metadata.gz: 3710c91ba46294296a1f248329e090c0f829c990f5e8f741565b8a1f334935e24c17d36693954012076a2d90dd88ef93a4b3993a475279c1683413fbe7d44317
7
+ data.tar.gz: 8a112159d54d4f907598f2f0fa607b863849ec518235c48e41fa2c37e2c603fb50e2186839d16e6946dc416d397206776ab08a4d20acf8aad9cd37690979ac5e
data/README.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  [**Live Demo** →][demo]
16
16
 
17
- [![Devices Mockup](https://chirpy-img.netlify.app/commons/devices-mockup.png)][demo]
17
+ [![Devices Mockup](https://purple-img.netlify.app/commons/device-mockup.png)][demo]
18
18
 
19
19
  </div>
20
20
 
@@ -20,24 +20,24 @@ webfonts: https://fonts.googleapis.com/css2?family=Lato:wght@300;400&family=Sour
20
20
  # Libraries
21
21
 
22
22
  toc:
23
- css: https://cdn.jsdelivr.net/npm/tocbot@4.32.2/dist/tocbot.min.css
24
- js: https://cdn.jsdelivr.net/npm/tocbot@4.32.2/dist/tocbot.min.js
23
+ css: https://cdn.jsdelivr.net/npm/tocbot@4.36.4/dist/tocbot.min.css
24
+ js: https://cdn.jsdelivr.net/npm/tocbot@4.36.4/dist/tocbot.min.js
25
25
 
26
26
  fontawesome:
27
- css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.7.1/css/all.min.css
27
+ css: https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.1.0/css/all.min.css
28
28
 
29
29
  search:
30
30
  js: https://cdn.jsdelivr.net/npm/simple-jekyll-search@1.10.0/dest/simple-jekyll-search.min.js
31
31
 
32
32
  mermaid:
33
- js: https://cdn.jsdelivr.net/npm/mermaid@11.4.0/dist/mermaid.min.js
33
+ js: https://cdn.jsdelivr.net/npm/mermaid@11.12.0/dist/mermaid.min.js
34
34
 
35
35
  dayjs:
36
36
  js:
37
- common: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/dayjs.min.js
38
- locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/locale/:LOCALE.js
39
- relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/relativeTime.js
40
- localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.13/plugin/localizedFormat.js
37
+ common: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/dayjs.min.js
38
+ locale: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/locale/:LOCALE.js
39
+ relativeTime: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/plugin/relativeTime.js
40
+ localizedFormat: https://cdn.jsdelivr.net/npm/dayjs@1.11.18/plugin/localizedFormat.js
41
41
 
42
42
  glightbox:
43
43
  css: https://cdn.jsdelivr.net/npm/glightbox@3.3.0/dist/css/glightbox.min.css
@@ -9,7 +9,7 @@
9
9
  {% endunless %}
10
10
 
11
11
  <p>
12
- <audio class="embed-audio" controls>
12
+ <audio class="embed-audio file" controls>
13
13
  {% assign extension = src | split: '.' | last %}
14
14
  {% assign types = extension | concat: types %}
15
15
 
@@ -0,0 +1,22 @@
1
+ {% assign size = 352 %}
2
+ {% assign theme = '' %}
3
+
4
+ {% if include.compact %}
5
+ {% assign size = 152 %}
6
+ {% endif %}
7
+
8
+ {% if include.dark %}
9
+ {% assign theme = '?theme=0' %}
10
+ {% endif %}
11
+
12
+ <iframe
13
+ class="embed-audio spotify"
14
+ src="https://open.spotify.com/embed/track/{{ include.id | append: theme }}"
15
+ height="{{ size }}"
16
+ frameBorder="0"
17
+ allowfullscreen=""
18
+ allowtransparency="true"
19
+ allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
20
+ loading="lazy"
21
+ >
22
+ </iframe>
@@ -5,15 +5,10 @@
5
5
 
6
6
  {% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %}
7
7
 
8
+ <link rel="icon" type="image/png" href="{{ favicon_path }}/favicon-96x96.png" sizes="96x96">
9
+ <link rel="icon" type="image/svg+xml" href="{{ favicon_path }}/favicon.svg">
10
+ <link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
8
11
  <link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
9
- <link rel="icon" type="image/png" sizes="32x32" href="{{ favicon_path }}/favicon-32x32.png">
10
- <link rel="icon" type="image/png" sizes="16x16" href="{{ favicon_path }}/favicon-16x16.png">
11
12
  {% if site.pwa.enabled %}
12
13
  <link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
13
14
  {% endif %}
14
- <link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
15
- <meta name="apple-mobile-web-app-title" content="{{ site.title }}">
16
- <meta name="application-name" content="{{ site.title }}">
17
- <meta name="msapplication-TileColor" content="#da532c">
18
- <meta name="msapplication-config" content="{{ favicon_path }}/browserconfig.xml">
19
- <meta name="theme-color" content="#ffffff">
@@ -38,7 +38,7 @@
38
38
  data-bs-toggle="tooltip"
39
39
  data-bs-placement="top"
40
40
  title="v{{ theme.version }}"
41
- href="https://github.com/cotes2020/jekyll-theme-purple"
41
+ href="https://github.com/kyroceus/jekyll-theme-purple"
42
42
  target="_blank"
43
43
  rel="noopener"
44
44
  >Purple</a>
data/_includes/head.html CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  <!-- Bootstrap -->
72
72
  {% unless jekyll.environment == 'production' %}
73
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/css/bootstrap.min.css">
73
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css">
74
74
  {% endunless %}
75
75
 
76
76
  <!-- Theme style -->
@@ -0,0 +1,39 @@
1
+ {%- comment -%}
2
+ Get the post's description or body content.
3
+
4
+ Arguments:
5
+ full_text: If true, return the full content. Default is false.
6
+ max_length: The maximum length of the returned content. Default is 200.
7
+ {%- endcomment -%}
8
+
9
+ {%- if post.description and include.full_text != true -%}
10
+ {{- post.description -}}
11
+ {%- else -%}
12
+ {%- comment -%} Remove the line numbers from the code snippet. {%- endcomment -%}
13
+
14
+ {%- assign content = post.content -%}
15
+
16
+ {%- if content contains '<td class="rouge-gutter gl"><pre class="lineno">' -%}
17
+ {%- assign content = content
18
+ | replace: '<td class="rouge-gutter gl"><pre class="lineno">',
19
+ '<!-- <td class="rouge-gutter gl"><pre class="lineno">'
20
+ -%}
21
+ {%- assign content = content | replace: '</td><td class="rouge-code">', '</td> --><td class="rouge-code">' -%}
22
+ {%- endif -%}
23
+
24
+ {%- assign content = content
25
+ | markdownify
26
+ | strip_html
27
+ | newline_to_br
28
+ | replace: '<br />', ' '
29
+ | strip_newlines
30
+ | strip
31
+ -%}
32
+
33
+ {%- unless include.full_text -%}
34
+ {%- assign max_length = include.max_length | default: 200 -%}
35
+ {%- assign content = content | truncate: max_length -%}
36
+ {%- endunless -%}
37
+
38
+ {{- content -}}
39
+ {%- endif -%}
@@ -163,7 +163,7 @@
163
163
 
164
164
  {% if page.layout == 'home' %}
165
165
  <!-- create the image wrapper -->
166
- {% assign _wrapper_start = '<div class="preview-img ' | append: _class | append: '">' %}
166
+ {% assign _wrapper_start = '<div class="preview-img ' | append: _wrapper_class | append: '">' %}
167
167
 
168
168
  {% assign _img_content = _img_content | append: _wrapper_start %}
169
169
  {% assign _right = _right | prepend: '></div' %}
@@ -82,7 +82,7 @@
82
82
  {% include datetime.html date=post.date lang=include.lang %}
83
83
  <h4 class="pt-0 my-2">{{ post.title }}</h4>
84
84
  <div class="text-muted">
85
- <p>{% include post-description.html %}</p>
85
+ <p>{% include post-summary.html %}</p>
86
86
  </div>
87
87
  </div>
88
88
  </a>
@@ -25,7 +25,7 @@ layout: compress
25
25
 
26
26
  <div class="row flex-grow-1">
27
27
  <main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4">
28
- {% if layout.refactor or layout.layout == 'default' %}
28
+ {% if layout.layout == 'default' %}
29
29
  {% include refactor-content.html content=content lang=lang %}
30
30
  {% else %}
31
31
  {{ content }}
data/_layouts/home.html CHANGED
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  layout: default
3
- refactor: true
4
3
  ---
5
4
 
6
5
  {% include lang.html %}
@@ -55,19 +54,39 @@ refactor: true
55
54
 
56
55
  {% if post.image %}
57
56
  {% assign src = post.image.path | default: post.image %}
58
- {% capture src %}{% include media-url.html src=src subpath=post.media_subpath %}{% endcapture %}
59
57
 
60
- {% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
61
-
62
- {% assign lqip = null %}
58
+ {% if post.media_subpath %}
59
+ {% unless src contains '://' %}
60
+ {% assign src = post.media_subpath
61
+ | append: '/'
62
+ | append: src
63
+ | replace: '///', '/'
64
+ | replace: '//', '/'
65
+ %}
66
+ {% endunless %}
67
+ {% endif %}
63
68
 
64
69
  {% if post.image.lqip %}
65
- {% capture lqip_url %}{% include media-url.html src=post.image.lqip subpath=post.media_subpath %}{% endcapture %}
66
- {% assign lqip = 'lqip="' | append: lqip_url | append: '"' %}
70
+ {% assign lqip = post.image.lqip %}
71
+
72
+ {% if post.media_subpath %}
73
+ {% unless lqip contains 'data:' %}
74
+ {% assign lqip = post.media_subpath
75
+ | append: '/'
76
+ | append: lqip
77
+ | replace: '///', '/'
78
+ | replace: '//', '/'
79
+ %}
80
+ {% endunless %}
81
+ {% endif %}
82
+
83
+ {% assign lqip_attr = 'lqip="' | append: lqip | append: '"' %}
67
84
  {% endif %}
68
85
 
86
+ {% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
87
+
69
88
  <div class="col-md-5">
70
- <img src="{{ src }}" alt="{{ alt }}" {{ lqip }}>
89
+ <img src="{{ src }}" alt="{{ alt }}" {{ lqip_attr }}>
71
90
  </div>
72
91
 
73
92
  {% assign card_body_col = '7' %}
@@ -78,7 +97,7 @@ refactor: true
78
97
  <h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
79
98
 
80
99
  <div class="card-text content mt-0 mb-3">
81
- <p>{% include post-description.html %}</p>
100
+ <p>{% include post-summary.html %}</p>
82
101
  </div>
83
102
 
84
103
  <div class="post-meta flex-grow-1 d-flex align-items-end">
data/_layouts/post.html CHANGED
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  layout: default
3
- refactor: true
4
3
  panel_includes:
5
4
  - toc
6
5
  tail_includes:
@@ -314,7 +314,14 @@ main {
314
314
 
315
315
  .embed-audio {
316
316
  width: 100%;
317
- display: block;
317
+
318
+ &.file {
319
+ display: block;
320
+ }
321
+
322
+ &.spotify {
323
+ border-radius: 14px;
324
+ }
318
325
 
319
326
  @extend %img-caption;
320
327
  }
@@ -24,7 +24,6 @@
24
24
  margin-bottom: 0;
25
25
  font-size: v.$code-font-size;
26
26
  line-height: 1.4rem;
27
- word-wrap: normal; /* Fixed Safari overflow-x */
28
27
  }
29
28
 
30
29
  table {
@@ -26,9 +26,7 @@
26
26
  }
27
27
  }
28
28
 
29
- & {
30
- font-size: 1rem + (5 - $i) * $size-factor;
31
- }
29
+ font-size: 1rem + (5 - $i) * $size-factor;
32
30
  } @else {
33
31
  font-size: 1.05rem;
34
32
  }
@@ -134,9 +134,6 @@
134
134
  .page-link {
135
135
  color: var(--btn-patinator-text-color);
136
136
  padding: 0 0.6rem;
137
- display: -webkit-box;
138
- -webkit-box-pack: center;
139
- -webkit-box-align: center;
140
137
  border-radius: 0.5rem;
141
138
  border: 0;
142
139
  background-color: inherit;
data/assets/feed.xml CHANGED
@@ -45,7 +45,7 @@ permalink: /feed.xml
45
45
  {% endfor %}
46
46
  {% endif %}
47
47
 
48
- <summary>{% include post-description.html max_length=400 %}</summary>
48
+ <summary>{% include post-summary.html max_length=400 %}</summary>
49
49
 
50
50
  </entry>
51
51
  {% endfor %}
Binary file
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="432" height="432" viewBox="0 0 432 432"><image width="432" height="432" xlink:href="data:image/png;base64,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"></image><style>@media (prefers-color-scheme: light) { :root { filter: none; } }
2
+ @media (prefers-color-scheme: dark) { :root { filter: none; } }
3
+ </style></svg>
@@ -10,15 +10,17 @@ layout: compress
10
10
  "description": "{{ site.description }}",
11
11
  "icons": [
12
12
  {
13
- "src": "{{ favicon_path }}/android-chrome-192x192.png",
13
+ "src": "{{ favicon_path }}/web-app-manifest-192x192.png",
14
14
  "sizes": "192x192",
15
15
  "type": "image/png"
16
16
  },
17
17
  {
18
- "src": "{{ favicon_path }}/android-chrome-512x512.png",
18
+ "src": "{{ favicon_path }}/web-app-manifest-512x512.png",
19
19
  "sizes": "512x512",
20
- "type": "image/png"
21
- }],
20
+ "type": "image/png",
21
+ "purpose": "maskable"
22
+ }
23
+ ],
22
24
  "start_url": "{{ '/index.html' | relative_url }}",
23
25
  "theme_color": "#2a1e6b",
24
26
  "background_color": "#ffffff",
@@ -11,7 +11,8 @@ swcache: true
11
11
  "categories": {{ post.categories | join: ', ' | jsonify }},
12
12
  "tags": {{ post.tags | join: ', ' | jsonify }},
13
13
  "date": {{ post.date | jsonify }},
14
- "content": {% include post-description.html json=true %}
14
+ {% capture content -%}{% include post-summary.html full_text=true %}{%- endcapture -%}
15
+ "content": {{ content | jsonify }}
15
16
  }{% unless forloop.last %},{% endunless %}
16
17
  {% endfor %}
17
18
  ]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-purple
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cotes Chung
@@ -151,6 +151,7 @@ files:
151
151
  - _includes/datetime.html
152
152
  - _includes/embed/audio.html
153
153
  - _includes/embed/bilibili.html
154
+ - _includes/embed/spotify.html
154
155
  - _includes/embed/twitch.html
155
156
  - _includes/embed/video.html
156
157
  - _includes/embed/youtube.html
@@ -166,10 +167,10 @@ files:
166
167
  - _includes/notification.html
167
168
  - _includes/origin-type.html
168
169
  - _includes/pageviews/goatcounter.html
169
- - _includes/post-description.html
170
170
  - _includes/post-nav.html
171
171
  - _includes/post-paginator.html
172
172
  - _includes/post-sharing.html
173
+ - _includes/post-summary.html
173
174
  - _includes/read-time.html
174
175
  - _includes/refactor-content.html
175
176
  - _includes/related-posts.html
@@ -221,31 +222,19 @@ files:
221
222
  - _sass/pages/_tags.scss
222
223
  - _sass/themes/_dark.scss
223
224
  - _sass/themes/_light.scss
224
- - _sass/vendors/_bootstrap.scss
225
225
  - assets/404.html
226
226
  - assets/css/jekyll-theme-purple.scss
227
227
  - assets/feed.xml
228
- - assets/img/favicons/android-chrome-192x192.png
229
- - assets/img/favicons/android-chrome-512x512.png
230
228
  - assets/img/favicons/apple-touch-icon.png
231
- - assets/img/favicons/browserconfig.xml
232
- - assets/img/favicons/favicon-16x16.png
233
- - assets/img/favicons/favicon-32x32.png
229
+ - assets/img/favicons/favicon-96x96.png
234
230
  - assets/img/favicons/favicon.ico
235
- - assets/img/favicons/mstile-150x150.png
231
+ - assets/img/favicons/favicon.svg
236
232
  - assets/img/favicons/site.webmanifest
233
+ - assets/img/favicons/web-app-manifest-192x192.png
234
+ - assets/img/favicons/web-app-manifest-512x512.png
237
235
  - assets/js/data/mathjax.js
238
236
  - assets/js/data/search.json
239
237
  - assets/js/data/swconf.js
240
- - assets/js/dist/app.min.js
241
- - assets/js/dist/categories.min.js
242
- - assets/js/dist/commons.min.js
243
- - assets/js/dist/home.min.js
244
- - assets/js/dist/misc.min.js
245
- - assets/js/dist/page.min.js
246
- - assets/js/dist/post.min.js
247
- - assets/js/dist/sw.min.js
248
- - assets/js/dist/theme.min.js
249
238
  - assets/robots.txt
250
239
  homepage: https://github.com/kyroceus/jekyll-theme-purple
251
240
  licenses:
@@ -1,30 +0,0 @@
1
- {%- comment -%}
2
- Get post description or generate it from the post content.
3
- {%- endcomment -%}
4
-
5
- {%- capture description -%}
6
- {%- if post.description -%}
7
- {{- post.description -}}
8
- {%- else -%}
9
- {% comment %}
10
- Remove the line number of the code snippet.
11
- {% endcomment %}
12
- {%- assign content = post.content -%}
13
-
14
- {%- if content contains '<td class="rouge-gutter gl"><pre class="lineno">' -%}
15
- {%- assign content = content | replace: '<td class="rouge-gutter gl"><pre class="lineno">', '<!-- <td class="rouge-gutter gl"><pre class="lineno">' -%}
16
- {%- assign content = content | replace: '</td><td class="rouge-code">', '</td> --><td class="rouge-code">' -%}
17
- {%- endif -%}
18
-
19
- {{- content | strip_html | newline_to_br | replace: '<br />', ' ' | strip_newlines -}}
20
- {%- endif -%}
21
- {%- endcapture -%}
22
-
23
- {%- if include.json -%}
24
- {%- assign description = description | jsonify -%}
25
- {%- else -%}
26
- {%- assign max_length = include.max_length | default: 200 -%}
27
- {%- assign description = description | strip | truncate: max_length -%}
28
- {%- endif -%}
29
-
30
- {{- description -}}