rawfeed 0.1.4 → 0.2.0

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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +20 -21
  3. data/README.md +12 -130
  4. data/_data/options.yml +270 -0
  5. data/_data/resume.yml +8 -8
  6. data/_includes/alert +3 -1
  7. data/_includes/chart +13 -32
  8. data/_includes/details +1 -57
  9. data/_includes/image +12 -4
  10. data/_includes/layout/blog_search.html +6 -4
  11. data/_includes/layout/data.liquid +21 -3
  12. data/_includes/layout/disqus.html +12 -26
  13. data/_includes/layout/footer.html +33 -17
  14. data/_includes/layout/giscus.html +27 -19
  15. data/_includes/layout/head.html +41 -41
  16. data/_includes/layout/header.html +127 -101
  17. data/_includes/layout/maintenance.html +6 -10
  18. data/_includes/layout/paginator.html +6 -4
  19. data/_includes/socials +7 -5
  20. data/_includes/tabs +1 -94
  21. data/_includes/toc +11 -194
  22. data/_includes/video +4 -1
  23. data/_layouts/blog.html +8 -7
  24. data/_layouts/contact.html +90 -196
  25. data/_layouts/default.html +42 -341
  26. data/_layouts/error.html +6 -4
  27. data/_layouts/home.html +45 -36
  28. data/_layouts/licenses.html +10 -0
  29. data/_layouts/page.html +4 -4
  30. data/_layouts/pixel.html +48 -0
  31. data/_layouts/pixels.html +71 -1
  32. data/_layouts/post.html +28 -29
  33. data/_layouts/resume.html +41 -34
  34. data/_layouts/tag.html +14 -3
  35. data/_layouts/tag_posts.html +3 -3
  36. data/_sass/base/_index.scss +39 -3
  37. data/_sass/components/_badges.scss +10 -0
  38. data/_sass/components/_markdown.scss +8 -5
  39. data/_sass/includes/_footer.scss +5 -2
  40. data/_sass/includes/_header.scss +23 -19
  41. data/_sass/includes/_highlight.scss +20 -7
  42. data/_sass/includes/_maintenance.scss +2 -3
  43. data/_sass/includes/_terminal.scss +35 -12
  44. data/_sass/layouts/_blog.scss +13 -9
  45. data/_sass/layouts/_contact.scss +6 -5
  46. data/_sass/layouts/_default.scss +5 -5
  47. data/_sass/layouts/_index.scss +3 -0
  48. data/_sass/layouts/_licenses.scss +7 -0
  49. data/_sass/layouts/_page.scss +1 -0
  50. data/_sass/layouts/_pixel.scss +61 -0
  51. data/_sass/layouts/_pixels.scss +86 -0
  52. data/_sass/layouts/_post.scss +4 -11
  53. data/_sass/layouts/_resume.scss +16 -3
  54. data/_sass/layouts/_tag-posts.scss +1 -2
  55. data/_sass/layouts/_tag.scss +12 -1
  56. data/_sass/main.scss +16 -1
  57. data/_sass/theme/_dark.scss +8 -1
  58. data/_sass/theme/_light.scss +8 -1
  59. data/assets/images/blog/.keep +0 -0
  60. data/assets/images/pixels/luffy.jpg +0 -0
  61. data/assets/js/blog.coffee +102 -0
  62. data/assets/js/contact.coffee +105 -0
  63. data/assets/js/default.coffee +172 -0
  64. data/assets/js/discus.coffee +30 -0
  65. data/assets/js/fallback/README.md +3 -0
  66. data/assets/js/fallback/blog.js +113 -0
  67. data/assets/js/fallback/contact.js +116 -0
  68. data/assets/js/{default.js → fallback/default.js} +50 -0
  69. data/assets/js/fallback/discus.js +32 -0
  70. data/{_includes/layout/google_analytics.html → assets/js/fallback/google_analytics.js} +7 -3
  71. data/assets/js/fallback/home.js +275 -0
  72. data/assets/js/fallback/no_inframe.js +4 -0
  73. data/assets/js/fallback/page.js +423 -0
  74. data/assets/js/fallback/pixels.js +1 -0
  75. data/assets/js/fallback/resume.js +13 -0
  76. data/assets/js/fallback/tags.js +1 -0
  77. data/{_includes/layout/capture_scripts.liquid → assets/js/fallback/theme_load.js} +0 -2
  78. data/assets/js/google_analytics.coffee +24 -0
  79. data/assets/js/home.coffee +250 -0
  80. data/assets/js/no_inframe.coffee +9 -0
  81. data/assets/js/page.coffee +379 -0
  82. data/assets/js/pixels.coffee +2 -0
  83. data/assets/js/resume.coffee +9 -0
  84. data/assets/js/tags.coffee +2 -0
  85. data/assets/js/theme_load.coffee +6 -0
  86. data/assets/json/blog_search.json +2 -2
  87. data/lib/rawfeed/author.rb +59 -0
  88. data/lib/rawfeed/csp_filters.rb +3 -0
  89. data/lib/rawfeed/draft.rb +1 -1
  90. data/lib/rawfeed/layout.rb +7 -0
  91. data/lib/rawfeed/page.rb +2 -2
  92. data/lib/rawfeed/pixel.rb +32 -0
  93. data/lib/rawfeed/post.rb +2 -2
  94. data/lib/rawfeed/resume.rb +1 -0
  95. data/lib/rawfeed/typescript_liquid.rb +172 -0
  96. data/lib/rawfeed/utils.rb +1 -0
  97. data/lib/rawfeed/version.rb +1 -1
  98. data/lib/rawfeed/with_class.rb +20 -0
  99. data/lib/rawfeed.rb +5 -1
  100. metadata +44 -12
  101. data/assets/js/avatar.js +0 -59
  102. data/assets/js/terminal.js +0 -18
