@speedy-js/code-title

A markdown-it plugin to create named code blocks.

Usage no npm install needed!

<script type="module">
  import speedyJsCodeTitle from 'https://cdn.skypack.dev/@speedy-js/code-title';
</script>

README

markdown-it-named-code-blocks

A markdown-it plugin to create named code blocks.

Build Status NPM version Code Climate License

🧐 About

With this pllugin you can create named code blocks like:

```js:hello.js
console.log("Hello World!")
```

Rendered as:

<pre class="named-fence-block"><code class="language-js">console.log(&quot;Hello World!&quot;);
</code><div class="named-fence-filename">hello.js</div></pre>

After applying the css, it looks like this:

Renderd markdown

🏁 Getting Started

Prerequisites

Installing

npm install markdown-it-named-code-blocks

🎈 Usage

Use this same as a normal markdown-it plugin:

var md = require('markdown-it');
var namedCodeBlocks = require('markdown-it-named-code-blocks');

var parser = md().use(namedCodeBlocks);

var str = '```js:hello.js\nconsole.log("Hello World!);```'

var result = parser.render(str);

Apply CSS like this:

.named-fence-block {
  position: relative;
  padding-top: 2em;
}

.named-fence-filename {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 4px;
  font-weight: bold;
  color: #000000;
  background: #c0c0c0;
  opacity: 0.6;
}

Rendered:

Renderd markdown

If you want to enable inline CSS:

var parser = md().use(namedCodeBlocks, {isEnableInlineCss: true});
<pre class="hljs named-fence-block" style="position: relative; padding-top: 2em"><code>console.log(&quot;Hello World!&quot;)
</code><div class="mincb-name" style="position: absolute; top: 0; left: 0; padding: 0 4px; font-weight: bold; color: #000000; background: #c0c0c0; opacity: .6;">hello.js</div></pre>

🎉 License

Distributed under the MIT License. See LICENSE for more information.