rawfeed 0.1.3 → 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 (103) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +20 -21
  3. data/README.md +13 -112
  4. data/_data/options.yml +270 -0
  5. data/_data/resume.yml +8 -9
  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 +7 -5
  11. data/_includes/layout/data.liquid +21 -3
  12. data/_includes/layout/disqus.html +12 -26
  13. data/_includes/layout/footer.html +34 -16
  14. data/_includes/layout/giscus.html +27 -19
  15. data/_includes/layout/head.html +58 -19
  16. data/_includes/layout/header.html +127 -101
  17. data/_includes/layout/maintenance.html +8 -12
  18. data/_includes/layout/paginator.html +6 -4
  19. data/_includes/socials +7 -5
  20. data/_includes/tabs +1 -94
  21. data/_includes/toc +12 -152
  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 -339
  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 -6
  30. data/_layouts/pixel.html +48 -0
  31. data/_layouts/pixels.html +71 -0
  32. data/_layouts/post.html +28 -31
  33. data/_layouts/resume.html +43 -36
  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 +20 -17
  39. data/_sass/includes/_footer.scss +18 -8
  40. data/_sass/includes/_header.scss +24 -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 +17 -7
  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 +15 -5
  58. data/_sass/theme/_light.scss +9 -2
  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/assets/js/fallback/theme_load.js +4 -0
  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 +19 -0
  89. data/lib/rawfeed/draft.rb +1 -1
  90. data/lib/rawfeed/layout.rb +7 -0
  91. data/lib/rawfeed/page.rb +4 -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 -0
  100. metadata +46 -12
  101. data/assets/js/avatar.js +0 -50
  102. data/assets/js/terminal.js +0 -18
  103. data/assets/js/toc.js +0 -22
@@ -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.text.menu.blog | default: "blog" | downcase }}</a>&nbsp;]</span>
29
- {%- else -%}
30
- <span>[&nbsp;<a class="{% if page.url == "/" or page.url == "/index.html" %}menu-active{% endif %}" href="{{home_url}}">{{ site.text.menu.home | 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 }}" width="70">
60
- </div>
61
- <div class="avatar-back">
62
- <img class="avatar-img" src="{{ avatar_path_back | relative_url }}" alt="{{ site.title }} - Verso" width="70">
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 }}" width="70">
71
- </div>
72
- <div class="avatar-back">
73
- <img class="avatar-img" src="{{ avatar_path_back | relative_url }}" alt="{{ site.title }} - Verso" width="70">
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>
84
88
 
85
- <div class="row">
86
- <div class="col-sm d-flex justify-content-center column-bottom">
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 -->
96
+
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;{%- if site.blog.search.enable -%}<a id="blog-search__btn" class="blog-menu__link" href="{{search_url}}">{{ site.text.menu.search | 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.text.menu.tags | 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.text.menu.feed | default: "feed" }}</a><strong>&nbsp;.&nbsp;</strong>
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' -%}
104
+ {%- for item in sorted_pages -%}
105
+ {%- if item.path contains '_pages/' and item.published != false and item.in_menu -%}
106
+ {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
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>
108
+ {%- endunless -%}
109
+ {%- endif -%}
110
+ {%- endfor -%}
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>
100
113
  {%- else index.layout == "home" -%}
101
114
  {%- if page.url contains "/blog/" -%}
102
- <span class="blog-menu">{{ site.text.menu.blog }}&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}}">posts</a><strong>&nbsp;.&nbsp;</strong>{%- if site.blog.search.enable -%}<a id="blog-search__btn" class="blog-menu__link" href="{{search_url}}">{{ site.text.menu.search | 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.text.menu.tags | default: "tags" }}</a><strong>&nbsp;.&nbsp;</strong><a class="blog-menu__link" href="{{feed_url}}">{{ site.text.menu.feed | default: "feed" }}</a><strong>&nbsp;.&nbsp;</strong>
104
- </span>
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>
105
119
  {%- 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
- <a href="{{blog_url}}">{{ site.text.menu.blog }}</a><strong>&nbsp;.&nbsp;</strong>
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;
113
124
  {%- endif -%}
114
- {% assign sorted_pages = site.pages | sort: 'order' %}
115
- {%- for item in sorted_pages -%}
116
- {%- if item.path contains '_pages/' -%}
117
- {%- unless item.url contains "blog" or item.url contains "404.html" -%}
118
- <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 -%}
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>
120
128
  {%- endif -%}
121
- {%- endfor -%}
122
- {%- else -%}
123
- {% assign sorted_pages = site.pages | sort: 'order' %}
124
- {%- for item in sorted_pages -%}
125
- {%- if item.path contains '_pages/' and item.published != false -%}
126
- {%- unless item.url contains "/tags/" or item.url contains "404.html" -%}
127
- <a class="{% if page.url == item.url %}menu-active{% endif %}" href="{{ item.url | relative_url }}">{{ item.title | downcase }}</a><strong>&nbsp;.&nbsp;</strong>
128
- {%- endunless -%}
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>
129
142
  {%- endif -%}
130
- {%- endfor -%}
131
- {%- 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,30 +1,26 @@
1
1
  {% include layout/data.liquid %}
2
2
 
3
3
  <!DOCTYPE html>
4
- <html lang="{{ site.lang | default: 'en-US' }}">
5
- {%- include head.html -%}
4
+ <html lang="{{ default_.lang | default: 'en-US' }}" data-theme="light">
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>
28
- {%- include footer.html -%}
24
+ {%- include layout/footer.html -%}
29
25
  </body>
30
26
  </html>
@@ -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.text.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.text.post.pagination.counter[0] }}
19
+ [&nbsp;{{ blog_.pagination.counter[0] }}
18
20
  {{ paginator.page }}
19
- {{ site.text.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.text.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>