410 lines
11 KiB
JavaScript
410 lines
11 KiB
JavaScript
const fs = require('fs')
|
|
const path = require('path')
|
|
const matter = require('gray-matter')
|
|
const { convertCanvasToSVG, sanitizeName, sanitizeAssetname } = require('./convert-canvas-to-svg.js')
|
|
|
|
/* arguments:
|
|
all
|
|
vuepress
|
|
index
|
|
canvas
|
|
convert
|
|
attachments
|
|
sitemap
|
|
*/
|
|
|
|
// settings
|
|
const debug = process.env.DEBUG == 'true'
|
|
const ignoreFiles = ['_navbar.md', '_sidbar.md']
|
|
const scheme = 'https://'
|
|
const hostname = 'wiki.mint-system.ch'
|
|
const basePath = '/'
|
|
| an class="o">= /\[\[([^\]]+\.canvas.+)\]\]/g | |
const embededContent = /!\[\[([^\]]*)\]\]/g
|
|
const wikiLink = /\[\[([^\]]*)\]\]/g
|
|
const obsidianBases = /\[\[([^\]]+)\.base\]\]/g
|
|
|
|
function loopMdFiles() {
|
|
return fs
|
|
.readdirSync(__dirname)
|
|
.filter(
|
|
(file) => path.extname(file) === '.md' && ignoreFiles.indexOf(file) != 0
|
|
)
|
|
}
|
|
|
|
const groupBy =
|
|
(key, sort = false) =>
|
|
(array) => {
|
|
const grouped = array.reduce((objectsByKeyValue, obj) => {
|
|
const value = obj[key]
|
|
objectsByKeyValue[value] = (objectsByKeyValue[value] || []).concat(obj)
|
|
return objectsByKeyValue
|
|
}, {})
|
|
|
|
if (sort) {
|
|
return Object.keys( |