mirror of
https://github.com/10h30/wordpress-export-to-markdown.git
synced 2026-07-11 10:46:15 +09:00
Dynamic frontmatter loading
This commit is contained in:
Generated
+9
@@ -17,6 +17,7 @@
|
||||
"luxon": "^3.4.4",
|
||||
"request": "^2.88.2",
|
||||
"request-promise-native": "^1.0.8",
|
||||
"require-directory": "^2.1.1",
|
||||
"turndown": "^7.1.2",
|
||||
"turndown-plugin-gfm": "^1.0.2",
|
||||
"xml2js": "^0.6.2"
|
||||
@@ -1545,6 +1546,14 @@
|
||||
"request": "^2.34"
|
||||
}
|
||||
},
|
||||
"node_modules/require-directory": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
|
||||
"integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/resolve-from": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
"luxon": "^3.4.4",
|
||||
"request": "^2.88.2",
|
||||
"request-promise-native": "^1.0.8",
|
||||
"require-directory": "^2.1.1",
|
||||
"turndown": "^7.1.2",
|
||||
"turndown-plugin-gfm": "^1.0.2",
|
||||
"xml2js": "^0.6.2"
|
||||
|
||||
+9
-14
@@ -1,16 +1,13 @@
|
||||
const fs = require('fs');
|
||||
const requireDirectory = require('require-directory');
|
||||
const xml2js = require('xml2js');
|
||||
|
||||
const shared = require('./shared');
|
||||
const settings = require('./settings');
|
||||
const translator = require('./translator');
|
||||
|
||||
const frontmatter = {
|
||||
title: require('./frontmatter/title'),
|
||||
date: require('./frontmatter/date'),
|
||||
categories: require('./frontmatter/categories'),
|
||||
tags: require('./frontmatter/tags'),
|
||||
coverImage: require('./frontmatter/coverImage'),
|
||||
};
|
||||
// dynamically requires all frontmatter loaders
|
||||
const frontmatterLoaders = requireDirectory(module, './frontmatter', { recurse: false });
|
||||
|
||||
async function parseFilePromise(config) {
|
||||
console.log('\nParsing...');
|
||||
@@ -174,13 +171,11 @@ function mergeImagesIntoPosts(images, posts) {
|
||||
|
||||
function populateFrontmatter(posts) {
|
||||
posts.forEach(post => {
|
||||
post.frontmatter = {
|
||||
title: frontmatter.title(post),
|
||||
date: frontmatter.date(post),
|
||||
categories: frontmatter.categories(post),
|
||||
tags: frontmatter.tags(post),
|
||||
coverImage: frontmatter.coverImage(post)
|
||||
}
|
||||
post.frontmatter = {};
|
||||
settings.frontmatter_fields.forEach(field => {
|
||||
[key, alias] = field.split(':');
|
||||
post.frontmatter[alias || key] = frontmatterLoaders[key](post);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user