redeyed-jekyll-theme 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +52 -0
  4. data/_config.yml +328 -0
  5. data/_data/assets/cross-origin.yml +65 -0
  6. data/_data/assets/self-host.yml +51 -0
  7. data/_data/authors.yml +12 -0
  8. data/_data/contact.yml +16 -0
  9. data/_data/locale/en.yml +78 -0
  10. data/_data/share.yml +16 -0
  11. data/_includes/back-to-top.html +2 -0
  12. data/_includes/breadcrumbs.html +1 -0
  13. data/_includes/comments.html +0 -0
  14. data/_includes/copyright.html +1 -0
  15. data/_includes/datetime.html +0 -0
  16. data/_includes/favicons.html +14 -0
  17. data/_includes/footer.html +1 -0
  18. data/_includes/ga-site-tag.html +8 -0
  19. data/_includes/google-tags-body.html +4 -0
  20. data/_includes/google-tags-head.html +6 -0
  21. data/_includes/head.html +72 -0
  22. data/_includes/header-banner.html +1 -0
  23. data/_includes/header-wide.html +1 -0
  24. data/_includes/header.html +1 -0
  25. data/_includes/javascript.html +89 -0
  26. data/_includes/jsdelivr-combine.html +18 -0
  27. data/_includes/lang.html +6 -0
  28. data/_includes/mermaid.html +1 -0
  29. data/_includes/mode-toggle.html +138 -0
  30. data/_includes/navbar.html +6 -0
  31. data/_includes/no-linenos.html +0 -0
  32. data/_includes/options.html +13 -0
  33. data/_includes/pagination.html +0 -0
  34. data/_includes/panel-bottom.html +1 -0
  35. data/_includes/panel-foot-2.html +1 -0
  36. data/_includes/panel-foot-3.html +1 -0
  37. data/_includes/panel-foot-4.html +1 -0
  38. data/_includes/panel-foot-full.html +1 -0
  39. data/_includes/panel-top-2.html +1 -0
  40. data/_includes/panel-top-3.html +1 -0
  41. data/_includes/panel-top-4.html +1 -0
  42. data/_includes/panel-top-full.html +1 -0
  43. data/_includes/post-nav.html +0 -0
  44. data/_includes/post-share.html +0 -0
  45. data/_includes/readtime.html +0 -0
  46. data/_includes/related-posts.html +0 -0
  47. data/_includes/search-loader.html +46 -0
  48. data/_includes/search-results.html +1 -0
  49. data/_includes/sidebar.html +0 -0
  50. data/_includes/toc.html +0 -0
  51. data/_javascript/common/back-to-top.js +20 -0
  52. data/_javascript/common/mode-toggle.js +13 -0
  53. data/_javascript/common/scroll-helper.js +36 -0
  54. data/_javascript/common/search-display.js +129 -0
  55. data/_javascript/common/sidebar.js +30 -0
  56. data/_javascript/common/tooltip-loader.js +6 -0
  57. data/_javascript/common/topbar-switcher.js +90 -0
  58. data/_javascript/common/topbar-title.js +67 -0
  59. data/_javascript/utils/category-collapse.js +30 -0
  60. data/_javascript/utils/checkbox.js +12 -0
  61. data/_javascript/utils/clipboard.js +133 -0
  62. data/_javascript/utils/img-extra.js +47 -0
  63. data/_javascript/utils/locale-datetime.js +45 -0
  64. data/_javascript/utils/pageviews.js +250 -0
  65. data/_javascript/utils/smooth-scroll.js +96 -0
  66. data/_layouts/archive.html +0 -0
  67. data/_layouts/categories.html +0 -0
  68. data/_layouts/category.html +0 -0
  69. data/_layouts/compress.html +10 -0
  70. data/_layouts/default.html +5 -0
  71. data/_layouts/page.html +5 -0
  72. data/_layouts/panel-both.html +14 -0
  73. data/_layouts/panel-left.html +14 -0
  74. data/_layouts/panel-none.html +81 -0
  75. data/_layouts/panel-right.html +14 -0
  76. data/_layouts/post.html +5 -0
  77. data/_layouts/tag.html +0 -0
  78. data/_layouts/tags.html +0 -0
  79. data/_sass/addon/common.scss +1630 -0
  80. data/_sass/addon/mixins.scss +144 -0
  81. data/_sass/addon/syntax.scss +0 -0
  82. data/_sass/addon/variables.scss +31 -0
  83. data/_sass/colors/brew-scheme.scss +7 -0
  84. data/_sass/colors/dark-scheme.scss +21 -0
  85. data/_sass/colors/dark-syntax.scss +88 -0
  86. data/_sass/colors/light-scheme.scss +7 -0
  87. data/_sass/colors/light-syntax.scss +84 -0
  88. data/_sass/layout/page.scss +0 -0
  89. data/_sass/layout/panel-both.scss +0 -0
  90. data/_sass/layout/panel-left.scss +0 -0
  91. data/_sass/layout/panel-none.scss +146 -0
  92. data/_sass/layout/panel-right.scss +0 -0
  93. data/_sass/layout/post.scss +0 -0
  94. data/_sass/redeyed-jekyll-theme.scss +26 -0
  95. data/_sass/variables-hook.scss +0 -0
  96. data/assets/css/style.scss +8 -0
  97. data/assets/img/d20R/d20R-128.png +0 -0
  98. data/assets/img/d20R/d20R-16.png +0 -0
  99. data/assets/img/d20R/d20R-200.png +0 -0
  100. data/assets/img/d20R/d20R-240.png +0 -0
  101. data/assets/img/d20R/d20R-32.png +0 -0
  102. data/assets/img/d20R/d20R-320.png +0 -0
  103. data/assets/img/d20R/d20R-48.png +0 -0
  104. data/assets/img/d20R/d20R-500.png +0 -0
  105. data/assets/img/d20R/d20R-600.png +0 -0
  106. data/assets/img/d20R/d20R-64.png +0 -0
  107. data/assets/img/d20R/d20R.svg +98 -0
  108. data/assets/img/d20RB/d20RB-128.png +0 -0
  109. data/assets/img/d20RB/d20RB-16.png +0 -0
  110. data/assets/img/d20RB/d20RB-200.png +0 -0
  111. data/assets/img/d20RB/d20RB-240.png +0 -0
  112. data/assets/img/d20RB/d20RB-32.png +0 -0
  113. data/assets/img/d20RB/d20RB-320.png +0 -0
  114. data/assets/img/d20RB/d20RB-48.png +0 -0
  115. data/assets/img/d20RB/d20RB-500.png +0 -0
  116. data/assets/img/d20RB/d20RB-600.png +0 -0
  117. data/assets/img/d20RB/d20RB-64.png +0 -0
  118. data/assets/img/d20RB/d20RB.svg +103 -0
  119. data/assets/img/favicons/android-chrome-192x192.png +0 -0
  120. data/assets/img/favicons/android-chrome-512x512.png +0 -0
  121. data/assets/img/favicons/apple-touch-icon.png +0 -0
  122. data/assets/img/favicons/browserconfig.xml +12 -0
  123. data/assets/img/favicons/favicon-16x16.png +0 -0
  124. data/assets/img/favicons/favicon-32x32.png +0 -0
  125. data/assets/img/favicons/favicon.ico +0 -0
  126. data/assets/img/favicons/mstile-150x150.png +0 -0
  127. data/assets/img/favicons/mstile-310x150.png +0 -0
  128. data/assets/img/favicons/mstile-310x310.png +0 -0
  129. data/assets/img/favicons/mstile-70x70.png +0 -0
  130. data/assets/img/favicons/safari-pinned-tab.svg +112 -0
  131. data/assets/img/favicons/site.webmanifest +19 -0
  132. data/assets/js/data/search.json +19 -0
  133. data/assets/js/data/swcache.js +54 -0
  134. data/assets/js/fetch.js +458 -0
  135. data/assets/js/pwa/app.js +47 -0
  136. data/assets/js/pwa/sw.js +89 -0
  137. data/assets/js/pwa/unregister.js +12 -0
  138. data/src/404.html +10 -0
  139. data/src/favicon.ico +0 -0
  140. data/src/feed.xml +61 -0
  141. data/src/index.md +22 -0
  142. data/src/robots.txt +10 -0
  143. data/src/style/html.md +7 -0
  144. data/src/style/index.md +11 -0
  145. data/src/style/markdown.md +108 -0
  146. metadata +375 -0