@@ -6,138 +6,164 @@
6
6
  {%- if item.scope.path == "_posts" -%}
7
7
  {%- assign blog_page = item.values.published -%}
8
8
  {%- endif -%}
9
+ {%- if item.scope.path == "_pixels" -%}
10
+ {%- assign pixels_page = item.values.published -%}
11
+ {%- endif -%}
9
12
  {%- endfor -%}
10
13
 
14
+ {%- assign menu_separator = default_.separator -%}
15
+
16
+ <!-- modal avatar -->
11
17
  <div class="modal fade" id="avatarModal" tabindex="-1" aria-hidden="true">
12
18
  <div class="modal-dialog modal-dialog-centered">
13
19
  <div class="modal-content bg-transparent border-0 shadow-none">
14
20
  <div class="modal-body d-flex justify-content-center">
15
- <img id="modalAvatar" class="avatar-img" src="" alt="">
21
+ <img id="modalAvatar" class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="" alt="">
16
22
  </div>
17
23
  </div>
18
24
  </div>
19
25
  </div>
26
+ <!-- modal avatar -->
20
27
 
21
- <header class="container header">
22
- <div class="header-wrapper">
23
- <div class="row ">
24
- <div class="col-sm-2 d-flex flex-column justify-content-end">
25
- <div class="container">
26
- <div class="row">
27
- {%- if index.layout == "blog" -%}
28
- <span>[&nbsp;<a class="{% if page.url == "/" or page.url == "/index.html" %}menu-active{% endif %}" href="{{home_url}}">{{ site.strings.menu.blog.title | default: "blog" | downcase }}</a>&nbsp;]</span>
29
- {%- else -%}
30
- <span>[&nbsp;{{site.strings.menu.home.emoji}}<a class="{% if page.url == "/" or page.url == "/index.html" %}menu-active{% endif %}" href="{{home_url}}">{{ site.strings.menu.home.title | default: "home" | downcase }}</a>&nbsp;]</span>
31
- {%- endif -%}
32
- </div>
33
- </div>
34
- </div>
35
- <div class="col-sm-8 d-flex flex-column justify-content-end">
36
- <div class="container">
37
- <div class="row">
38
- <span class="title">{{ site.title | default: theme_name }}</span>
39
- </div>
40
- <div class="row">
41
- <small class="description">
42
- {{ site.description | default: "A raw Jekyll theme for minimalists" }}
43
- </small>
44
- </div>
45
- </div>
46
- </div>
47
- <div class="col-sm-2 d-flex justify-content-end avatar">
48
- {%- assign images_ = site.static_files | map: "path" -%}
49
- {%- assign avatar_path_light = "/assets/images/" | append: site.avatar.image.front.light -%}
50
- {%- assign avatar_path_dark = "/assets/images/" | append: site.avatar.image.front.dark -%}
51
- {%- assign avatar_path_back = "/assets/images/" | append: site.avatar.image.back -%}
52
-
53
- {%- if images_ contains avatar_path_light and images_ contains avatar_path_dark and images_ contains avatar_path_back -%}
54
- <div class="avatar-wrapper">
55
-
56
- <div class="avatar-flipper light-theme {% if site.avatar.open %}avatar-flipper__open-true{% endif %}{% if site.avatar.flip %} can-flip{% endif %}">
57
- <div class="avatar-card">
58
- <div class="avatar-front">
59
- <img id="avatarImgLight" class="avatar-img" src="{{ avatar_path_light | relative_url }}" alt="{{ site.title }}">
60
- </div>
61
- <div class="avatar-back">
62
- <img class="avatar-img" src="{{ avatar_path_back | relative_url }}" alt="{{ site.title }}">
63
- </div>
28
+ <header class="header" style="max-width: {{ header_.width | default: "860" }}px !important; font-family: {{ default_.font.style }} !important; font-size: {{ default_.font.size }} !important; letter-spacing:{{ default_.font.spacing }} !important;">
29
+ <div class="row ">
30
+
31
+ <!-- column home -->
32
+ <div class="col-sm-3 d-flex flex-column justify-content-end header__column-home">
33
+ {%- if index.layout == "blog" -%}
34
+ <span>[{{ header_.menu.home.emoji | with_class: "spacer" }}<a class="{% if page.url == "/" or page.url == "/index.html" %}menu-active{% endif %}" href="{{home_url}}">{{ header_.menu.blog.title | default: "blog" | downcase }}</a>&nbsp;]</span>
35
+ {%- else -%}
36
+ <span>[{{ header_.menu.home.emoji | with_class: "spacer" }}<a class="{% if page.url == "/" or page.url == "/index.html" %}menu-active{% endif %}" href="{{home_url}}">{{ header_.menu.home.title | default: "home" | downcase }}</a>&nbsp;]</span>
37
+ {%- endif -%}
38
+ </div>
39
+ <!-- column home -->
40
+
41
+ <!-- column description -->
42
+ <div class="col-sm-6 d-flex flex-column justify-content-end">
43
+ <span class="title">{{ header_.title | default: theme_name }}</span>
44
+ <small class="description">
45
+ {{ header_.description | default: "A raw Jekyll theme for minimalists" }}
46
+ </small>
47
+ </div>
48
+ <!-- column description -->
49
+
50
+ <!-- column avatar -->
51
+ <div class="col-sm-3 d-flex justify-content-end avatar">
52
+ {%- assign images_ = site.static_files | map: "path" -%}
53
+ {%- assign avatar_path_light = "/assets/images/" | append: header_.avatar.image.front.light -%}
54
+ {%- assign avatar_path_dark = "/assets/images/" | append: header_.avatar.image.front.dark -%}
55
+ {%- assign avatar_path_back = "/assets/images/" | append: header_.avatar.image.back -%}
56
+
57
+ {%- if images_ contains avatar_path_light and images_ contains avatar_path_dark and images_ contains avatar_path_back -%}
58
+ <div class="avatar-wrapper">
59
+
60
+ <div class="avatar-flipper light-theme {% if header_.avatar.open %}avatar-flipper__open-true{% endif %}{% if header_.avatar.flip %} can-flip{% endif %}">
61
+ <div class="avatar-card">
62
+ <div class="avatar-front">
63
+ <img id="avatarImgLight" class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_light | relative_url }}" alt="{{ site_title }}">
64
+ </div>
65
+ <div class="avatar-back">
66
+ <img class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_back | relative_url }}" alt="{{ site_title }}">
64
67
  </div>
