From a989374f143a885920e640296902d5bbf4fe8086 Mon Sep 17 00:00:00 2001 From: cel Date: Fri, 8 Nov 2019 14:39:07 -1000 Subject: Add dualMarkdownPreview option --- lib/render-msg.js | 12 ++++++++++++ lib/render.js | 10 ++++++++-- lib/serve.js | 2 ++ 3 files changed, 22 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/render-msg.js b/lib/render-msg.js index 475965a..a29a21b 100644 --- a/lib/render-msg.js +++ b/lib/render-msg.js @@ -368,6 +368,18 @@ RenderMsg.prototype.encrypted = function (cb) { RenderMsg.prototype.markdown = function (cb) { if (this.opts.markdownSource) return this.markdownSource(this.c.text, this.c.mentions) + + if (this.opts.dualMarkdown) { + var self = this + return h('table', {style: 'width: 100%'}, h('tr', [ + h('td', {style: 'width: 50%'}, + {innerHTML: this.render.markdown(this.c.text, this.c.mentions)}), + h('td', {style: 'width: 50%'}, + {innerHTML: this.render.markdown(this.c.text, this.c.mentions, + {ssbcMd: true})}) + ])).outerHTML + } + return this.render.markdown(this.c.text, this.c.mentions) } diff --git a/lib/render.js b/lib/render.js index f3dcfe0..fc2407e 100644 --- a/lib/render.js +++ b/lib/render.js @@ -12,6 +12,7 @@ var u = require('./util') var multicb = require('multicb') var RenderMsg = require('./render-msg') var Highlight = require('highlight.js') +var md = require('ssb-markdown') module.exports = Render @@ -166,8 +167,9 @@ function fixSymbols(str) { } */ -Render.prototype.markdown = function (text, mentions) { +Render.prototype.markdown = function (text, mentions, opts) { if (!text) return '' + var ssbcMd = opts && opts.ssbcMd var mentionsObj = this._mentions = {} var mentionsByLink = this._mentionsByLink = {} if (Array.isArray(mentions)) mentions.forEach(function (link) { @@ -184,7 +186,11 @@ Render.prototype.markdown = function (text, mentions) { '?unbox=' + link.query.unbox.replace(/\s/g, '+') : '') + (link.key ? '#' + link.key : '')] = link }) - var out = marked(String(text), this.markedOpts) + var self = this + var out = ssbcMd ? md.block(String(text), { + toUrl: function (ref) { return self.toUrl(ref) }, + imageLink: function (ref) { return self.imageUrl(ref) } + }) : marked(String(text), this.markedOpts) delete this._mentions delete this._mentionsByLink return out //fixSymbols(out) diff --git a/lib/serve.js b/lib/serve.js index 7e0ee26..cd63905 100644 --- a/lib/serve.js +++ b/lib/serve.js @@ -3968,6 +3968,8 @@ Serve.prototype.composer = function (opts, cb) { self.app.unboxMessages(), self.app.render.renderFeeds({ raw: raw, + dualMarkdown: self.query.dualMd != null ? self.query.dualMd : + self.conf.dualMarkdownPreview, filter: self.query.filter, }), pull.drain(function (el) { -- cgit v1.2.3