diff options
Diffstat (limited to 'lib/render.js')
-rw-r--r-- | lib/render.js | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/render.js b/lib/render.js index e694396..df5d1c6 100644 --- a/lib/render.js +++ b/lib/render.js @@ -346,6 +346,32 @@ Render.prototype.idLink = function (link, cb) { return a } +// %NM8tXGBBDKKcpRbbyd/5uN1p/2OtBMFDylLMDPGoq8Q=.sha256 +var idRegex = /^[A-Za-z0-9._\-+=/]*[A-Za-z0-9_\-+=/]$/ + +Render.prototype.idLinkCopyable = function (link, cb) { + var self = this + if (!self.app.copyableIds) return idLink(link, cb) + if (!link) return cb(), '' + var a = h('a', ' ') + self.prepareLink(link, function (err, link) { + if (err) return cb(err) + a.href = self.toUrl(link.link) + var name = link.name || String(link.link).substr(1, 8) + '…' + if (idRegex.test(name)) a.childNodes[0].textContent = '@' + name + else { + a.className = 'id-copyable-link' + a.innerHTML = h('span', [ + h('span.id-deemphasize', '['), + h('span.id-name', '@' + link.name), + h('span.id-deemphasize', '](', link.link, ')'), + ]).innerHTML + } + cb() + }) + return a +} + Render.prototype.privateLine = function (recps, isAuthorRecp, cb) { var done = multicb({pluck: 1, spread: true}) var self = this |