65
68
  </div>
69
+ </div>
66
70
 
67
- <div class="avatar-flipper dark-theme {% if site.avatar.open %} avatar-flipper__open-true{% endif %}{% if site.avatar.flip %} can-flip{% endif %}">
68
- <div class="avatar-card">
69
- <div class="avatar-front">
70
- <img id="avatarImgDark" class="avatar-img" src="{{ avatar_path_dark | relative_url }}" alt="{{ site.title }}">
71
- </div>
72
- <div class="avatar-back">
73
- <img class="avatar-img" src="{{ avatar_path_back | relative_url }}" alt="{{ site.title }}">
74
- </div>
71
+ <div class="avatar-flipper dark-theme {% if header_.avatar.open %} avatar-flipper__open-true{% endif %}{% if header_.avatar.flip %} can-flip{% endif %}">
72
+ <div class="avatar-card">
73
+ <div class="avatar-front">
74
+ <img id="avatarImgDark" class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_dark | relative_url }}" alt="{{ site_title }}">
75
+ </div>
76
+ <div class="avatar-back">
77
+ <img class="avatar-img{% if default_.rounding %} rounding{% endif %}" src="{{ avatar_path_back | relative_url }}" alt="{{ site_title }}">
75
78
  </div>
76
79
  </div>
77
-
78
80
  </div>
