index.jsView |
---|
30 | 30 … | extractor.mention = function (_, id) { |
31 | 31 … | onLink({target: id}) |
32 | 32 … | } |
33 | 33 … | |
| 34 … | +extractor.emoji = function (name) { |
| 35 … | + onLink({label: name, emoji: true}) |
| 36 … | +} |
| 37 … | + |
34 | 38 … | extractor.hashtag = function (_, hashtag) { |
35 | 39 … | onLink({target: hashtag}) |
36 | 40 … | } |
37 | 41 … | |
46 | 50 … | function links (s, _onLink) { |
47 | 51 … | if('string' !== typeof s) return |
48 | 52 … | onLink = _onLink |
49 | 53 … | try { |
50 | | - marked(s, {renderer: extractor}) |
| 54 … | + marked(s, {renderer: extractor, emoji: extractor.emoji}) |
51 | 55 … | } catch(err) { |
52 | 56 … | console.log(JSON.stringify(s)) |
53 | 57 … | throw err |
54 | 58 … | } |
56 | 60 … | } |
57 | 61 … | |
58 | 62 … | module.exports = function (text, opts) { |
59 | 63 … | var bareFeedNames = opts && opts.bareFeedNames |
| 64 … | + var emoji = opts && opts.emoji |
60 | 65 … | var a = [] |
61 | 66 … | links(text, function (link) { |
62 | 67 … | if(ref.isFeed(link.target)) |
63 | 68 … | a.push({link: link.target, name: link.label && link.label.replace(/^@/, '')}) |
68 | 73 … | else if(bareFeedNames && link.target && link.target[0] === '@') |
69 | 74 … | a.push({link: link.target[0], name: link.target.substr(1)}) |
70 | 75 … | else if(link.target && link.target[0] === '#') |
71 | 76 … | a.push({link: link.target}) |
| 77 … | + else if(emoji && link.emoji) |
| 78 … | + a.push({emoji: true, name: link.label}) |
72 | 79 … | }) |
73 | 80 … | return a |
74 | 81 … | } |
75 | 82 … | |