Files
sgauthier 6e64e138e2
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
planning
2024-10-14 09:15:30 +02:00

49 lines
1010 B
JavaScript

'use strict'
module.exports = code
var has = require('hast-util-has-property')
var convert = require('hast-util-is-element/convert')
var toText = require('hast-util-to-text')
var trim = require('trim-trailing-lines')
var wrapText = require('../util/wrap-text')
var prefix = 'language-'
var pre = convert('pre')
var isCode = convert('code')
function code(h, node) {
var children = node.children
var index = -1
var classList
var lang
if (pre(node)) {
while (++index < children.length) {
if (isCode(children[index]) && has(children[index], 'className')) {
classList = children[index].properties.className
break
}
}
}
if (classList) {
index = -1
while (++index < classList.length) {
if (classList[index].slice(0, prefix.length) === prefix) {
lang = classList[index].slice(prefix.length)
break
}
}
}
return h(
node,
'code',
{lang: lang || null, meta: null},
trim(wrapText(h, toText(node)))
)
}