diff options
-rw-r--r-- | home_page.txt | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/home_page.txt b/home_page.txt new file mode 100644 index 0000000..d24c176 --- /dev/null +++ b/home_page.txt @@ -0,0 +1,198 @@ +<?php include("markdown-header.php");?> + <div id="blog_entry"> + <div class="blogbody"> + +<a name="Summary"></a> +<h3 class="title">Summary</h3> + +This is a Python implementation of John Gruber's +[Markdown](http://daringfireball.net/projects/markdown/). +The current version of python-markdown implements all Markdown syntax +features and fully passes [Markdown Test Suite +1.0](http://six.pairlist.net/pipermail/markdown-discuss/2004-December/000909.html). It also supports footnotes (see [this +thread](http://six.pairlist.net/pipermail/markdown-discuss/2005-August/001480.html)) +and attributes (see [this +thread](http://six.pairlist.net/pipermail/markdown-discuss/2005-August/001486.html)). + +<!--Python-Markdown defaults to ignoring middle-word emphasis through +underscore, but this it can be switched to on. (See [this +thread](http://six.pairlist.net/pipermail/markdown-discuss/2005-October/001610.html) +for discussion.)--> + +If you find something missing, [submit a bug report](http://sourceforge.net/tracker/?func=add&group_id=153041&atid=790198) or send me an email (qaramazov-at-gmail.com). Better yet, send me a patch. + +<a name="Installation"></a> +<h3 class="title">Installation and Usage</h3> + +If you want to install the module into your python tree, get +[setup.py](setup.py) and run "python setup.py install" from a +directory where you put markdown.py. + +To use markdown.py by itself, run it as + + python markdown.py <input_file> + +or + + python markdown.py <input_file> <output_file> + +To get footnotes, add a "-footnotes" option: + + python markdown.py -footnotes <input_file> <output_file> + +To use it as a module: + + import markdown + html = markdown.markdown(your_text_string) + +<a name="Extending"></a> +<h3 class="title">Extending</h3> + +The functionality of the script can be extended without changing the +code, by inserting additional pre-processors, post-processors or +inline patterns into Markdown's pipeline. + +**Pre-processors** operate on lines of source text and are run in the +beginning. It is sufficient to write a class with a run() method that +takes a list of text lines as a parameter and returns the same or a new +list. An instance of the preprocessor can then be inserted into +the markdown pipeline. + + + class SamplePreprocessor : + def run(self, lines) : + for i in range(len(lines)) : + if lines[i].startswith(SOMETHING) : + lines[i] = do_something(lines[i]) + + return lines + + md_instance.preprocessors.insert(SOME_INDEX, SamplePreprocessor()) + +**Post-processors** operate on a NanoDom tree and run at the very end. +They need to implement a "run" method that takes a pointer to a NanoDom +document. + + class SamplePostprocessor : + def run(self, doc) : + doc.documentElement.appendChild(doc.createElement("new")) + + + md_instance.postprocessors.insert(SOME_INDEX, SamplePostprocessor()) + +Finally, **inline patterns** can be added. Each inline pattern +includes a regular expression pattern and a method for turning a match +object into a DOM fragment + + class MyCustomPattern (BasePattern) : + def handleMatch(self, m, doc) : + el = doc.createElement('custom') + el.setAttribute('stuff', m.group(3)) + return el + + new_pattern = MyCustomPattern(r'your regular expression here') + md_instance.inlinePatterns.insert(SOME_INDEX, new_pattern) + +See the implementation of footnote support inside markdown.py for an +example of using all three in combination to provide reasonably +complex additional functionality. (I use a pre-processor to collect +footnote definitions, an inline pattern to handle uses of footnotes +inside the text and a post-processor to attach the HTML of the actual +footnotes at the end of the document) + +Other extensions: + +* [Table-of-contents extension](extensions/markdown_with_toc.py) by Chris Clark (inserts a "title" element and a table of contents). + +<a name="Credits"></a> +<h3 class="title">Credits</h3> + +* The first version of this script was written by [Manfred + Stienstra](http://www.dwerg.net/), who is responsible for about + a quarter of the code. +* Daniel Krech provided the setup.py script. +* G. Clark Haynes submitted a patch for indented lists. +* Tiago Cogumbreiro submitted an email autolink fix. +* Sergej Chodarev submitted a patch for treatment of `<hr/>` tags. +* Chris Clark submitted a patch to handle `<mailto:...>` syntax and a reg ex for "smart" emphasis (ignoring underscores within a word). +* Steward Midwinter wrote command-line parser and cleaned up comments. +* Many other people helped by reporting bugs. + +<a name="License"></a> +<h3 class="title">License</h3> + +The code is dual-licensed under +[GPL](http://www.gnu.org/copyleft/gpl.html) and [BSD +License](http://www.opensource.org/licenses/bsd-license.php). Other +licensing arrangements can be discussed. + +<a name="Contact"></a> +<h3 class="title">Contact Info</h3> + +Email qaramazov [at] gmail.com if you have any questions or spot any +bugs. (Feel free to write in English, Russian, Portuguese or +Spanish.) + +Or subscribe to [python-markdown-discuss](http://lists.sourceforge.net/lists/listinfo/python-markdown-discuss). + + +<a name="Change"></a> +<h3 class="title">Change Log</h3> + +*Feb. 28, 2006:* Clean-up and command-line handling by Stewart +Midwinter. ([version 1.3](markdown-1.3.py)) + +*Feb. 24, 2006:* Fixed a bug with the last line of the list appearing +again as a separate paragraph. Incorporated Chris Clark's "mailto" +patch. Added support for `<br />` at the end of lines ending in two or +more spaces. Fixed a crashing bug when using ImageReferencePattern. +Added "hr" and "hr/" to BLOCK\_LEVEL\_ELEMENTS and changed +`<hr/>` to `<hr />`. (Thanks to Sergej Chodarev.) +Added several utility methods to Nanodom. +([version 1.2](markdown-1.2.py)) + +*Nov. 30, 2005:* Fixed a bug with certain tabbed lines inside lists +getting wrapped in `<pre><code>`. Made "\<!...", "\<?...", etc. behave +like block-level HTML tags. ([version 1.1](markdown-1.1.py)) + +*Nov. 14, 2005:* Added entity code and email autolink fix by Tiago +Cogumbreiro. Fixed some small issues with backticks to get 100 +compliance with John's test suite. Added an unlink method for +documents to aid with memory collection (per Doug Sauder's +suggestion). Restricted a set of html tags that get treated as +block-level elements. ([version 1.0](markdown-1.0.py)) + +*Sept. 18, 2005:* Refactored the whole script to make it easier to +customize it and made footnote functionality into an extension. +([version 0.9](markdown-0.9.py)) + +*Sept. 5, 2005:* Fixed a bug with multi-paragraph footnotes. Added +attribute support. + +*Sept. 1, 2005:* Changed the way headers are handled to allow inline +syntax in headers (e.g. links) and got the lists to use p-tags +correctly. ([version 0.8](markdown-0.8.py)) + +*Aug. 29, 2005:* Added flexible tabs, fixed a few small issues, added +basic support for footnotes, got rid of xml.dom.minidom and added +pretty-printing. ([version 0.7](markdown-0.7.py)) + +*Aug. 13, 2005:* Fixed a number of small bugs in order to conform to +the test suite. ([version 0.6](markdown-0.6.py)) + +*Aug. 11, 2005:* Added support for inline html and entities, inline +images, autolinks, underscore emphasis. Cleaned up and refactored the +code, added some more comments. ([version 0.5](markdown-0.5.py)) + +*Feb. 19, 2005:* Rewrote the handling of high-level elements to allow +multi-line list items and all sorts of nesting. ([version 0.4](markdown-0.4.py)) + +*Feb. 3, 2005:* Reference-style links, single-line lists, backticks, +escape, emphasis in the beginning of the paragraph. + +*Nov. 2004:* Added links, block quotes, html blocks to Manfred Stienstra's code. + + + + +<?php include("markdown-footer.php"); ?> |