Mainly Tech projects on Python and Electronic Design Automation.

Tuesday, October 02, 2007

Indenting python for blog comments

Note: Script updated 5 Oct 2007

Normally I use vim to turn my python code into nicely formatted and syntax-coloured examples for my posts, but blog comment fields can swallow leading spaces leaving any posted Python code without indentation.

Most blog comment fields only accept a small set of HTML tags (if any), so I cannot use the vim output.

I have written to turn leading spaces into HTML space characters which seems to work on blogger and wordpress.

Here is the code:

Turns leading spaces into HTML &nbsp tokens which shows
as correct indentation on Blogger comment fields
(and maybe other blogs).

Donald. 'Paddy' McCarthy Sept,Oct 2011
import fileinput, re, cgi

def escape(lineiterator=fileinput.input,
cgi_escape=True, tag_with_pre=True, tag_with_br=False):
output =
if tag_with_pre: output.append('<pre>\n')
for line in lineiterator():
if cgi_escape: line = cgi.escape(line)
line = re.sub(r'^(\s*)\s',
lambda m: '&nbsp;'*m.end(),
if tag_with_br:
if tag_with_pre: output.append('</pre>\n')
return ''.join(output)

if __name__ == '__main__':
print escape()

- Paddy.

( Also posted here and here)


  1. It doesn't support <pre>-tags? You can add additional formatting inside those tags. Just remember that it is an inline element, so you have to put it inside a paragraph

  2. pre tags are not allowed in blogger comments. I just tried (again).

  3. blogger fails for disallowing such!



Subscribe Now: google

Add to Google Reader or Homepage

Go deh too!

Blog Archive