47

I'd like to have a good syntax highlighter for my WordPress blog. What options do I have available? I often see one which has well-colored syntax highlighting and options to copy to the clipboard. Does anyone have an idea what tool this is?

Thomas Owens
  • 114,398
  • 98
  • 311
  • 431
codingfloor
  • 813
  • 1
  • 6
  • 11

9 Answers9

76

On wordpress.com, you can't install plugins, so you have to use Wordpress' built-in widget.

Do it like:

[code language='python']

[/code]

Note that those tags go inside your visual editor, not the HTML editor.

You can find more information here.

Shubham
  • 184
  • 1
  • 11
samoz
  • 56,849
  • 55
  • 141
  • 195
  • 9
    This is the only correct answer so far. Everyone missed the important little detail that his blog is hosted on wordpress.com, which does not allow the installation of plugins. – Jorge Israel Peña Aug 13 '09 at 18:21
  • 3
    This seems like a great question for the new WebApps on Stack Exchange – samoz Jul 21 '10 at 23:15
  • 1
    you can write the `sourcecode` tags inside the HTML editor as well. That is what i do all the time. – phoxis May 16 '11 at 15:32
  • @samoz What if my language s not there in "supported lang" section! I am looking for system verilog lang support but i dont see any option :( – vjain419 Feb 16 '15 at 12:41
  • 1
    yeah this doesn't always work. don't know if it is my old old 2010 theme or what. but it basically destroyed my indenting and gave me zero syntax highlighting. – don bright Feb 15 '17 at 03:59
  • Does this support indentations? How do you put those? – Romeo Sierra Apr 22 '17 at 05:26
  • Found the answer to my question. This `code` tag needs not to be in the visual editor. You can put those in the HTML editor as well. When you put there, you can preserve indentation as well. I have suggested an edit. Please check it on... – Romeo Sierra Apr 22 '17 at 10:00
  • Thank you so much for solution. – Ravikumar Jun 21 '17 at 06:46
  • This isn't working for me. I'm using C++, and I find with either "HTML" or "Visual", the text between angle brackets (and the angle brackets) is removed. As I switch between the different modes I even find that this has affected my original text - i.e. the angle bracket sections are removed there too! Somehow my older posts (from a few years ago) seem ok - though I'm very nervous that they too will become corrupted the more I struggle here. Is the obvious solution to switch blogging platform? – user2023370 Nov 04 '18 at 16:26
  • Does this really work for Python? C++ will not work through "Preview". Perhaps it works when you publish, but I don't see a way to even publish privately. This seems the most helpful official response: https://en.forums.wordpress.com/topic/how-to-add-programming-code-to-blog/. Alas, that forum entry is from 2013 - and closed :( – user2023370 Nov 04 '18 at 22:22
2

SyntaxHighlighter is a pretty good tool. It uses JavaScript with CSS classes to mark HTML elements that should be highlighted. It also allows code to be copied to the clipboard and printed.

Martin Brown
  • 24,692
  • 14
  • 77
  • 122
jacksonakj
  • 882
  • 1
  • 11
  • 21
2

The best way for syntax highlighting is using prismjs, which is completely free with awesome features.

  1. It has support for almost all programming languages, shell scripts and much more.

  2. It is very light weight and it will not bog down your sites speed like other syntax highlighting plugins.

For configuring prismjs you need to do little code tweaks in your function.php file. Follow the turoails in this blog http://skillslane.com/setup-syntax-highlighter-for-wordpress/

Bibin Wilson
  • 506
  • 6
  • 15
1

http://wordpress.org/extend/plugins/devformatter/

WP Plugin for various syntax highlighting!

Jacob Nelson
  • 2,946
  • 5
  • 33
  • 41
  • So, how does one install plugins on **a WordPress blog hosted on WordPress.com?** as OP wants – user776686 Jan 06 '14 at 12:45
  • This doesn't answer the question correctly since the OP ask for wordpress.com and not wordpress.org where the former doesn't support for plugin installations. – Lucky Sep 15 '15 at 09:26
1

If you don't want to, or can't install stuff on your blog, I suggest you use pygments to highlight your code. I described this here.

Geo
  • 93,257
  • 117
  • 344
  • 520
1

Here is an offline option (I know you are asking about online tool but just in case ...)

I use offline tools to process the blog entry with source code examples into html format and then just post the html.

It's really just:

  • offset source code by at least 4 spaces and specify language on the first line like :::html
  • run your file through:

python script:

import markdown
html = markdown.markdown(text,['codehilite'])

I setup markdown with pygments probably you could just use pygments for source code. You run the file thought the script and then copy paste the html to your blog.

You can dump css style, to highlight syntax, from pygments and then either link to it or include it in your page. I'm not sure if wordpress supports that.

Here is how to setup markdown with pygments to do syntax highlighting (for Blogger - the only specifics for Blogger is that it updates the Blogger css with the css to highlight code).

stefanB
  • 77,323
  • 27
  • 116
  • 141
0

I have developed a lightweight syntax highlighter plugin for WordPress called "Mivhak". The plugin has a backend code editor to easily insert code, with live error checking and syntax highlighting. It is also highliy customizable.

The plugin is hosted on wordpress.org

Yoav Kadosh
  • 4,807
  • 4
  • 39
  • 56
0

You could use the Alex Gorbatchev's SyntaxHighlighter. Its javascript and really simple and well supported, easy to install and modify. Here are some instructions for blogger... but all you have to do you to do is remove the blogger=true line.

http://code-slim-jim.blogspot.com/2010/11/adding-syntax-higher-to-your-blog.html

Ashley Smart
  • 2,098
  • 2
  • 13
  • 7
0

It now supports SyntaxHighlighter Code blocks.

Although it's a little inconvenient that languages must be chosen in the aside settings.

imba-tjd
  • 491
  • 4
  • 11