Files
30-seconds-of-code/node_modules/gatsby-remark-prismjs/add-line-numbers.js
2019-08-20 15:52:05 +02:00

21 lines
827 B
JavaScript

"use strict";
module.exports = (code = []) => {
// Generate as many `<span></span>` as there are code lines
const generateSpans = numberOfLines => {
let spans = ``;
for (let i = 0; i < numberOfLines; i++) {
spans += `<span></span>`;
}
return spans;
};
const numberOfLines = code.length === 0 ? 0 : code.split(`\n`).length; // Generate the container for the line numbers.
// Relevant code in the Prism Line Numbers plugin can be found here:
// https://github.com/PrismJS/prism/blob/f356dfe71bf126e6dc060c03f3e042de28a9bec4/plugins/line-numbers/prism-line-numbers.js#L99-L115
const lineNumbersWrapper = `<span aria-hidden="true" class="line-numbers-rows" style="white-space: normal; width: auto; left: 0;">` + `${generateSpans(numberOfLines)}` + `</span>`;
return lineNumbersWrapper;
};