LWN.net Logo

Development

Pygments - the Python Syntax Highlighter

By Forrest Cook
May 7, 2008

Pygments is a multi-language syntax highlighter that is written in Python and distributed under the BSD license. The project description states:

It is a generic syntax highlighter for general use in all kinds of software such as forum systems, wikis or other applications that need to prettify source code. Highlights are:
  • a wide range of common languages and markup formats is supported
  • special attention is paid to details that increase highlighting quality
  • support for new languages and formats are added easily; most languages use a simple regex-based lexing mechanism
  • a number of output formats is available, among them HTML, RTF, LaTeX and ANSI sequences
  • it is usable as a command-line tool and as a library
  • ... and it highlights even Brainf*ck!
[Pygments] The project FAQ notes that Pygments supports a long (and expandable) collection of input languages. It can produce output as HTML, LaTeX, RTF and ANSI sequences for console output. The software can be run from the pygmentize command-line tool, or accessed from your own Python code. See the command line reference for details on running pygmentize.

Pygments version 0.10 was recently announced. Changes include the addition of 15 new language lexers, expansion of the Makefile lexer's capabilities, the ability to output in several image formats, a new style and other enhancements and fixes.

Installation of Pygments was straightforward on an Ubuntu 7.04 system. A tar.gz file was downloaded from the Python package site. The file was uncompressed with gunzip and extracted with tar. Running python setup.py install as root on the setup script installed the software and it was ready to run. After a quick read of the Command Line Usage document, your author was able to run pygmentize on some Python code and produce some rather pleasing colorized html output.

The project's demo page has a number of examples of Pygment's output, it also allows you to upload your own code to see how it looks after formatting.

Pygments looks to be a well designed generic tool. It could useful for online and offline documentation, code analysis, education and much more. This list of projects is already putting Pygments to use, perhaps your project could make use of it as well.

Comments (6 posted)

System Applications

Database Software

pgDesigner 1.2.5 released

Version 1.2.5 of pgDesigner, a GUI database interface to PostgreSQL, has been announced. "Changes: BUG: Fixed some bugs related to the loading and saving projects. BUG: Fixed some bugs in class CPdfWriter. NDA: Program compiled with version 2.5.0 of Gambas."

Comments (none posted)

PostgreSQL Weekly News

The May 4, 2008 edition of the Postgres Weekly News is online with the latest PostgreSQL DBMS articles and resources.

Full Story (comments: none)

Mail Software

sendmail 8.14.3 is available

Version 8.14.3 of sendmail has been announced. "This version fixes some bugs: * the MTA accessed storage after it free()d it. This was a regression introduced in 8.14.2, but the bug only showed up on a few operating systems. * ruleset processing: the function cataddr() could cause the addition of the BlankSub character between some tokens when it should not happen and thus failures in rule matching. It seems that none of the default rules were affected by this bug and hence the problem did not show up for default configurations. * the libmilter state engine did not deal correctly with milters that requested the omission of protocol steps during the negotiation callback."

Full Story (comments: none)

Security

libprngwrap 1.0.2 announced

Version 1.0.2 of libprngwrap is available. "Maybe an interesting library for people who are very serious about security: libprngwrap (version 1.0.2) was released. Libprngwrap replaces calls to rand(), random() and other pseudo random generators to calls which retrieve entropy-data from /dev/urandom (or /dev/random if you wish and don't care about your application stalling when /dev/random is out of entropy data)."

Full Story (comments: none)

OSSEC HIDS v1.5 released

Version 1.5 of OSSEC HIDS has been announced. "OSSEC is an Open Source Host-based Intrusion Detection System. It performs log analysis, integrity checking, Windows registry monitoring, rootkit detection, real-time alerting and active response. It runs on most operating systems, including Linux, OpenBSD, FreeBSD, MacOS, Solaris and Windows. This new release comes with numerous new features, including new LIDS (log-based IDS) support for Solaris BSM, Asterisk, Checkpoint, Postfix SASL, Smart Defense, Debian package and Shorewall logs."

Full Story (comments: none)

Web Site Development

nginx 0.6.30 released

