I’ve decided to start blogging using Markdown. Making this move I needed to find a way to highlight various bits of source code in an easy way. There are many nice libraries that make this a snap, such as google-code-prettify or highlight.js. In the end I decided to go with highlight.js, for the simple reason that it is automatic, working flawlessly with Markdown’s code syntax output.
Great, but my existing source code examples use SyntaxHighlighter’s style for code blocks (using
<pre class="brush: ruby;" />, for example). I could have converted things in a few ways:
- Change the database
- Write a JS script to convert the
<pre />structure to
- Write a JS script to call highlight.js’
- Write a WP plugin and reformat things easily Ding Ding Ding
So there you have it. This WordPress plugin will go through and process your SyntaxHighlighter style blocks into ones that highlight.js works with out-of-the-box. It will also add the language that you have specified with the
brush class and add it as a class on the
<code /> element (following the HTML5 recommendation). Nothing is changed in the DB, so if you decide to go back to SyntaxHighlighter, you can without any issues.
GeSHi uses the syntax that is close to SyntaxHighlighter, except instead of putting the language in the
class attribute, it uses the
lang attribute. Similar to the SyntaxHighligher conversion, it will go through and process your GeSHi style blocks into ones that highlight.js works with out-of-the-box. It will also add the language that you have specified with the
lang attribute and add it as a
class on the
<code /> element.
Installation is standard and straight forward.
- Upload the
goodbye-syntax-highlighterfolder (and all it’s contents) to the
- Activate the plugin through the ‘Plugins’ menu in WordPress
以下人員參與了開源軟體〈Goodbye Syntax Highlighter〉的開發相關工作。參與者
- Initial release
- Modified output to use the HTML5 recommended syntax highlighting class names, e.g.
language-ruby. For more information, see the HTML5 spec
- Added conversion of GeSHi style code blocks