convert-emoji

pull/7205/head
Markus Beckschulte 2 years ago
parent 904260fd44
commit f68d0980fb

File diff suppressed because it is too large Load Diff

@ -2,6 +2,7 @@ const qs = require('querystring')
const _ = require('lodash') const _ = require('lodash')
const crypto = require('crypto') const crypto = require('crypto')
const path = require('path') const path = require('path')
const emojiReverseData = require('./emoji-data/emoji-reverse-lookup')
const localeSegmentRegex = /^[A-Z]{2}(-[A-Z]{2})?$/i const localeSegmentRegex = /^[A-Z]{2}(-[A-Z]{2})?$/i
const localeFolderRegex = /^([a-z]{2}(?:-[a-z]{2})?\/)?(.*)/i const localeFolderRegex = /^([a-z]{2}(?:-[a-z]{2})?\/)?(.*)/i
@ -149,5 +150,11 @@ module.exports = {
} }
} }
return meta return meta
},
getEmojiCode (twemojiCode) {
return emojiReverseData[twemojiCode]
},
emojiCodeAvailable (twemojiCode) {
return twemojiCode in emojiReverseData
} }
} }

@ -621,6 +621,23 @@ module.exports = class Page extends Model {
replacement: c => '' replacement: c => ''
}) })
td.addRule('keepEmojis', {
filter: (n, o) => {
if (n.nodeName === 'IMG' && n.hasAttribute('src') && n.getAttribute('src').startsWith('/_assets/svg/twemoji/')) {
let src = n.getAttribute('src')
let utf8Code = src.match(/\/([0-9a-f]+)\.svg$/i)[1]
return pageHelper.emojiCodeAvailable(utf8Code)
}
return false
},
replacement: (c, n) => {
let src = n.getAttribute('src')
let utf8Code = src.match(/\/([0-9a-f]+)\.svg$/i)[1]
let markdownCode = pageHelper.getEmojiCode(utf8Code)
return markdownCode ? `:${markdownCode}:` : c
}
})
convertedContent = td.turndown(ogPage.content) convertedContent = td.turndown(ogPage.content)
// -> Unsupported // -> Unsupported
} else { } else {

Loading…
Cancel
Save