Version 0.6.30 of nginx, an HTTP server and mail proxy server, has been announced. Changes include several new features and bug fixes, see the CHANGES file for more details. "In March 2007 about 20% of all Russian virtual hosts were served or proxied by nginx. According to Google Online Security Blog year ago nginx served or proxied about 4% of all Internet virtual hosts, although Netcraft showed much less percent. According to Netcraft in March 2008 nginx served or proxied 1 million virtual hosts."

Comments (none posted)

Miscellaneous

Mandriva Directory Server 2.3.1 announced

Version 2.3.1 of Mandriva Directory Server has been published, this is a bug fix release. "The Mandriva Directory Server (MDS) is a Free Software project that features: * user authentication and management thanks to LDAP * an extensible, nice looking and AJAX powered PHP web interface called MMC (Mandriva Management Console), provided with 5 modules: * Users and groups management * SAMBA accounts and shares management * DNS/DHCP management * Email delivery management * Web proxy blacklist management * a Python dedicated management API for LDAP, SAMBA, and SQUID (core of the MDS and the MMC) * a policy system, that will allow to define users right on network ressource".

Full Story (comments: none)

Desktop Applications

Desktop Environments

GNOME Software Announcements

GNOME Software Announcements The following new GNOME software has been announced this week: You can find more new GNOME software releases at gnomefiles.org.

Comments (none posted)

KDE 4.0.4 released

Version 4.0.4 of KDE has been announced. "The KDE Community today announced the immediate availability of KDE 4.0.4, the fourth bugfix and maintenance release for the latest generation of the most advanced and powerful free desktop. KDE 4.0.4 is the fourth monthly update to KDE 4.0."

Full Story (comments: none)

KDE Commit-Digest (KDE.News)

The April 20, 2008 edition of the KDE Commit-Digest has been announced. The content summary says: "The start of the Google Summer of Code with 47 KDE projects. Initial version of a kxsldbg plugin for Quanta. Kross-based scripting in KDevelop. Tabs return to the kdevplatform (KDevelop, etc) interface framework. A database plugin for Kommander, with Kommander widgets becoming accessible within Designer. Support for file attachment and sound annotations in Okular. Work on support for JavaScript runners, and an enhanced visual appearance for KRunner in Plasma..."

Comments (none posted)

KDE Software Announcements

The following new GNOME software has been announced this week: You can find more new KDE software releases at kde-apps.org.

Comments (none posted)

Xorg Software Announcements

The following new Xorg software has been announced this week: More information can be found on the X.Org Foundation wiki.

Comments (none posted)

GUI Packages

Troll treasure: an in-depth look at Qt 4.4 (ars technica)

Trolltech has announced the release of Qt 4.4, so ars technica looks at the new features and interviews Trolltech CTO Benoit Schillings about the new version and where Qt is headed in the future. "Some of the most significant features added in Qt 4.4 include a multimedia abstraction layer, an HTML rendering widget based on WebKit, a new concurrency framework, and support for rendering widgets on the toolkit's drawing canvas. This is also the first Qt release to include support for Windows CE and Windows Mobile."

Comments (none posted)

Interoperability

Wine Release Countdown

A Wine Release Countdown is in progress. "wine-0.9.61 was released on Friday, May 2nd, 2008. Wine is now in a code freeze in preparation for the 1.0 release. According to http://wiki.winehq.org/WineReleasePlan, wine-1.0.0-rc1, due out Friday, May 9, 2008, will be the first release candidate for 1.0."

Comments (2 posted)

Wine 0.9.61 released

Version 0.9.61 of Wine has been announced. Changes include: Automatic updating of the WINEPREFIX directory, Winhelp now uses Richedit as display engine, Many RichEdit fixes, More improvements to IME support, More quartz fixes, Implementation for many more Gdiplus functions and Lots of bug fixes.

Comments (none posted)

Medical Applications

New OpenEHR strategic direction (LinuxMedNews)

LinuxMedNews covers a change of strategic direction for the openEHR project. "Thomas Beale, Chair of the openEHR Foundation Architecture Review Board (ARB) has posted a message describing some goals for the coming year. These include a vision, roadmap and strategies for the architecture and clinical modeling. Read more; for the entire email with links and descriptions."

Comments (none posted)

Music Applications

Rosegarden 1.7.0 released

