Skip to content

Commit ffd87bb

Browse files
committed
using parseMD to parse content
1 parent af1273d commit ffd87bb

File tree

3 files changed

+16
-19
lines changed

3 files changed

+16
-19
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "blog",
4-
"version": "0.1.1",
4+
"version": "0.1.2",
55
"license": "MIT",
66
"scripts": {
77
"start": "per-env",

prerender-urls.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const { generateFileList } = require('./src/crawler');
22
const { join } = require('path');
33
const fs = require('fs');
4+
const parseMD = require('parse-md').default;
45

56
const [blogs] = generateFileList(join(__dirname, 'content')).nodes;
67
module.exports = () => {
@@ -23,7 +24,13 @@ module.exports = () => {
2324

2425
// adding all blog pages
2526
pages.push(...blogs.edges.map(blog => {
26-
const data = fs.readFileSync(join('content', 'blog', blog.id), 'utf-8').replace(/---(.*(\r)?\n)*---/, '');
27+
let data;
28+
if (blog.format === 'md') {
29+
const { content } = parseMD(fs.readFileSync(join('content', 'blog', blog.id), 'utf-8'));
30+
data = content;
31+
} else {
32+
data = fs.readFileSync(join('content', 'blog', blog.id), 'utf-8').replace(/---(.*(\r)?\n)*---/, '');
33+
}
2734
return {
2835
url: `/blog/${blog.id}`,
2936
seo: blog.details,

src/crawler/index.js

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,6 @@
11
const fs = require('fs');
22
const { join, sep } = require('path');
3-
4-
function parseMarkdownToObject(markdownString) {
5-
const markDown = markdownString.match(/---(.*(\r)?\n)*---/g);
6-
const metadata = markDown[0];
7-
8-
const details = metadata.match(/(.*):(.*)/g).reduce((obj, detail) => {
9-
const value = detail.substr(detail.indexOf(':') + 2);
10-
const key = detail.substr(0, detail.indexOf(':'));
11-
obj[key] = value;
12-
return obj;
13-
}, {});
14-
15-
return details;
16-
}
3+
const parseMD = require('parse-md').default;
174

185
function getExtensionFromFilename(fileName) {
196
return fileName.substr(fileName.lastIndexOf('.') + 1);
@@ -25,7 +12,8 @@ function getDetails(format, data) {
2512
switch (formatNormalised) {
2613
case 'md':
2714
case 'markdown': {
28-
return parseMarkdownToObject(data);
15+
const { metadata } = parseMD(data);
16+
return metadata;
2917
}
3018

3119
case 'json': {
@@ -39,7 +27,8 @@ function getDetails(format, data) {
3927
}
4028

4129
function getPreview(data) {
42-
let preview = data.replace(/---(.*(\r)?\n)*---/, '').replace(/\[.*\]\(.*\)/g, '').replace(/(\r)?\n/,'');
30+
const { content } = parseMD(data);
31+
let preview = content.replace(/---(.*(\r)?\n)*---/, '').replace(/\[.*\]\(.*\)/g, '').replace(/(\r)?\n/,'');
4332
preview = preview.substr(0, (preview.indexOf('\n') -1));
4433
return preview.length < 500? preview : preview.substr(0, 500);
4534
}
@@ -55,7 +44,8 @@ function getFolders(source) {
5544
const id = file.substr(file.lastIndexOf(sep) + 1);
5645
const format = getExtensionFromFilename(id);
5746
return {
58-
id: id,
47+
id,
48+
format,
5949
path: file,
6050
details: getDetails(format, data),
6151
preview: getPreview(data)

0 commit comments

Comments
 (0)