From 9f75ff1d2d5ebf34c040474e836e125f80253365 Mon Sep 17 00:00:00 2001 From: Patryk Niedźwiedziński Date: Tue, 28 Jan 2020 11:55:03 +0100 Subject: Add Post class --- lib/parsePost.ts | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 lib/parsePost.ts (limited to 'lib/parsePost.ts') diff --git a/lib/parsePost.ts b/lib/parsePost.ts deleted file mode 100644 index 2f5f2b9..0000000 --- a/lib/parsePost.ts +++ /dev/null @@ -1,46 +0,0 @@ -import * as fs from "fs"; -import { JSDOM } from "jsdom"; -import { Post, PostContent } from "./interfaces"; - -const frontmatter = require("front-matter"); -const md = require("markdown-it")(); - -function getDescription(html: string): string { - const { document } = new JSDOM(`
${html}
`).window; - const elements = document.getElementsByTagName("p"); - - const description = elements[1].textContent; - - return description || ""; -} - -function getPostContent(fileContent: string): PostContent { - const post = frontmatter(fileContent); - - const markdown = post.body; - const html = `
${md.render(markdown)}
`; - const description = getDescription(html); - - return { - html, - markdown, - description, - meta: post.attributes - }; -} - -export function parsePost(filePath: string): Post { - let [year, month, day, title] = filePath.split("/").splice(-4, 4); - title = title.substr(0, title.lastIndexOf(".")); - const date = { year, month, day }; - const fileContent = fs.readFileSync(filePath, "utf-8"); - const content = getPostContent(fileContent); - - return { - date, - title, - content, - filePath, - route: `/kronika/${year}/${month}/${day}/${title}` - }; -} -- cgit 1.4.1