79
- {%- endif -%}
80
- </div>
81
+
82
+ </div>
83
+ {%- endif -%}
81
84
  </div>
85
+ <!-- column avatar -->
82
86
 
83
- <div class="menu-separator"></div>
87
+ </div>
88
+
89
+ <!-- row separator -->
90
+ <div class="row ">
91
+ <div class="col-sm d-flex justify-content-center">
92
+ <div class="line-separator"></div>
93
+ </div>
94
+ </div>
95
+ <!-- row separator -->
84
96
 
85
- <div class="row">
86
- <div class="col-sm d-flex justify-content-center column-bottom">
97
+ <!-- row menu -->
98
+ <div class="row">
99
+ <div class="col-sm d-flex justify-content-center menu">
87
100
  {%- if index.layout == "blog" -%}
88
- <span class="blog-menu">menu&nbsp;»
89
- &nbsp;{{site.strings.menu.search.emoji}}{%- if site.blog.search.enable -%}<a id="blog-search__btn" class="blog-menu__link" href="{{search_url}}">{{ site.strings.menu.search.title | default: "search" }}</a><strong>&nbsp;.&nbsp;</strong>{%- endif -%}<a class="blog-menu__link{% if page.url == "/blog/tags/" or page.url == "/blog/tags/index.html" %} menu-active{% endif %}" href="{{tags_url}}">{{ site.strings.menu.tags.title | default: "tags" }}</a><strong>&nbsp;.&nbsp;</strong>
90
- </span>
91
- {% assign sorted_pages = site.pages | sort: 'order' %}
92
- {%- for item in sorted_pages -%}
93
- {%- if item.path contains '_pages/' and item.published != false -%}
94
- {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
95
- <a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong>&nbsp;.&nbsp;</strong>
96
- {%- endunless -%}
97
- {%- endif -%}
98
- {%- endfor -%}
99
- <a class="blog-menu__link" href="{{feed_url}}">{{ site.strings.menu.feed | default: "feed" }}</a><strong>&nbsp;.&nbsp;</strong>
100
- {%- else index.layout == "home" -%}
101
- {%- if page.url contains "/blog/" -%}
102
- <span class="blog-menu">{{ site.strings.menu.blog.title }}&nbsp;»
103
- <a class="blog-menu__link{% if page.url == "/blog/" or page.url == "/blog/index.html" or page.url contains "/blog/page/" %} menu-active{% endif %}" href="{{blog_url}}">{{site.strings.menu.blog.emoji}}{{site.strings.menu.blog.subtitle}}</a><strong>&nbsp;.&nbsp;</strong>{%- if site.blog.search.enable -%}{{site.strings.menu.search.emoji}}<a id="blog-search__btn" class="blog-menu__link" href="{{search_url}}">{{ site.strings.menu.search.text | default: "search" }}</a><strong>&nbsp;.&nbsp;</strong>{%- endif -%}{{site.strings.menu.tags.emoji}}<a class="blog-menu__link{% if page.url == "/blog/tags/" or page.url == "/blog/tags/index.html" %} menu-active{% endif %}" href="{{tags_url}}">{{ site.strings.menu.tags.text | default: "tags" }}</a><strong>&nbsp;.&nbsp;</strong>{{site.strings.menu.feed.emoji}}<a class="blog-menu__link" href="{{feed_url}}">{{ site.strings.menu.feed.title | default: "feed" }}</a><strong>&nbsp;.&nbsp;</strong>
104
- </span>
105
- {%- else -%}
106
- {%- assign published_pages = site.pages | where_exp:"p","p.path contains '_pages/' and p.published" -%}
107
- {%- if published_pages.size > 0 -%}
108
- <span class="blog-menu">menu&nbsp;»</span>&nbsp;
109
- {%- endif -%}
110
- {%- if site.pagination.enabled == true -%}
111
- {%- if blog_page -%}
112
- {{ site.strings.menu.blog.emoji }}<a href="{{blog_url}}">{{ site.strings.menu.blog.title }}</a><strong>&nbsp;.&nbsp;</strong>
113
- {%- endif -%}
114
- {% assign sorted_pages = site.pages | sort: 'order' %}
115
- {%- for item in sorted_pages -%}
116
- {%- if item.path contains '_pages/' and item.in_menu -%}
117
- {%- unless item.url contains "blog" or item.url contains "404.html" -%}
118
- {{ item.emoji }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong>&nbsp;.&nbsp;</strong>
119
- {%- endunless -%}
120
- {%- endif -%}
121
- {%- endfor -%}
122
- {%- else -%}
123
- {% assign sorted_pages = site.pages | sort: 'order' %}
101
+ <div>
102
+ {{ header_.menu.title }}&nbsp;»&nbsp;<div class="menu-wrap-link">{{ header_.menu.blog.search.emoji | with_class: "spacer" }}{%- if blog_.search.enable -%}<a id="blog-search__btn" href="{{search_url}}">{{ header_.menu.blog.search.title | default: "search" }}</a><strong class="separator">{{menu_separator}}</strong>{%- endif -%}</div><div class="menu-wrap-link">{{ header_.menu.blog.tags.emoji | with_class: "spacer" }}<a class="{% if page.url == "/blog/tags/" or page.url == "/blog/tags/index.html" %} menu-active{% endif %}" href="{{tags_url}}">{{ header_.menu.blog.tags.title | default: "tags" }}</a><strong class="separator">{{menu_separator}}</strong></div>
103
+ {%- assign sorted_pages = site.pages | sort: 'order' -%}
124
104
  {%- for item in sorted_pages -%}
125
105
  {%- if item.path contains '_pages/' and item.published != false and item.in_menu -%}
126
106
  {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
127
- {{ item.emoji }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong>&nbsp;.&nbsp;</strong>
107
+ <div class="menu-wrap-link">{{ item.emoji | with_class: "spacer" }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong class="separator">{{menu_separator}}</strong></div>
128
108
  {%- endunless -%}
129
109
  {%- endif -%}
130
110
  {%- endfor -%}
131
- {%- endif -%}
111
+ <div class="menu-wrap-link">{{ header_.menu.blog.feed.emoji | with_class: "spacer" }}<a href="{{feed_url}}">{{ header_.menu.blog.feed.title | default: "feed" }}</a><strong class="separator">{{menu_separator}}</strong></div>
112
+ </div>
113
+ {%- else index.layout == "home" -%}
114
+ {%- if page.url contains "/blog/" -%}
115
+ <div>
116
+ {{ header_.menu.blog.title | replace: "/", "" | replace: "ls ", "" }}&nbsp;»
117
+ <div class="menu-wrap-link">{{ header_.menu.blog.emoji | with_class: "spacer" }}<a class="{% if page.url == "/blog/" or page.url == "/blog/index.html" or page.url contains "/blog/page/" %} menu-active{% endif %}" href="{{blog_url}}">{{ header_.menu.blog.subtitle }}</a><strong class="separator">{{menu_separator}}</strong></div>{%- if blog_.search.enable -%}<span style="display: inline-block;">{{ header_.menu.blog.search.emoji | with_class: "spacer" }}<a id="blog-search__btn" href="{{search_url}}">{{ header_.menu.blog.search.title | default: "search" }}</a><strong class="separator">{{menu_separator}}</strong></span>{%- endif -%}<div class="menu-wrap-link">{{ header_.menu.blog.tags.emoji | with_class: "spacer" }}<a class="{% if page.url == "/blog/tags/" or page.url == "/blog/tags/index.html" %} menu-active{% endif %}" href="{{tags_url}}">{{ header_.menu.blog.tags.title | default: "tags" }}</a><strong class="separator">{{menu_separator}}</strong></div><div class="menu-wrap-link">{{ header_.menu.blog.feed.emoji | with_class: "spacer" }}<a href="{{feed_url}}">{{ header_.menu.blog.feed.title | default: "feed" }}</a><strong class="separator">{{menu_separator}}</strong></div>
118
+ </div>
119
+ {%- else -%}
120
+ <div>
121
+ {%- assign published_pages = site.pages | where_exp:"p","p.path contains '_pages/' and p.published" -%}
122
+ {%- if published_pages.size > 0 -%}
123
+ <span>{{ header_.menu.title }}&nbsp;»</span>&nbsp;
124
+ {%- endif -%}
125
+ {%- if site.pagination.enabled == true -%}
126
+ {%- if blog_page -%}
127
+ <div class="menu-wrap-link">{{ header_.menu.blog.emoji | with_class: "spacer" }}<a href="{{blog_url}}">{{ header_.menu.blog.title | replace: "ls ", "" }}</a><strong class="separator">{{menu_separator}}</strong></div>
128
+ {%- endif -%}
129
+ {%- if pixels_page -%}
130
+ <div class="menu-wrap-link">{{ header_.menu.pixels.emoji | with_class: "spacer" }}<a href="{{pixels_url}}">{{ header_.menu.pixels.title }}</a><strong class="separator">{{menu_separator}}</strong></div>
131
+ {%- endif -%}{% assign sorted_pages = site.pages | sort: 'order' %}
132
+ {%- for item in sorted_pages -%}
133
+ {%- if item.path contains '_pages/' and item.in_menu -%}
134
+ {%- unless item.url contains "blog" or item.url contains "404.html" -%}
135
+ <div class="menu-wrap-link">{{ item.emoji | with_class: "spacer" }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong class="separator">{{menu_separator}}</strong></div>
136
+ {%- endunless -%}
137
+ {%- endif -%}
138
+ {%- endfor -%}
139
+ {%- else -%}
140
+ {%- if blog_page -%}
141
+ <div class="menu-wrap-link">{{ header_.menu.blog.emoji | with_class: "spacer" }}<a href="{{blog_url}}">{{ header_.menu.blog.title | replace: "/", "" }}</a><strong class="separator">{{menu_separator}}</strong></div>
142
+ {%- endif -%}
143
+ {%- if pixels_page -%}
144
+ <div class="menu-wrap-link">{{ header_.menu.pixels.emoji | with_class: "spacer" }}<a href="{{pixels_url}}">pixels</a><strong class="separator">{{menu_separator}}</strong></div>
145
+ {%- endif -%}{% assign sorted_pages = site.pages | sort: 'order' %}
146
+ {%- for item in sorted_pages -%}
147
+ {%- if item.path contains '_pages/' and item.published != false and item.in_menu -%}
148
+ {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
149
+ <div class="menu-wrap-link">{{ item.emoji | with_class: "spacer" }}<a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong class="separator">{{menu_separator}}</strong></div>
150
+ {%- endunless -%}
151
+ {%- endif -%}
152
+ {%- endfor -%}
153
+ {%- endif -%}
154
+ </div>
132
155
  {%- endif -%}
133
156
  {%- endif -%}
134
- </div>
135
157
  </div>
158
+ </div>
159
+ <!-- row menu -->
136
160
 
137
- <div class="row justify-content-end">
138
- <div class="col-sm-2 d-flex justify-content-end">
139
- <span id="toggle-theme"><i class="fa-solid fa-moon"></i></span>
140
- </div>
161
+ <!-- row button light/dark -->
162
+ <div class="row justify-content-end">
163
+ <div class="col-sm-2 d-flex justify-content-end">
164
+ <span id="toggle-theme"><i class="fa-solid fa-moon"></i></span>
141
165
  </div>
142
166
  </div>
167
+ <!-- row button light/dark -->
168
+
143
169
  </header>
@@ -1,27 +1,23 @@
1
1
  {% include layout/data.liquid %}
2
2
 
3
3
  <!DOCTYPE html>
4
- <html lang="{{ site.lang | default: 'en' }}">
4
+ <html lang="{{ default_.lang | default: 'en-US' }}" data-theme="light">
5
5
  {%- include layout/head.html -%}
6
6
  <body>
7
- <div class="mt-4 maintenance">
7
+ <div class="mt-4 maintenance" style="font-family: {{ default_.font.style }} !important; font-size: {{ default_.font.size }} !important; letter-spacing:{{ default_.font.spacing }} !important;">
8
8
  <div class="container">
9
- {%- if site.maintenance.gif != "" -%}
9
+ {%- if maintenance_.gif != "" -%}
10
10
  <div class="row">
11
11
  <div class="col-sm text-center">
12
- {%- if site.maintenance.gif == "local" -%}
13
- <img class="maintenance-gif" src="{{ '/assets/gifs/under_maintenance.gif' | relative_url }}" alt="under maintenance">
14
- {%- else -%}
15
- <img class="maintenance-gif" src="{{ site.maintenance.gif }}" alt="under maintenance">
16
- {%- endif -%}
12
+ <img class="maintenance-gif" src="{{ maintenance_.gif | relative_url }}" alt="under maintenance">
17
13
  </div>
18
14
  </div>
19
15
  {%- endif -%}
20
16
  <div class="row mt-5 text-center">
21
- <h1 class="maintenance-title">[&nbsp;{{ site.maintenance.title }}&nbsp;]</h1>
17
+ <h1 class="maintenance-title">[&nbsp;{{ maintenance_.title }}&nbsp;]</h1>
22
18
  </div>
23
19
  <div class="row text-center">
24
- <h3 class="maintenance-subtitle">{{ site.maintenance.subtitle }}</h3>
20
+ <h3 class="maintenance-subtitle">{{ maintenance_.subtitle | markdownify }}</h3>
25
21
  </div>
26
22
  </div>
27
23
  </div>
@@ -1,3 +1,5 @@
1
+ {% include layout/data.liquid %}
2
+
1
3
  {%- if page.pagination.enabled == true and site.pagination.enabled == true -%}
2
4
  {%- assign total_page = paginator.total_pages -%}
3
5
  {%- if total_page > 1 -%}
@@ -6,7 +8,7 @@
6
8
  {%- if paginator.previous_page -%}
7
9
  <li class="page-item">
8
10
  <a class="page-link blog-pagination__newer" href="{{ paginator.previous_page_path | prepend: site.baseurl | prepend: site.url }}">
9
- &larr;&nbsp;{{ site.strings.post.pagination.newer_text }}
11
+ &larr;&nbsp;{{ blog_.pagination.newer_text }}
10
12
  </a>
11
13
  </li>
12
14
  {%- endif -%}
@@ -14,9 +16,9 @@
14
16
  {%- if total_page > 1 -%}
15
17
  <li class="page-item">
16
18
  <span class="page-link blog-pagination__counter">
17
- [&nbsp;{{ site.strings.post.pagination.counter[0] }}
19
+ [&nbsp;{{ blog_.pagination.counter[0] }}
18
20
  {{ paginator.page }}
19
- {{ site.strings.post.pagination.counter[1] }}
21
+ {{ blog_.pagination.counter[1] }}
20
22
  {{ total_page }}&nbsp;]
21
23
  </span>
22
24
  </li>
@@ -25,7 +27,7 @@
25
27
  {%- if paginator.next_page -%}
26
28
  <li class="page-item">
27
29
  <a class="page-link blog-pagination__older" href="{{ paginator.next_page_path | prepend: site.baseurl | prepend: site.url }}">
28
- {{ site.strings.post.pagination.older_text }}&nbsp;&rarr;
30
+ {{ blog_.pagination.older_text }}&nbsp;&rarr;
29
31
  </a>
30
32
  </li>
31
33
  {%- endif -%}
data/_includes/socials CHANGED
@@ -1,3 +1,7 @@
1
+ {%- include layout/data.liquid -%}
2
+
3
+ {%- assign separator = default_.separator -%}
4
+
1
5
  <div class="container socials">
2
6
  <div class="row">
3
7
 
@@ -9,12 +13,10 @@
9
13
  {%- assign pos = "justify-content-end" -%}
10
14
  {%- endif -%}
11
15
 
12
- <div class="col-sm d-flex {{pos}}"><strong>.&nbsp;</strong>
13
- {% assign links = site.socials.links %}
16
+ <div class="col-sm d-flex {{pos}}" style="padding: 0 !important;">
17
+ {% assign links = socials_.links %}
14
18
  {% for item in links %}
15
- <a class="socials-link" title="{{ item.title }}" href="{{ item.url }}" target="_blank">
16
- {{ item.title }}
17
- </a><strong>&nbsp;.&nbsp;</strong>
19
+ <a class="socials-link" title="{{ item.title }}" href="{{ item.url }}" target="_blank">{{ item.title }}</a><strong class="separator">{{separator}}</strong>
18
20
  {% endfor %}
19
21
  </div>
20
22
 
data/_includes/tabs CHANGED
@@ -1,94 +1 @@
1
- <div class="tabs-start" aria-hidden="true"></div>
2
-
3
- <script>
4
- (function () {
5
- if (window.__simple_tabs_installed) return;
6
- window.__simple_tabs_installed = true;
7
-
8
- function processTabs() {
9
- var starts = Array.from(document.querySelectorAll('.tabs-start'));
10
- starts.forEach(function (start) {
11
- var end = start.nextSibling;
12
- while (end && !(end.nodeType === 1 && end.classList && end.classList.contains('tabs-end'))) {
13
- end = end.nextSibling;
14
- }
15
- if (!end) return;
16
-
17
- var node = start.nextSibling;
18
- var tabs = [];
19
- var currentTab = null;
20
- while (node && node !== end) {
21
- var next = node.nextSibling;
22
- if (node.nodeType === Node.TEXT_NODE && !node.textContent.trim()) {
23
- node = next; continue;
24
- }
25
- var text = (node.textContent || '').trim();
26
- var m = text.match(/^\s*tab\d*\s*:\s*(.+)$/i);
27
- if (m) {
28
- currentTab = { title: m[1].trim(), nodes: [] };
29
- tabs.push(currentTab);
30
- if (node.parentNode) node.parentNode.removeChild(node);
31
- } else if (currentTab) {
32
- currentTab.nodes.push(node);
33
- } else {
34
- }
35
- node = next;
36
- }
37
-
38
- if (tabs.length === 0) {
39
- return;
40
- }
41
-
42
- var wrap = document.createElement('div');
43
- wrap.className = 'tabs-wrap';
44
-
45
- var nav = document.createElement('div');
46
- nav.className = 'tabs-nav';
47
-
48
- var panels = document.createElement('div');
49
- panels.className = 'tabs-panels';
50
-
51
- tabs.forEach(function (tab, i) {
52
- var btn = document.createElement('button');
53
- btn.type = 'button';
54
- btn.className = 'tab-btn' + (i === 0 ? ' active' : '');
55
- btn.setAttribute('data-idx', i);
56
- btn.textContent = tab.title;
57
- btn.addEventListener('click', function () {
58
- var idx = +this.getAttribute('data-idx');
59
- wrap.querySelectorAll('.tab-btn').forEach(function (b) {
60
- b.classList.toggle('active', +b.getAttribute('data-idx') === idx);
61
- });
62
- wrap.querySelectorAll('.tab-panel').forEach(function (p, pi) {
63
- p.classList.toggle('active', pi === idx);
64
- });
65
- });
66
- nav.appendChild(btn);
67
-
68
- var panel = document.createElement('div');
69
- panel.className = 'tab-panel' + (i === 0 ? ' active' : '');
70
- tab.nodes.forEach(function (n) {
71
- panel.appendChild(n.cloneNode(true));
72
- });
73
- panels.appendChild(panel);
74
- });
75
-
76
- wrap.appendChild(nav);
77
- wrap.appendChild(panels);
78
-
79
- start.parentNode.insertBefore(wrap, start);
80
-
81
- var cur = start;
82
- while (cur) {
83
- var nx = cur.nextSibling;
84
- if (cur.parentNode) cur.parentNode.removeChild(cur);
85
- if (cur === end) break;
86
- cur = nx;
87
- }
88
- });
89
- }
90
-
91
- if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', processTabs);
92
- else processTabs();
93
- })();
94
- </script>
1
+ <div id="tabs-start" class="tabs-start" aria-hidden="true"></div>