aboutsummaryrefslogtreecommitdiff
path: root/lib/render.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/render.js')
-rw-r--r--lib/render.js26
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