I have written a Cfengine3 lexer for Pygments, the open source syntax-highlighter used by Gist and many other sites. It seems to work fine on all the cfengine policy files I have tested, but if you find anything that doesn't quite work as expected, please let me know. This is my first-ever Pygments lexer, so if you are an expert and can advise me on better ways of doing things, I'd very much appreciate the feedback too.
Update: Since version 1.5, Pygments includes this lexer. If you are using 1.5 or later, you already have the CFEngine lexer. You can sometimes find a newer version of the lexer in my fork of the Pygments project (updates are infrequent, only when there are changes in the CFEngine language).
Here's how to install it (again, I don't know if this is the better or easier way):
- Obtain the Pygments source code.
- Put the pygments_cfengine_lexer.py file into the pygments/lexers/ directory
- run (cd pygments/lexers; python _mapping.py)
- run ./setup.py install
If you already have Pygments installed, you should follow these instructions:
- Put the pygments_cfengine_lexer.py file in the installed pygments/lexers/ directory (on my Mac, this is /Library/Python/2.6/site-packages/Pygments-1.4-py2.6.egg/pygments/lexers, under Linux it should be something like /usr/lib/python2.6/site-packages/Pygments..../pygments/lexers)
- cd into that directory
- run "python _mapping.py"
Then run pygmentize on any .cf file, and it should output properly highlighted code. You can view a sample here.