diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/render.js | 18 | ||||
-rw-r--r-- | lib/serve.js | 2 |
2 files changed, 19 insertions, 1 deletions
diff --git a/lib/render.js b/lib/render.js index 16bd7bc..fa4359c 100644 --- a/lib/render.js +++ b/lib/render.js @@ -24,13 +24,29 @@ MdRenderer.prototype.urltransform = function (href) { } MdRenderer.prototype.image = function (href, title, text) { + href = this.render.imageUrl(href) + var name = title || text + if (name) href += '?name=' + encodeURIComponent(name) return h('img', { - src: this.render.imageUrl(href), + src: href, alt: text, title: title || undefined }).outerHTML } +MdRenderer.prototype.link = function(href, title, text) { + href = this.urltransform(href) + var name = href && /^\/(&|%26)/.test(href) && (title || text) + if (name) href += '?name=' + encodeURIComponent(name) + return '<a' + + (href !== false + ? ' href="' + href + '"' + : ' class="bad"') + + (title ? ' title="' + title + '"' : '') + + '>' + text + '</a>' +}; + + function lexerRenderEmoji(emoji) { var el = this.renderer.render.emoji(emoji) return el && el.outerHTML || el diff --git a/lib/serve.js b/lib/serve.js index d739659..5386cbc 100644 --- a/lib/serve.js +++ b/lib/serve.js @@ -486,6 +486,8 @@ Serve.prototype.blob = function (id) { else return self.respond(500, err.message || err) } if (!has) return self.respond(404, 'Not found') + if (self.query.name) self.res.setHeader('Content-Disposition', + 'inline; filename='+encodeURIComponent(self.query.name)) pull( blobs.get(id), pull.map(Buffer), |