summaryrefslogtreecommitdiff
path: root/src/build/index.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'src/build/index.mjs')
-rw-r--r--src/build/index.mjs25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/build/index.mjs b/src/build/index.mjs
index f9a0d51..d6f1a8a 100644
--- a/src/build/index.mjs
+++ b/src/build/index.mjs
@@ -6,36 +6,41 @@ import {select} from 'hast-util-select';
import {toString as hastToString} from 'mdast-util-to-string';
import cssesc from 'cssesc';
-import {toHtmlRaw, toString} from './to-html.mjs';
+import {toHtmlRaw, toString, toMdRaw, mdToHtmlRaw} from './to-html.mjs';
import loadSVG from './load-svg.mjs';
import listArticles from './list-articles.mjs';
import getRSS from './rss.mjs';
+import toml from '@ltd/j-toml';
const loadMD = (listFile, suffix) => {
const listContent = [];
for (const file of listFile) {
+ console.log(`Working on ${file}`);
const content = fs.readFileSync(`${suffix}/${file}`, 'utf8');
- const htmlContent = toHtmlRaw(content);
+ const mdRaw = toMdRaw(content);
+ const tomlStringValue = mdRaw.children[0].value;
+ const metaData = toml.parse(tomlStringValue);
+ const newHTML = mdToHtmlRaw(mdRaw);
+
+ const htmlContent = newHTML;
const htmlRender = toString(htmlContent);
- const articleHtml = select('article', htmlContent);
const titleHtml = select('h1', htmlContent);
const intro = select('p', htmlContent);
- const logo = select('img', htmlContent);
+ intro.children = intro.children.filter(child => child.tagName !== 'br');
+
+ const logo = select('img', intro);
logo.properties.src = `${suffix}/${logo.properties.src}`;
logo.properties.height = '150px';
logo.properties.width = '150px';
titleHtml.children[0].properties.href = `${suffix}/${file.slice(0, -3)}.html`;
const title = hastToString(titleHtml);
- const domTitle = cssesc(title.replace(/\s+/g, '-').replace(/[\'\"#@]/, '').toLowerCase()); // Maybe encodeURI
- console.log(domTitle);
-
- console.log(`Create : ${title}`);
+ const domTitle = cssesc(title.replace(/\s+/g, '-').replace(/['"#@]/, '').toLowerCase()); // Maybe encodeURI
const readMore = h('a', 'Lire plus...');
- readMore.properties.href = `${suffix}/${file.slice(0, -3)}.html`
+ readMore.properties.href = `${suffix}/${file.slice(0, -3)}.html`;
readMore.properties.role = 'expend';
readMore.properties.for = domTitle;
@@ -45,6 +50,7 @@ const loadMD = (listFile, suffix) => {
intro: toString(u('root', [titleHtml, intro, readMore])),
introDesc: hastToString(intro),
imageUrl: logo.properties.src,
+ metaData,
title,
domTitle,
});
@@ -76,6 +82,7 @@ for (const article of articles) {
};
const output = mustache.render(articleTmpl, context, partials);
+ console.log(`Create : ${article.title}`);
fs.writeFileSync(`articles/${article.name}.html`, output);
}