message/html/markdown.jsView |
---|
3 | 3 … | const ref = require('ssb-ref') |
4 | 4 … | const nest = require('depnest') |
5 | 5 … | var htmlEscape = require('html-escape') |
6 | 6 … | var watch = require('mutant/watch') |
| 7 … | +const querystring = require('querystring'); |
7 | 8 … | |
8 | 9 … | exports.needs = nest({ |
9 | 10 … | 'blob.sync.url': 'first', |
10 | 11 … | 'blob.obs.has': 'first', |
45 | 46 … | : api.emoji.sync.url(emoji) |
46 | 47 … | return renderEmoji(emoji, url) |
47 | 48 … | }, |
48 | 49 … | toUrl: (id) => { |
49 | | - if (id.startsWith('&')) { |
50 | | - var url = api.blob.sync.url(id) |
51 | | - |
52 | | - if (typeLookup[id]) { |
53 | | - var separator = url.includes('?') ? '&' : '?' |
54 | | - url += separator + 'contentType=' + escape(typeLookup[id]) |
55 | | - } |
56 | | - |
57 | | - return url |
| 50 … | + if (ref.isBlob(id)) { |
| 51 … | + var blob = ref.parseBlob(id) |
| 52 … | + var url = api.blob.sync.url(blob.id) |
| 53 … | + var query = {} |
| 54 … | + if (blob.key) query['unbox'] = blob.key + '.boxs' |
| 55 … | + if (typeLookup[blob.id]) query['contentType'] = typeLookup[blob.id] |
| 56 … | + return url + '?' + querystring.stringify(query) |
58 | 57 … | } |
59 | 58 … | if (mentions[id]) { |
60 | 59 … | return mentions[id] |
61 | 60 … | } else if (ref.isLink(id) || id.startsWith('#') || id.startsWith('?')) { |