2.2.1 • Published 12 months ago

marked-highlight v2.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

marked-highlight

Highlight code blocks

Installation

npm install marked-highlight

Usage

You will need to provide a function that transforms the code to html.

import { Marked } from "marked";
import { markedHighlight } from "marked-highlight";
import hljs from 'highlight.js';

// or UMD script
// <script src="https://cdn.jsdelivr.net/npm/marked/lib/marked.umd.js"></script>
// <script src="https://cdn.jsdelivr.net/npm/marked-highlight/lib/index.umd.js"></script>
// const { Marked } = globalThis.marked;
// const { markedHighlight } = globalThis.markedHighlight;
const marked = new Marked(
  markedHighlight({
	emptyLangClass: 'hljs',
    langPrefix: 'hljs language-',
    highlight(code, lang, info) {
      const language = hljs.getLanguage(lang) ? lang : 'plaintext';
      return hljs.highlight(code, { language }).value;
    }
  })
);


marked.parse(`
\`\`\`javascript
const highlight = "code";
\`\`\`
`);
// <pre><code class="hljs language-javascript">
//   <span class="hljs-keyword">const</span> highlight = <span class="hljs-string">&quot;code&quot;</span>;
// </code></pre>

The async option should be set to true if the highlight function returns a Promise.

import { Marked } from "marked";
import { markedHighlight } from "marked-highlight";
import pygmentize from 'pygmentize-bundled';

const marked = new Marked(
  markedHighlight({
    async: true,
    highlight(code, lang, info) {
      return new Promise((resolve, reject) => {
        pygmentize({ lang, format: 'html' }, code, function (err, result) {
          if (err) {
            reject(err);
            return;
          }

          resolve(result.toString());
        });
      });
    }
  })
)

await marked.parse(`
\`\`\`javascript
const highlight = "code";
\`\`\`
`);
// <pre><code class="language-javascript">
//   <div class="highlight">
//     <pre>
//       <span class="kr">const</span> <span class="nx">highlight</span> <span class="o">=</span> <span class="s2">&quot;code&quot;</span><span class="p">;</span>
//     </pre>
//   </div>
// </code></pre>

options

optiontypedefaultdescription
asyncbooleanfalseIf the highlight function returns a promise set this to true. Don't forget to await the call to marked.parse
langPrefixstring'language-'A prefix to add to the class of the code tag.
emptyLangClassstring''The class to add to the code tag if the language is empty.
highlightfunction(code: string, lang: string) => {}Required. The function to transform the code to html.
@98js/markdown@everything-registry/sub-chunk-2133@xcorp/markedextrusive.mdsveltekit-carbon-utilswaline-clientvockervivia-markedjeremy-waline-clientjamisiceforgehudada-climarkdown-latex-renderermarkdown-vue3marked-addonsmarked-addons-testmarkbasemarkugenkoishi-plugin-chatluna-image-rendererkoishi-plugin-minoribotmarkdown-parse-vuemd-to-ankimdxtra@waline/client@webcomponents-preview/client@verdaccio/ui-components@xan105/markdown@weborigami/origami@xsahxl/ui@tencentcloud/chat-uikit-vueadmanantd-form-dataantd-table-dataantd-modal-dataarakawa@gradio/markdown-code@graphorigami/origami@mtti/mhpyide-uimacro-mdstaircase-custom-componentsts-dotnetify-elementsuicmptyide-ui-vuextt-uimocornuxt-openapi-docs-modulepage-deployreact-markdown-editor-smdereact-m-editorsajtnetwatch-chat-jsnode-slatepreviewmdpostdocrhodochrositereclusesimple-m-editorgithub-web-widgetgit2webgraph-mailer@oasisdigital/ng-doc-portal@orama/wc-components@osn/previewer@hyrious/telegraph@hidoo/handlebars-helpers@hckr_/blendid@fractality/core@freecodecamp/freecodecamp-os@fullstackcraftllc/codevideo-doc-gen@fullstackcraftllc/codevideo-exporters@fullstackcraftllc/codevideo-ide-reactgadbfu-copilotfu-copilot-web-xxxxxxgemini4docs@shinigamidev/comment-client@shinigamiscans/waline-client@shgysk8zer0/aegis-markdown@tech_query/node-toolkit@talla-ui/docgen@tdesign-vue-next/chatel-pro-suiteember-cli-addon-docs@8427003/waline-client@bitmd/plugin-highlight@mindverse/container@mdfriday/shortcode-compiler@charkoal/canvas@rumenpetrov/ai-chat-widget@changke/staticnext-build@benchristel/mdsite@beforesemicolon/builder@axux/editors@ryan-henness-trimble/mini-docscmcc-chat-embedcuirkbeblobbeeetle-chatbot-jsbajo-markdown
2.2.1

12 months ago

2.2.0

1 year ago

2.1.2

1 year ago

2.1.4

1 year ago

2.1.3

1 year ago

2.1.1

2 years ago

2.1.0

2 years ago

2.0.9

2 years ago

2.0.8

2 years ago

2.0.7

2 years ago

2.0.5

2 years ago

2.0.6

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.4

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

1.0.2

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago