alchi/src/alchi-book/src/_data/metadata.js

69 lines
1.9 KiB
JavaScript
Executable File

const fs = require('fs');
//const appRoot = require('app-root-path').path; // fails when the eleventy package is linked (edge case)
const glob = require('fast-glob');
// find nearest package.json
function findNearestPackageDir() {
const dirs = __dirname.split('/');
while (dirs.length > 0) {
const d = dirs.join('/');
const f = d + '/package.json';
if (fs.existsSync(f)) return d;
dirs.pop();
}
}
const appRoot = findNearestPackageDir();
// use last modify-time as version
const version = glob.sync(appRoot + '/src/pages/page-*.html')
.map(file => ({ file, mtime: fs.statSync(file).mtime }))
.sort((a, b) => (b.mtime - a.mtime)) // sort descending
[0]
.mtime
.toLocaleDateString('af')
;
console.log(`metadata.js: version = ${version}`)
const metadata = {};
metadata.languages = "en es de tr ru ar fa cs ro hu zh"; // TODO add new languages here
metadata.defaultLanguage = "en";
metadata.primarylanguage = metadata.defaultLanguage; // TODO rename to defaultLanguage
// TODO translate
metadata.basename = {};
metadata.basename.de = "alchi-book";
metadata.iconSvgPath = "alchi-pallas-symbol.small.svg";
metadata.title = "Your Blog Name"; // TODO
metadata.version = version;
metadata.url = "https://example.com/";
// TODO SEO
metadata.description = "description"; // TODO
metadata.keywords = "keywords"; // TODO
metadata.feed = {};
metadata.feed.subtitle = "I am writing about my experiences as a naval navel-gazer.";
metadata.feed.filename = "feed.xml";
metadata.feed.path = "/feed/feed.xml";
metadata.feed.id = "https://example.com/";
metadata.jsonfeed = {};
metadata.jsonfeed.path = "/feed/feed.json";
metadata.jsonfeed.url = "https://example.com/feed/feed.json";
metadata.author = {};
metadata.author.name = "Milan Hauth";
metadata.author.email = "milahu@gmail.com";
metadata.author.url = "https://github.com/milahu";
//export default metadata;
module.exports = metadata;