pandoc script to convert markdown to standalone html

This commit is contained in:
Tykayn 2021-03-03 16:19:11 +01:00 committed by tykayn
parent 79bf2f4847
commit cd87d78f06
4 changed files with 61 additions and 42 deletions

1
.gitignore vendored
View File

@ -2,3 +2,4 @@ sources/
.idea .idea
node_modules node_modules
output/ output/
output/*

9
export_md_to_html.sh Normal file
View File

@ -0,0 +1,9 @@
#!/bin/bash
echo " _____ convert the markdown on output with pandoc ____"
pandoc output/export_hebdo.md -t html -s -o output/export_hebdo.html
pandoc output/export_tags.md -t html -s -o output/export_tags.html
pandoc output/export_all.md -t html -s -o output/export_all.html
ls -larth output/*.html
echo " _____ ok files converted to html ____"

View File

@ -46,6 +46,7 @@ router.get('/', async function (req, res, next) {
res.render('index', { res.render('index', {
title: "Conversion de GTG tâches", title: "Conversion de GTG tâches",
json : jsonAllData, json : jsonAllData,
markdown : markdownExportData,
getPercent, getPercent,
computeBgColorOnProportionOfOpenTasks, computeBgColorOnProportionOfOpenTasks,
getPercentOfOpenTasks getPercentOfOpenTasks
@ -208,49 +209,55 @@ function computeBgColorOnProportionOfOpenTasks(someProportionNumber) {
return result; return result;
} }
let datenow = new Date(); let datenow = new Date();
let dataTagsMd = `# Export de Tâches GTG \n date: ` + datenow.toLocaleString() let markdownExportData = ''
function exportToMarkdown(res) { function exportToMarkdown(res) {
markdownExportData = `# Export de Tâches GTG \n date: ` + datenow.toLocaleString()
// fichier de rapport des tâches fermées durant les 7 derniers jours // fichier de rapport des tâches fermées durant les 7 derniers jours
dataTagsMd += `\n# Rapport hebdomadaire de dev `; markdownExportData += `\n# Rapport hebdomadaire de dev `;
dataTagsMd += `\n## ${jsonAllData.stats.listDevWeeklyClosed.length} ont été fermées `; markdownExportData += `\n## ${jsonAllData.stats.listDevWeeklyClosed.length} ont été fermées `;
jsonAllData.stats.listDevWeeklyClosed.map(elem => { jsonAllData.stats.listDevWeeklyClosed.map(elem => {
dataTagsMd += `\n * ${elem.title}`; markdownExportData += `\n * ${elem.title}`;
}) })
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n---`; markdownExportData += `\n---`;
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n# Rapport des tâches durant les 7 derniers jours `; markdownExportData += `\n# Rapport des tâches durant les 7 derniers jours `;
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n## ${jsonAllData.stats.listClosedWeekly.length} ont été fermées `; markdownExportData += `\n## ${jsonAllData.stats.listClosedWeekly.length} ont été fermées `;
dataTagsMd += `\n `; markdownExportData += `\n `;
jsonAllData.stats.listClosedWeekly.map(elem => { jsonAllData.stats.listClosedWeekly.map(elem => {
dataTagsMd += `\n * ${elem.title}`; markdownExportData += `\n * ${elem.title}`;
}) })
dataTagsMd += `\n## ${jsonAllData.stats.listOpenWeekly.length} ont été ouvertes `; markdownExportData += `\n## ${jsonAllData.stats.listOpenWeekly.length} ont été ouvertes `;
dataTagsMd += `\n `; markdownExportData += `\n `;
jsonAllData.stats.listOpenWeekly.map(elem => { jsonAllData.stats.listOpenWeekly.map(elem => {
dataTagsMd += `\n * ${elem.title}`; markdownExportData += `\n * ${elem.title}`;
}) })
dataTagsMd += `\n--- `; markdownExportData += `\n--- `;
// fichier de rapport des tâches fermées durant les 31 derniers jours // fichier de rapport des tâches fermées durant les 31 derniers jours
dataTagsMd += `\n# Rapport des autres tâches durant le mois `; markdownExportData += `\n# Rapport des autres tâches durant le mois `;
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n## ${jsonAllData.stats.listClosedWeekly.length} ont été fermées `; markdownExportData += `\n## ${jsonAllData.stats.listClosedMonthly.length} ont été fermées `;
dataTagsMd += `\n `; markdownExportData += `\n `;
jsonAllData.stats.listClosedMonthly.map(elem => {
markdownExportData += `\n * ${elem.title}`;
})
markdownExportData += `\n## ${jsonAllData.stats.listOpenMonthly.length} ont été ouvertes `;
markdownExportData += `\n `;
jsonAllData.stats.listOpenMonthly.map(elem => {
markdownExportData += `\n * ${elem.title}`;
})
dataTagsMd += `\n## ${jsonAllData.stats.listOpenWeekly.length} ont été ouvertes `; markdownExportData += `\n--- `;
dataTagsMd += `\n `;
dataTagsMd += `\n--- `;
// stats de fermeture des tâches // stats de fermeture des tâches
dataTagsMd += `\n# Stats de fermeture des tâches `; markdownExportData += `\n# Stats de fermeture des tâches `;
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n--- `; markdownExportData += `\n--- `;
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n# Export de toutes les ${jsonAllData.stats.listOpen.length} tâches ouvertes GTG \n `; markdownExportData += `\n# Export de toutes les ${jsonAllData.stats.listOpen.length} tâches ouvertes GTG \n `;
dataTagsMd += `\n `; markdownExportData += `\n `;
// jsonAllData.stats.listOpen.map(elem => { // jsonAllData.stats.listOpen.map(elem => {
// dataTagsMd += `\n## ${elem.title} `; // dataTagsMd += `\n## ${elem.title} `;
@ -260,32 +267,32 @@ function exportToMarkdown(res) {
// dataTagsMd += `\n prévu pour : ${elem.duedate | ''} `; // dataTagsMd += `\n prévu pour : ${elem.duedate | ''} `;
// dataTagsMd += `\n ${elem.content} `; // dataTagsMd += `\n ${elem.content} `;
// }) // })
dataTagsMd += `\n--- `; markdownExportData += `\n--- `;
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n# Export de toutes les ${jsonAllData.stats.listClosed.length} tâches fermées GTG \n `; markdownExportData += `\n# Export de toutes les ${jsonAllData.stats.listClosed.length} tâches fermées GTG \n `;
dataTagsMd += `\n `; markdownExportData += `\n `;
// //
// jsonAllData.stats.listClosed.map(elem=>{ // jsonAllData.stats.listClosed.map(elem=>{
// dataTagsMd += `\n * ${elem.title} `; // dataTagsMd += `\n * ${elem.title} `;
// }) // })
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n# Export de Tags GTG \n `; markdownExportData += `\n# Export de Tags GTG \n `;
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n `; markdownExportData += `\n `;
let sortedTagsByTitle = _.sortBy(jsonAllData.tags.tagstore.tag, [(o) => { let sortedTagsByTitle = _.sortBy(jsonAllData.tags.tagstore.tag, [(o) => {
o["$"].name o["$"].name
}]) }])
sortedTagsByTitle.map(elem => { sortedTagsByTitle.map(elem => {
dataTagsMd += `\n * ${elem['$'].name} , ${elem.tasks | 0}`; markdownExportData += `\n * ${elem['$'].name} , ${elem.tasks | 0}`;
}) })
dataTagsMd += `\n `; markdownExportData += `\n `;
dataTagsMd += `\n rapport généré avec gtg2nodejs par tykayn - contact@cipherbliss.com `; markdownExportData += `\n rapport généré avec gtg2nodejs par tykayn - contact@cipherbliss.com `;
// write file to disk // write file to disk
fs.writeFile(`output/export_tags.md`, dataTagsMd, `utf8`, (err) => { fs.writeFile(`output/export_hebdo.md`, markdownExportData, `utf8`, (err) => {
if (err) { if (err) {
console.log(`Error writing file: ${err}`); console.log(`Error writing file: ${err}`);

View File

@ -12,6 +12,8 @@ block content
li #{json.stats.listClosed.length} fermées li #{json.stats.listClosed.length} fermées
li #{json.stats.listClosedWeekly.length} fermées cette semaine li #{json.stats.listClosedWeekly.length} fermées cette semaine
li #{json.stats.listClosedMonthly.length} fermées ce mois-ci li #{json.stats.listClosedMonthly.length} fermées ce mois-ci
section.markdown
article(language="md")= markdown
section.tags section.tags
h2 #{json.tags.tagstore.tag.length} Tags h2 #{json.tags.tagstore.tag.length} Tags
p maximum de #{json.stats.maxTasksCountPerTag} tâches pour un tag. p maximum de #{json.stats.maxTasksCountPerTag} tâches pour un tag.