jekyll-theme-twail 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +41 -0
  4. data/_config.yml +98 -0
  5. data/_includes/analytics-providers/custom.html +3 -0
  6. data/_includes/analytics-providers/google-gtag.html +9 -0
  7. data/_includes/analytics-providers/google-universal.html +7 -0
  8. data/_includes/analytics-providers/google.html +14 -0
  9. data/_includes/analytics.html +13 -0
  10. data/_includes/comments-providers/custom.html +3 -0
  11. data/_includes/comments-providers/disqus.html +16 -0
  12. data/_includes/comments-providers/utterances.html +11 -0
  13. data/_includes/comments.html +8 -0
  14. data/_includes/footer.html +6 -0
  15. data/_includes/head.html +19 -0
  16. data/_includes/head__seo.html +101 -0
  17. data/_includes/pager.html +38 -0
  18. data/_includes/postlist.html +37 -0
  19. data/_includes/profile.html +32 -0
  20. data/_includes/tagnav.html +10 -0
  21. data/_layouts/autopage_tags.html +5 -0
  22. data/_layouts/default.html +30 -0
  23. data/_layouts/home.html +5 -0
  24. data/_layouts/post.html +50 -0
  25. data/_sass/_custom.scss +4 -0
  26. data/_sass/_variables.scss +144 -0
  27. data/_sass/components/_comments.scss +10 -0
  28. data/_sass/components/_footer.scss +20 -0
  29. data/_sass/components/_pager.scss +39 -0
  30. data/_sass/components/_postlist.scss +76 -0
  31. data/_sass/components/_profile.scss +71 -0
  32. data/_sass/components/_tagnav.scss +46 -0
  33. data/_sass/main.scss +56 -0
  34. data/_sass/pages/_deafult.scss +41 -0
  35. data/_sass/pages/_post.scss +87 -0
  36. data/_sass/vendors/_buttons.scss +95 -0
  37. data/_sass/vendors/_forms.scss +360 -0
  38. data/_sass/vendors/_markdown-body.scss +960 -0
  39. data/_sass/vendors/_mixins.scss +37 -0
  40. data/_sass/vendors/_notices.scss +92 -0
  41. data/_sass/vendors/_syntax.scss +348 -0
  42. data/assets/css/styles.scss +5 -0
  43. data/assets/images/500x300.png +0 -0
  44. data/assets/images/avatar.png +0 -0
  45. data/assets/images/jekyll-theme-twail.png +0 -0
  46. data/assets/images/unsplash-image-1.jpg +0 -0
  47. data/assets/images/unsplash-image-2.jpg +0 -0
  48. data/assets/images/unsplash-image-3.jpg +0 -0
  49. data/assets/images/unsplash-image-4.jpg +0 -0
  50. metadata +148 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f71f5b9f7ed34e39a73710d91dd45f22ed44a16c222d2fd8a4b47d1cc143ca00
