UNPKG

ghost

Version:

The professional publishing platform

38 lines (28 loc) 1.14 kB
const {addCreateDocumentOption} = require('../render-utils/add-create-document-option'); const {renderEmptyContainer} = require('../render-utils/render-empty-container'); function renderCodeBlockNode(node, options = {}) { addCreateDocumentOption(options); const document = options.createDocument(); if (!node.code || node.code.trim() === '') { return renderEmptyContainer(document); } const pre = document.createElement('pre'); const code = document.createElement('code'); if (node.language) { code.setAttribute('class', `language-${node.language}`); } code.appendChild(document.createTextNode(node.code)); pre.appendChild(code); if (node.caption) { let figure = document.createElement('figure'); figure.setAttribute('class', 'kg-card kg-code-card'); figure.appendChild(pre); let figcaption = document.createElement('figcaption'); figcaption.innerHTML = node.caption; figure.appendChild(figcaption); return {element: figure}; } else { return {element: pre}; } } module.exports = renderCodeBlockNode;