Version 1.7.0 of Rosegarden, a MIDI sequencer, is out. "This release focuses mostly on notation enhancements, although there are also substantial bug fixes in other areas."

Full Story (comments: none)

Office Suites

OpenOffice.org 3 beta released

The first OpenOffice.org 3.0 beta release is available, and the project is looking for testers. "The most immediately visible change to OpenOffice.org 3.0 is the new 'Start Centre', new fresh-looking icons, and a new zoom control in the status bar. A closer look shows that 3.0 has a myriad of new features. Notable Calc improvements include a new solver component; support for spreadsheet collaboration through workbook sharing; and an increase to 1024 columns per sheet. Writer has an improved notes feature and displays of multiple pages while editing. There are numerous Chart enhancements, and an improved crop feature in Draw and Impress."

Full Story (comments: 1)

Languages and Tools

C

GCC 4.3.1 Status Report

The May 5, 2008 edition of the GCC 4.3.1 Status Report has been published. "GCC 4.3.1 was scheduled for 2008-05-05, but will be delayed. There are three P1 bugs open that need resolving before 4.3.1-rc1 is released: a restricted pointers bug (36013), the x86 direction flag issue (36079) where we don't yet have consensus on whether we need to have a workaround patch applied, and the ppc64 cacoshl miscompilation (36090) where possible patches are being discussed. Ian has applied the CERT warning fixes to 4.3 branch, so those will be in 4.3.1."

Full Story (comments: none)

Caml

Caml Weekly News

The May 6, 2008 edition of the Caml Weekly News is out with new articles about the Caml language.

Full Story (comments: none)

Perl

This Fortnight on perl5-porters

The April 13-27, 2008 edition of This Fortnight on perl5-porters is out with new Perl 5 articles. ""Perl simply isn't broken enough. Most things work too well, hence no-one finds that they need to fix their itch, so in turn, they don't get sucked into core development generally. Maybe we need to start adding bugs, somewhat like a protection racket." "Your program works very nicely. It would be a shame if something went wrong with it, wouldn't it? ..." -- Nicholas Clark, on possible future revenue schemes."

Comments (none posted)

PHP

PHP 5.2.6 released

Version 5.2.6 of PHP has been announced. "The PHP development team would like to announce the immediate availability of PHP 5.2.6. This release focuses on improving the stability of the PHP 5.2.x branch with over 120 bug fixes, several of which are security related. All users of PHP are encouraged to upgrade to this release."

Comments (none posted)

Python

Sphinx 0.3 released

Version 0.3 of Sphinx has been announced, several new capabilities have been added and some bugs have been fixed. "Sphinx is a tool that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of multiple reStructuredText source files)."

Full Story (comments: none)

Python-URL! - weekly Python news and links

The May 6, 2008 edition of the Python-URL! is online with a new collection of Python article links.

Full Story (comments: none)

Tcl/Tk

Tcl-URL! - weekly Tcl news and links

The April 30, 2008 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.

Full Story (comments: none)

IDEs

eric 4.1.3 released

Version 4.1.3 of eric, an IDE for Python and Ruby, has been announced. "I'd like to inform everybody about the immediate availability of eric v4.1.3. This is a bug fix release."

Full Story (comments: none)

Version Control

Bazaar 1.4 released

Version 1.4 of the Bazaar version control system has been announced. "This release of Bazaar includes handy improvements to the speed of log and status, new options for several commands, improved documentation, and better hooks, including initial code for server-side hooks. A number of bugs have been fixed, particularly in interoperability between different formats or different releases of Bazaar over there network. There's been substantial internal work in both the repository and network code to enable new features and faster performance."

Full Story (comments: none)

Miscellaneous

Rietveld: a new code review tool

Guido van Rossum has announced the availability of "rietveld," a new code review tool based on the Google-proprietary "Mondrian" tool. "What I'm announcing now is the next best thing: an code review tool for use with Subversion, inspired by Mondrian and (soon to be) released as open source. Some of the code is even directly derived from Mondrian. Most of the code is new though, written using Django and running on Google App Engine." The source is available from this page.

Full Story (comments: 3)

Page editor: Forrest Cook
Next page: Linux in the news>>

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.