In #1058, I noted: > Tangentially related work: > ... > - better annotate new features (motivated by writing these docs) > - we should add "New" to new features :) > - we should note when a feature was introduced (I think this is a core part of most software documentation) > - we should annotate things that are "Advanced" in so far as the average Just the Docs user will not use them / they require significant Jekyll knowledge > This came up again in https://github.com/just-the-docs/just-the-docs/discussions/1136#discussioncomment-4716253, so I think it's best for us to resolve this sooner rather than later. This PR is me doing that. I: - have added a headings-level "New" label to every new heading introduced since `v0.3` - added, when possible, inline YAML comments when new configuration options have been introduced I did this by scanning through the CHANGELOG and selecting each feature that is either tagged with `Add` and has documentation. I may have also missed any new features, so some double-checking would be helpful!
4.1 KiB
layout, title, parent, has_children, nav_order
layout | title | parent | has_children | nav_order |
---|---|---|---|---|
default | Code | UI Components | true | 6 |
Code
{: .no_toc }
Table of contents
{: .no_toc .text-delta }
- TOC {:toc}
Inline code
Code can be rendered inline by wrapping it in single back ticks.
Heading with <inline code snippet>
in it.
{: .no_toc }
Heading with <inline code snippet>
in it.
---
## Syntax highlighted code blocks
Use Jekyll's built-in syntax highlighting with Rouge for code blocks by using three backticks, followed by the language name:
<div class="code-example" markdown="1">
```js
// Javascript code with syntax highlighting.
var fun = function lang(l) {
dateformat.i18n = require('./lang/' + l)
return true;
}
{% highlight markdown %}
```js
// Javascript code with syntax highlighting.
var fun = function lang(l) {
dateformat.i18n = require('./lang/' + l)
return true;
}
```
{% endhighlight %}
Code blocks with rendered examples
To demonstrate front end code, sometimes it's useful to show a rendered example of that code. After including the styles from your project that you'll need to show the rendering, you can use a <div>
with the code-example
class, followed by the code block syntax. If you want to render your output with Markdown instead of HTML, use the markdown="1"
attribute to tell Jekyll that the code you are rendering will be in Markdown format... This is about to get meta...
Link button{: .btn }
Link button{: .btn }
Mermaid diagram code blocks
{: .d-inline-block }
New (v0.4.0) {: .label .label-green }
Mermaid allows you to add diagrams and visualizations using Markdown code blocks. It is disabled by default. However, you can turn on support for mermaid by adding a mermaid
key to your _config.yml
.
The minimum configuration requires a version
key (matching a version in jsDelivr):
mermaid:
# Version of mermaid library
# Pick an available version from https://cdn.jsdelivr.net/npm/mermaid/
version: "9.1.3"
Additional configuration options are loaded through _includes/mermaid_config.js
. By default, the contents of the file are the empty object:
// _includes/mermaid_config.js
{}
This loads the default settings.
The contents of this object should follow mermaid's configuration API. For example, to override the theme, change _includes/mermaid_config.js
to:
// _includes/mermaid_config.js
{
theme: "forest"
}
Once mermaid is installed, it can be used in markdown files. The markdown for a simple flowchart example might look like the following:
{% highlight markdown %}
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
{% endhighlight %}
which renders:
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
Note: for demonstration purposes, we've enabled mermaid on this site. It is still disabled by default, and users need to opt-in to use it.
Copy button
{: .d-inline-block }
New (v0.4.0) {: .label .label-green }
The copy button for code blocks can be enabled or disabled via the enable_copy_code_button
key in _config.yml
. By default, the value of this key is false
; users need to opt-in.
# For copy button on code
enable_copy_code_button: true
Note that this feature requires JavaScript; if JavaScript is disabled in the browser, this feature will not work.