Skip to content

Commit 5bd74e7

Browse files
committed
Updated to Hydejack 9.0.5
1 parent bc3d559 commit 5bd74e7

File tree

179 files changed

+105738
-821
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

179 files changed

+105738
-821
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
#!/usr/bin/env node
2+
3+
const { basename, dirname, format, relative, resolve } = require("path");
4+
const { readdir, stat, readFile, writeFile, mkdir } = require("fs").promises;
5+
6+
const dedent = require("dedent");
7+
8+
const ENC = "utf-8";
9+
10+
const INLINE_REGEX = /(.*)\s*\/\/\s*inline\s*$/gimu;
11+
const DEFER_REGEX = /(.*)\s*\/\/\s*link\s*$/gimu;
12+
const INLINE_BLOCK_REGEX = /\/\/\s*>*\s*<{3,}\s*inline([\s\S]*?)\/\/\s*>{3,}.*/gimu;
13+
const DEFER_BLOCK_REGEX = /\/\/\s*>*\s*<{3,}\s*link([\s\S]*?)\/\/\s*>{3,}.*/gimu;
14+
15+
function genHeader(filename) {
16+
return dedent`
17+
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY!
18+
//
19+
// To change the contents of this file,
20+
// edit \`${filename}\`
21+
// and run \`npm run build:css\`.
22+
//
23+
// During development you can run \`npm run watch:css\`
24+
// to continuosly rebuild this file.
25+
`;
26+
}
27+
28+
// <https://stackoverflow.com/a/45130990/870615>
29+
async function getFiles(dir) {
30+
const subdirs = await readdir(dir);
31+
const files = await Promise.all(
32+
subdirs.map(async subdir => {
33+
const res = resolve(dir, subdir);
34+
return (await stat(res)).isDirectory() ? getFiles(res) : res;
35+
})
36+
);
37+
return files.reduce((a, f) => a.concat(f), []);
38+
}
39+
40+
(async function main() {
41+
try {
42+
const files = process.argv.length > 2 ? [process.argv[2]] : await getFiles("_sass");
43+
await Promise.all(
44+
files.filter(f => f.endsWith(".pre.scss")).map(async file => {
45+
const content = await readFile(file, ENC);
46+
const name = basename(file, ".pre.scss");
47+
const filename = format({ name, ext: ".scss" });
48+
const dir = dirname(file);
49+
50+
const inline = content
51+
.replace(INLINE_REGEX, "$1")
52+
.replace(INLINE_BLOCK_REGEX, "$1")
53+
.replace(DEFER_REGEX, "// $1")
54+
.replace(DEFER_BLOCK_REGEX, "");
55+
56+
const defer = content
57+
.replace(DEFER_REGEX, "$1")
58+
.replace(DEFER_BLOCK_REGEX, "$1")
59+
.replace(INLINE_REGEX, "// $1")
60+
.replace(INLINE_BLOCK_REGEX, "");
61+
62+
const path = relative(resolve(), dirname(file));
63+
const header = genHeader([path, basename(file)].join("/"));
64+
65+
await Promise.all([
66+
mkdir(resolve(dir, "__inline__"), { recursive: true }),
67+
mkdir(resolve(dir, "__link__"), { recursive: true }),
68+
]);
69+
return Promise.all([
70+
writeFile(resolve(dir, "__inline__", filename), header + "\n\n" + inline, ENC),
71+
writeFile(resolve(dir, "__link__", filename), header + "\n\n" + defer, ENC),
72+
]);
73+
})
74+
);
75+
process.exit(0);
76+
} catch (e) {
77+
console.error(e); // eslint-disable-line
78+
process.exit(1);
79+
}
80+
})();
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
#!/usr/bin/env node
2+
3+
const { resolve } = require("path");
4+
const fs = require('fs');
5+
const { readdir, rename, unlink, readFile, writeFile, access } = fs.promises;
6+
const { promisify } = require('util');
7+
const exec = promisify(require('child_process').exec);
8+
9+
const vPrev = require("../assets/version.json").version;
10+
const vNext = require("../package.json").version;
11+
12+
const ENC = "utf-8";
13+
14+
const FILES = [
15+
"./jekyll-theme-hydejack.gemspec",
16+
"./_includes/body/scripts.html",
17+
"./_includes/body/footer.html",
18+
"./_includes/head/meta-static.html",
19+
"./_includes/head/links-static.html",
20+
"./_includes/head/styles-inline.html",
21+
"./_includes/head/styles-no-inline.html",
22+
"./_includes/header.txt",
23+
"./_includes/js/service-worker.js",
24+
"./_layouts/compress.html",
25+
"./_js/lib/version.js",
26+
].map(f => resolve(f));
27+
28+
/**
29+
* @param {string} dir
30+
* @returns {Promise<string[]>}
31+
* @see https://stackoverflow.com/a/45130990/870615
32+
*/
33+
async function getFiles(dir) {
34+
const dirents = await readdir(dir, { withFileTypes: true });
35+
const files = await Promise.all(dirents.map((dirent) => {
36+
const res = resolve(dir, dirent.name);
37+
return dirent.isDirectory() ? getFiles(res) : [res];
38+
}));
39+
return Array.prototype.concat(...files);
40+
}
41+
42+
(async function main() {
43+
try {
44+
const prev = vPrev.replace(/\./g, "\\.");
45+
const prevRegExp = new RegExp(prev, "g");
46+
47+
// const args = await Promise.all([
48+
// getFiles("./hyde/_posts"),
49+
// getFiles("./hydejack/_posts"),
50+
// getFiles("./_projects"),
51+
// getFiles("./docs"),
52+
// ]);
53+
const args = [];
54+
55+
const files = Array.prototype.concat.call(FILES, ...args);
56+
57+
const pFiles = Promise.all(
58+
files
59+
.filter(([f]) => !f.startsWith("."))
60+
.map(f => [f, readFile(f, ENC)])
61+
.map(async ([f, p]) => {
62+
const content = await p;
63+
64+
// if (f.includes("CHANGELOG")) {
65+
// const pattern = new RegExp(`([^v])${prev}`, "g");
66+
// return [f, content.replace(pattern, `$1${vNext}`)];
67+
// }
68+
69+
return [f, content.replace(prevRegExp, vNext)];
70+
})
71+
.map(async p => {
72+
const [f, content] = await p;
73+
return writeFile(f, content, ENC);
74+
})
75+
);
76+
77+
const pUnlink = Promise.all(
78+
(await getFiles('./assets/js'))
79+
.filter(f => f.match(/assets\/js\/*hydejack-*/i))
80+
.map(unlink)
81+
);
82+
83+
const pJSCSS = rename(
84+
resolve(`./assets/css/hydejack-${vPrev}.css`),
85+
resolve(`./assets/css/hydejack-${vNext}.css`)
86+
);
87+
88+
const pSearchW = rename(
89+
resolve(`./assets/js/search-worker-${vPrev}.js`),
90+
resolve(`./assets/js/search-worker-${vNext}.js`)
91+
);
92+
93+
await Promise.all([pUnlink, pFiles, pJSCSS, pSearchW]);
94+
95+
await writeFile('./assets/version.json', JSON.stringify({ version: vNext, prevVersion: vPrev }, null, 2));
96+
97+
try {
98+
await access('../.scripts/version.js', fs.constants.X_OK);
99+
await exec('../.scripts/version.js');
100+
} catch (e) {
101+
console.warn(e)
102+
}
103+
104+
process.exit(0);
105+
} catch (e) {
106+
console.error(e); // eslint-disable-line
107+
process.exit(1);
108+
}
109+
})();