@@ -0,0 +1,250 @@
1
+ /*
2
+ * Count page views form GA or local cache file.
3
+ *
4
+ * Dependencies:
5
+ * - jQuery
6
+ * - countUp.js <https://github.com/inorganik/countUp.js>
7
+ */
8
+
9
+ const getInitStatus = (function () {
10
+ let hasInit = false;
11
+ return () => {
12
+ let ret = hasInit;
13
+ if (!hasInit) {
14
+ hasInit = true;
15
+ }
16
+ return ret;
17
+ };
18
+ }());
19
+
20
+ const PvOpts = (function () {
21
+ function getContent(selector) {
22
+ return $(selector).attr("content");
23
+ }
24
+
25
+ function hasContent(selector) {
26
+ let content = getContent(selector);
27
+ return (typeof content !== "undefined" && content !== false);
28
+ }
29
+
30
+ return {
31
+ getProxyMeta() {
32
+ return getContent("meta[name=pv-proxy-endpoint]");
33
+ },
34
+ getLocalMeta() {
35
+ return getContent("meta[name=pv-cache-path]");
36
+ },
37
+ hasProxyMeta() {
38
+ return hasContent("meta[name=pv-proxy-endpoint]");
39
+ },
40
+ hasLocalMeta() {
41
+ return hasContent("meta[name=pv-cache-path]");
42
+ }
43
+ };
44
+
45
+ }());
46
+
47
+ const PvStorage = (function () {
48
+ const Keys = {
49
+ KEY_PV: "pv",
50
+ KEY_PV_SRC: "pv_src",
51
+ KEY_CREATION: "pv_created_date"
52
+ };
53
+
54
+ const Source = {
55
+ LOCAL: "same-origin",
56
+ PROXY: "cors"
57
+ };
58
+
59
+ function get(key) {
60
+ return localStorage.getItem(key);
61
+ }
62
+
63
+ function set(key, val) {
64
+ localStorage.setItem(key, val);
65
+ }
66
+
67
+ function saveCache(pv, src) {
68
+ set(Keys.KEY_PV, pv);
69
+ set(Keys.KEY_PV_SRC, src);
70
+ set(Keys.KEY_CREATION, new Date().toJSON());
71
+ }
72
+
73
+ return {
74
+ keysCount() {
75
+ return Object.keys(Keys).length;
76
+ },
77
+ hasCache() {
78
+ return (localStorage.getItem(Keys.KEY_PV) !== null);
79
+ },
80
+ getCache() {
81
+ return JSON.parse(localStorage.getItem(Keys.KEY_PV));
82
+ },
83
+ saveLocalCache(pv) {
84
+ saveCache(pv, Source.LOCAL);
85
+ },
86
+ saveProxyCache(pv) {
87
+ saveCache(pv, Source.PROXY);
88
+ },
89
+ isExpired() {
90
+ let date = new Date(get(Keys.KEY_CREATION));
91
+ date.setHours(date.getHours() + 1); // per hour
92
+ return Date.now() >= date.getTime();
93
+ },
94
+ isFromLocal() {
95
+ return get(Keys.KEY_PV_SRC) === Source.LOCAL;
96
+ },
97
+ isFromProxy() {
98
+ return get(Keys.KEY_PV_SRC) === Source.PROXY;
99
+ },
100
+ newerThan(pv) {
101
+ return PvStorage.getCache().totalsForAllResults["ga:pageviews"] > pv.totalsForAllResults["ga:pageviews"];
102
+ },
103
+ inspectKeys() {
104
+ if (localStorage.length !== PvStorage.keysCount()) {
105
+ localStorage.clear();
106
+ return;
107
+ }
108
+
109
+ for(let i = 0; i < localStorage.length; i++){
110
+ const key = localStorage.key(i);
111
+ switch (key) {
112
+ case Keys.KEY_PV:
113
+ case Keys.KEY_PV_SRC:
114
+ case Keys.KEY_CREATION:
115
+ break;
116
+ default:
117
+ localStorage.clear();
118
+ return;
119
+ }
120
+ }
121
+ }
122
+ };
123
+ }()); /* PvStorage */
124
+
125
+ function countUp(min, max, destId) {
126
+ if (min < max) {
127
+ let numAnim = new CountUp(destId, min, max);
128
+ if (!numAnim.error) {
129
+ numAnim.start();
130
+ } else {
131
+ console.error(numAnim.error);
132
+ }
133
+ }
134
+ }
135
+
136
+ function countPV(path, rows) {
137
+ let count = 0;
138
+
139
+ if (typeof rows !== "undefined" ) {
140
+ for (let i = 0; i < rows.length; ++i) {
141
+ const gaPath = rows[parseInt(i, 10)][0];
142
+ if (gaPath === path) { /* path format see: site.permalink */
143
+ count += parseInt(rows[parseInt(i, 10)][1], 10);
144
+ break;
145
+ }
146
+ }
147
+ }
148
+
149
+ return count;
150
+ }
151
+
152
+ function tacklePV(rows, path, elem, hasInit) {
153
+ let count = countPV(path, rows);
154
+ count = (count === 0 ? 1 : count);
155
+
156
+ if (!hasInit) {
157
+ elem.text(new Intl.NumberFormat().format(count));
158
+ } else {
159
+ const initCount = parseInt(elem.text().replace(/,/g, ""), 10);
160
+ if (count > initCount) {
161
+ countUp(initCount, count, elem.attr("id"));
162
+ }
163
+ }
164
+ }
165
+
166
+ function displayPageviews(data) {
167
+ if (typeof data === "undefined") {
168
+ return;
169
+ }
170
+
171
+ let hasInit = getInitStatus();
172
+ const rows = data.rows; /* could be undefined */
173
+
174
+ if ($("#post-list").length > 0) { /* the Home page */
175
+ $(".post-preview").each(function() {
176
+ const path = $(this).find("a").attr("href");
177
+ tacklePV(rows, path, $(this).find(".pageviews"), hasInit);
178
+ });
179
+
180
+ } else if ($(".post").length > 0) { /* the post */
181
+ const path = window.location.pathname;
182
+ tacklePV(rows, path, $("#pv"), hasInit);
183
+ }
184
+ }
185
+
186
+ function fetchProxyPageviews() {
187
+ if (PvOpts.hasProxyMeta()) {
188
+ $.ajax({
189
+ type: "GET",
190
+ url: PvOpts.getProxyMeta(),
191
+ dataType: "jsonp",
192
+ jsonpCallback: "displayPageviews",
193
+ success: (data) => {
194
+ PvStorage.saveProxyCache(JSON.stringify(data));
195
+ },
196
+ error: (jqXHR, textStatus, errorThrown) => {
197
+ console.log("Failed to load pageviews from proxy server: " + errorThrown);
198
+ }
199
+ });
200
+ }
201
+ }
202
+
203
+ function fetchLocalPageviews(hasCache = false) {
204
+ return fetch(PvOpts.getLocalMeta())
205
+ .then(response => response.json())
206
+ .then(data => {
207
+ if (hasCache) {
208
+ // The cache from the proxy will sometimes be more recent than the local one
209
+ if (PvStorage.isFromProxy() && PvStorage.newerThan(data)) {
210
+ return;
211
+ }
212
+ }
213
+ displayPageviews(data);
214
+ PvStorage.saveLocalCache(JSON.stringify(data));
215
+ });
216
+ }
217
+
218
+ $(function() {
219
+ if ($(".pageviews").length <= 0) {
220
+ return;
221
+ }
222
+
223
+ PvStorage.inspectKeys();
224
+
225
+ if (PvStorage.hasCache()) {
226
+ displayPageviews(PvStorage.getCache());
227
+
228
+ if (PvStorage.isExpired()) {
229
+ if (PvOpts.hasLocalMeta()) {
230
+ fetchLocalPageviews(true).then(fetchProxyPageviews);
231
+ } else {
232
+ fetchProxyPageviews();
233
+ }
234
+
235
+ } else {
236
+ if (PvStorage.isFromLocal()) {
237
+ fetchProxyPageviews();
238
+ }
239
+ }
240
+
241
+ } else { // no cached
242
+
243
+ if (PvOpts.hasLocalMeta()) {
244
+ fetchLocalPageviews().then(fetchProxyPageviews);
245
+ } else {
246
+ fetchProxyPageviews();
247
+ }
248
+ }
249
+
250
+ });
@@ -0,0 +1,96 @@
1
+ /*
2
+ Safari doesn't support CSS `scroll-behavior: smooth`,
3
+ so here is a compatible solution for all browser to smooth scrolling
4
+
5
+ See: <https://css-tricks.com/snippets/jquery/smooth-scrolling/>
6
+
7
+ Warning: It must be called after all `<a>` tags (e.g., the dynamic TOC) are ready.
8
+ */
9
+
10
+ $(function() {
11
+ const $topbarTitle = $("#topbar-title");
12
+ const REM = 16; // in pixels
13
+ const ATTR_SCROLL_FOCUS = "scroll-focus";
14
+
15
+ $("a[href*='#']")
16
+ .not("[href='#']")
17
+ .not("[href='#0']")
18
+ .click(function(event) {
19
+ if (this.pathname.replace(/^\//, "") !==
20
+ location.pathname.replace(/^\//, "")) {
21
+ return;
22
+ }
23
+
24
+ if (location.hostname !== this.hostname) {
25
+ return;
26
+ }
27
+
28
+ const hash = decodeURI(this.hash);
29
+ let toFootnoteRef = RegExp(/^#fnref:/).test(hash);
30
+ let toFootnote = toFootnoteRef ? false : RegExp(/^#fn:/).test(hash);
31
+ let selector = hash.includes(":") ? hash.replace(/\:/g, "\\:") : hash;
32
+ let $target = $(selector);
33
+
34
+ let isMobileViews = $topbarTitle.is(":visible");
35
+ let isPortrait = $(window).width() < $(window).height();
36
+
37
+ if (typeof $target === "undefined") {
38
+ return;
39
+ }
40
+
41
+ event.preventDefault();
42
+
43
+ if (history.pushState) { /* add hash to URL */
44
+ history.pushState(null, null, hash);
45
+ }
46
+
47
+ let curOffset = $(window).scrollTop();
48
+ let destOffset = $target.offset().top -= REM / 2;
49
+
50
+ if (destOffset < curOffset) { // scroll up
51
+ ScrollHelper.hideTopbar();
52
+ ScrollHelper.addScrollUpTask();
53
+
54
+ if (isMobileViews && isPortrait) {
55
+ destOffset -= ScrollHelper.getTopbarHeight();
56
+ }
57
+
58
+ } else { // scroll down
59
+ if (isMobileViews && isPortrait) {
60
+ destOffset -= ScrollHelper.getTopbarHeight();
61
+ }
62
+ }
63
+
64
+ $("html").animate({
65
+ scrollTop: destOffset
66
+ }, 500, () => {
67
+ $target.focus();
68
+
69
+ /* clean up old scroll mark */
70
+ if ($(`[${ATTR_SCROLL_FOCUS}=true]`).length) {
71
+ $(`[${ATTR_SCROLL_FOCUS}=true]`).attr(ATTR_SCROLL_FOCUS, false);
72
+ }
73
+
74
+ /* Clean :target links */
75
+ if ($(":target").length) { /* element that visited by the URL with hash */
76
+ $(":target").attr(ATTR_SCROLL_FOCUS, false);
77
+ }
78
+
79
+ /* set scroll mark to footnotes */
80
+ if (toFootnote || toFootnoteRef) {
81
+ $target.attr(ATTR_SCROLL_FOCUS, true);
82
+ }
83
+
84
+ if ($target.is(":focus")) { /* Checking if the target was focused */
85
+ return false;
86
+ } else {
87
+ $target.attr("tabindex", "-1"); /* Adding tabindex for elements not focusable */
88
+ $target.focus(); /* Set focus again */
89
+ }
90
+
91
+ if (ScrollHelper.hasScrollUpTask()) {
92
+ ScrollHelper.popScrollUpTask();
93
+ }
94
+ });
95
+ }); /* click() */
96
+ });
File without changes
File without changes
File without changes
@@ -0,0 +1,10 @@
1
+ ---
2
+ # Jekyll layout that compresses HTML
3
+ # v3.1.0
4
+ # http://jch.penibelst.de/
5
+ # © 2014–2015 Anatol Broder
6
+ # MIT License
7
+ ---
8
+
9
+ {% capture _LINE_FEED %}
10
+ {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: panel-none
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: compress
3
+ ---
4
+ <!DOCTYPE html>
5
+ <html>
6
+ <head>
7
+ <meta charset="utf-8">
8
+ <title>{{ page.title }}</title>
9
+ </head>
10
+ <body>
11
+ {% include navigation.html %}
12
+ {{ content }}
13
+ </body>
14
+ </html>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: compress
3
+ ---
4
+ <!DOCTYPE html>
5
+ <html>
6
+ <head>
7
+ <meta charset="utf-8">
8
+ <title>{{ page.title }}</title>
9
+ </head>
10
+ <body>
11
+ {% include navigation.html %}
12
+ {{ content }}
13
+ </body>
14
+ </html>
@@ -0,0 +1,81 @@
1
+ ---
2
+ layout: compress
3
+ ---
4
+ <!DOCTYPE html>
5
+ {% include lang.html %}
6
+ {% include options.html %}
7
+ {% capture prefer_mode %}
8
+ {% if site.theme_mode %}
9
+ data-mode="{{ site.theme_mode }}"
10
+ {% endif %}
11
+ {% endcapture %}
12
+ <html lang="{{ site.lang }}"{{ prefer_mode }}>
13
+ {% include head.html %}
14
+ <body data-spy="scroll" data-target="#toc" data-navbar-visible="true">
15
+ {% if page.header %}
16
+ {% if page.header == "wide" %}
17
+ {% include header-wide.html %}
18
+ {% elsif page.header == "regular" %}
19
+ {% include header.html %}
20
+ {% elsif page.header == "banner" %}
21
+ {% include header-banner.html %}
22
+ {% endif %}
23
+ {% endif %}
24
+ {% include navbar.html %}
25
+ {% include breadcrumbs.html %}
26
+ {% if page.top-panel %}
27
+ {% if page.top-panel == "full" %}
28
+ {% include panel-top-full.html %}
29
+ {% elsif page.top-panel == "2-cols" %}
30
+ {% include panel-top-2.html %}
31
+ {% elsif page.top-panel == "3-cols" %}
32
+ {% include panel-top-3.html %}
33
+ {% elsif page.top-panel == "4-cols" %}
34
+ {% include panel-top-4.html %}
35
+ {% endif %}
36
+ {% endif %}
37
+ <div id="main-wrapper" class="d-flex justify-content-center">
38
+ <div id="main" class="container-fluid">
39
+ {{ content }}
40
+ </div>
41
+ </div>
42
+ {% if page.bottom-panel %}
43
+ {% include panel-bottom.html %}
44
+ {% endif %}
45
+ {% if page.foot-panel %}
46
+ {% if page.foot-panel == "full" %}
47
+ {% include panel-foot-full.html %}
48
+ {% elsif page.foot-panel == "2-cols" %}
49
+ {% include panel-foot-2.html %}
50
+ {% elsif page.foot-panel == "3-cols" %}
51
+ {% include panel-foot-3.html %}
52
+ {% elsif page.foot-panel == "4-cols" %}
53
+ {% include panel-foot-4.html %}
54
+ {% endif %}
55
+ {% endif %}
56
+ {% include footer.html %}
57
+ {% include copyright.html %}
58
+ <div id="mask"></div>
59
+ {% if page.to-top %}{% include back-to-top.html %}{% endif %}
60
+ {% include search-results.html %}
61
+ {% if page.mermaid %}{% include mermaid.html %}{% endif %}
62
+ {% if site.pwa.enabled %}
63
+ <div id="notification" class="toast" role="alert" aria-live="assertive" aria-atomic="true"
64
+ data-animation="true" data-autohide="false">
65
+ <div class="toast-header">
66
+ <button type="button" class="ml-2 ml-auto close" data-dismiss="toast" aria-label="Close">
67
+ <span aria-hidden="true">&times;</span>
68
+ </button>
69
+ </div>
70
+ <div class="toast-body text-center pt-0">
71
+ <p class="pl-2 pr-2 mb-3">{{ site.data.locales[lang].notification.update_found }}</p>
72
+ <button type="button" class="btn btn-primary" aria-label="Update">
73
+ {{ site.data.locales[lang].notification.update }}
74
+ </button>
75
+ </div>
76
+ </div>
77
+ {% endif %}
78
+ {% include search-loader.html %}
79
+ {% include javascript.html %}
80
+ </body>
81
+ </html>
@@ -0,0 +1,14 @@
1
+ ---
2
+ layout: compress
3
+ ---
4
+ <!DOCTYPE html>
5
+ <html>
6
+ <head>
7
+ <meta charset="utf-8">
8
+ <title>{{ page.title }}</title>
9
+ </head>
10
+ <body>
11
+ {% include navigation.html %}
12
+ {{ content }}
13
+ </body>
14
+ </html>
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
data/_layouts/tag.html ADDED
File without changes
File without changes