Code Example block

If you're using the VF Nunjucks environment, you can utilise the {% codeblock 'html' -%}{% endcodeblock %} tag to assist generating pre-formatted content.

github location npm version

Variants

<pre class="vf-code-example__pre">
<code class="vf-code-example">
<your special code here>
Maybe some html tags?
<link rel="stylesheet" href="https://aurl">
<script src="https://aurl"></script>
</code>
</pre>
Nunjucks syntax

Depending on your environment you'll want to use render or include. As a rule of thumb: server-side use include, precompiled browser use render. If you're using vf-eleventy you should use include.

Using include

You'll need to pass a context object from your code or Yaml file (example), as well as the path to the Nunjucks template. Nunjucks' include is an abstraction of render and provides some additional portability.


{% set context fromYourYamlFile %}
- or -
{% set context = { 
"component-type" : "block",
 }
%}
{% include "../path_to/vf-code-example/vf-code-example.njk" %}
                

Using render

This approach is best for bare-bones Nunjucks environments, such as precompiled templates with the Nunjucks slim runtime where include is not be available.


{% render '@vf-code-example', {
  "component-type" : "block",}
%}
                
HTML
<pre class="vf-code-example__pre"><code class="Code Code--lang-html vf-code-example"><span class="hljs-tag">&lt;<span class="hljs-name">pre</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"vf-code-example__pre"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">code</span> <span class="hljs-attr">class</span>=<span class="hljs-string">"vf-code-example"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">your</span> <span class="hljs-attr">special</span> <span class="hljs-attr">code</span> <span class="hljs-attr">here</span>&gt;</span>
Maybe some html tags?
<span class="hljs-tag">&lt;<span class="hljs-name">link</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"stylesheet"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://aurl"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">src</span>=<span class="hljs-string">"https://aurl"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">code</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">pre</span>&gt;</span>
</code></pre>
              

Examples

Installation info

This component is distributed with npm. After installing npm, you can install the vf-code-example with this command.

$ yarn add --dev @visual-framework/vf-code-example

Sass/CSS

The source files included are written in Sass(scss). You can point your Sass include-path at your node_modules directory and import it like this.

@import "@visual-framework/vf-code-example/index.scss";

Make sure you import Sass requirements along with the modules. You can use a project boilerplate or the vf-sass-starter

Changelog

Changelog

1.3.0

  • Darken comment colour.
  • Use neutral colours from tokens.
  • Requires at least @visual-framework@vf-sass-config@2.6.1
  • https://github.com/visual-framework/vf-core/pull/1606

1.2.2

  • Add a bottom margin to vf-code-example__pre
  • https://github.com/visual-framework/vf-core/pull/1589

1.2.1

  • changes any set- style functions to cleaner version

1.2.0

  • correct display of vf-content pre and vf-code-example__pre to:
  • not line break every element
  • correct padding (sass property map name)

1.1.0

  • updates spacing tokens

1.0.0 (2019-12-17)

  • Initial stable release

Assets



File system location: components/vf-code-example

Find an issue on this page? Propose a change or discuss it.

AI Assistant

Welcome! I'm here to help

Try asking me:

Disclaimer: This chatbot is designed to assist you with general information and basic inquiries. See our disclaimer notes.

Review AI generated content for accuracy. Leave feedback.

Close chat and delete conversation?

Are you sure you want to close the chat?
Your current conversation history will be permanently deleted.