4
+ data.tar.gz: e70dbc8e495b439b6ada3dce5fb8d1b286041b0872e4bb19a014efe2b3d418c6
5
+ SHA512:
6
+ metadata.gz: 562f7f11cbd211f2881e751df402f1279e264233c34258b189bdb0f811b88b749c5ad8ae86214901a42317249c68bd0c6e4263c88c1f6f8d3eee95c003a0a3db
7
+ data.tar.gz: 7c87f44c83cb03e0f75a5459a526325bfe2874f10adfbc7fc2cf4e63fe6214c1037e8790c2ea359f4f78f3e2a4a4493b226b7c030bd572b0609bfd8c67c37474
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2022 leetaewook
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,41 @@
1
+ # Jekyll theme Twail
2
+ Card style Jekyll theme for blog.
3
+
4
+ ![jekyll-theme-twail](https://user-images.githubusercontent.com/72855455/149628922-61eaf762-6aba-4bbb-9ee0-f43f49bb8360.png)
5
+
6
+ <br>
7
+
8
+ ## Demo
9
+ [Demo site](https://leetaewook.github.io/jekyll-theme-twail/)
10
+
11
+ <br>
12
+
13
+ ## Installation
14
+ This theme uses [jekyll-paginate-v2](https://github.com/sverrirs/jekyll-paginate-v2), which is not natively supported by Github Pages.
15
+ But don't worry. You can still easily deploy to Github Pages.
16
+
17
+ ### How to Install
18
+ 1. You will need Ruby and Jekyll. [Install Ruby and Jekyll](https://jekyllrb.com/docs/installation/).
19
+ 2. Fork [this repo](https://github.com/leetaewook/jekyll-theme-twail).
20
+ 3. Write your own posts, and make your own settings in `_config.yml`.
21
+ ```yaml
22
+ title: "Jekyll theme Twail"
23
+ description: "Card stlye Jekyll theme for blog"
24
+
25
+ baseurl: # TODO: If your Github Pages URL is https://usename.github.io/SOMETHING/, baseurl should be set to "/SOMETHING"
26
+ ```
27
+ 4. Change `Rakefile`.
28
+ ```ruby
29
+ # TODO: Write your Github Repository name
30
+ GITHUB_REPONAME="github-user-name/repo-name"
31
+ ```
32
+ 5. Run command `rake publish`.
33
+ 6. Change your Github Pages settings to use branch `gh-pages`.
34
+
35
+ <br>
36
+
37
+ ## References
38
+
39
+ - [minimal-mistakes](https://github.com/mmistakes/minimal-mistakes)
40
+ - [hugo-theme-stack](https://github.com/CaiJimmy/hugo-theme-stack)
41
+ - [github-markdown-css](https://github.com/sindresorhus/github-markdown-css)
data/_config.yml ADDED
@@ -0,0 +1,98 @@
1
+ # Site settings
2
+ title: 'Jeykll theme Twail'
3
+ description: 'Card style Jekyll theme for blog'
4
+ title_seperator: '-' # "-" (default), "|", ...
5
+ locale: null # null (default), en-US, zh-CN, ...
6
+ date_format: # "%B %-d, %Y" (default), "%Y. %m. %d", ... https://www.shortcutfoo.com/app/dojos/ruby-date-format-strftime/cheatsheet
7
+ footer_copyright: '&copy; 2022~ Twail demo site'
8
+ og_image: 'assets/images/jekyll-theme-twail.png' # Default OpenGraph Image
9
+ baseurl: '/jekyll-theme-twail' # TODO: If your Github Pages URL is https://usename.github.io/SOMETHING/, baseurl should be set to "/SOMETHING"
10
+
11
+ # Profile
12
+ profile:
13
+ name: 'Twail'
14
+ description: 'Card style Jekyll theme for blog'
15
+ avatar: 'assets/images/avatar.png'
16
+ socials:
17
+ github: 'https://github.com/leetaewook/jekyll-theme-twail'
18
+ twitter: 'https://twitter.com/'
19
+ facebook: 'https://facebook.com/'
20
+ instagram: 'https://instagram.com/'
21
+ youtube: 'https://youtube.com/'
22
+
23
+ # Comments
24
+ comments:
25
+ provider: false # false (default), "utterances", "disqus"
26
+ utterances:
27
+ repo: # "github_username/repo_name"
28
+ theme: # "github-light" (default), "github-dark", "preferred-color-scheme", "github-dark-orange", "icy-dark", "dark-blue", "photon-dark", "boxy-light", "gruvbox-dark"
29
+ issue_term: # "pathname" (default)
30
+ label: # null (default), Yout github repo issue label
31
+ disqus:
32
+ shortname:
33
+
34
+ # SEO Related
35
+ google_site_verification:
36
+ bing_site_verification:
37
+ naver_site_verification:
38
+ yandex_site_verification:
39
+ baidu_site_verification:
40
+
41
+ # Analytics
42
+ analytics:
43
+ provider: false # false (default), "google", "google-universal", "google-gtag"
44
+ google:
45
+ tracking_id:
46
+ anonymize_ip: # true, false (default)
47
+
48
+ # Your post default values
49
+ defaults:
50
+ - values:
51
+ layout: post
52
+ comments: true
53
+
54
+ permalink: /:title # "/:title", ":year:month:day/:title", ... https://jekyllrb.com/docs/permalinks/
55
+
56
+ # Pagination
57
+ pagination:
58
+ enabled: true
59
+ per_page: 4 # Posts per page
60
+ permalink: '/page:num/'
61
+ limit: 0
62
+ sort_field: 'date'
63
+ sort_reverse: true
64
+ trail:
65
+ before: 2
66
+ after: 2
67
+
68
+ autopages:
69
+ enabled: true
70
+ collections:
71
+ enabled: false
72
+ categories:
73
+ enabled: false
74
+ tags:
75
+ enabled: true
76
+ layouts:
77
+ - autopage_tags.html
78
+
79
+ markdown: kramdown
80
+ highlighter: rouge
81
+ lsi: false
82
+ excerpt_separator: "\n\n"
83
+ incremental: false
84
+
85
+ kramdown:
86
+ input: GFM
87
+ hard_wrap: false
88
+ auto_ids: true
89
+ footnote_nr: 1
90
+ entity_output: as_char
91
+ toc_levels: 1..6
92
+ smart_quotes: lsquo,rsquo,ldquo,rdquo
93
+ enable_coderay: false
94
+
95
+ plugins:
96
+ - jekyll-paginate-v2
97
+ - jekyll-sitemap
98
+ - jekyll-gist
@@ -0,0 +1,3 @@
1
+ <!-- start custom analytics snippet -->
2
+
3
+ <!-- end custom analytics snippet -->
@@ -0,0 +1,9 @@
1
+ <!-- Global site tag (gtag.js) - Google Analytics -->
2
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.analytics.google.tracking_id }}"></script>
3
+ <script>
4
+ window.dataLayer = window.dataLayer || [];
5
+ function gtag(){dataLayer.push(arguments);}
6
+ gtag('js', new Date());
7
+
8
+ gtag('config', '{{ site.analytics.google.tracking_id }}', { 'anonymize_ip': {{ site.analytics.google.anonymize_ip | default: false }}});
9
+ </script>
@@ -0,0 +1,7 @@
1
+ <script>
2
+ window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;
3
+ ga('create','{{ site.analytics.google.tracking_id }}','auto');
4
+ ga('set', 'anonymizeIp', {{ site.analytics.google.anonymize_ip | default: false }});
5
+ ga('send','pageview')
6
+ </script>
7
+ <script src="https://www.google-analytics.com/analytics.js" async></script>
@@ -0,0 +1,14 @@
1
+ <script>
2
+ var _gaq = _gaq || [];
3
+ _gaq.push(['_setAccount', '{{ site.analytics.google.tracking_id }}']);
4
+ {% if site.analytics.google.anonymize_ip == true %}
5
+ _gaq.push(['_gat._anonymizeIp']);
6
+ {% endif %}
7
+ _gaq.push(['_trackPageview']);
8
+
9
+ (function() {
10
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
11
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
12
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
13
+ })();
14
+ </script>
@@ -0,0 +1,13 @@
1
+
2
+ {% if jekyll.environment == 'production' and site.analytics.provider and page.analytics != false %}
3
+ {% case site.analytics.provider %}
4
+ {% when "google" %}
5
+ {% include analytics-providers/google.html %}
6
+ {% when "google-universal" %}
7
+ {% include analytics-providers/google-universal.html %}
8
+ {% when "google-gtag" %}
9
+ {% include analytics-providers/google-gtag.html %}
10
+ {% when "custom" %}
11
+ {% include analytics-providers/custom.html %}
12
+ {% endcase %}
13
+ {% endif %}
@@ -0,0 +1,3 @@
1
+ <!-- start custom comments snippet -->
2
+
3
+ <!-- end custom comments snippet -->
@@ -0,0 +1,16 @@
1
+ {% if site.comments.disqus.shortname %}
2
+ <div id="disqus_thread"></div>
3
+ <script>
4
+ var disqus_config = function () {
5
+ this.page.url = "{{ page.url | absolute_url }}"; /* Replace PAGE_URL with your page's canonical URL variable */
6
+ this.page.identifier = "{{ page.id }}"; /* Replace PAGE_IDENTIFIER with your page's unique identifier variable */
7
+ };
8
+ (function() { /* DON'T EDIT BELOW THIS LINE */
9
+ var d = document, s = d.createElement('script');
10
+ s.src = 'https://{{ site.comments.disqus.shortname }}.disqus.com/embed.js';
11
+ s.setAttribute('data-timestamp', +new Date());
12
+ (d.head || d.body).appendChild(s);
13
+ })();
14
+ </script>
15
+ <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
16
+ {% endif %}
@@ -0,0 +1,11 @@
1
+ <script src="https://utteranc.es/client.js"
2
+ repo="{{ site.comments.utterances.repo }}"
3
+ issue-term="{{ site.comments.utterances.issue_term | default: 'pathname' }}"
4
+ theme="{{ site.comments.utterances.theme | default: 'github-light' }}"
5
+ crossorigin="anonymous"
6
+ async
7
+ {% if site.comments.utterances.label %}
8
+ label="{{ site.comments.utterances.label }}"
9
+ {% endif %}
10
+ >
11
+ </script>
@@ -0,0 +1,8 @@
1
+ {% case site.comments.provider %}
2
+ {% when "utterances" %}
3
+ {% include comments-providers/utterances.html %}
4
+ {% when "disqus" %}
5
+ {% include comments-providers/disqus.html %}
6
+ {% when "custom" %}
7
+ {% include comments-providers/custom.html %}
8
+ {% endcase %}
@@ -0,0 +1,6 @@
1
+ <footer class="footer">
2
+ {% if site.footer_copyright %}
3
+ <section class="copyright">{{ site.footer_copyright }}</section>
4
+ {% endif %}
5
+ <section class="powerby">Powered by <a href="https://jekyllrb.com/">Jekyll</a> & <a href="https://github.com/leetaewook/jekyll-theme-twail">Twail theme</a></section>
6
+ </footer>
@@ -0,0 +1,19 @@
1
+ {% assign title_separator = site.title_separator | default: '-' | replace: '|', '&#124;' %}
2
+
3
+ {% if paginator %}
4
+ {% assign title = site.title %}
5
+ {% else %}
6
+ {% assign title = page.title | append: " " | append: title_separator | append: " " | append: site.title %}
7
+ {% endif %}
8
+ {% assign title = title | markdownify | strip_html | strip_newlines | escape_once %}
9
+
10
+ <head>
11
+ <meta charset="UTF-8" />
12
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
13
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
14
+
15
+ {% include head__seo.html %}
16
+
17
+ <link rel="stylesheet" href="{{ '/assets/css/styles.css' | relative_url }}" />
18
+ <link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
19
+ </head>
@@ -0,0 +1,101 @@
1
+ {% assign title_separator = site.title_separator | default: '-' | replace: '|', '&#124;' %}
2
+
3
+ {% if site.url %}
4
+ {% assign seo_url = site.url | append: site.baseurl %}
5
+ {% endif %}
6
+
7
+ {% if paginator %}
8
+ {% assign seo_title = site.title %}
9
+ {% else %}
10
+ {% assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title %}
11
+ {% endif %}
12
+ {% assign seo_title = title | markdownify | strip_html | strip_newlines | escape_once %}
13
+
14
+ {% if page.canonical_url %}
15
+ {% assign canonical_url = page.canonical_url %}
16
+ {% else %}
17
+ {% assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
18
+ {% endif %}
19
+
20
+ {% assign seo_description = page.description | default: page.excerpt | default: site.description -%}
21
+ {% if seo_description %}
22
+ {% assign seo_description = seo_description | markdownify | strip_html | newline_to_br | strip_newlines | replace: '<br />', ' ' | escape_once | strip %}
23
+ {% endif %}
24
+
25
+ {% if page.cover %}
26
+ {% assign og_image = page.cover | absolute_url %}
27
+ {% elsif site.og_image %}
28
+ {% assign og_image = site.og_image | absolute_url %}
29
+ {% endif %}
30
+ {% assign og_image = og_image | escape %}
31
+
32
+ {% if page.date %}
33
+ {% assign og_type = "article" %}
34
+ {% else %}
35
+ {% assign og_type = "website" %}
36
+ {% endif %}
37
+
38
+ <title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
39
+
40
+ <meta name="description" content="{{ seo_description }}">
41
+
42
+ {% if page.tags and page.tags.size > 0 %}
43
+ <meta name="keywords" content="{{ page.tags | join: ','}}">
44
+ {% endif %}
45
+
46
+ {% if profile.name %}
47
+ <meta name="author" content="{{ profile.name | default: author }}">
48
+ {% if og_type == "article" %}
49
+ <meta property="article:author" content="{{ profile.name | default: author }}">
50
+ {% endif %}
51
+ {% endif %}
52
+
53
+ <meta property="og:title" content="{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}">
54
+ <meta property="og:description" content="{{ seo_description }}">
55
+ <meta property="og:site_name" content="{{ site.title }}">
56
+ <meta property="og:url" content="{{ canonical_url }}">
57
+ <meta property="og:type" content="{{ og_type }}">
58
+
59
+ {% if site.locale %}
60
+ <meta property="og:locale" content="{{ site.locale | replace: "-", "_" }}">
61
+ {% endif %}
62
+
63
+ {% if og_image %}
64
+ <meta property="og:image" content="{{ og_image }}">
65
+ {% endif %}
66
+
67
+ {% if page.date %}
68
+ <meta property="article:published_time" content="{{ page.date | date_to_xmlschema }}">
69
+ {% endif %}
70
+
71
+ {% if og_type == "article" and page.last_modified_at %}
72
+ <meta property="article:modified_time" content="{{ page.last_modified_at | date_to_xmlschema }}">
73
+ {% endif %}
74
+
75
+ <link rel="canonical" href="{{ canonical_url }}">
76
+
77
+ {% if paginator.previous_page %}
78
+ <link rel="prev" href="{{ paginator.previous_page_path | absolute_url }}">
79
+ {% endif %}
80
+ {% if paginator.next_page %}
81
+ <link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
82
+ {% endif %}
83
+
84
+ {% if site.google_site_verification %}
85
+ <meta name="google-site-verification" content="{{ site.google_site_verification }}" />
86
+ {% endif %}
87
+ {% if site.bing_site_verification %}
88
+ <meta name="msvalidate.01" content="{{ site.bing_site_verification }}">
89
+ {% endif %}
90
+ {% if site.alexa_site_verification %}
91
+ <meta name="alexaVerifyID" content="{{ site.alexa_site_verification }}">
92
+ {% endif %}
93
+ {% if site.yandex_site_verification %}
94
+ <meta name="yandex-verification" content="{{ site.yandex_site_verification }}">
95
+ {% endif %}
96
+ {% if site.naver_site_verification %}
97
+ <meta name="naver-site-verification" content="{{ site.naver_site_verification }}">
98
+ {% endif %}
99
+ {% if site.baidu_site_verification %}
100
+ <meta name="baidu-site-verification" content="{{ site.baidu_site_verification }}">
101
+ {% endif %}
@@ -0,0 +1,38 @@
1
+ {% assign pageurl = page.url | remove: 'index.html' %}
2
+ {% assign trail_first_page = paginator.page_trail[0].num %}
3
+ {% assign trail_last_page = paginator.page_trail[-1].num %}
4
+
5
+ {% if paginator.total_pages > 1 %}
6
+ <ul class="pager">
7
+ {% if paginator.first_page %}
8
+ <li class="pager__item{% if pageurl == paginator.first_page_path %} selected{% endif %}">
9
+ <a class="pager__link" href="{{ paginator.first_page_path | prepend: site.baseurl | replace: '//', '/' }}">1</a>
10
+ </li>
11
+ {% endif %}
12
+
13
+ {% if trail_first_page > paginator.first_page %}
14
+ <li class="pager__item disabled"><span class="pager__link">…</span></li>
15
+ {% endif %}
16
+
17
+ {% if paginator.page_trail %}
18
+ {% for trail in paginator.page_trail %}
19
+ {% assign path = trail.path | remove: 'index.html' %}
20
+ {% if path != paginator.first_page_path and path != paginator.last_page_path %}
21
+ <li class="pager__item{% if page.url == trail.path %} selected{% endif %}">
22
+ <a class="pager__link" href="{{ trail.path | prepend: site.baseurl | replace: '//', '/' }}" title="{{trail.title}}">{{ trail.num }}</a>
23
+ </li>
24
+ {% endif %}
25
+ {% endfor %}
26
+ {% endif %}
27
+
28
+ {% if trail_last_page < paginator.last_page %}
29
+ <li class="pager__item disabled"><span class="pager__link">…</span></li>
30
+ {% endif %}
31
+
32
+ {% if paginator.last_page %}
33
+ <li class="pager__item{% if pageurl == paginator.last_page_path %} selected{% endif %}">
34
+ <a class="pager__link" href="{{ paginator.last_page_path | prepend: site.baseurl | replace: '//', '/' }}">{{ paginator.last_page }}</a>
35
+ </li>
36
+ {% endif %}
37
+ </ul>
38
+ {% endif %}
@@ -0,0 +1,37 @@
1
+ {% assign date_format = site.date_format | default: "%B %-d, %Y" %}
2
+
3
+ <section class="postlist">
4
+ {% for post in paginator.posts %}
5
+
6
+ {% if post.description %}
7
+ {% assign description = post.description | markdownify | strip_html | truncatewords: 48 %}
8
+ {% elsif post.description != false %}
9
+ {% assign description = post.content | markdownify | strip_html | truncatewords: 48 %}
10
+ {% endif %}
11
+
12
+ <article class="post">
13
+ <a href="{{ post.url | relative_url }}">
14
+ {% if post.cover %}
15
+ <div class="post-cover">
16
+ <img src="{{ post.cover | relative_url }}">
17
+ </div>
18
+ {% endif %}
19
+ <div class="post-details">
20
+ {% if post.tags and post.tags.size > 0 %}
21
+ <ul class="post-tags">
22
+ {% for tag in post.tags %}
23
+ <li><h4 class="post-tag">{{ tag }}</h4></li>
24
+ {% endfor %}
25
+ </ul>
26
+ {% endif %}
27
+ <h1 class="post-title">{{ post.title | markdownify | strip_html | truncatewords: 32 }}</h1>
28
+ <h2 class="post-description">{{ description }}</h2>
29
+ <div class="post-time">
30
+ <i class="ri-calendar-line"></i>
31
+ <time>{{ post.date | date: date_format }}</time>
32
+ </div>
33
+ </div>
34
+ </a>
35
+ </article>
36
+ {% endfor %}
37
+ </section>
@@ -0,0 +1,32 @@
1
+ <header class="profile">
2
+ <figure class="profile__avatar">
3
+ {% if site.profile.avatar %}
4
+ <a href="{{ '/' | relative_url }}"><img src="{{ site.profile.avatar | relative_url }}" loading="lazy" {% if site.title %}alt="{{ site.title }}"{% endif %} /></a>
5
+ {% endif %}
6
+ </figure>
7
+ <div>
8
+ <div>
9
+ <a href="{{ '/' | relative_url }}">
10
+ <h1 class="profile__name">{{ site.profile.name }}</h1>
11
+ <h2 class="profile__description">{{ site.profile.description }}</h2>
12
+ </a>
13
+ </div>
14
+ <ul class="profile__socials">
15
+ {% if site.profile.socials.github %}
16
+ <li><a href="{{ site.profile.socials.github }}" target="_blank"><i class="ri-github-fill"></i></a></li>
17
+ {% endif %}
18
+ {% if site.profile.socials.twitter %}
19
+ <li><a href="{{ site.profile.socials.github }}" target="_blank"><i class="ri-twitter-fill"></i></a></li>
20
+ {% endif %}
21
+ {% if site.profile.socials.facebook %}
22
+ <li><a href="{{ site.profile.socials.github }}" target="_blank"><i class="ri-facebook-fill"></i></a></li>
23
+ {% endif %}
24
+ {% if site.profile.socials.instagram %}
25
+ <li><a href="{{ site.profile.socials.github }}" target="_blank"><i class="ri-instagram-fill"></i></a></li>
26
+ {% endif %}
27
+ {% if site.profile.socials.youtube %}
28
+ <li><a href="{{ site.profile.socials.github }}" target="_blank"><i class="ri-youtube-fill"></i></a></li>
29
+ {% endif %}
30
+ </ul>
31
+ </div>
32
+ </header>
@@ -0,0 +1,10 @@
1
+ <section class="tagnav">
2
+ <h2 class="tagnav__title"><i class="ri-price-tag-3-line"></i><span>TAGS</span></h2>
3
+ <nav class="tagnav__wrapper">
4
+ {% for page in site.pages %}
5
+ {% if page.title and page.autogen == nil and page.autopage != nil %}
6
+ <a class="tagnav__item" href="{{ page.url | relative_url }}">{{ page.autopage.display_name }}</a>
7
+ {% endif %}
8
+ {% endfor %}
9
+ </nav>
10
+ </section>
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% include postlist.html %}
@@ -0,0 +1,30 @@
1
+ {% if page.layout == 'home' %}
2
+ {% assign section_title = "All posts" %}
3
+ {% elsif page.autopages %}
4
+ {% assign section_title = page.autopages.display_name %}
5
+ {% endif %}
6
+
7
+ <!DOCTYPE html>
8
+ <html {% if site.locale %}lang="{{ site.locale }}"{% endif %}>
9
+ {% include head.html %}
10
+
11
+ <body>
12
+ <div class="main-container{% if page.layout == 'post' %} post{% endif %}">
13
+ <aside class="main-container__aside">
14
+ {% include profile.html %}
15
+ {% include tagnav.html %}
16
+ </aside>
17
+ <div class="content">
18
+ {% if section_title %}
19
+ <h3 class="section-title">{{section_title}}</h3>
20
+ {% endif %}
21
+ <main>{{ content }}</main>
22
+ {% include pager.html %}
23
+ {% include footer.html %}
24
+ </div>
25
+ </div>
26
+
27
+ {% include analytics.html %}
28
+
29
+ </body>
30
+ </html>
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% include postlist.html %}
@@ -0,0 +1,50 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {% assign date_format = site.date_format | default: "%B %-d, %Y" %}
6
+
7
+ <article class="post-container">
8
+ {% if page.cover %}
9
+ <section class="post-cover">
10
+ <a href="{{ page.url | relative_url }}"><img src="{{ page.cover | relative_url }}"></a>
11
+ </section>
12
+ {% endif %}
13
+
14
+ <header class="post-summary">
15
+ {% if page.tags and page.tags.size > 0 %}
16
+ <ul class="post-tags">
17
+ {% for tag in page.tags %}
18
+ <li><h4 class="post-tag">{{ tag }}</h4></li>
19
+ {% endfor %}
20
+ </ul>
21
+ {% endif %}
22
+
23
+ {% if page.title %}
24
+ <h1 class="post-title">{{ page.title | markdownify | strip_html }}</h1>
25
+ {% endif %}
26
+
27
+ {% if page.description %}
28
+ <h2 class="post-description">{{ page.description | markdownify | strip_html }}</h2>
29
+ {% endif %}
30
+
31
+ {% if page.date %}
32
+ <div class="post-time">
33
+ <i class="ri-calendar-line"></i>
34
+ <time>{{ page.date | date: date_format }}</time>
35
+ </div>
36
+ {% endif %}
37
+
38
+ </header>
39
+
40
+ <section class="post-content markdown-body">
41
+ {{ content }}
42
+ </section>
43
+
44
+ </article>
45
+
46
+ {% if page.comments and site.comments.provider %}
47
+ <section class="comments-container">
48
+ {% include comments.html %}
49
+ </section>
50
+ {% endif %}
@@ -0,0 +1,4 @@
1
+ @import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard-dynamic-subset.css');
2
+
3
+ $font-main: Pretendard, -apple-system, BlinkMacSystemFont, system-ui, Roboto, 'Helvetica Neue', 'Segoe UI',
4
+ 'Apple SD Gothic Neo', 'Noto Sans KR', 'Malgun Gothic', sans-serif;