[0.1.5] fix slugs and sitemap generation

This commit is contained in:
yellows111 2024-10-26 11:21:44 +01:00
parent 6565b78ac1
commit 7991d78e1c
Signed by: yellows111
SSH Key Fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
3 changed files with 28 additions and 5 deletions

View File

@ -38,8 +38,28 @@ if(Process.argv.length < 4 && require.main === module) {
} }
function markup(input, options) { function markup(input, options) {
var usedSlugs = {};
let tableOfContents = new Remarkable().use(TOCGenerator.plugin(options)).render(input); let tableOfContents = new Remarkable().use(TOCGenerator.plugin(options)).render(input);
let output = new Remarkable().use(RemarkableHeaderIDs()).render("# Table of contents:\n"+tableOfContents.content+"\n\n"+input); let output = new Remarkable().use(
RemarkableHeaderIDs({
levels: [1,2,3,4,5,6],
anchorClassName: "header-anchor",
anchorText: "#",
headerId: function(slug) {
if(usedSlugs[slug] > 0) {
const out_ = `${slug}-${usedSlugs[slug]}`;
usedSlugs[slug] = usedSlugs[slug] + 1;
return out_;
} else {
if(!usedSlugs.hasOwnProperty(slug)) {
usedSlugs[slug] = 0;
}
usedSlugs[slug] = usedSlugs[slug] + 1;
return slug;
}
}
})
).render("# Table of contents:\n"+tableOfContents.content+"\n\n"+input);
return output; return output;
} }
@ -67,7 +87,7 @@ function format(data, name) {
"$1$2" "$1$2"
) )
.replace( /* multitag suffix fix for special characters. */ .replace( /* multitag suffix fix for special characters. */
/(<\/(?:a|code)>)\n\t*([.)\];:,?!+-])/g, /(<\/(?:a|code)>)\n\t*([.)\];:,?!+\-'])/g,
"$1$2" "$1$2"
) )
.replace( /* fix tag attached to word and not whitespace */ .replace( /* fix tag attached to word and not whitespace */

View File

@ -45,9 +45,10 @@ ${outputTemp}</urlset>
} }
function makeSitemapChunk(file, outputDir) { function makeSitemapChunk(file, outputDir) {
var file = file.replace(".md", ".html");
outputTemp = outputTemp.concat( /* eslint-disable indent */ outputTemp = outputTemp.concat( /* eslint-disable indent */
` <url> ` <url>
<loc>https://${targetDomain}${rootPrefix}${file.replace(outputDir, "")}</loc> <loc>https://${targetDomain}${rootPrefix}${file.replace(outputDir, "").replace(".md", ".html")}</loc>
<lastmod>${Filesystem.statSync(file).mtime.toISOString().substring(0, 10)}</lastmod> <lastmod>${Filesystem.statSync(file).mtime.toISOString().substring(0, 10)}</lastmod>
</url> </url>
` `

View File

@ -73,9 +73,11 @@ Filesystem.globSync(`${SRC_DIRS}/**/*.css`).forEach(function(file) {
Filesystem.writeFileSync(Path.normalize(BUILD_DIR+"/sitemap.xml"), Filesystem.writeFileSync(Path.normalize(BUILD_DIR+"/sitemap.xml"),
require("./sitemap-gen.js")( require("./sitemap-gen.js")(
MARKDOWN_L.map(function(filename){ MARKDOWN_L.map(function(filename){
return Path.dirname(filename).replace(/\\/g, "/") + "/" + Path.basename(filename); return Path.dirname(filename)
.replace(Path.normalize(SRC_DIRS), Path.normalize(BUILD_DIR))
.replace(/\\/g, "/") + "/" + Path.basename(filename, ".md") + ".html";
}), }),
Path.normalize(SRC_DIRS) Path.normalize(BUILD_DIR)
) )
); );
console.log(`SMAP: ${Path.normalize(BUILD_DIR+"/sitemap.xml")}`); console.log(`SMAP: ${Path.normalize(BUILD_DIR+"/sitemap.xml")}`);