#jekyll-theme-hydejack/_config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ theme_color: rgb(25,55,71)
1010
google_fonts: Roboto+Slab:700|Noto+Sans:400,400i,700,700i
1111
font: Noto Sans, Helvetica, Arial, sans-serif
1212
font_heading: Roboto Slab, Helvetica, Arial, sans-serif
13-
font_code: Fira Code, Menlo, Monaco, Consolas, monospace;
13+
font_code: system-ui-monospace, "Liberation Mono", "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "DejaVu Sans Mono", "Fira Code", "Droid Sans Mono", "Menlo", "Consolas", "Monaco", monospace;
1414

1515
hydejack:
1616
post_addons: [about, newsletter, related, random, comments]

#jekyll-theme-hydejack/_includes/body/footer.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
</small></nav>
1515
{% endif %}
1616
{% if site.hydejack.advertise %}
17-
<p><small>Powered by <a class="external" href="https://hydejack.com/">Hydejack</a> v<span id="_version">9.0.4</span></small></p>
17+
<p><small>Powered by <a class="external" href="https://hydejack.com/">Hydejack</a> v<span id="_version">9.0.5</span></small></p>
1818
{% endif %}
1919
<hr class="sr-only"/>
2020
</footer>

#jekyll-theme-hydejack/_includes/body/nav.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<a
88
{% if forloop.first %}id="_drawer--opened"{% endif %}
99
href="{% include_cached smart-url url=url %}"
10-
class="sidebar-nav-item"
10+
class="sidebar-nav-item {% if node.external %}external{% endif %}"
1111
{% if node.rel %}rel="{{ node.rel }}"{% endif %}
1212
>
1313
{{ node.name | default:node.title }}
@@ -33,7 +33,7 @@
3333
</li>
3434
{% else %}
3535
<li>
36-
<a href="{{ node.redirect_to }}" class="sidebar-nav-item external" >{{ node.title }}</a>
36+
<a href="{{ node.redirect_to }}" class="sidebar-nav-item external">{{ node.title }}</a>
3737
</li>
3838
{% endunless %}
3939
{% endfor %}

