How to use prismjs - 10 common examples

To help you get started, we’ve selected a few prismjs examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github tig / winprint / testfiles / generate-associations.js View on Github external
// Imports file-extension to langauge mapping from both
// prismjs and lang-map and outputs a JSDON document that
// follows the vscode schema for extension mapping.
// PrismJS language definitions trump for my solution.
const fs = require('fs');
var map = require('lang-map');
var components = require('prismjs/components.js');

// vscode files.associations is not an array. Use a dictionary instead.
var assocDict = {};
var languages = [];

for (var key in components.languages) {
    if (components.languages.hasOwnProperty(key) && key != 'meta') {
        var language = components.languages[key];
        var langTemp = {
          id : key
        };
        langTemp.aliases = [];

        // vscode doesn't support title, but I want to use it
        if (typeof language.title != 'undefined')
            langTemp.title = language.title;

        if (typeof language.alias != 'undefined'){
            if (Array.isArray(language.alias)){
                langTemp.aliases = language.alias;
            }
            else{
github tig / winprint / testfiles / generate-associations.js View on Github external
// Imports file-extension to langauge mapping from both
// prismjs and lang-map and outputs a JSDON document that
// follows the vscode schema for extension mapping.
// PrismJS language definitions trump for my solution.
const fs = require('fs');
var map = require('lang-map');
var components = require('prismjs/components.js');

// vscode files.associations is not an array. Use a dictionary instead.
var assocDict = {};
var languages = [];

for (var key in components.languages) {
    if (components.languages.hasOwnProperty(key) && key != 'meta') {
        var language = components.languages[key];
        var langTemp = {
          id : key
        };
        langTemp.aliases = [];

        // vscode doesn't support title, but I want to use it
        if (typeof language.title != 'undefined')
            langTemp.title = language.title;

        if (typeof language.alias != 'undefined'){
            if (Array.isArray(language.alias)){
                langTemp.aliases = language.alias;
            }
            else{
                langTemp.aliases.push(language.alias);
github rooseveltframework / roosevelt / lib / htmlValidator.js View on Github external
logger.error(error)
                detectErrors = true
                pageTitle = 'Cannot connect to validator'
                pageHeader = 'Unable to connect to HTML validator'
              }

              if (detectErrors) {
                markup = body
                // Highlight and add line numbers to html
                formattedHTML = '<pre class="\'markup\'">\n<code class="language-html">\n'
                markupArray = markup.split('\n')
                for (i = 0; i &lt; markupArray.length; i++) {
                  markupLine = markupArray[i]
                  if (errorMap.has(i + 1)) {
                    formattedHTML += `<span class="line-numbers error" title="${errorMap.get(i + 1)}">`
                    formattedHTML += Prism.highlight(`${markupLine}`, Prism.languages.markup)
                    formattedHTML += '</span>'
                  } else {
                    formattedHTML += '<span class="\'line-numbers\'">'
                    formattedHTML += Prism.highlight(`${markupLine}`, Prism.languages.markup)
                    formattedHTML += '</span>'
                  }
                }
                formattedHTML += '</code>\n</pre>'
                // build markup template
                formattedHTML = `<h2>Markup used:</h2>\n${formattedHTML}`

                res.status(500)
                model.prismStyle = prismStyleSheet.toString()
                model.pageTitle = pageTitle
                model.preWidth = markupArray.length.toString().length * 8
                model.pageHeader = pageHeader
github hiro0218 / miikun / src / lib / markdown.js View on Github external
highlight: function(str, lang) {
        const language = !lang || lang === 'html' ? 'markup' : lang;
        try {
          if (!Prism.languages[language]) {
            require(`prismjs/components/prism-${language}.min.js`);
          }
          if (Prism.languages[language]) {
            return Prism.highlight(str, Prism.languages[language]);
          }
        } catch (__) {
          // eslint-disable-next-line
        console.error(__);
        }

        return '';
      },
    });
github DSI-HUG / dejajs-components / src / component / code-viewer / code-viewer.component.ts View on Github external
public ngAfterViewChecked() {
        // console.log('ok');
        if (!this.initialised) {
            // console.warn('not initialised');
            Prism.highlightAll(false, () => {
                this.initialised = true;
            });
        }
    }
}
github springload / draftail / examples / components / PrismDecorator.js View on Github external
const language = block
      .getData()
      .get("language", this.options.defaultLanguage);

    // Allow for no syntax highlighting
    if (language == null) {
      return;
    }

    const blockKey = block.getKey();
    const blockText = block.getText();

    let tokens;

    try {
      tokens = Prism.tokenize(blockText, Prism.languages[language]);
    } catch (e) {
      // eslint-disable-next-line no-console
      console.error(e);
      return;
    }

    this.highlighted[blockKey] = {};

    let tokenCount = 0;
    tokens.reduce((startOffset, token) => {
      const endOffset = startOffset + token.length;

      if (typeof token !== "string") {
        tokenCount += 1;
        this.highlighted[blockKey][tokenCount] = token;
        callback(startOffset, endOffset);
github Foveluy / ReStory / src / rscomponent / codeblock.js View on Github external
if (!pre) {
      return
    }

    if (!pre.hasAttribute('data-line')) {
      pre.setAttribute('data-line', '')
    }

    highlightLines(pre, range, 'temporary ')

    document.querySelector('.temporary.line-highlight').scrollIntoView()
  }

  var fakeTimer = 0 // Hack to limit the number of times applyHash() runs

  Prism.hooks.add('before-sanity-check', function(env) {
    var pre = env.element.parentNode
    var lines = pre &amp;&amp; pre.getAttribute('data-line')

    if (!pre || !lines || !/pre/i.test(pre.nodeName)) {
      return
    }

    /*
      * Cleanup for other plugins (e.g. autoloader).
       *
       * Sometimes <code> blocks are highlighted multiple times. It is necessary
       * to cleanup any left-over tags, because the whitespace inside of the <div>
       * tags change the content of the <code> tag.
       */
    var num = 0
    $$('.line-highlight', pre).forEach(function(line) {</code></div></code>
github tig / winprint / tools / generate-associations.js View on Github external
//   args: ['value1', 'value2', 'value3']
// };

// PythonShell.run('my_script.py', options, function (err, results) {
//   if (err)
//     throw err;
//   // Results is an array consisting of messages collected during execution
//   console.log('results: %j', results);
// });

// vscode files.associations is not an array. Use a dictionary instead.
var assocDict = {};
var languages = [];

for (var key in components.languages) {
    if (components.languages.hasOwnProperty(key) && key != 'meta') {
        var language = components.languages[key];
        var langTemp = {
          id : key
        };
        langTemp.aliases = [];

        // vscode doesn't support title, but I want to use it
        if (typeof language.title != 'undefined')
            langTemp.title = language.title;

        if (typeof language.alias != 'undefined'){
            if (Array.isArray(language.alias)){
                langTemp.aliases = language.alias;
            }
            else{
                langTemp.aliases.push(language.alias);
github tig / winprint / tools / generate-associations.js View on Github external
//   scriptPath: 'C:\Python38\Lib\site-packages\pygments',
//   args: ['value1', 'value2', 'value3']
// };

// PythonShell.run('my_script.py', options, function (err, results) {
//   if (err)
//     throw err;
//   // Results is an array consisting of messages collected during execution
//   console.log('results: %j', results);
// });

// vscode files.associations is not an array. Use a dictionary instead.
var assocDict = {};
var languages = [];

for (var key in components.languages) {
    if (components.languages.hasOwnProperty(key) && key != 'meta') {
        var language = components.languages[key];
        var langTemp = {
          id : key
        };
        langTemp.aliases = [];

        // vscode doesn't support title, but I want to use it
        if (typeof language.title != 'undefined')
            langTemp.title = language.title;

        if (typeof language.alias != 'undefined'){
            if (Array.isArray(language.alias)){
                langTemp.aliases = language.alias;
            }
            else{
github pomber / code-surfer / packages / code-surfer / src / highlighter.js View on Github external
function parseToken(token, counter) {
  if (token === "\n") {
    counter.current = 0;
    return token;
  } else if (typeof token === "string" && token.includes("\n")) {
    const [left, ...rest] = token.split("\n");
    const right = rest.join("\n");
    const tokens = addCustomTokens([left, "\n", right], counter);
    return tokens;
  } else if (typeof token === "string" && !token.trim()) {
    // whitespace
    return token;
  } else if (typeof token === "string") {
    counter.current++;
    return new Prism.Token(
      "free-text",
      token,
      ["token-" + counter.current, "token-leaf"],
      token
    );
  } else if (Prism.util.type(token.content) === "Array") {
    token.content = addCustomTokens(token.content, counter);
    return token;
  } else {
    counter.current++;
    const aliases =
      Prism.util.type(token.alias) === "Array" ? token.alias : [token.alias];
    aliases.push("token-" + counter.current, "token-leaf");
    token.alias = aliases;
    return token;
  }