Added Inline Style Support

This commit is contained in:
CRIMX 2017-06-26 15:51:51 +08:00
parent 0910a7bdb4
commit 2a6607ed9d

View file

@ -88,28 +88,40 @@ if (options.enable !== false) {
}) })
hexo.extend.helper.register('github_emoji', function (name) { hexo.extend.helper.register('github_emoji', function (name) {
return getRender(name); return getRender(name)
}); })
function getRender (emojiName) { function getRender (emojiName) {
if (emojis[emojiName]) { emojiName = String(emojiName)
if (!emojis[emojiName]) { return emojiName }
var styles = ''
if (_.isObject(options.styles)) {
// inline styles
styles = 'style="' +
Object.keys(options.styles)
.filter(function (k) { return _.isString(options.styles[k]) })
.map(function (k) { return k + ':' + options.styles[k] })
.join(';') +
'"'
}
var codepoints = emojis[emojiName].codepoints var codepoints = emojis[emojiName].codepoints
if (options.unicode && codepoints) { if (options.unicode && codepoints) {
codepoints = codepoints.map(function (code) { codepoints = codepoints.map(function (code) {
return '&#x' + code + ';' return '&#x' + code + ';'
}).join('') }).join('')
return '<span class="' + options.className + return '<span class="' + options.className + '" ' +
'" title="' + emojiName + styles +
' title="' + emojiName +
'" data-src="' + emojis[emojiName].src + '" data-src="' + emojis[emojiName].src +
'">' + codepoints + '</span>' '">' + codepoints + '</span>'
} else { } else {
return '<img class="' + options.className + return '<img class="' + options.className + '" ' +
'" title="' + emojiName + '" alt="' + emojiName + '" src="' + styles +
' title="' + emojiName + '" alt="' + emojiName + '" src="' +
emojis[emojiName].src + '" height="20" width="20" />' emojis[emojiName].src + '" height="20" width="20" />'
} }
} else {
return emojiName;
}
} }
} }