docsify/docs/language-highlight.md
Andrew Blakey f4cae7ff82
Describe ordering requirement for prism script tag (#1935)
I couldn't get a prism typescript language grammar to work until I realised that script order mattered.   

This might not be the best language or format for this, but I think it probably belongs in the documentation in some manner.

Thank you!
2022-12-12 15:07:41 +08:00

1.7 KiB

Language highlighting

Docsify uses Prism to highlight code blocks in your pages. Prism supports the following languages by default:

  • Markup - markup, html, xml, svg, mathml, ssml, atom, rss
  • CSS - css
  • C-like - clike
  • JavaScript - javascript, js

Support for additional languages is available by loading the language-specific grammar files via CDN:

<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>
<script src="//cdn.jsdelivr.net/npm/prismjs@1/components/prism-php.min.js"></script>

!> This <script> tag must be placed after the docisfy <script> to work.

To enable syntax highlighting, wrap each code block in triple backticks with the language specified on the first line:

```html
<p>This is a paragraph</p>
<a href="//docsify.js.org/">Docsify</a>
```

```bash
echo "hello"
```

```php
function getAdder(int $x): int 
{
    return 123;
}
```

The above markdown will be rendered as:

<p>This is a paragraph</p>
<a href="//docsify.js.org/">Docsify</a>
echo "hello"
function getAdder(int $x): int 
{
    return 123;
}

Highlighting Dynamic Content

Code blocks dynamically created from javascript can be highlighted using the method Prism.highlightElement like so:

var code = document.createElement("code");
code.innerHTML = "console.log('Hello World!')";
code.setAttribute("class", "lang-javascript");
Prism.highlightElement(code);