@nzdjb/static-site-generator 0.9.19 → 0.10.1
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.
- package/CHANGELOG.md +14 -0
- package/dist/src/article.d.ts +1 -0
- package/dist/src/article.d.ts.map +1 -1
- package/dist/src/article.js +12 -2
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.10.1](https://github.com/nzdjb/static-site-generator/compare/v0.10.0...v0.10.1) (2025-09-15)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* bump marked from 16.2.1 to 16.3.0 ([#893](https://github.com/nzdjb/static-site-generator/issues/893)) ([a5fc991](https://github.com/nzdjb/static-site-generator/commit/a5fc991b5364918e8e28003085d650e6e7121685))
|
|
9
|
+
|
|
10
|
+
## [0.10.0](https://github.com/nzdjb/static-site-generator/compare/v0.9.19...v0.10.0) (2025-09-05)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Features
|
|
14
|
+
|
|
15
|
+
* Footnote support. ([#888](https://github.com/nzdjb/static-site-generator/issues/888)) ([e6c44df](https://github.com/nzdjb/static-site-generator/commit/e6c44dfa33d4e3502b4234b66d34b22fd8db8563))
|
|
16
|
+
|
|
3
17
|
## [0.9.19](https://github.com/nzdjb/static-site-generator/compare/v0.9.18...v0.9.19) (2025-08-31)
|
|
4
18
|
|
|
5
19
|
|
package/dist/src/article.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../src/article.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"article.d.ts","sourceRoot":"","sources":["../../src/article.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,mBAAoB,SAAQ,iBAAiB;IACrD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,iBAAkB,SAAQ,iBAAiB;IACnD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;AAEpE,qBAAa,OAAO;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,KAAK,EAAE,aAAa;IAgBhC,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;CAGpC"}
|
package/dist/src/article.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { marked } from 'marked';
|
|
2
|
+
import markedFootnote from 'marked-footnote';
|
|
2
3
|
import { readFileSync } from 'node:fs';
|
|
3
4
|
import sanitizeHTML from 'sanitize-html';
|
|
4
5
|
const sanitizerSettings = {
|
|
5
6
|
allowedTags: sanitizeHTML.defaults.allowedTags.concat(['img', 'h1']),
|
|
7
|
+
allowedAttributes: {
|
|
8
|
+
...sanitizeHTML.defaults.allowedAttributes,
|
|
9
|
+
'*': ['id', 'aria-label'],
|
|
10
|
+
},
|
|
6
11
|
disallowedTagsMode: 'escape',
|
|
7
12
|
};
|
|
8
13
|
export class Article {
|
|
@@ -11,16 +16,21 @@ export class Article {
|
|
|
11
16
|
author;
|
|
12
17
|
date;
|
|
13
18
|
published;
|
|
19
|
+
slug;
|
|
14
20
|
constructor(input) {
|
|
15
21
|
this.title = input.title;
|
|
16
22
|
this.author = input.author;
|
|
17
23
|
this.date = input.date.toISOString().split('T')[0];
|
|
24
|
+
this.slug = input.title.toLowerCase().replaceAll(/\s/g, '-');
|
|
18
25
|
const content = "content" in input ? input.content : readFileSync(input.contentFile).toString();
|
|
19
|
-
this.content = sanitizeHTML(marked.
|
|
26
|
+
this.content = sanitizeHTML(marked.use(markedFootnote({
|
|
27
|
+
description: '', // Unfortunately, this still leaves the h2 in.
|
|
28
|
+
prefixId: `footnote-${this.slug}-`,
|
|
29
|
+
})).parse(content, { async: false }), sanitizerSettings);
|
|
20
30
|
this.published = input.published ?? true;
|
|
21
31
|
}
|
|
22
32
|
compareDate(other) {
|
|
23
33
|
return this.date === other.date ? 0 : this.date > other.date ? 1 : -1;
|
|
24
34
|
}
|
|
25
35
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWNsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcnRpY2xlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDaEMsT0FBTyxjQUFjLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLFlBQVksTUFBTSxlQUFlLENBQUM7QUFFekMsTUFBTSxpQkFBaUIsR0FBMEI7SUFDL0MsV0FBVyxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRSxpQkFBaUIsRUFBRTtRQUNqQixHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsaUJBQWlCO1FBQzFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUM7S0FDMUI7SUFDRCxrQkFBa0IsRUFBRSxRQUFRO0NBQzdCLENBQUM7QUF3QkYsTUFBTSxPQUFPLE9BQU87SUFDVCxLQUFLLENBQVM7SUFDZCxPQUFPLENBQVM7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLElBQUksQ0FBUztJQUNiLFNBQVMsQ0FBVTtJQUNuQixJQUFJLENBQVM7SUFFdEIsWUFBWSxLQUFvQjtRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsU0FBUyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRyxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FDekIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7WUFDeEIsV0FBVyxFQUFFLEVBQUUsRUFBRSw4Q0FBOEM7WUFDL0QsUUFBUSxFQUFFLFlBQVksSUFBSSxDQUFDLElBQUksR0FBRztTQUNuQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFXLEVBQzlDLGlCQUFpQixDQUNsQixDQUFDO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztJQUMzQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWM7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcmtlZCB9IGZyb20gJ21hcmtlZCc7XG5pbXBvcnQgbWFya2VkRm9vdG5vdGUgZnJvbSAnbWFya2VkLWZvb3Rub3RlJztcbmltcG9ydCB7IHJlYWRGaWxlU3luYyB9IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHNhbml0aXplSFRNTCBmcm9tICdzYW5pdGl6ZS1odG1sJztcblxuY29uc3Qgc2FuaXRpemVyU2V0dGluZ3M6IHNhbml0aXplSFRNTC5JT3B0aW9ucyA9IHtcbiAgYWxsb3dlZFRhZ3M6IHNhbml0aXplSFRNTC5kZWZhdWx0cy5hbGxvd2VkVGFncy5jb25jYXQoWydpbWcnLCAnaDEnXSksXG4gIGFsbG93ZWRBdHRyaWJ1dGVzOiB7XG4gICAgLi4uc2FuaXRpemVIVE1MLmRlZmF1bHRzLmFsbG93ZWRBdHRyaWJ1dGVzLFxuICAgICcqJzogWydpZCcsICdhcmlhLWxhYmVsJ10sXG4gIH0sXG4gIGRpc2FsbG93ZWRUYWdzTW9kZTogJ2VzY2FwZScsXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbmsge1xuICB0YXJnZXQ6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEFydGljbGVCYXNlQ29uZmlnIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgYXV0aG9yPzogc3RyaW5nO1xuICBkYXRlOiBEYXRlO1xuICBwdWJsaXNoZWQ/OiBib29sZWFuO1xufVxuXG5pbnRlcmZhY2UgQXJ0aWNsZVN0cmluZ0NvbmZpZyBleHRlbmRzIEFydGljbGVCYXNlQ29uZmlnIHtcbiAgY29udGVudDogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgQXJ0aWNsZUZpbGVDb25maWcgZXh0ZW5kcyBBcnRpY2xlQmFzZUNvbmZpZyB7XG4gIGNvbnRlbnRGaWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFydGljbGVDb25maWcgPSBBcnRpY2xlU3RyaW5nQ29uZmlnIHwgQXJ0aWNsZUZpbGVDb25maWc7XG5cbmV4cG9ydCBjbGFzcyBBcnRpY2xlIHtcbiAgcmVhZG9ubHkgdGl0bGU6IHN0cmluZztcbiAgcmVhZG9ubHkgY29udGVudDogc3RyaW5nO1xuICByZWFkb25seSBhdXRob3I/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRhdGU6IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGlzaGVkOiBib29sZWFuO1xuICByZWFkb25seSBzbHVnOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoaW5wdXQ6IEFydGljbGVDb25maWcpIHtcbiAgICB0aGlzLnRpdGxlID0gaW5wdXQudGl0bGU7XG4gICAgdGhpcy5hdXRob3IgPSBpbnB1dC5hdXRob3I7XG4gICAgdGhpcy5kYXRlID0gaW5wdXQuZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XG4gICAgdGhpcy5zbHVnID0gaW5wdXQudGl0bGUudG9Mb3dlckNhc2UoKS5yZXBsYWNlQWxsKC9cXHMvZywgJy0nKTtcbiAgICBjb25zdCBjb250ZW50ID0gXCJjb250ZW50XCIgaW4gaW5wdXQgPyBpbnB1dC5jb250ZW50IDogcmVhZEZpbGVTeW5jKGlucHV0LmNvbnRlbnRGaWxlKS50b1N0cmluZygpO1xuICAgIHRoaXMuY29udGVudCA9IHNhbml0aXplSFRNTChcbiAgICAgIG1hcmtlZC51c2UobWFya2VkRm9vdG5vdGUoe1xuICAgICAgICBkZXNjcmlwdGlvbjogJycsIC8vIFVuZm9ydHVuYXRlbHksIHRoaXMgc3RpbGwgbGVhdmVzIHRoZSBoMiBpbi5cbiAgICAgICAgcHJlZml4SWQ6IGBmb290bm90ZS0ke3RoaXMuc2x1Z30tYCxcbiAgICAgIH0pKS5wYXJzZShjb250ZW50LCB7IGFzeW5jOiBmYWxzZSB9KSBhcyBzdHJpbmcsXG4gICAgICBzYW5pdGl6ZXJTZXR0aW5nc1xuICAgICk7XG4gICAgdGhpcy5wdWJsaXNoZWQgPSBpbnB1dC5wdWJsaXNoZWQgPz8gdHJ1ZTtcbiAgfVxuXG4gIGNvbXBhcmVEYXRlKG90aGVyOiBBcnRpY2xlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlID09PSBvdGhlci5kYXRlID8gMCA6IHRoaXMuZGF0ZSA+IG90aGVyLmRhdGUgPyAxIDogLTE7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nzdjb/static-site-generator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Static site generator.",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"repository": "https://github.com/nzdjb/static-site-generator",
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"glob": "^11.0.0",
|
|
38
38
|
"handlebars": "^4.7.7",
|
|
39
39
|
"marked": "^16.2.1",
|
|
40
|
+
"marked-footnote": "^1.4.0",
|
|
40
41
|
"sanitize-html": "^2.10.0",
|
|
41
42
|
"ts-command-line-args": "^2.4.2"
|
|
42
43
|
},
|