Code Blocks Textformatter

Converts content within backticks into code blocks.

ProcessWire Textformatter module for enabling Markdown style code blocks for text or RTE fields.

Note: this is not a complete Markdown implementation, but rather a home-baked implementation of just one small part of the Markdown syntax. For full Markdown support, check out the TextformatterMarkdownExtra module, bundled with ProcessWire releases by default.

Getting started


  • Copy (or clone) the TextformatterCodeBlocks directory to /site/modules/
  • Go to Admin > Modules, hit "Refresh", and install TextformatterCodeBlocks
  • Enable "Code Blocks Textformatter" for fields in which you wish to use code blocks

IMPORTANT: if you use Code Blocks Textformatter with a regular text or textarea field, make sure that you enable HTML Entity Encoder or use another method of escaping entities!

Code blocks


Code blocks should work fine when wrapped in <p> or <pre> tags, so you can use them with RTE, such as CKEditor. This module supports two types of code blocks: fenced and inline.

Note: following code examples have been escaped for better readability when rendered in GitHub. In a nutshell the syntax for fenced code blocks is three backticks around a code block, and for inline code blocks just sourround a specific piece of code with single backticks.

Fenced code blocks

Simple example:

```
<?php
echo "This is a fenced code block.";
```

With fenced code blocks you can also specify the language for a syntax highlighter:

```php
<?php
echo "This PHP code is easier for a syntax highlighter to identify.";
```

The end result of fenced code blocks looks like this:

<pre><code>&lt;?php echo "This PHP code is easier for a syntax highlighter to identify.";</code></pre>

Inline code blocks

<p>While fenced code blocks are great for longer code snippets, sometimes `<?php echo "inline code blocks"; ?>` make more sense.</p>

The end result of inline code blocks looks like this:

<p>While fenced code blocks are great for longer code snippets, sometimes <code>&lt;?php echo "inline code blocks"; ?&gt;</code> make more sense.</p>

Enabling syntax highlighter


Though syntax highlighting is not necessary for this module to work, it can be really helpful for your end users. You can use any syntax highlighter, but I would recommend Prism.js.

For detailed instructions on enabling Prism.js on your site, please visit http://prismjs.com/.

More modules by Teppo

  • Version Control

    Version control features for page content.
  • SearchEngine

    SearchEngine is a ProcessWire CMS/CMF module for indexing and searching site contents.
  • Changelog

    This module tracks changes, additions, removals etc. of public (as in "not under admin") pages of your site.
  • Version Control For Text Fields

    Simplified version control for text type fields.
  • WireMail: Swift Mailer

    WireMail module providing Swift Mailer integration
  • Login History

    This module keeps track of login attempts to your site.
  • AdminBar

    Provides easy front-end admin bar for editing page content in ProcessWire.
  • Textarea Markup

    Markup, plain text and optionally values from other fields as a non-editable, run-time field visible in Page Edit.
  • Wireframe

    An output framework for ProcessWire.

All modules by Teppo

Install and use modules at your own risk. Always have a site and database backup before installing new modules.