diff options
author | Waylan Limberg <waylan@gmail.com> | 2012-03-07 06:25:50 -0500 |
---|---|---|
committer | Waylan Limberg <waylan@gmail.com> | 2012-03-07 06:40:17 -0500 |
commit | bbdbde59f7edde5df5630308fbffd657b3c26f60 (patch) | |
tree | 5415c506bf548b9a327f9f7e0ce05ac84124221a /docs/using_as_module.md | |
parent | dd380f464a4eaa1a7e5eca9e4ab2b0bf32ecb835 (diff) | |
download | markdown-bbdbde59f7edde5df5630308fbffd657b3c26f60.tar.gz markdown-bbdbde59f7edde5df5630308fbffd657b3c26f60.tar.bz2 markdown-bbdbde59f7edde5df5630308fbffd657b3c26f60.zip |
Renamed a few docswith better file names.
Diffstat (limited to 'docs/using_as_module.md')
-rw-r--r-- | docs/using_as_module.md | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/docs/using_as_module.md b/docs/using_as_module.md deleted file mode 100644 index 72c4965..0000000 --- a/docs/using_as_module.md +++ /dev/null @@ -1,237 +0,0 @@ -title: Library Reference -prev_title: Installation -prev_url: install.html -next_title: Command Line -next_url: command_line.html - - -Using Markdown as a Python Library -================================== - -First and foremost, Python-Markdown is intended to be a python library module -used by various projects to convert Markdown syntax into HTML. - -The Basics ----------- - -To use markdown as a module: - - import markdown - html = markdown.markdown(your_text_string) - -The Details ------------ - -Python-Markdown provides two public functions (`markdown.markdown` and -`markdown.markdownFromFile`) both of which wrap the public class -`markdown.Markdown`. If you're processing one document at a time, the -functions will serve your needs. However, if you need to process -multiple documents, it may be advantageous to create a single instance -of the `markdown.Markdown` class and pass multiple documents through it. - -### `markdown.markdown(text [, **kwargs])` - -The following options are available on the `markdown.markdown` function: - -* __`text`__ (required): The source text string. - - Note that Python-Markdown expects **Unicode** as input (although - a simple ASCII string may work) and returns output as Unicode. - Do not pass encoded strings to it! If your input is encoded, (e.g. as - UTF-8), it is your responsibility to decode it. For example: - - input_file = codecs.open("some_file.txt", mode="r", encoding="utf-8") - text = input_file.read() - html = markdown.markdown(text) - - If you want to write the output to disk, you must encode it yourself: - - output_file = codecs.open("some_file.html", "w", - encoding="utf-8", - errors="xmlcharrefreplace" - ) - output_file.write(html) - -* __`extensions`__: A list of extensions. - - Python-Markdown provides an API for third parties to write extensions to - the parser adding their own additions or changes to the syntax. A few - commonly used extensions are shipped with the markdown library. See - the [extension documentation](extensions) for a list of available extensions. - - The list of extensions may contain instances of extensions or stings of - extension names. If an extension name is provided as a string, the - extension must be importable as a python module either within the - `markdown.extensions` package or on your PYTHONPATH with a name starting - with `mdx_`, followed by the name of the extension. Thus, - `extensions=['extra']` will first look for the module - `markdown.extensions.extra`, then a module named `mdx_extra`. - -* __`extension-configs`__: A dictionary of configuration settings for extensions. - - The dictionary must be of the following format: - - extension-configs = {'extension_name_1': - [ - ('option_1', 'value_1'), - ('option_2', 'value_2') - ], - 'extension_name_2': - [ - ('option_1', 'value_1') - ] - } - See the documentation specific to the extension you are using for help in - specifying configuration settings for that extension. - -* __`output_format`__: Format of output. - - Supported formats are: - - * `"xhtml1"`: Outputs XHTML 1.x. **Default**. - * `"xhtml5"`: Outputs XHTML style tags of HTML 5 - * `"xhtml"`: Outputs latest supported version of XHTML (currently XHTML 1.1). - * `"html4"`: Outputs HTML 4 - * `"html5"`: Outputs HTML style tags of HTML 5 - * `"html"`: Outputs latest supported version of HTML (currently HTML 4). - - Note that it is suggested that the more specific formats ("xhtml1", - "html5", & "html4") be used as "xhtml" or "html" may change in the future - if it makes sense at that time. The values can either be lowercase or - uppercase. - -* __`safe_mode`__: Disallow raw html. - - If you are using Markdown on a web system which will transform text - provided by untrusted users, you may want to use the "safe_mode" - option which ensures that the user's HTML tags are either replaced, - removed or escaped. (They can still create links using Markdown syntax.) - - The following values are accepted: - - * `False` (Default): Raw HTML is passed through unaltered. - - * `replace`: Replace all HTML blocks with the text assigned to - `html_replacement_text` To maintain backward compatibility, setting - `safe_mode=True` will have the same effect as `safe_mode='replace'`. - - To replace raw HTML with something other than the default, do: - - md = markdown.Markdown(safe_mode='replace', - html_replacement_text='--RAW HTML NOT ALLOWED--') - - * `remove`: All raw HTML will be completely stripped from the text with - no warning to the author. - - * `escape`: All raw HTML will be escaped and included in the document. - - For example, the following source: - - Foo <b>bar</b>. - - Will result in the following HTML: - - <p>Foo <b>bar</b>.</p> - - Note that "safe_mode" does not alter the `enable_attributes` option, which - could allow someone to inject javascript (i.e., `{@onclick=alert(1)}`). You - may also want to set `enable_attributes=False` when using "safe_mode". - -* __`html_replacement_text`__: Text used when safe_mode is set to `replace`. - Defaults to `[HTML_REMOVED]`. - -* __`tab_length`__: Length of tabs in the source. Default: 4 - -* __`enable_attributes`__: Enable the conversion of attributes. Default: True - -* __`smart_emphasis`__: Treat `_connected_words_` intelligently Default: True - -* __`lazy_ol`__: Ignore number of first item of ordered lists. Default: True - - Given the following list: - - 4. Apples - 5. Oranges - 6. Pears - - By default markdown will ignore the fact the the first line started - with item number "4" and the HTML list will start with a number "1". - If `lazy_ol` is set to `True`, then markdown will output the following - HTML: - - <ol> - <li start="4">Apples</li> - <li>Oranges</li> - <li>Pears</li> - </ol> - - -### `markdown.markdownFromFile(**kwargs)` - -With a few exceptions, `markdown.markdownFromFile` accepts the same options as -`markdown.markdown`. It does **not** accept a `text` (or Unicode) string. -Instead, it accepts the following required options: - -* __`input`__ (required): The source text file. - - `input` may be set to one of three options: - - * a string which contains a path to a readable file on the file system, - * a readable file-like object, - * or `None` (default) which will read from `stdin`. - -* __`output`__: The target which output is written to. - - `output` may be set to one of three options: - - * a string which contains a path to a writable file on the file system, - * a writable file-like object, - * or `None` (default) which will write to `stdout`. - -* __`encoding`__: The encoding of the source text file. Defaults to - "utf-8". The same encoding will always be used for input and output. - The 'xmlcharrefreplace' error handler is used when encoding the output. - - **Note:** This is the only place that decoding and encoding of unicode - takes place in Python-Markdown. If this rather naive solution does not - meet your specific needs, it is suggested that you write your own code - to handle your encoding/decoding needs. - -### `markdown.Markdown([**kwargs])` - -The same options are available when initializing the `markdown.Markdown` class -as on the `markdown.markdown` function, except that the class does **not** -accept a source text string on initialization. Rather, the source text string -must be passed to one of two instance methods: - -* `Markdown.convert(source)` - - The `source` text must meet the same requirements as the `text` argument - of the `markdown.markdown` function. - - You should also use this method if you want to process multiple strings - without creating a new instance of the class for each string. - - md = markdown.Markdown() - html1 = md.convert(text1) - html2 = md.convert(text2) - - Note that depending on which options and/or extensions are being used, - the parser may need its state reset between each call to `convert`. - - html1 = md.convert(text1) - md.reset() - html2 = md.convert(text2) - - You can also change calls to `reset` togeather: - - html3 = md.reset().convert(text3) - -* `Markdown.convertFile(**kwargs)` - - The arguments of this method are identical to the arguments of the same - name on the `markdown.markdownFromFile` function (`input`, `output`, and - `encoding`). As with the `convert` method, this method should be used to - process multiple files without creating a new instance of the class for - each document. State may need to be `reset` between each call to - `convertFile` as is the case with `convert`. |