#jekyll-theme-hydejack/_includes/body/scripts.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!--[if gt IE 10]><!---->
22
<script nomodule>{% include scripts/nomodule.min.js %}</script>
3-
<script src="{{ '/assets/js/hydejack-9.0.4.js' | relative_url }}" type="module"></script>
4-
<script src="{{ '/assets/js/LEGACY-hydejack-9.0.4.js' | relative_url }}" nomodule defer></script>
3+
<script src="{{ '/assets/js/hydejack-9.0.5.js' | relative_url }}" type="module"></script>
4+
<script src="{{ '/assets/js/LEGACY-hydejack-9.0.5.js' | relative_url }}" nomodule defer></script>
55
{% include my-scripts.html %}
66
{% include body/analytics.html %}
77
<script type="module">

#jekyll-theme-hydejack/_includes/head/links-static.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
<link rel="preload" href="{{ '/assets/img/swipe.svg' | relative_url }}" as="image" id="_hrefSwipeSVG">
1818

19-
<link rel="dns-prefetch" href="{{ '/assets/js/search-worker-9.0.4.js' | relative_url }}" as="worker" id="_hrefSearch">
19+
<link rel="dns-prefetch" href="{{ '/assets/js/search-worker-9.0.5.js' | relative_url }}" as="worker" id="_hrefSearch">
2020
{% if site.kramdown.math_engine == 'katex' %}
2121
{% capture katex_url %}{{ 'assets/bower_components/katex/dist/katex.min.css' | relative_url }}{% endcapture %}
2222
<link rel="dns-prefetch" href="{{ katex_url }}" id="_katexPreload">

#jekyll-theme-hydejack/_includes/head/meta-static.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414
<meta name="theme-color" content="{{ theme_color | default:'rgb(8,46,57)' }}">
1515
{% endunless %}
1616

17-
<meta name="generator" content="Hydejack v9.0.4" />
17+
<meta name="generator" content="Hydejack v9.0.5" />

#jekyll-theme-hydejack/_includes/head/styles-inline.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% assign google_fonts = site.google_fonts %}
2-
{% capture style_url %}{{ 'assets/css/hydejack-9.0.4.css' | relative_url }}{% endcapture %}
2+
{% capture style_url %}{{ 'assets/css/hydejack-9.0.5.css' | relative_url }}{% endcapture %}
33
{% capture icons_url %}{{ 'assets/icomoon/style.css' | relative_url }}{% endcapture %}
44
{% if google_fonts %}{% capture fonts_url %}https://fonts.googleapis.com/css?family={{ google_fonts | uri_escape }}&display=swap{% endcapture %}{% endif %}
55

#jekyll-theme-hydejack/_includes/head/styles-no-inline.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% assign google_fonts = site.google_fonts %}
2-
{% capture style_url %}{{ 'assets/css/hydejack-9.0.4.css' | relative_url }}{% endcapture %}
2+
{% capture style_url %}{{ 'assets/css/hydejack-9.0.5.css' | relative_url }}{% endcapture %}
33
{% capture icons_url %}{{ 'assets/icomoon/style.css' | relative_url }}{% endcapture %}
44
{% if google_fonts %}{% capture fonts_url %}https://fonts.googleapis.com/css?family={{ google_fonts | uri_escape }}&display=swap{% endcapture %}{% endif %}
55

0 commit comments

Comments
 (0)