all repos — archive/homestead @ a7960192e2a268c02643a9374adb4d8798c15d5a

My future indieweb platform

refactor: move markdown rendering to domain

The input and output formats (md -> html) are specific to the domain
of blogging, not really a presentation concern.

This also means that markdown is rendered to HTML on startup, rather
than per-request
Alan Pearce alan@alanpearce.eu
Sun, 25 Jun 2017 13:03:41 +0200
commit

a7960192e2a268c02643a9374adb4d8798c15d5a

parent

6061d1e5b5bdd67ab958c7cedc2f3fe5712e3ea2

2 files changed, 4 insertions(+), 2 deletions(-)

jump to
M src/domain/posts.jssrc/domain/posts.js
@@ -3,6 +3,7 @@ const fs = require('fs')
 const path = require('path')
 const matter = require('gray-matter')
+const markdown = require('../modules/markdown.js')
 
 const grayMatterOptions = {
   lang: 'toml',
@@ -31,6 +32,8 @@ function get (filename) {
   const fileMatter = matter.read(filename, grayMatterOptions)
   fileMatter.basename = getTitle(fileMatter)
+  delete fileMatter.orig
+  fileMatter.body = markdown(fileMatter.content)
   return canonicaliseMetadata(fileMatter)
 }
 
M src/responders.jssrc/responders.js
@@ -2,7 +2,6 @@ 'use strict' 
 const fs = require('fs')
 const rheo = require('rheo')
-const markdown = require('./modules/markdown.js')
 
 const templateReader = template => () =>
   fs.createReadStream(`${__dirname}/templates/${template}.html`)
@@ -56,7 +55,7 @@ .layout()       .pipe(rheo())
       .inner('main', showPage('post'))
       .inner('article h1', rheo(post.data.get('title')))
-      .inner('article main', rheo(markdown(post.content)))
+      .inner('article main', rheo(post.body))
       .pipe(setTitle(config.site.title, post.data.get('title')))
       .render()
   },