Previous topic

itertools2

Next topic

math2

This Page

markup

This is markup.py - a Python module that attempts to make it easier to generate HTML/XML from a Python program in an intuitive, lightweight, customizable and pythonic way.

The code is in the public domain.

Version: 1.9 as of 1 October 2012.

Documentation and further info is at http://markup.sourceforge.net/

Please send bug reports, feature requests, enhancement ideas or questions to nogradi at gmail dot com.

Installation: drop markup.py somewhere into your Python path.

markup.cgiprint(inline='', unbuff=True, line_end='\r\n')[source]

Print to the stdout.

Set unbuff=True to flush the buffer after every write.

It prints the inline you send it, followed by the line_end. By default this is ``

`` - which is the standard specified by the RFC for http headers.

class markup.element(tag, case='lower', parent=None)[source]

This class handles the addition of a new element.

__init__(tag, case='lower', parent=None)[source]
__call__(*args, **kwargs)[source]
render(tag, single, between, kwargs)[source]

Append the actual tags to content.

close()[source]

Append a closing tag unless element has only opening tag.

open(**kwargs)[source]

Append an opening tag.

class markup.page(mode='strict_html', case='lower', onetags=None, twotags=None, separator='n', class_=None)[source]

This is our main class representing a document. Elements are added as attributes of an instance of this class.

Stuff that effects the whole document.

Parameters:mode

*‘strict_html’ for HTML 4.01 (default) *‘html’ alias for ‘strict_html’ *‘loose_html’ to allow some deprecated elements *‘xml’ to allow arbitrary elements

Parameters:case

*‘lower’ element names will be printed in lower case (default) *‘upper’ they will be printed in upper case *‘given’ element names will be printed as they are given

Parameters:
  • onetags – list or tuple of valid elements with opening tags only
  • twotags – list or tuple of valid elements with both opening and closing tags these two keyword arguments may be used to select the set of valid elements in ‘xml’ mode invalid elements will raise appropriate exceptions
  • separator – string to place between added elements, defaults to newline
  • class – a class that will be added to every element if defined
__init__(mode='strict_html', case='lower', onetags=None, twotags=None, separator='n', class_=None)[source]

Stuff that effects the whole document.

Parameters:mode

*‘strict_html’ for HTML 4.01 (default) *‘html’ alias for ‘strict_html’ *‘loose_html’ to allow some deprecated elements *‘xml’ to allow arbitrary elements

Parameters:case

*‘lower’ element names will be printed in lower case (default) *‘upper’ they will be printed in upper case *‘given’ element names will be printed as they are given

Parameters:
  • onetags – list or tuple of valid elements with opening tags only
  • twotags – list or tuple of valid elements with both opening and closing tags these two keyword arguments may be used to select the set of valid elements in ‘xml’ mode invalid elements will raise appropriate exceptions
  • separator – string to place between added elements, defaults to newline
  • class – a class that will be added to every element if defined
__getattr__(attr)[source]
__str__()[source]
__call__(escape=False)[source]

Return the document as a string.

escape – False print normally
True replace < and > by &lt; and &gt;
the default escape sequences in most browsers
add(text)[source]

This is an alias to addcontent.

addfooter(text)[source]

Add some text to the bottom of the document

addheader(text)[source]

Add some text to the top of the document

addcontent(text)[source]

Add some text to the main part of the document

init(lang='en', css=None, metainfo=None, title=None, header=None, footer=None, charset=None, encoding=None, doctype=None, bodyattrs=None, script=None, base=None)[source]

This method is used for complete documents with appropriate doctype, encoding, title, etc information. For an /XML snippet omit this method.

lang – language, usually a two character string, will appear
as <html lang=’en’> in html mode (ignored in xml mode)
css – Cascading Style Sheet filename as a string or a list of
strings for multiple css files (ignored in xml mode)
metainfo – a dictionary in the form { ‘name’:’content’ } to be inserted
into meta element(s) as <meta name=’name’ content=’content’> (ignored in xml mode)

base – set the <base href=”...”> tag in <head>

bodyattrs –a dictionary in the form { ‘key’:’value’, ... } which will be added
as attributes of the <body> element as <body key=’value’ ... > (ignored in xml mode)
script – dictionary containing src:type pairs, <script type=’text/type’ src=src></script>
or a list of [ ‘src1’, ‘src2’, ... ] in which case ‘javascript’ is assumed for all
title – the title of the document as a string to be inserted into
a title element as <title>my title</title> (ignored in xml mode)
header – some text to be inserted right after the <body> element
(ignored in xml mode)
footer – some text to be inserted right before the </body> element
(ignored in xml mode)
charset – a string defining the character set, will be inserted into a
<meta http-equiv=’Content-Type’ content=’text/html; charset=myset’> element (ignored in xml mode)
encoding – a string defining the encoding, will be put into to first line of
the document as <?xml version=‘1.0’ encoding=’myencoding’ ?> in xml mode (ignored in html mode)
doctype – the document type string, defaults to
<!DOCTYPE HTML PUBLIC ‘-//W3C//DTD HTML 4.01 Transitional//EN’> in html mode (ignored in xml mode)
css(filelist)[source]

This convenience function is only useful for html. It adds css stylesheet(s) to the document via the <link> element.

metainfo(mydict)[source]

This convenience function is only useful for html. It adds meta information via the <meta> element, the argument is a dictionary of the form { ‘name’:’content’ }.

scripts(mydict)[source]

Only useful in html, mydict is dictionary of src:type pairs or a list of script sources [ ‘src1’, ‘src2’, ... ] in which case ‘javascript’ is assumed for type. Will be rendered as <script type=’text/type’ src=src></script>

markup.escape(text, newline=False)[source]

Escape special html characters.

markup.unescape(text)[source]

Inverse of escape.

class markup.dummy[source]

A dummy class for attaching attributes.

class markup.russell[source]

A dummy class that contains anything.

__contains__(item)[source]
exception markup.MarkupError[source]

Bases: exceptions.Exception

All our exceptions subclass this.

__str__()[source]
__weakref__

list of weak references to the object (if defined)

exception markup.ClosingError(tag)[source]

Bases: markup.MarkupError

__init__(tag)[source]
exception markup.OpeningError(tag)[source]

Bases: markup.MarkupError

__init__(tag)[source]
exception markup.ArgumentError(tag)[source]

Bases: markup.MarkupError

__init__(tag)[source]
exception markup.InvalidElementError(tag, mode)[source]

Bases: markup.MarkupError

__init__(tag, mode)[source]
exception markup.DeprecationError(tag)[source]

Bases: markup.MarkupError

__init__(tag)[source]
exception markup.ModeError(mode)[source]

Bases: markup.MarkupError

__init__(mode)[source]
exception markup.CustomizationError[source]

Bases: markup.MarkupError

__init__()[source]