PaxHeader/Text-MultiMarkdown-1.000035000755 777777 000024 00000000173 12362552430 020045 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062064 19 SCHILY.nlink=15 Text-MultiMarkdown-1.000035/000755 €;Ðâp000024 00000000000 12362552430 016730 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/PaxHeader/Changes000644 777777 000024 00000000172 12362522025 021406 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69053892 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/Changes000644 €;Ðâp000024 00000026527 12362522025 020234 0ustar00tdoranstaff000000 000000 This file documents the revision history for Perl extension Text::MultiMarkdown. 1.000035 2014-06-19T16:55:00 - Add a 'self_url' configuration parameter to the constructor. If set, the value is prepended to the "#" anchor of footnotes. - Metadata is now properly encoded - special characters (like angles, ampersand, or quotes) are encoded to generate valid (X)HTML. - Add HTML::Entities as an explicit dependency. 1.0.34 2011-04-26T10:25:00 - Add definition list support from the MultiMarkdown spec. 1.0.33 2010-03-20T23:08:00 - Fix installation of MultiMarkdown.pl script. 1.0.32 2010-12-19T10:31:00 - Removed File::Slurp dependency (v. 9999.13 fails tests on Strawberry 5.10.1) (dandv) 1.0.31 2009-10-25T19:19:30 - Version bump to depend on 2 part version number in latest Text::Markdown to avoid dependency issues. 1.0.30 2009-10-22T22:04:40 - Add support for XHTML Headers: metadata 1.0.29 2009-10-06T08:25:40 - Update dependency versions in Makefile.PL (neglected in last release). 1.0.28 2009-10-05T20:24:40 - Changes to conform with the latest Text::Markdown version 1.0.26 API. - Update README file and tie it to the code. 1.0.27 2009-08-27T00:49:50 - Change bug tracker metadata to the github issue tracker. - Fix http://github.com/bobtfish/text-multimarkdown/issues#issue/5 regression causing specialchars to not be unhashed in footnotes. 1.0.26 2009-07-01T08:35:00 - Fix to depend on the Text::Markdown package. 1.0.25 2009-06-09T22:52:13 - Split Text::MultiMarkdown back out into it's own dist. 1.0.24 2008-11-16T14:33:30 - Add trust_list_start_value patch from Ricardo Signes (RT#40814) to enable
  • output for list numbering. This feature is disabled by default. 1.0.23 2008-11-02T18:24:30 - Ship a release with the correct contents so that the tests pass. 1.0.22 2008-10-23T18:24:44 - RT#37909 - Fix + in email addresses. - RT#40303 - Fix use in Mason by adding "use re 'eval'" to both files. - Add SVN repository to Makefile.PL - Remove META.yml from source control so it is regenerated automatically. 1.0.21 2008-07-24T08:33:00 - Fix hard tabs in Changelog - Add unit test for core dumps issue from RT#36203 - Fix POD spelling. - Fix warning from RT#34856. - Add test for another tab width issue (related to
    generation) from RT#37769. Fix this issue. - More test additions and more splitting the test suites into MDTest modules. 1.0.20 2008-07-11T23:30:00 - Update README.txt - Allow scripts to be used on multiple input files at once (processing in command line order) - Update footnote behavior of Text::MutliMarkdown to be consistent with the latest version of MultiMarkdown - Added tests for the new footnote functionality. - Added tests for all the MDTest corner cases brought up on the list. Noted why / how I differ from original Markdown. - Moved all the document tests to MDTest format. I have made MDTest test suites for Text::Markdown and Text::MultiMarkdown, containing **only** the bug fixes and behavior changes I've made, I've imported the Markdown test suite from MDTest1.1, and the MultiMarkdown test suite. - RT#36537 doc patch to add POD to the scripts from Debian's Gunnar Wolf. - Mutilate the list processing somewhat to reduce the compilation of recursive regexes, and so stop perl (<5.10) crapping itself on lots of input. This isn't the full fix - really shouldn't be using recursive regexes at all. RT#37297 1.0.19 2008-04-22T18:34:00 - Remove auto_install from Makefile.PL, this is a deprecated feature and it shouldn't be being used at all. 1.0.18 2008-04-20T18:54:50 - Clean up local stuff for settings. - Do a little cleanup of intialisation (more needed) - Remove copy pasted regexes from Text::MultiMarkdown - Fix bug with line breaks in links - http://bugs.debian.org/459885, thanks to patches and test input / output provided by Adeodato Simó. (See t/37anchormultilinebugs.t) - Incorperated MDTest1.1's tests, and made most of the Text-Markdown and Text-MultiMarkdown tests in MDTest format. - Add and document an accessor for the parsed markdown URLs. - Fix html4tags option in Markdown.pl and MultiMarkdown.pl 1.0.17 2008-03-17T01:54:00 - Add Markdown.pl and MultiMarkdown.pl, which work the same way as the original Markdown.pl. These scripts *are not* installed by default, but you will be prompted to install them when you run Makefile.PL - Make _DeTab significantly quicker. Text::Balanced is still the main performance sore point however. :( - Re-organise the module code so that Text::Markdown is a standalone module which does not require Text::MultiMarkdown. Text::MultiMarkdown now inherits from Text::Markdown and adds the additional MultiMarkdown functionality. This is a *large* change to the module's internals, but is much more in the spirit of the original Markdown project (and should silence most complaints about how the code works, and possible even stop John Gruber hating my guts). If you were using Text::Markdown previously, but relying on an implicit MultiMarkdown feature, this *could be a breaking change*. Detailed description of any possible user visible changes below: - Text::Markdown will no longer supports the additional attribute specification for images and links feature, which was not in original Markdown, but were previously supported after the code merge of Text::Markdown and Text::MultiMarkdown. If you are relying on this features, it is recommended that you use Text::MultiMarkdown (configured as you prefer), as this is not a supported feature in the original Markdown. - Text::MultiMarkdown has changed the order of attributes in image tags, the id attribute is moved from the first to the last attribute (barring user supplied attributes). An example of the expected change is included below: Old output: image New output: image This is due to the code re-organisation, moving the id attribute around shouldn't affect anything that isn't relying on the attribute ordering (which is meant to be unimportant in HTML), and allows for simplification of the unified code. 1.0.16 2008-02-25T14:24:00 - Fix bugs with tab_width in constructor / as an option. - Fix bugs with tab width in pre/code blocks. 1.0.15 2008-02-23T11:13:07 - Start using ShipIt to package the distribution. 1.0.14 2008-02-21T22:41:33 - Fix a bug in the packaging of the last version. - Add links to other implementations and some notes about them. - Add a (failing) unit test for some unexpected behavior reported on the list. 1.0.13 2008-02-19T23:54:33 - Due to the UFT8 support this module no longer works on perl < 5.8, note this in the Makefile.PL and modules. - I managed to ship a module without Makefile.PL, WTF? Really need to start using ShipIt. 1.0.12 2008-02-18T22:00:00 - Text::Markdown - borgborgborgborgborg. - Added additional POD documentation. - Cleaned up some tests, and some additional test cases. - Options to turn off all the extra features introduced in MultiMarkdown. 1.0.11 2008-01-24T00:12:00 - Fix syntax error in one of the tests. Note to self - just fixing that warning in the test case, then shipping without retesting, NOT SMART! 1.0.10 2008-01-23T15:40:00 - Fix bug with links processing in HTML blocks. 1.0.9 2008-01-22T20:28:00 - Ship non-broken dist at CPAN (oops, rushing!) 1.0.8 2008-01-22T19:20:00 - Do not encode amps or angle brackets in HTML comments + test case. - Do not emit title attribute in tags unless we have contents for it. This was a 'feature' of original Markdown where I've decided to go with what php-markdown does (tests updated). - Added php-markdown tests (most/all of the regular tests pass except the email obfu one). - Added php-markdown extra tests (all fail). - Added python markdown tests (mostly pass, but marked broken). - Add a way of stopping inline HTML blocks from suppressing markdown processing. Feature request from #catalyst-dev 1.0.7 2008-01-07T16:31:00 - Encode isn't in core in all perls, add it to Makefile.PL 1.0.6 2008-01-06T13:36:00 - Merge latest Markdown test suite I can find, and make it all pass, pulling in code from Markdown 1.0.2b8. Things fixed: - Inline HTML - Lists - Metadata skipping by leading line breaks - 3rd form of links - Implement features to suppress id attributes in and tags to be able to act more like original Markdown - now almost ready to steal Text::Markdown (would want to turn off tables / citations and bibliography for that) - Move almost all the global variables into instance data. - Fix unicode issues from CPAN.org's RT#27482 - Remove call to srand, it's not smart to do this more than once. 1.0.5 2008-01-04T18:07:57 - Add Markdown and MultiMarkdown test suites. - Fix a big bug introduced in 1.0.4 in citations - Fix footnotes (and other small things) to match the test suite 1.0.4 2008-01-02T02:03:50 - Refactor so that the processor instance has the same set of persistent options as on the ->markdown method itself. - Change all functions to be instance methods, moved a chunk of the global data to the instance. The rest will follow shortly. - The test suite now tests a reasonable set of the Markdown and MultiMarkdown syntaxes. - All known options and metadata keys have been documented. 1.0.3 2007-11-24T20:22:00 - way to keep me accountable, CPANTESTERS! Maybe I shouldn't have Test::Pod::Coverage enabled unless it actually checks out. Added some fairly useless stubbed METHODS to POD and moved POD around a bit. 1.0.2 2007-11-24T14:00:00 - move to Module::Install and clean various things up, mostly to make CPANTS happy. 1.0.1 2006-10-20T00:00:00 - include patch from Uwe Voelker to allow setting of options in markdown(); also added a test case from Uwe. Thanks, Uwe! Also updated changelog references in POD somewhat. 1.0.0 2006-08-22T00:00:00 - first release Text-MultiMarkdown-1.000035/PaxHeader/inc000755 777777 000024 00000000172 12362552430 020615 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062078 18 SCHILY.nlink=3 Text-MultiMarkdown-1.000035/inc/000755 €;Ðâp000024 00000000000 12362552430 017501 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/PaxHeader/lib000755 777777 000024 00000000172 12362552430 020612 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062247 18 SCHILY.nlink=3 Text-MultiMarkdown-1.000035/lib/000755 €;Ðâp000024 00000000000 12362552430 017476 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/PaxHeader/License.text000644 777777 000024 00000000172 12362521047 022406 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051328 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/License.text000644 €;Ðâp000024 00000002744 12362521047 021227 0ustar00tdoranstaff000000 000000 Copyright (c) 2004, John Gruber All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name "Markdown" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Text-MultiMarkdown-1.000035/PaxHeader/Makefile.PL000644 777777 000024 00000000240 12362521720 022062 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 38 LIBARCHIVE.creationtime=1405788711 23 SCHILY.dev=16777218 23 SCHILY.ino=69051330 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/Makefile.PL000644 €;Ðâp000024 00000001722 12362521720 020702 0ustar00tdoranstaff000000 000000 # Load the Module::Install bundled in ./inc/ use inc::Module::Install; # Define metadata name 'Text-MultiMarkdown'; author 'Tomas Doran '; license 'bsd'; all_from 'lib/Text/MultiMarkdown.pm'; resources repository => 'http://github.com/bobtfish/text-multimarkdown/'; resources bugtracker => 'http://github.com/bobtfish/text-multimarkdown/issues'; # Specific dependencies perl_version '5.008'; requires 'Digest::MD5' => undef; requires 'Text::Markdown' => '1.0.26'; requires 'Encode' => undef; requires 'HTML::Entities' => undef; build_requires 'Test::More' => '0.42'; build_requires 'Test::Exception' => undef; build_requires 'List::MoreUtils' => undef; build_requires 'FindBin' => undef; if ($Module::Install::AUTHOR) { system("pod2text lib/Text/MultiMarkdown.pm > README") and die $!; } install_script 'script/MultiMarkdown.pl'; WriteAll; Text-MultiMarkdown-1.000035/PaxHeader/MANIFEST000644 777777 000024 00000000172 12362521621 021245 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062179 18 SCHILY.nlink=1 Text-MultiMarkdown-1.000035/MANIFEST000644 €;Ðâp000024 00000040114 12362521621 020057 0ustar00tdoranstaff000000 000000 Changes inc/Module/Install.pm inc/Module/Install/Base.pm inc/Module/Install/Can.pm inc/Module/Install/Fetch.pm inc/Module/Install/Makefile.pm inc/Module/Install/Metadata.pm inc/Module/Install/Scripts.pm inc/Module/Install/Win32.pm inc/Module/Install/WriteAll.pm lib/Text/MultiMarkdown.pm License.text Makefile.PL MANIFEST This list of files MANIFEST.skip META.yml README Readme.text script/MultiMarkdown.pl t/01use.t t/02pod.t t/03podcoverage.t t/03podspelling.t t/04markdown.t t/05options.t t/06wiki.t t/07fulldoc.t t/08exporter.t t/09base_url.t t/10use_metadata.t t/11docment_format.t t/12empty_element_suffix.t t/13multimarkdown-nometadata-firstpara.t t/14unicode.t t/16headingsinlists.t t/17olulreportedonlist.t t/18codespanextra.t t/20fulldocs-text-multimarkdown.t t/22fulldocs-multimarkdown-todo.t t/23afulldocs-multimarkdown.t t/24fulldocs-pythonmarkdown2-tm.t t/29fulldocs-maruku-unittest.t t/30disable_multimarkdown_features.t t/35commandlinemultimarkdown.t t/36footnotes.t t/37deflists.t t/38self_url.t t/docs-maruku-unittest/abbreviations.html t/docs-maruku-unittest/abbreviations.text t/docs-maruku-unittest/alt.html t/docs-maruku-unittest/alt.text t/docs-maruku-unittest/blank.html t/docs-maruku-unittest/blank.text t/docs-maruku-unittest/blanks_in_code.html t/docs-maruku-unittest/blanks_in_code.text t/docs-maruku-unittest/bug_def.html t/docs-maruku-unittest/bug_def.text t/docs-maruku-unittest/bug_table.html t/docs-maruku-unittest/bug_table.text t/docs-maruku-unittest/code.html t/docs-maruku-unittest/code.text t/docs-maruku-unittest/code2.html t/docs-maruku-unittest/code2.text t/docs-maruku-unittest/code3.html t/docs-maruku-unittest/code3.text t/docs-maruku-unittest/convert.pl t/docs-maruku-unittest/data_loss.html t/docs-maruku-unittest/data_loss.text t/docs-maruku-unittest/easy.html t/docs-maruku-unittest/easy.text t/docs-maruku-unittest/email.html t/docs-maruku-unittest/email.text t/docs-maruku-unittest/entities.html t/docs-maruku-unittest/entities.text t/docs-maruku-unittest/escaping.html t/docs-maruku-unittest/escaping.text t/docs-maruku-unittest/extra_dl.html t/docs-maruku-unittest/extra_dl.text t/docs-maruku-unittest/extra_header_id.html t/docs-maruku-unittest/extra_header_id.text t/docs-maruku-unittest/extra_table1.html t/docs-maruku-unittest/extra_table1.text t/docs-maruku-unittest/footnotes.html t/docs-maruku-unittest/footnotes.text t/docs-maruku-unittest/headers.html t/docs-maruku-unittest/headers.text t/docs-maruku-unittest/hex_entities.html t/docs-maruku-unittest/hex_entities.text t/docs-maruku-unittest/hrule.html t/docs-maruku-unittest/hrule.text t/docs-maruku-unittest/html2.html t/docs-maruku-unittest/html2.text t/docs-maruku-unittest/html3.html t/docs-maruku-unittest/html3.text t/docs-maruku-unittest/html4.html t/docs-maruku-unittest/html4.text t/docs-maruku-unittest/html5.html t/docs-maruku-unittest/html5.text t/docs-maruku-unittest/ie.html t/docs-maruku-unittest/ie.text t/docs-maruku-unittest/images.html t/docs-maruku-unittest/images.text t/docs-maruku-unittest/images2.html t/docs-maruku-unittest/images2.text t/docs-maruku-unittest/inline_html.html t/docs-maruku-unittest/inline_html.text t/docs-maruku-unittest/inline_html2.html t/docs-maruku-unittest/inline_html2.text t/docs-maruku-unittest/links.html t/docs-maruku-unittest/links.text t/docs-maruku-unittest/list1.html t/docs-maruku-unittest/list1.text t/docs-maruku-unittest/list2.html t/docs-maruku-unittest/list2.text t/docs-maruku-unittest/list3.html t/docs-maruku-unittest/list3.text t/docs-maruku-unittest/list4.html t/docs-maruku-unittest/list4.text t/docs-maruku-unittest/lists.html t/docs-maruku-unittest/lists.text t/docs-maruku-unittest/lists11.html t/docs-maruku-unittest/lists11.text t/docs-maruku-unittest/lists6.html t/docs-maruku-unittest/lists6.text t/docs-maruku-unittest/lists7.html t/docs-maruku-unittest/lists7.text t/docs-maruku-unittest/lists7b.html t/docs-maruku-unittest/lists7b.text t/docs-maruku-unittest/lists8.html t/docs-maruku-unittest/lists8.text t/docs-maruku-unittest/lists9.html t/docs-maruku-unittest/lists9.text t/docs-maruku-unittest/lists_after_paragraph.html t/docs-maruku-unittest/lists_after_paragraph.text t/docs-maruku-unittest/lists_ol.html t/docs-maruku-unittest/lists_ol.text t/docs-maruku-unittest/loss.html t/docs-maruku-unittest/loss.text t/docs-maruku-unittest/misc_sw.html t/docs-maruku-unittest/misc_sw.text t/docs-maruku-unittest/olist.html t/docs-maruku-unittest/olist.text t/docs-maruku-unittest/one.html t/docs-maruku-unittest/one.text t/docs-maruku-unittest/paragraph.html t/docs-maruku-unittest/paragraph.text t/docs-maruku-unittest/paragraphs.html t/docs-maruku-unittest/paragraphs.text t/docs-maruku-unittest/smartypants.html t/docs-maruku-unittest/smartypants.text t/docs-maruku-unittest/syntax_hl.html t/docs-maruku-unittest/syntax_hl.text t/docs-maruku-unittest/table_attributes.html t/docs-maruku-unittest/table_attributes.text t/docs-maruku-unittest/test.html t/docs-maruku-unittest/test.text t/docs-maruku-unittest/wrapping.html t/docs-maruku-unittest/wrapping.text t/docs-maruku-unittest/xml.html t/docs-maruku-unittest/xml.text t/docs-maruku-unittest/xml2.html t/docs-maruku-unittest/xml2.text t/docs-maruku-unittest/xml3.html t/docs-maruku-unittest/xml3.text t/docs-maruku-unittest/xml_instruction.html t/docs-maruku-unittest/xml_instruction.text t/docs-multimarkdown-todo/Amps_and_angle_encoding.html t/docs-multimarkdown-todo/Amps_and_angle_encoding.text t/docs-multimarkdown-todo/Email_Obfuscation.html t/docs-multimarkdown-todo/Email_Obfuscation.text t/docs-multimarkdown-todo/Tidyness.html t/docs-multimarkdown-todo/Tidyness.text t/docs-pythonmarkdown2-tm-cases-pass/auto_link.html t/docs-pythonmarkdown2-tm-cases-pass/auto_link.text t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text t/docs-pythonmarkdown2-tm-cases-pass/blockquote.html t/docs-pythonmarkdown2-tm-cases-pass/blockquote.text t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text t/docs-pythonmarkdown2-tm-cases-pass/codeblock.html t/docs-pythonmarkdown2-tm-cases-pass/codeblock.text t/docs-pythonmarkdown2-tm-cases-pass/codespans.html t/docs-pythonmarkdown2-tm-cases-pass/codespans.text t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text t/docs-pythonmarkdown2-tm-cases-pass/emphasis.html t/docs-pythonmarkdown2-tm-cases-pass/emphasis.text t/docs-pythonmarkdown2-tm-cases-pass/escapes.html t/docs-pythonmarkdown2-tm-cases-pass/escapes.text t/docs-pythonmarkdown2-tm-cases-pass/footnotes.html t/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts t/docs-pythonmarkdown2-tm-cases-pass/footnotes.text t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text t/docs-pythonmarkdown2-tm-cases-pass/header.html t/docs-pythonmarkdown2-tm-cases-pass/header.text t/docs-pythonmarkdown2-tm-cases-pass/hr.html t/docs-pythonmarkdown2-tm-cases-pass/hr.text t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text t/docs-pythonmarkdown2-tm-cases-pass/inline_links.html t/docs-pythonmarkdown2-tm-cases-pass/inline_links.text t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text t/docs-pythonmarkdown2-tm-cases-pass/lists.html t/docs-pythonmarkdown2-tm-cases-pass/lists.text t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text t/docs-pythonmarkdown2-tm-cases-pass/nested_list.html t/docs-pythonmarkdown2-tm-cases-pass/nested_list.text t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text t/docs-pythonmarkdown2-tm-cases-pass/raw_html.html t/docs-pythonmarkdown2-tm-cases-pass/raw_html.text t/docs-pythonmarkdown2-tm-cases-pass/ref_links.html t/docs-pythonmarkdown2-tm-cases-pass/ref_links.text t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text t/MultiMarkdown.mdtest/Backslash_escapes.text t/MultiMarkdown.mdtest/Backslash_escapes.xhtml t/MultiMarkdown.mdtest/Footnotes.text t/MultiMarkdown.mdtest/Footnotes.xhtml t/MultiMarkdown.mdtest/Inline_HTML_(Advanced).text t/MultiMarkdown.mdtest/Inline_HTML_(Advanced).xhtml t/MultiMarkdown.mdtest/Inline_HTML_(Simple).text t/MultiMarkdown.mdtest/Inline_HTML_(Simple).xhtml t/MultiMarkdown.mdtest/Inline_HTML_comments.text t/MultiMarkdown.mdtest/Inline_HTML_comments.xhtml t/MultiMarkdown.mdtest/Links_inline_style.text t/MultiMarkdown.mdtest/Links_inline_style.xhtml t/MultiMarkdown.mdtest/Links_reference_style.text t/MultiMarkdown.mdtest/Links_reference_style.xhtml t/MultiMarkdown.mdtest/Literal_quotes_in_titles.text t/MultiMarkdown.mdtest/Literal_quotes_in_titles.xhtml t/MultiMarkdown.mdtest/Nested_blockquotes.text t/MultiMarkdown.mdtest/Nested_blockquotes.xhtml t/MultiMarkdown.mdtest/Ordered_and_unordered_lists.text t/MultiMarkdown.mdtest/Ordered_and_unordered_lists.xhtml t/Text-MultiMarkdown.mdtest/Amps_and_angle_encoding.html t/Text-MultiMarkdown.mdtest/Amps_and_angle_encoding.text t/Text-MultiMarkdown.mdtest/Amps_and_angles_encoding-advanced.text t/Text-MultiMarkdown.mdtest/Amps_and_angles_encoding-advanced.xhtml t/Text-MultiMarkdown.mdtest/Auto_links.text t/Text-MultiMarkdown.mdtest/Auto_links.xhtml t/Text-MultiMarkdown.mdtest/Backslash_escapes.html t/Text-MultiMarkdown.mdtest/Backslash_escapes.text t/Text-MultiMarkdown.mdtest/Blockquotes_with_code_blocks.html t/Text-MultiMarkdown.mdtest/Blockquotes_with_code_blocks.text t/Text-MultiMarkdown.mdtest/Citations.text t/Text-MultiMarkdown.mdtest/Citations.xhtml t/Text-MultiMarkdown.mdtest/complex_escaping.text t/Text-MultiMarkdown.mdtest/complex_escaping.xhtml t/Text-MultiMarkdown.mdtest/Cross-References.text t/Text-MultiMarkdown.mdtest/Cross-References.xhtml t/Text-MultiMarkdown.mdtest/Emphasis.text t/Text-MultiMarkdown.mdtest/Emphasis.xhtml t/Text-MultiMarkdown.mdtest/Footnotes.text t/Text-MultiMarkdown.mdtest/Footnotes.xhtml t/Text-MultiMarkdown.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text t/Text-MultiMarkdown.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml t/Text-MultiMarkdown.mdtest/Horizontal_rules.text t/Text-MultiMarkdown.mdtest/Horizontal_rules.xhtml t/Text-MultiMarkdown.mdtest/HTML-Comment-encoding.text t/Text-MultiMarkdown.mdtest/HTML-Comment-encoding.xhtml t/Text-MultiMarkdown.mdtest/Images.text t/Text-MultiMarkdown.mdtest/Images.xhtml t/Text-MultiMarkdown.mdtest/Inline_HTML_(Advanced).text t/Text-MultiMarkdown.mdtest/Inline_HTML_(Advanced).xhtml t/Text-MultiMarkdown.mdtest/Inline_HTML_(Simple).text t/Text-MultiMarkdown.mdtest/Inline_HTML_(Simple).xhtml t/Text-MultiMarkdown.mdtest/Inline_HTML_comments.text t/Text-MultiMarkdown.mdtest/Inline_HTML_comments.xhtml t/Text-MultiMarkdown.mdtest/Link_Attributes.text t/Text-MultiMarkdown.mdtest/Link_Attributes.xhtml t/Text-MultiMarkdown.mdtest/Links_brackets.text t/Text-MultiMarkdown.mdtest/Links_brackets.xhtml t/Text-MultiMarkdown.mdtest/Links_inline_style.text t/Text-MultiMarkdown.mdtest/Links_inline_style.xhtml t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_1.html t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_1.text t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_2.html t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_2.text t/Text-MultiMarkdown.mdtest/Links_reference_style.text t/Text-MultiMarkdown.mdtest/Links_reference_style.xhtml t/Text-MultiMarkdown.mdtest/Lists-multilevel-md5-edgecase.text t/Text-MultiMarkdown.mdtest/Lists-multilevel-md5-edgecase.xhtml t/Text-MultiMarkdown.mdtest/Lists.text t/Text-MultiMarkdown.mdtest/Lists.xhtml t/Text-MultiMarkdown.mdtest/Literal_quotes_in_titles.text t/Text-MultiMarkdown.mdtest/Literal_quotes_in_titles.xhtml t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Basics.text t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Basics.xhtml t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Syntax.text t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Syntax.xhtml t/Text-MultiMarkdown.mdtest/Metadata_(Complete).text t/Text-MultiMarkdown.mdtest/Metadata_(Complete).xhtml t/Text-MultiMarkdown.mdtest/Metadata_(Snippet).html t/Text-MultiMarkdown.mdtest/Metadata_(Snippet).text t/Text-MultiMarkdown.mdtest/Nested_blockquotes.text t/Text-MultiMarkdown.mdtest/Nested_blockquotes.xhtml t/Text-MultiMarkdown.mdtest/Ordered_and_unordered_lists.text t/Text-MultiMarkdown.mdtest/Ordered_and_unordered_lists.xhtml t/Text-MultiMarkdown.mdtest/PHP-ASP_tags.text t/Text-MultiMarkdown.mdtest/PHP-ASP_tags.xhtml t/Text-MultiMarkdown.mdtest/Special_Characters.text t/Text-MultiMarkdown.mdtest/Special_Characters.xhtml t/Text-MultiMarkdown.mdtest/Strong_and_em_together.text t/Text-MultiMarkdown.mdtest/Strong_and_em_together.xhtml t/Text-MultiMarkdown.mdtest/Tables.text t/Text-MultiMarkdown.mdtest/Tables.xhtml t/Text-MultiMarkdown.mdtest/Tabs.text t/Text-MultiMarkdown.mdtest/Tabs.xhtml t/Text-MultiMarkdown.mdtest/Warnings-rt34856.text t/Text-MultiMarkdown.mdtest/Warnings-rt34856.xhtml t/Text-MultiMarkdown.mdtest/Wiki_Features.text t/Text-MultiMarkdown.mdtest/Wiki_Features.xhtml t/Text-MultiMarkdown.mdtest/XHTML_Headers.text t/Text-MultiMarkdown.mdtest/XHTML_Headers.xhtml Todo Text-MultiMarkdown-1.000035/PaxHeader/MANIFEST.skip000644 777777 000024 00000000172 12362521047 022214 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790060 23 SCHILY.dev=16777218 23 SCHILY.ino=69062245 18 SCHILY.nlink=1 Text-MultiMarkdown-1.000035/MANIFEST.skip000644 €;Ðâp000024 00000001230 12362521047 021022 0ustar00tdoranstaff000000 000000 ^TODO$ ^Text-MultiMarkdown- # Avoid version control files. \bRCS\b \bCVS\b \bSCCS\b ,v$ \B\.svn\b \B\.git\b \b_darcs\b # Avoid Makemaker generated and utility files. \bMANIFEST\.bak \bMakefile$ \bblib/ \bMakeMaker-\d \bpm_to_blib\.ts$ \bpm_to_blib$ \bblibdirs\.ts$ # 6.18 through 6.25 generated this # Avoid Module::Build generated and utility files. \bBuild$ \b_build/ # Avoid temp and backup files. ~$ \.old$ \#$ \b\.# \.bak$ # Avoid Devel::Cover files. \bcover_db\b ### DEFAULT MANIFEST.SKIP ENDS HERE #### \.DS_Store$ \.sw.$ (\w+-)*(\w+)-\d\.\d+(?:\.tar\.gz)?$ \.t\.log$ \.gitignore$ MANIFEST.SKIP$ \.prove$ \.shipit$ # XS shit \.(?:bs|c|o)$ Text-MultiMarkdown-1.000035/PaxHeader/META.yml000644 777777 000024 00000000172 12362522056 021370 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790060 23 SCHILY.dev=16777218 23 SCHILY.ino=69062320 18 SCHILY.nlink=1 Text-MultiMarkdown-1.000035/META.yml000644 €;Ðâp000024 00000001512 12362522056 020201 0ustar00tdoranstaff000000 000000 --- abstract: 'Convert MultiMarkdown syntax to (X)HTML' author: - 'Tomas Doran ' build_requires: ExtUtils::MakeMaker: 6.59 FindBin: 0 List::MoreUtils: 0 Test::Exception: 0 Test::More: 0.42 configure_requires: ExtUtils::MakeMaker: 6.59 distribution_type: module dynamic_config: 1 generated_by: 'Module::Install version 1.08' license: bsd meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: 1.4 name: Text-MultiMarkdown no_index: directory: - inc - t requires: Digest::MD5: 0 Encode: 0 HTML::Entities: 0 Text::Markdown: 1.0.26 perl: 5.8.0 resources: bugtracker: http://github.com/bobtfish/text-multimarkdown/issues license: http://opensource.org/licenses/bsd-license.php repository: http://github.com/bobtfish/text-multimarkdown/ version: 1.000035 Text-MultiMarkdown-1.000035/PaxHeader/README000644 777777 000024 00000000240 12362522056 020773 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 38 LIBARCHIVE.creationtime=1405788711 23 SCHILY.dev=16777218 23 SCHILY.ino=69051331 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/README000644 €;Ðâp000024 00000021672 12362522056 017621 0ustar00tdoranstaff000000 000000 NAME Text::MultiMarkdown - Convert MultiMarkdown syntax to (X)HTML SYNOPSIS use Text::MultiMarkdown 'markdown'; my $html = markdown($text); use Text::MultiMarkdown 'markdown'; my $html = markdown( $text, { empty_element_suffix => '>', tab_width => 2, use_wikilinks => 1, } ); use Text::MultiMarkdown; my $m = Text::MultiMarkdown->new; my $html = $m->markdown($text); use Text::MultiMarkdown; my $m = Text::MultiMarkdown->new( empty_element_suffix => '>', tab_width => 2, use_wikilinks => 1, ); my $html = $m->markdown( $text ); DESCRIPTION Markdown is a text-to-HTML filter; it translates an easy-to-read / easy-to-write structured text format into HTML. Markdown's text format is most similar to that of plain text email, and supports features such as headers, *emphasis*, code blocks, blockquotes, and links. Markdown's syntax is designed not as a generic markup language, but specifically to serve as a front-end to (X)HTML. You can use span-level HTML tags anywhere in a Markdown document, and you can use block level HTML tags ("
    ", "" etc.). Note that by default Markdown isn't interpreted in HTML block-level elements, unless you add a "markdown=1"" attribute to the element. See Text::Markdown for details. This module implements the MultiMarkdown markdown syntax extensions from: http://fletcherpenney.net/multimarkdown/ SYNTAX For more information about (original) Markdown's syntax, see: http://daringfireball.net/projects/markdown/ This module implements MultiMarkdown, which is an extension to Markdown.. The extension is documented at: http://fletcherpenney.net/multimarkdown/ and borrows from php-markdown, which lives at: http://michelf.com/projects/php-markdown/extra/ This documentation is going to be moved/copied into this module for clearer reading in a future release.. OPTIONS MultiMarkdown supports a number of options to it's processor which control the behaviour of the output document. These options can be supplied to the constructor, on in a hash with the individual calls to the markdown method. See the synopsis for examples of both of the above styles. The options for the processor are: use_metadata Controls the metadata options below. strip_metadata If true, any metadata in the input document is removed from the output document (note - does not take effect in complete document format). empty element suffix This option can be used to generate normal HTML output. By default, it is ' />', which is xHTML, change to '>' for normal HTML. img_ids Controls if tags generated have an id attribute. Defaults to true. Turn off for compatibility with the original markdown. heading_ids Controls if tags generated have an id attribute. Defaults to true. Turn off for compatibility with the original markdown. bibliography_title The title of the generated bibliography, defaults to 'Bibliography'. tab_width Controls indent width in the generated markup, defaults to 4 disable_tables If true, this disables the MultiMarkdown table handling. disable_footnotes If true, this disables the MultiMarkdown footnotes handling. disable_bibliography If true, this disables the MultiMarkdown bibliography/citation handling. disable_definition_lists If true, this disables the MultiMarkdown definition list handling. A number of possible items of metadata can also be supplied as options. Note that if the use_metadata is true then the metadata in the document will overwrite the settings on command line. Metadata options supported are: document_format use_wikilinks base_url self_url - The document url is prepended to the "#" anchor of footnotes. METADATA MultiMarkdown supports the concept of 'metadata', which allows you to specify a number of formatting options within the document itself. Metadata should be placed in the top few lines of a file, on value per line as colon separated key/value pairs. The metadata should be separated from the document with a blank line. Most metadata keys are also supported as options to the constructor, or options to the markdown method itself. (Note, as metadata, keys contain space, whereas options the keys are underscore separated.) You can attach arbitrary metadata to a document, which is output in HTML tags if unknown, see t/11document_format.t for more info. A list of 'known' metadata keys, and their effects are listed below: document format If set to 'complete', MultiMarkdown will render an entire xHTML page, otherwise it will render a document fragment css Sets a CSS file for the file, if in 'complete' document format. title Sets the page title, if in 'complete' document format. use wikilinks If set to '1' or 'on', causes links that are WikiWords to automatically be processed into links. base url This is the base URL for referencing wiki pages. In this is not supplied, all wiki links are relative. METHODS new A simple constructor, see the SYNTAX and OPTIONS sections for more information. markdown The main function as far as the outside world is concerned. See the SYNOPSIS for details on use. BUGS To file bug reports or feature requests please send email to: bug-Text-Markdown@rt.cpan.org Please include with your report: (1) the example input; (2) the output you expected; (3) the output Markdown actually produced. VERSION HISTORY See the Changes file for detailed release notes for this version. AUTHOR John Gruber http://daringfireball.net/ PHP port and other contributions by Michel Fortin http://michelf.com/ MultiMarkdown changes by Fletcher Penney http://fletcher.freeshell.org/ CPAN Module Text::MultiMarkdown (based on Text::Markdown by Sebastian Riedel) originally by Darren Kulp (http://kulp.ch/) This module is maintained by: Tomas Doran http://www.bobtfish.net/ THIS DISTRIBUTION Please note that this distribution is a fork of Fletcher Penny's MultiMarkdown project, and it *is not* in any way blessed by him. Whilst this code aims to be compatible with the original MultiMarkdown (and incorporates and passes the MultiMarkdown test suite) whilst fixing a number of bugs in the original - there may be differences between the behaviour of this module and MultiMarkdown. If you find any differences where you believe Text::MultiMarkdown behaves contrary to the MultiMarkdown spec, please report them as bugs. SOURCE CODE You can find the source code repository for Text::Markdown and Text::MultiMarkdown on GitHub at . COPYRIGHT AND LICENSE Original Code Copyright (c) 2003-2004 John Gruber All rights reserved. MultiMarkdown changes Copyright (c) 2005-2006 Fletcher T. Penney All rights reserved. Text::MultiMarkdown changes Copyright (c) 2006-2009 Darren Kulp and Tomas Doran Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name "Markdown" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Text-MultiMarkdown-1.000035/PaxHeader/Readme.text000644 777777 000024 00000000172 12362521047 022221 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051332 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/Readme.text000644 €;Ðâp000024 00000026071 12362521047 021041 0ustar00tdoranstaff000000 000000 # WARNING This Readme is from the original version of Markdown; not all of the information contained herein is applicable to Test::Markdown the CPAN module that includes this file. See the module's POD and the README file for more information. Markdown ======== Version 1.0.1 - Tue 14 Dec 2004 by John Gruber Introduction ------------ Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML). Thus, "Markdown" is two things: a plain text markup syntax, and a software tool, written in Perl, that converts the plain text markup to HTML. Markdown works both as a Movable Type plug-in and as a standalone Perl script -- which means it can also be used as a text filter in BBEdit (or any other application that supporst filters written in Perl). Full documentation of Markdown's syntax and configuration options is available on the web: . (Note: this readme file is formatted in Markdown.) Installation and Requirements ----------------------------- Markdown requires Perl 5.6.0 or later. Welcome to the 21st Century. Markdown also requires the standard Perl library module `Digest::MD5`. ### Movable Type ### Markdown works with Movable Type version 2.6 or later (including MT 3.0 or later). 1. Copy the "Markdown.pl" file into your Movable Type "plugins" directory. The "plugins" directory should be in the same directory as "mt.cgi"; if the "plugins" directory doesn't already exist, use your FTP program to create it. Your installation should look like this: (mt home)/plugins/Markdown.pl 2. Once installed, Markdown will appear as an option in Movable Type's Text Formatting pop-up menu. This is selectable on a per-post basis. Markdown translates your posts to HTML when you publish; the posts themselves are stored in your MT database in Markdown format. 3. If you also install SmartyPants 1.5 (or later), Markdown will offer a second text formatting option: "Markdown with SmartyPants". This option is the same as the regular "Markdown" formatter, except that automatically uses SmartyPants to create typographically correct curly quotes, em-dashes, and ellipses. See the SmartyPants web page for more information: 4. To make Markdown (or "Markdown with SmartyPants") your default text formatting option for new posts, go to Weblog Config -> Preferences. Note that by default, Markdown produces XHTML output. To configure Markdown to produce HTML 4 output, see "Configuration", below. ### Blosxom ### Markdown works with Blosxom version 2.x. 1. Rename the "Markdown.pl" plug-in to "Markdown" (case is important). Movable Type requires plug-ins to have a ".pl" extension; Blosxom forbids it. 2. Copy the "Markdown" plug-in file to your Blosxom plug-ins folder. If you're not sure where your Blosxom plug-ins folder is, see the Blosxom documentation for information. 3. That's it. The entries in your weblog will now automatically be processed by Markdown. 4. If you'd like to apply Markdown formatting only to certain posts, rather than all of them, see Jason Clark's instructions for using Markdown in conjunction with Blosxom's Meta plugin: ### BBEdit ### Markdown works with BBEdit 6.1 or later on Mac OS X. (It also works with BBEdit 5.1 or later and MacPerl 5.6.1 on Mac OS 8.6 or later.) 1. Copy the "Markdown.pl" file to appropriate filters folder in your "BBEdit Support" folder. On Mac OS X, this should be: BBEdit Support/Unix Support/Unix Filters/ See the BBEdit documentation for more details on the location of these folders. You can rename "Markdown.pl" to whatever you wish. 2. That's it. To use Markdown, select some text in a BBEdit document, then choose Markdown from the Filters sub-menu in the "#!" menu, or the Filters floating palette Configuration ------------- By default, Markdown produces XHTML output for tags with empty elements. E.g.:
    Markdown can be configured to produce HTML-style tags; e.g.:
    ### Movable Type ### You need to use a special `MTMarkdownOptions` container tag in each Movable Type template where you want HTML 4-style output: ... put your entry content here ... The easiest way to use MTMarkdownOptions is probably to put the opening tag right after your `` tag, and the closing tag right before ``. To suppress Markdown processing in a particular template, i.e. to publish the raw Markdown-formatted text without translation into (X)HTML, set the `output` attribute to 'raw': ... put your entry content here ... ### Command-Line ### Use the `--html4tags` command-line switch to produce HTML output from a Unix-style command line. E.g.: % perl Markdown.pl --html4tags foo.text Type `perldoc Markdown.pl`, or read the POD documentation within the Markdown.pl source code for more information. Bugs ---- To file bug reports or feature requests please send email to: . Version History --------------- 1.0.1 (14 Dec 2004): + Changed the syntax rules for code blocks and spans. Previously, backslash escapes for special Markdown characters were processed everywhere other than within inline HTML tags. Now, the contents of code blocks and spans are no longer processed for backslash escapes. This means that code blocks and spans are now treated literally, with no special rules to worry about regarding backslashes. **NOTE**: This changes the syntax from all previous versions of Markdown. Code blocks and spans involving backslash characters will now generate different output than before. + Tweaked the rules for link definitions so that they must occur within three spaces of the left margin. Thus if you indent a link definition by four spaces or a tab, it will now be a code block. [a]: /url/ "Indented 3 spaces, this is a link def" [b]: /url/ "Indented 4 spaces, this is a code block" **IMPORTANT**: This may affect existing Markdown content if it contains link definitions indented by 4 or more spaces. + Added `>`, `+`, and `-` to the list of backslash-escapable characters. These should have been done when these characters were added as unordered list item markers. + Trailing spaces and tabs following HTML comments and `
    ` tags are now ignored. + Inline links using `<` and `>` URL delimiters weren't working: like [this]() + Added a bit of tolerance for trailing spaces and tabs after Markdown hr's. + Fixed bug where auto-links were being processed within code spans: like this: `` + Sort-of fixed a bug where lines in the middle of hard-wrapped paragraphs, which lines look like the start of a list item, would accidentally trigger the creation of a list. E.g. a paragraph that looked like this: I recommend upgrading to version 8. Oops, now this line is treated as a sub-list. This is fixed for top-level lists, but it can still happen for sub-lists. E.g., the following list item will not be parsed properly: + I recommend upgrading to version 8. Oops, now this line is treated as a sub-list. Given Markdown's list-creation rules, I'm not sure this can be fixed. + Standalone HTML comments are now handled; previously, they'd get wrapped in a spurious `

    ` tag. + Fix for horizontal rules preceded by 2 or 3 spaces. + `


    ` HTML tags in must occur within three spaces of left margin. (With 4 spaces or a tab, they should be code blocks, but weren't before this fix.) + Capitalized "With" in "Markdown With SmartyPants" for consistency with the same string label in SmartyPants.pl. (This fix is specific to the MT plug-in interface.) + Auto-linked email address can now optionally contain a 'mailto:' protocol. I.e. these are equivalent: + Fixed annoying bug where nested lists would wind up with spurious (and invalid) `

    ` tags. + You can now write empty links: [like this]() and they'll be turned into anchor tags with empty href attributes. This should have worked before, but didn't. + `***this***` and `___this___` are now turned into this Instead of this which isn't valid. (Thanks to Michel Fortin for the fix.) + Added a new substitution in `_EncodeCode()`: s/\$/$/g; This is only for the benefit of Blosxom users, because Blosxom (sometimes?) interpolates Perl scalars in your article bodies. + Fixed problem for links defined with urls that include parens, e.g.: [1]: http://sources.wikipedia.org/wiki/Middle_East_Policy_(Chomsky) "Chomsky" was being erroneously treated as the URL's title. + At some point during 1.0's beta cycle, I changed every sub's argument fetching from this idiom: my $text = shift; to: my $text = shift || return ''; The idea was to keep Markdown from doing any work in a sub if the input was empty. This introduced a bug, though: if the input to any function was the single-character string "0", it would also evaluate as false and return immediately. How silly. Now fixed. Donations --------- Donations to support Markdown's development are happily accepted. See: for details. Copyright and License --------------------- Copyright (c) 2003-2004 John Gruber All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name "Markdown" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. Text-MultiMarkdown-1.000035/PaxHeader/script000755 777777 000024 00000000172 12362552430 021350 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062224 18 SCHILY.nlink=3 Text-MultiMarkdown-1.000035/script/000755 €;Ðâp000024 00000000000 12362552430 020234 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/PaxHeader/t000755 777777 000024 00000000173 12362552430 020310 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062065 19 SCHILY.nlink=35 Text-MultiMarkdown-1.000035/t/000755 €;Ðâp000024 00000000000 12362552430 017173 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/PaxHeader/Todo000644 777777 000024 00000000172 12362521047 020746 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051333 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/Todo000644 €;Ðâp000024 00000004032 12362521047 017557 0ustar00tdoranstaff000000 000000 Todo pre 1.0.23: . Tests for $footnote =~ s/^glossary:\s*//i . Tests for $footnote_closing_tag . Add an option to Text::Markdown to have original brand markdown style emphasis within words support. . Re-merge Movable Type and Bloxom compatibility to the scripts, and add tests. . Need a dingus, write a small / demo app then ask the catalyst guys to host? . Re-write this Todo list. Todo pre 1.0.24: . Make Markdown.pl and MultiMarkdown.pl warn if unexpected options are used, and also have docs on what options are available. Expose the other module options in the scripts. . http://rt.cpan.org/Ticket/Display.html?id=33443 . More tests in t/15inlinehtmldoesnoturnoffmarkdown.t, I bet turning this feature on breaks things. . Document the markdown (and multimarkdown) syntaxes in the module properly. Todo pre 1.0.25: . Fix the list bug (see t/17ulolreportedonlist.t and Markdown mailing list) This probably involves the first draught of the new parser... . Text::Balanced is the slowest thing ever. The syntax guide looks like this: 49.4 0.569 0.568 113 0.0050 0.0050 Text::Balanced::_match_tagged 18.1 0.209 0.791 3 0.0696 0.2637 Text::MultiMarkdown::_HashHTMLBlocks Todo pre 1.0.26: . Have a look at extra features in http://code.google.com/p/python-markdown2/wiki/Extras and put anything we consider useful on the roadmap. . Integrate maruku (ruby port) test cases properly, and go looking for more. . Make a Text::Markdown::Extra with the Markdown extra features? Todo pre 1.1: . Either remove Text::MultiMarkdown::_FixFootnoteParagraphs or add tests to exercise it. Currently, removing it doesn't affect any test. . Build a parse tree when parsing (which can be returned), rather than just using strings. This would make the output format much more flexible, and would remove a load of nasty hacks which escape, then un-escape things again whist processing.. Text-MultiMarkdown-1.000035/t/PaxHeader/01use.t000644 777777 000024 00000000172 12362521047 021503 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051340 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/01use.t000644 €;Ðâp000024 00000000125 12362521047 020313 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 1; use_ok('Text::MultiMarkdown'); Text-MultiMarkdown-1.000035/t/PaxHeader/02pod.t000644 777777 000024 00000000172 12362521047 021472 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051341 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/02pod.t000644 €;Ðâp000024 00000000330 12362521047 020300 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; eval "use Test::Pod 1.14"; plan skip_all => 'Test::Pod 1.14 required' if $@; plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; all_pod_files_ok(); Text-MultiMarkdown-1.000035/t/PaxHeader/03podcoverage.t000644 777777 000024 00000000172 12362521047 023207 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051342 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/03podcoverage.t000644 €;Ðâp000024 00000000357 12362521047 022026 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; eval "use Test::Pod::Coverage 1.04"; plan skip_all => 'Test::Pod::Coverage 1.04 required' if $@; plan skip_all => 'set TEST_POD to enable this test' unless $ENV{TEST_POD}; all_pod_coverage_ok(); Text-MultiMarkdown-1.000035/t/PaxHeader/03podspelling.t000644 777777 000024 00000000172 12362521047 023231 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051343 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/03podspelling.t000644 €;Ðâp000024 00000001214 12362521047 022041 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; eval 'use Test::Spelling 0.11'; plan skip_all => 'Test::Spelling 0.11 not installed' if $@; plan skip_all => 'set TEST_SPELLING to enable this test' unless $ENV{TEST_SPELLING}; set_spell_cmd('aspell list'); add_stopwords(); all_pod_files_spelling_ok(); __DATA__ merchantability Doran FIXME Gruber Gruber's daringfireball Kulp METADATA Metadata MultiMarkdown WikiWords blockquotes metadata textMetaData url wiki wikilinks xHTML xhtmlMetaData lua haskell maruku javascript php reStructuredText Pandoc API MDTest preprocess urls STDIN STDOUT XHTML html shortversion quux GitHub Redistributions Gunnar Text-MultiMarkdown-1.000035/t/PaxHeader/04markdown.t000644 777777 000024 00000000172 12362521047 022534 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051344 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/04markdown.t000644 €;Ðâp000024 00000000521 12362521047 021344 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 3; use_ok( 'Text::MultiMarkdown', 'markdown' ); my $m = Text::MultiMarkdown->new; my $html1 = $m->markdown(<<"EOF"); Foo Bar EOF is( $html1, <<"EOF" );

    Foo

    Bar

    EOF my $html2 = $m->markdown(<<"EOF"); Foo Bar EOF is( $html2, <<"EOF" );

    Foo

    Bar

    EOF Text-MultiMarkdown-1.000035/t/PaxHeader/05options.t000644 777777 000024 00000000172 12362521047 022406 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051345 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/05options.t000644 €;Ðâp000024 00000000662 12362521047 021224 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 3; use_ok( 'Text::MultiMarkdown', 'markdown' ); my $m = Text::MultiMarkdown->new; my $html1 = $m->markdown(<<"EOF"); [test][] the link! EOF is( <<"EOF", $html1 );

    [test][] the link!

    EOF my $html2 = $m->markdown(<<"EOF", {urls => {test => 'http://example.com'}}); [test][] the link! EOF is( <<"EOF", $html2 );

    test the link!

    EOF Text-MultiMarkdown-1.000035/t/PaxHeader/06wiki.t000644 777777 000024 00000000172 12362521047 021657 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051346 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/06wiki.t000644 €;Ðâp000024 00000002712 12362521047 020473 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 9; use_ok( 'Text::MultiMarkdown', 'markdown' ); my $page = 'WikiWord'; # FIXME - test # . No wiki links in headers? # . No wiki links in code section # Normal (no wiki links) my $m = Text::MultiMarkdown->new; my $nohtmlwiki = $m->markdown($page); ok($nohtmlwiki !~ /markdown("use wikilinks: true\n\n" . $page)))[0] . "\n"; ok($htmlwiki =~ /markdown($page), $nohtmlwiki, 'use wikilinks does not toggle pref'); is($m->markdown($page, { use_wikilinks => 1 }) => $htmlwiki, 'use_wikilinks pref in ->markdown produces same out as metadata'); is($m->markdown($page, { use_wikilinks => 0 }) => $nohtmlwiki, 'use_wikilinks = 0 pref in ->markdown produces same out as no metadata'); $m = Text::MultiMarkdown->new(use_wikilinks => 1); is($m->markdown($page) => $htmlwiki, 'use wikiwords pref in constructor produces same out as metadata'); is($m->markdown($page, { use_wikilinks => 0 }) => $nohtmlwiki, 'not use wikilinks pref in markdown produces same out as no metadata when instance has wikilinks enabled'); is($m->markdown('\\' . $page) => $nohtmlwiki, 'Wiki word escaping works as expected');Text-MultiMarkdown-1.000035/t/PaxHeader/07fulldoc.t000644 777777 000024 00000000172 12362521047 022345 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051347 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/07fulldoc.t000644 €;Ðâp000024 00000010127 12362521047 021160 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 2; use_ok( 'Text::MultiMarkdown', 'markdown' ); my @data = ; my $markdown; my $expected; my $inout = 0; foreach my $l (@data) { if ($l =~ /^__END__/) { $inout++; next; } if ($inout) { $expected .= $l; next; } $markdown .= $l; } my $m = Text::MultiMarkdown->new; my $out = $m->markdown($markdown); #$out =~ s/ / /g; #$expected =~ s/ / /g; is($out, $expected, 'Output matches expected'); if ($out ne $expected) { eval { require Text::Diff; }; if (!$@) { print "=" x 80 . "\nDIFFERENCES:\n"; print Text::Diff::diff(\$expected => \$out,{ STYLE => "Unified" }); } else { warn("Install Text::Diff for more helpful failure message! ($@)"); } } __DATA__ # Heading 1 ## Heading 2 ### Heading 3 ### Other type of heading (level 2) ------------------------------- And another one (level 1) ========================= A paragraph, of *text*. * UL item 1 * UL item 2 Another paragraph \*Not bold text*. 1. OL, item 1 2. OL, item 2 A third paragraph * Second list, item 1 * Sub list item 1 * Sub list item 2 * Second list, item 2 Within a paragraph `code block`, followed by one which needs ``extra escapeing` `` © t0m. & note **ampersands** and > or < _are_ escaped __properly__ in output [testlink]: http://www.test.com/ "Test dot Com website" [testlink2]: http://www.test2.com/ This paragraph has [a link] [testlink] and [another link] [testlink2].. This is [an example](http://example.com/ "Title") inline link. [Google]: http://google.com/ Or, we could use . Or shortcut links like this: [Google][] > block quoted text > > in multiple paragraphs > and across multiple lines > > > and at >> multiple levels. This is a code block here... * * * ***** - - - un*fucking*believable - \*this text is surrounded by literal asterisks\*, but the text before that should be bold according to the docs, but isn't FIXME! ![Alt text](/path/to/img.jpg) ![Alt text2](/path/to/img2.jpg "Optional title") [img]: url/to/image "Optional title attribute" ![Alt text for ref mode][img] --------------------------------------- __END__

    Heading 1

    Heading 2

    Heading 3

    Other type of heading (level 2)

    And another one (level 1)

    A paragraph, of text.

    • UL item 1
    • UL item 2

    Another paragraph *Not bold text*.

    1. OL, item 1
    2. OL, item 2

    A third paragraph

    • Second list, item 1
      • Sub list item 1
      • Sub list item 2
    • Second list, item 2

    Within a paragraph code block, followed by one which needs extra escapeing` © t0m. & note ampersands and > or < are escaped properly in output

    This paragraph has a link and another link.. This is an example inline link.

    Or, we could use http://wuto-links.com/. Or shortcut links like this: Google

    block quoted text

    in multiple paragraphs and across multiple lines

    and at multiple levels.

    This is a code block here...
    



    un*fucking*believable - *this text is surrounded by literal asterisks*, but the text before that should be bold according to the docs, but isn't FIXME!

    Alt text

    Alt text2

    Alt text for ref mode


    Text-MultiMarkdown-1.000035/t/PaxHeader/08exporter.t000644 777777 000024 00000000172 12362521047 022566 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051348 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/08exporter.t000644 €;Ðâp000024 00000001264 12362521047 021403 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 5; use Test::Exception; use_ok( 'Text::MultiMarkdown', 'markdown' ); my $instr = q{A trivial block of text}; my $outstr = q{

    A trivial block of text

    }; lives_ok { $outstr = markdown($instr); } 'Functional markdown works without an exception'; chomp($outstr); is( $outstr => '

    ' . $instr . '

    ', 'exported markdown function works' ); { local $TODO = 'Broken here'; $outstr = ''; lives_ok { $outstr = Text::MultiMarkdown->markdown($instr); } 'Lives (class method)'; chomp($outstr); is($outstr, '

    ' . $instr . '

    ', 'Text::MultiMarkdown->markdown() works (as class method)'); }; Text-MultiMarkdown-1.000035/t/PaxHeader/09base_url.t000644 777777 000024 00000000172 12362521047 022513 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051349 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/09base_url.t000644 €;Ðâp000024 00000001753 12362521047 021333 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 4; use_ok( 'Text::MultiMarkdown'); my $instr = q{A trivial block of text with a WikiWord}; my $m = Text::MultiMarkdown->new( use_wikilinks => 1, ); my $outstr = qq{

    A trivial block of text with a WikiWord

    \n}; is( $m->markdown($instr) => $outstr, 'Markdown with wiki links, no base url' ); $m = Text::MultiMarkdown->new( use_wikilinks => 1, base_url => 'http://www.test.com/', ); $outstr = qq{

    A trivial block of text with a WikiWord

    \n}; is( $m->markdown($instr) => $outstr, 'Markdown with wiki links, with base url in instance' ); $m = Text::MultiMarkdown->new( use_wikilinks => 1, use_metadata => 1, ); $instr = qq{base url: http://www.test.com/\n\n} . $instr; $outstr = qq{base url: http://www.test.com/
    \n\n} . $outstr; is( $m->markdown($instr) => $outstr, 'Markdown with wiki links, with base url in metadata' ); Text-MultiMarkdown-1.000035/t/PaxHeader/10use_metadata.t000644 777777 000024 00000000172 12362521047 023343 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051350 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/10use_metadata.t000644 €;Ðâp000024 00000003245 12362521047 022161 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 7; #1 use_ok( 'Text::MultiMarkdown'); my $instr = qq{use wikilinks: on\nbase url: http://www.test.com/\n\nA trivial block of text with a WikiWord}; my $m = Text::MultiMarkdown->new( use_metadata => 1, ); my $expstr = qq{base url: http://www.test.com/
    \nuse wikilinks: on
    \n

    A trivial block of text with a WikiWord

    \n}; is( #2 $m->markdown($instr) => $expstr, 'Markdown with wiki links, and base url, metadata switched on in instance' ); $m = Text::MultiMarkdown->new( use_metadata => 0, ); my $expstr2 = qq{

    use wikilinks: on\nbase url: http://www.test.com/

    \n\n

    A trivial block of text with a WikiWord

    \n}; is( #3 $m->markdown($instr) => $expstr2, 'Markdown with wiki links, with base url in instance (no metadata)' ); is( #4 $m->markdown($instr, { use_metadata => 1 }) => $expstr, 'Markdown with wiki links, and base url, metadata switched on in options' ); is( #5 $m->markdown($instr) => $expstr2, 'Markdown with wiki links, with base url in instance (no metadata) - try 2 to ensure option to markdown does not frob setting' ); $m = Text::MultiMarkdown->new( use_metadata => 0, strip_metadata => 1, ); $expstr = qq{

    A trivial block of text with a WikiWord

    \n}; is( #6 $m->markdown($instr) => $expstr, 'Markdown with wiki links, with metadata off and stripped' ); $expstr = qq{

    A trivial block of text with a WikiWord

    \n}; is( #7 $m->markdown($instr, { use_metadata => 1 }) => $expstr, 'Markdown with wiki links, with metadata on but stripped' ); Text-MultiMarkdown-1.000035/t/PaxHeader/11docment_format.t000644 777777 000024 00000000172 12362521047 023711 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051351 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/11docment_format.t000644 €;Ðâp000024 00000002702 12362521047 022524 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 5; #1 use_ok( 'Text::MultiMarkdown'); my $instr = q{A trivial block of text}; my $m = Text::MultiMarkdown->new(); my $outstr = qq{

    A trivial block of text

    \n}; is( #2 $m->markdown($instr) => $outstr, 'Markdown' ); $m = Text::MultiMarkdown->new(); $outstr = qq{ \n\t\n\t\n\n

    A trivial block of text

    \n\n}; is( #3 $m->markdown($instr, {document_format => 'Complete'}) => $outstr, 'Markdown with complete xhtml doc' ); $instr = q{title: A page title css: somestyle.css other: some metadata A trivial block of text}; $outstr = qq{ \n\t\n\t\t \t\t \t\tA page title\n\t\n\n

    A trivial block of text

    \n\n}; is( #4 $m->markdown($instr, {document_format => 'complete'}) => $outstr, 'Markdown with complete xhtml doc (and metadata)' ); $outstr = qq{css: somestyle.css
    \nother: some metadata
    \ntitle: A page title
    \n

    A trivial block of text

    \n}; is( #5 $m->markdown($instr) => $outstr, 'Markdown withmetadata, but no complete doc' ); Text-MultiMarkdown-1.000035/t/PaxHeader/12empty_element_suffix.t000644 777777 000024 00000000172 12362521047 025144 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051352 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/12empty_element_suffix.t000644 €;Ðâp000024 00000001002 12362521047 023747 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 3; #1 use_ok( 'Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new(); my $instr = qq{some metadata: here\n\nSome text}; my $outstr = qq{some metadata: here
    \n\n

    Some text

    \n}; is( #2 $m->markdown($instr) => $outstr, 'Normal element suffix as expected' ); $outstr = qq{some metadata: here
    \n\n

    Some text

    \n}; is( #3 $m->markdown($instr, {empty_element_suffix => '>'}) => $outstr, 'HTML element suffix also as expected' ); Text-MultiMarkdown-1.000035/t/PaxHeader/13multimarkdown-nometadata-firstpara.t000644 777777 000024 00000000172 12362521047 027713 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051353 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/13multimarkdown-nometadata-firstpara.t000644 €;Ðâp000024 00000000553 12362521047 026530 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 2; use_ok( 'Text::MultiMarkdown', 'markdown' ); my $m = Text::MultiMarkdown->new; # A line of whitespace should cause metadata to be skipped.. my $html1 = $m->markdown(<<"EOF"); Simple block on one line:
    foo
    EOF is( $html1, <<"EOF" );

    Simple block on one line:

    foo
    EOF Text-MultiMarkdown-1.000035/t/PaxHeader/14unicode.t000644 777777 000024 00000000172 12362521047 022341 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051354 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/14unicode.t000644 €;Ðâp000024 00000000733 12362521047 021156 0ustar00tdoranstaff000000 000000 use utf8; use strict; use warnings; use Test::More tests => 3; # This also has a test case in the .mdtest directory. use_ok('Text::MultiMarkdown', 'markdown'); my $m = Text::MultiMarkdown->new; my $html1; $html1 = eval { $m->markdown(<<"EOF"); }; > Fo—o μοÏÎµÎ¿Ï‹ÎµÏ > ßåř EOF ok(!$@, "No exception from markdown ($@)"); is( $html1, <<"EOF" );

    Fo—o

    μοÏεοϋεÏ

    ßåř

    EOF Text-MultiMarkdown-1.000035/t/PaxHeader/16headingsinlists.t000644 777777 000024 00000000172 12362521047 024105 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051355 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/16headingsinlists.t000644 €;Ðâp000024 00000001231 12362521047 022714 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 3; use_ok('Text::MultiMarkdown', 'markdown'); my $m = Text::MultiMarkdown->new( heading_ids => 0 ); # This case works. my $html1 = $m->markdown(<<"EOF"); - # Heading 1 - ## Heading 2 EOF is( $html1, <<"EOF" );
    • Heading 1

    • Heading 2

    EOF # This case fails. my $html2 = $m->markdown(<<"EOF"); - # Heading 1 - ## Heading 2 EOF { local $TODO = 'Fails as lack of space between list elements means we only run span level tags, and headings are block level'; is( $html2, <<'EOF' );
    • Heading 1

    • Heading 2

    EOF }; Text-MultiMarkdown-1.000035/t/PaxHeader/17olulreportedonlist.t000644 777777 000024 00000000172 12362521047 024667 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051356 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/17olulreportedonlist.t000644 €;Ðâp000024 00000000570 12362521047 023503 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 2; use_ok('Text::MultiMarkdown', 'markdown'); my $m = Text::MultiMarkdown->new(); my $html1 = $m->markdown(<<"EOF"); - a - b 1. 1 2. 2 EOF { local $TODO = 'Does not work as expected in current Markdown, known bug.'; is( $html1, <<"EOF" );
    • a
    • b
    1. 1
    2. 2
    EOF };Text-MultiMarkdown-1.000035/t/PaxHeader/18codespanextra.t000644 777777 000024 00000000172 12362521047 023557 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051357 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/18codespanextra.t000644 €;Ðâp000024 00000001555 12362521047 022377 0ustar00tdoranstaff000000 000000 # Test a 'bug' reported by Nathan Waddell/J. Shirley from the #catalyst-dev community. # I don't think that this is a bug at all ;) use strict; use warnings; use Test::More tests => 4; use_ok('Text::MultiMarkdown', 'markdown'); my $m = Text::MultiMarkdown->new( use_metadata => 0, ); my $html1 = $m->markdown(<<'EOF'); `cpan Module::Install` `cpan Task::Catalyst` EOF is( $html1, <<'EOF' );

    cpan Module::Install cpan Task::Catalyst

    EOF my $html2 = $m->markdown(<<'EOF'); `cpan Module::Install` `cpan Task::Catalyst` EOF is( $html2, <<'EOF' );

    cpan Module::Install

    cpan Task::Catalyst

    EOF my $html3 = $m->markdown(<<'EOF'); `cpanp -i Module::Install` `cpanp -i Task::Catalyst` EOF is( $html3, <<'EOF' );

    cpanp -i Module::Install cpanp -i Task::Catalyst

    EOF Text-MultiMarkdown-1.000035/t/PaxHeader/20fulldocs-text-multimarkdown.t000644 777777 000024 00000000172 12362521047 026400 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051358 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/20fulldocs-text-multimarkdown.t000644 €;Ðâp000024 00000006251 12362521047 025216 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; use FindBin qw($Bin); use List::MoreUtils qw(uniq); use Encode; our $TIDY = 0; ### Generate difftest subroutine, pretty prints diffs if you have Text::Diff, use uses ### Test::More::is otherwise. eval { require Text::Diff; }; if (!$@) { *difftest = sub { my ($got, $expected, $testname) = @_; $got .= "\n"; $expected .= "\n"; if ($got eq $expected) { pass($testname); return; } print "=" x 80 . "\nDIFFERENCES: + = processed version from .text, - = template from .html\n"; print encode('utf8', Text::Diff::diff(\$expected => \$got, { STYLE => "Unified" }) . "\n"); fail($testname); }; } else { warn("Install Text::Diff for more helpful failure messages! ($@)"); *difftest = \&Test::More::is; } sub tidy { $TIDY = 1; eval "use HTML::Tidy; "; if ($@) { plan skip_all => 'This test needs HTML::Tidy installed to pass correctly, skipping'; exit; } } ### Actual code for this test - unless(caller) stops it ### being run when this file is required by other tests unless (caller) { my $docsdir = "$Bin/Text-MultiMarkdown.mdtest"; my @files = get_files($docsdir); plan tests => scalar(@files) + 2; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new( use_metadata => 1, ); { my $has_warned = 0; local $SIG{__WARN__} = sub { $has_warned++; warn(@_); }; run_tests($m, $docsdir, @files); is($has_warned, 0, 'No warnings expected'); }; } sub get_files { my ($docsdir) = @_; my $DH; opendir($DH, $docsdir) or die("Could not open $docsdir"); my @files = uniq map { s/\.(xhtml|html|text)$// ? $_ : (); } readdir($DH); closedir($DH); return @files; } sub slurp { my ($filename) = @_; open my $file, '<', $filename or die "Couldn't open $filename: $!"; local $/ = undef; return <$file>; } sub run_tests { my ($m, $docsdir, @files) = @_; foreach my $test (@files) { my ($input, $output); eval { if (-f "$docsdir/$test.html") { $output = slurp("$docsdir/$test.html"); } else { $output = slurp("$docsdir/$test.xhtml"); } $input = slurp("$docsdir/$test.text"); }; $input .= "\n\n"; $output .= "\n\n"; if ($@) { fail("1 part of test file not found: $@"); next; } $output =~ s/\s+\z//; # trim trailing whitespace my $processed = $m->markdown($input); $processed =~ s/\s+\z//; # trim trailing whitespace if ($TIDY) { local $SIG{__WARN__} = sub {}; my $t = HTML::Tidy->new; $output = $t->clean($output); $processed = $t->clean($processed); } # Un-comment for debugging if you have space diffs you can't see.. $output =~ s/ / /g; $output =~ s/\t/&tab;/g; $processed =~ s/ / /g; $processed =~ s/\t/&tab;/g; difftest($processed, $output, "Docs test: $test"); } } 1; Text-MultiMarkdown-1.000035/t/PaxHeader/22fulldocs-multimarkdown-todo.t000644 777777 000024 00000000172 12362521047 026363 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051359 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/22fulldocs-multimarkdown-todo.t000644 €;Ðâp000024 00000000606 12362521047 025177 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; use FindBin qw($Bin); require "$Bin/20fulldocs-text-multimarkdown.t"; my $docsdir = "$Bin/docs-multimarkdown-todo"; my @files = get_files($docsdir); plan tests => scalar(@files) + 1; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new(); { local $TODO = 'These tests are known broken'; run_tests($m, $docsdir, @files); }; Text-MultiMarkdown-1.000035/t/PaxHeader/23afulldocs-multimarkdown.t000644 777777 000024 00000000172 12362521047 025562 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051360 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/23afulldocs-multimarkdown.t000644 €;Ðâp000024 00000000520 12362521047 024371 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; use FindBin qw($Bin); require "$Bin/20fulldocs-text-multimarkdown.t"; tidy(); my $docsdir = "$Bin/MultiMarkdown.mdtest"; my @files = get_files($docsdir); plan tests => scalar(@files) + 1; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new(); run_tests($m, $docsdir, @files); Text-MultiMarkdown-1.000035/t/PaxHeader/24fulldocs-pythonmarkdown2-tm.t000644 777777 000024 00000000172 12362521047 026311 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051361 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/24fulldocs-pythonmarkdown2-tm.t000644 €;Ðâp000024 00000001203 12362521047 025117 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; use FindBin qw($Bin); require "$Bin/20fulldocs-text-multimarkdown.t"; my $docsdir = "$Bin/docs-pythonmarkdown2-tm-cases-pass"; my @files = get_files($docsdir); tidy(); plan tests => scalar(@files) + 1; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new( use_metadata => 0, heading_ids => 0, # Remove MultiMarkdown behavior change in tags. img_ids => 0, # Remove MultiMarkdown behavior change in tags. ); { local $TODO = 'Not many of the python markdown tests pass, but they ran off and did their own thing'; run_tests($m, $docsdir, @files); }; Text-MultiMarkdown-1.000035/t/PaxHeader/29fulldocs-maruku-unittest.t000644 777777 000024 00000000172 12362521047 025713 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051362 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/29fulldocs-maruku-unittest.t000644 €;Ðâp000024 00000001205 12362521047 024523 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More; use FindBin qw($Bin); require "$Bin/20fulldocs-text-multimarkdown.t"; my $docsdir = "$Bin/docs-maruku-unittest"; my @files = get_files($docsdir); tidy(); plan tests => scalar(@files) + 1; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new( use_metadata => 0, heading_ids => 0, # Remove MultiMarkdown behavior change in tags. img_ids => 0, # Remove MultiMarkdown behavior change in tags. ); { local $TODO = 'Ruby (maruku) tests, do not pass, but mostly due to spacing - pick them all up and go through them..'; run_tests($m, $docsdir, @files); }; Text-MultiMarkdown-1.000035/t/PaxHeader/30disable_multimarkdown_features.t000644 777777 000024 00000000172 12362521047 027167 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051363 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/30disable_multimarkdown_features.t000644 €;Ðâp000024 00000002345 12362521047 026005 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 4; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new( disable_tables => 1, disable_footnotes => 1, disable_bibliography => 1, ); my $instr = q{Here is some text containing a footnote.[^somesamplefootnote] [^somesamplefootnote]: Here is the text of the footnote itself}; my $expstr = q{

    Here is some text containing a footnote.[^somesamplefootnote]

    [^somesamplefootnote]: Here is the text of the footnote itself

    }; is($m->markdown($instr) => $expstr, 'disable_footnotes works as expected'); $instr = q{This is a borrowed idea[p. 23][#Doe:1996]. [#Doe:1996]: John Doe. *Some Book*. Blog Books, 1996. }; # NOTE expstr doesn't have the footnote, as that syntax is original markdown's link syntax, so # it is now resolved to a link $expstr = qq{

    This is a borrowed idea[p. 23][#Doe:1996].

    \n}; is($m->markdown($instr) => $expstr, 'disable_bibliography works as expected'); $instr = q{------------ | :-----------: | -----------: | Content | Long Cell || Content | Cell | Cell |}; $expstr = '

    ' . $instr . "

    \n"; is( $m->markdown($instr) => $expstr, 'disable_tables works as expected'); Text-MultiMarkdown-1.000035/t/PaxHeader/35commandlinemultimarkdown.t000644 777777 000024 00000000172 12362521047 026022 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051364 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/35commandlinemultimarkdown.t000644 €;Ðâp000024 00000001024 12362521047 024631 0ustar00tdoranstaff000000 000000 use strict; use warnings; use FindBin qw($Bin); use Test::More tests => 2; use Test::Exception; my $filename = "$Bin/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Syntax"; unshift(@ARGV, "$filename.text"); open my $file, '<', "$filename.xhtml" or die "Couldn't open $filename: $!"; my $expected = do {local $/ = undef; <$file>}; lives_ok { require "$Bin/../script/MultiMarkdown.pl"; } 'require MultiMarkdown.pl works'; my $out = main(); is($out, $expected, 'MultiMarkdown.pl does the right thing with the syntax guide'); Text-MultiMarkdown-1.000035/t/PaxHeader/36footnotes.t000644 777777 000024 00000000172 12362521047 022737 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051365 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/36footnotes.t000644 €;Ðâp000024 00000001147 12362521047 021554 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 2; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new( disable_footnotes => 0 ); my $instr = <This is buggy1.


    1. Use MYAPP_CONFIG_LOCAL_SUFFIX. ↩

    OUTPUT is($m->markdown($instr) => $expstr, 'underscores in code in footnotes'); Text-MultiMarkdown-1.000035/t/PaxHeader/37deflists.t000644 777777 000024 00000000172 12362521047 022535 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051366 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/37deflists.t000644 €;Ðâp000024 00000001263 12362521047 021351 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 2; use_ok('Text::MultiMarkdown'); my $m = Text::MultiMarkdown->new( disable_definition_lists => 0 ); my $instr = <
    Apple
    Pomaceous fruit of plants of the genus Malus in the family Rosaceae.
    An american computer company.
    Orange
    The fruit of an evergreen tree of the genus Citrus.
    OUTPUT is($m->markdown($instr) => $expstr, 'definition lists'); Text-MultiMarkdown-1.000035/t/PaxHeader/38self_url.t000644 777777 000024 00000000172 12362521047 022534 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051367 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/38self_url.t000644 €;Ðâp000024 00000001310 12362521047 021341 0ustar00tdoranstaff000000 000000 use strict; use warnings; use Test::More tests => 2; use_ok( 'Text::MultiMarkdown'); my $instr = <new( self_url => 'self_url.html', ); my $outstr = <A trivial block1 of text with footnote containing self_url.


    1. See http://example.com ↩

    TXT is( $m->markdown($instr) => $outstr, 'Markdown with self_url footnotes' ); Text-MultiMarkdown-1.000035/t/PaxHeader/docs-maruku-unittest000755 777777 000024 00000000174 12362552430 024420 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062066 20 SCHILY.nlink=121 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/000755 €;Ðâp000024 00000000000 12362552430 023302 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/PaxHeader/docs-multimarkdown-todo000755 777777 000024 00000000172 12362552430 025075 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062120 18 SCHILY.nlink=8 Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/000755 €;Ðâp000024 00000000000 12362552430 023761 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/PaxHeader/docs-pythonmarkdown2-tm-cases-pass000755 777777 000024 00000000173 12362552430 027062 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062075 19 SCHILY.nlink=98 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/000755 €;Ðâp000024 00000000000 12362552430 025745 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/PaxHeader/MultiMarkdown.mdtest000755 777777 000024 00000000173 12362552430 024404 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062122 19 SCHILY.nlink=22 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/000755 €;Ðâp000024 00000000000 12362552430 023267 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/PaxHeader/Text-MultiMarkdown.mdtest000755 777777 000024 00000000173 12362552430 025326 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062068 19 SCHILY.nlink=82 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/000755 €;Ðâp000024 00000000000 12362552430 024211 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Amps_and_angle_encoding.html000644 777777 000024 00000000172 12362521047 033023 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051390 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angle_encoding.html000644 €;Ðâp000024 00000001120 12362521047 031627 0ustar00tdoranstaff000000 000000

    AT&T has an ampersand in their name.

    AT&T is another way to write it.

    This & that.

    4 < 5.

    6 > 5.

    Here's a link with an ampersand in the URL.

    Here's a link with an amersand in the link text: AT&T.

    Here's an inline link.

    Here's an inline link.

    But this <<is>>.
    

    As is << this>>/.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Amps_and_angle_encoding.text000644 777777 000024 00000000172 12362521047 033043 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051391 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angle_encoding.text000644 €;Ðâp000024 00000000644 12362521047 031661 0ustar00tdoranstaff000000 000000 AT&T has an ampersand in their name. AT&T is another way to write it. This & that. 4 < 5. 6 > 5. Here's a [link] [1] with an ampersand in the URL. Here's a link with an amersand in the link text: [AT&T] [2]. Here's an inline [link](/script?foo=1&bar=2). Here's an inline [link](). [1]: http://example.com/?foo=1&bar=2 [2]: http://att.com/ "AT&T" But this <>. As is << this>>/. t/Text-MultiMarkdown.mdtest/PaxHeader/Amps_and_angles_encoding-advanced.text000644 777777 000024 00000000172 12362521047 034712 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051392 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angles_encoding-advanced.text000644 €;Ðâp000024 00000000317 12362521047 033604 0ustar00tdoranstaff000000 000000 Test bare block & < > Test

    Test HTML block & < > Test

    A larger bare block footer t/Text-MultiMarkdown.mdtest/PaxHeader/Amps_and_angles_encoding-advanced.xhtml000644 777777 000024 00000000172 12362521047 035062 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051393 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Amps_and_angles_encoding-advanced.xhtml000644 €;Ðâp000024 00000000353 12362521047 033754 0ustar00tdoranstaff000000 000000

    Test bare block & < > Test

    Test HTML block & < > Test

    A larger bare block

    footer

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Auto_links.text000644 777777 000024 00000000172 12362521047 030415 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051394 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Auto_links.text000644 €;Ðâp000024 00000000410 12362521047 027222 0ustar00tdoranstaff000000 000000 Link: . With an ampersand: * In a list? * * It should. > Blockquoted: Auto-links should not occur here: `` or here: Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Auto_links.xhtml000644 777777 000024 00000000172 12362521047 030565 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051395 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Auto_links.xhtml000644 €;Ðâp000024 00000001042 12362521047 027374 0ustar00tdoranstaff000000 000000

    Link: http://example.com/.

    With an ampersand: http://example.com/?foo=1&bar=2

    Blockquoted: http://example.com/

    Auto-links should not occur here: <http://example.com/>

    or here: <http://example.com/>
    
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Backslash_escapes.html000644 777777 000024 00000000172 12362521047 031663 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051396 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Backslash_escapes.html000644 €;Ðâp000024 00000002426 12362521047 030501 0ustar00tdoranstaff000000 000000

    These should all get escaped:

    Backslash: \

    Backtick: `

    Asterisk: *

    Underscore: _

    Left brace: {

    Right brace: }

    Left bracket: [

    Right bracket: ]

    Left paren: (

    Right paren: )

    Greater-than: >

    Hash: #

    Period: .

    Bang: !

    Plus: +

    Minus: -

    These should not, because they occur within a code block:

    Backslash: \\
    
    Backtick: \`
    
    Asterisk: \*
    
    Underscore: \_
    
    Left brace: \{
    
    Right brace: \}
    
    Left bracket: \[
    
    Right bracket: \]
    
    Left paren: \(
    
    Right paren: \)
    
    Greater-than: \>
    
    Hash: \#
    
    Period: \.
    
    Bang: \!
    
    Plus: \+
    
    Minus: \-
    

    Nor should these, which occur in code spans:

    Backslash: \\

    Backtick: \`

    Asterisk: \*

    Underscore: \_

    Left brace: \{

    Right brace: \}

    Left bracket: \[

    Right bracket: \]

    Left paren: \(

    Right paren: \)

    Greater-than: \>

    Hash: \#

    Period: \.

    Bang: \!

    Plus: \+

    Minus: \-

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Backslash_escapes.text000644 777777 000024 00000000172 12362521047 031703 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051397 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Backslash_escapes.text000644 €;Ðâp000024 00000001572 12362521047 030522 0ustar00tdoranstaff000000 000000 These should all get escaped: Backslash: \\ Backtick: \` Asterisk: \* Underscore: \_ Left brace: \{ Right brace: \} Left bracket: \[ Right bracket: \] Left paren: \( Right paren: \) Greater-than: \> Hash: \# Period: \. Bang: \! Plus: \+ Minus: \- These should not, because they occur within a code block: Backslash: \\ Backtick: \` Asterisk: \* Underscore: \_ Left brace: \{ Right brace: \} Left bracket: \[ Right bracket: \] Left paren: \( Right paren: \) Greater-than: \> Hash: \# Period: \. Bang: \! Plus: \+ Minus: \- Nor should these, which occur in code spans: Backslash: `\\` Backtick: `` \` `` Asterisk: `\*` Underscore: `\_` Left brace: `\{` Right brace: `\}` Left bracket: `\[` Right bracket: `\]` Left paren: `\(` Right paren: `\)` Greater-than: `\>` Hash: `\#` Period: `\.` Bang: `\!` Plus: `\+` Minus: `\-` Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Blockquotes_with_code_blocks.html000644 777777 000024 00000000172 12362521047 034142 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051398 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Blockquotes_with_code_blocks.html000644 €;Ðâp000024 00000000272 12362521047 032755 0ustar00tdoranstaff000000 000000

    Example:

    sub status {
        print "working";
    }
    

    Or:

    sub status {
        return "working";
    }
    
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Blockquotes_with_code_blocks.text000644 777777 000024 00000000172 12362521047 034162 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051399 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Blockquotes_with_code_blocks.text000644 €;Ðâp000024 00000000207 12362521047 032773 0ustar00tdoranstaff000000 000000 > Example: > > sub status { > print "working"; > } > > Or: > > sub status { > return "working"; > } Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Citations.text000644 777777 000024 00000000172 12362521047 030242 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051400 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Citations.text000644 €;Ðâp000024 00000001461 12362521047 027056 0ustar00tdoranstaff000000 000000 Handle MultiMarkdown-style citations. This is a borrowed idea[p. 23][#Doe:1996]. > This is a cited blockquote without a page reference.[][#Smith:2005]. And a plain paragraph. And a code block that is not a citation: This is not a citation[p. 5][#Doe:1996]. And a work by Johnson that is not cited, but should be included in bibliography: [Not cited][#Johnson:1996] And multiple citations.[p. 3][#Doe:1996][p. 10][#Smith:2005] How about a citation within a footnote? [^footcite] [#Smith:2005]: James Smith. Some interesting paper. *Some Journal*, 1(2): 101-123, 2005. [#Doe:1996]: John Doe. *Some Book*. Blog Books, 1996. [#Johnson:1996]: Bill Johnson. *Some Book*. Blog Books, 1996. [#James:1996]: John James. *Some Book*. Blog Books, 1996. [^footcite]: As described previously. [p. 12][#Smith:2005]Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Citations.xhtml000644 777777 000024 00000000172 12362521047 030412 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051401 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Citations.xhtml000644 €;Ðâp000024 00000003232 12362521047 027224 0ustar00tdoranstaff000000 000000

    Handle MultiMarkdown-style citations.

    This is a borrowed idea (1, p. 23).

    This is a cited blockquote without a page reference. (2).

    And a plain paragraph.

    And a code block that is not a citation:

    This is not a citation[p. 5][#Doe:1996].
    

    And a work by Johnson that is not cited, but should be included in bibliography:

    And multiple citations. (1, p. 3) (2, p. 10)

    How about a citation within a footnote? 1


    1. As described previously. (2, p. 12) ↩


    Bibliography

    [1] John Doe. Some Book. Blog Books, 1996.

    [2] James Smith. Some interesting paper. Some Journal, 1(2): 101-123, 2005.

    [3] Bill Johnson. Some Book. Blog Books, 1996.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/complex_escaping.text000644 777777 000024 00000000172 12362521047 031625 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051468 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/complex_escaping.text000644 €;Ðâp000024 00000000074 12362521047 030440 0ustar00tdoranstaff000000 000000 What do you see here? `\\` it should be two backslashes. Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/complex_escaping.xhtml000644 777777 000024 00000000172 12362521047 031775 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051469 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/complex_escaping.xhtml000644 €;Ðâp000024 00000000114 12362521047 030603 0ustar00tdoranstaff000000 000000

    What do you see here? \\ it should be two backslashes.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Cross-References.text000644 777777 000024 00000000172 12362521047 031455 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051402 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Cross-References.text000644 €;Ðâp000024 00000000240 12362521047 030263 0ustar00tdoranstaff000000 000000 # Special Cross Reference Cases # ## Cross-References: Special Characters!@#$%^&*()<> ## And now, link to [Cross-References: Special Characters!@#$%^&*()<>][]Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Cross-References.xhtml000644 777777 000024 00000000172 12362521047 031625 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051403 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Cross-References.xhtml000644 €;Ðâp000024 00000000564 12362521047 030444 0ustar00tdoranstaff000000 000000

    Special Cross Reference Cases

    Cross-References: Special Characters!@#$%^&*()<>

    And now, link to Cross-References: Special Characters!@#$%^&*()<>

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Emphasis.text000644 777777 000024 00000000172 12362521047 030056 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051404 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Emphasis.text000644 €;Ðâp000024 00000000262 12362521047 026670 0ustar00tdoranstaff000000 000000 _M*A*S*H_ here I am going with original Markdown.. foo_bar_bas I am going with PHP Markdown Extra here (by default, there is an option for original style behavior - see docs).. Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Emphasis.xhtml000644 777777 000024 00000000172 12362521047 030226 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051405 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Emphasis.xhtml000644 €;Ðâp000024 00000000307 12362521047 027040 0ustar00tdoranstaff000000 000000

    M*A*S*H here I am going with original Markdown..

    foo_bar_bas I am going with PHP Markdown Extra here (by default, there is an option for original style behavior - see docs)..

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Footnotes.text000644 777777 000024 00000000172 12362521047 030265 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051406 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Footnotes.text000644 €;Ðâp000024 00000001062 12362521047 027076 0ustar00tdoranstaff000000 000000 Here is some text containing a footnote.[^somesamplefootnote] > And here is a footnote within a blockquote, should be labelled #2.[^secondnote] And this is a codeblock, that should not be a footnote: This is code.[^somesamplefootnote] And this is a short footnote for testing.[^shortnote] Test footnote, with a 2nd link part.[^1][]. [^somesamplefootnote]: Here is the text of the footnote itself. It also has a [link][somesamplefootnote]. [somesamplefootnote]:http://somelink.com [^secondnote]: Note # 2. [^shortnote]: Finis [^1]: This is a footnote. Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Footnotes.xhtml000644 777777 000024 00000000172 12362521047 030435 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051407 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Footnotes.xhtml000644 €;Ðâp000024 00000002335 12362521047 027252 0ustar00tdoranstaff000000 000000

    Here is some text containing a footnote.1

    And here is a footnote within a blockquote, should be labelled #2.2

    And this is a codeblock, that should not be a footnote:

    This is code.[^somesamplefootnote]
    

    And this is a short footnote for testing.3

    Test footnote, with a 2nd link part.4[].


    1. Here is the text of the footnote itself. It also has a link. ↩

    2. Note # 2. ↩

    3. Finis ↩

    4. This is a footnote. ↩

    t/Text-MultiMarkdown.mdtest/PaxHeader/Hard-wrapped_paragraphs_with_list-like_lines.text000644 777777 000024 00000000172 12362521047 037156 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051410 18 SCHILY.nlink=2 t/Text-MultiMarkdown.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.text000644 €;Ðâp000024 00000000305 12362521047 035766 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item. Here's one with a bullet. * criminey. t/Text-MultiMarkdown.mdtest/PaxHeader/Hard-wrapped_paragraphs_with_list-like_lines.xhtml000644 777777 000024 00000000172 12362521047 037326 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051411 18 SCHILY.nlink=2 t/Text-MultiMarkdown.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtml000644 €;Ðâp000024 00000000323 12362521047 036136 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035

    In Markdown 1.0.0 and earlier. Version 8. This line turns into a list item. Because a hard-wrapped line in the middle of a paragraph looked like a list item.

    Here's one with a bullet. * criminey.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Horizontal_rules.text000644 777777 000024 00000000172 12362521047 031650 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051412 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Horizontal_rules.text000644 €;Ðâp000024 00000000417 12362521047 030464 0ustar00tdoranstaff000000 000000 Dashes: --- --- --- --- --- - - - - - - - - - - - - - - - Asterisks: *** *** *** *** *** * * * * * * * * * * * * * * * Underscores: ___ ___ ___ ___ ___ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Horizontal_rules.xhtml000644 777777 000024 00000000172 12362521047 032020 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051413 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Horizontal_rules.xhtml000644 €;Ðâp000024 00000000661 12362521047 030635 0ustar00tdoranstaff000000 000000

    Dashes:





    ---
    




    - - -
    

    Asterisks:





    ***
    




    * * *
    

    Underscores:





    ___
    




    _ _ _
    
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/HTML-Comment-encoding.text000644 777777 000024 00000000172 12362521047 032235 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051408 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/HTML-Comment-encoding.text000644 €;Ðâp000024 00000000427 12362521047 031052 0ustar00tdoranstaff000000 000000 A markdown paragraph with a comment that *will* be processed by original Markdown. However MultiMarkdown and Pandoc do not convert the & sigil in the comment.. A paragraph

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/HTML-Comment-encoding.xhtml000644 777777 000024 00000000172 12362521047 032405 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051409 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/HTML-Comment-encoding.xhtml000644 €;Ðâp000024 00000000460 12362521047 031217 0ustar00tdoranstaff000000 000000

    A markdown paragraph with a comment that will be processed by original Markdown. However MultiMarkdown and Pandoc do not convert the & sigil in the comment..

    A paragraph

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Images.text000644 777777 000024 00000000172 12362521047 027512 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051414 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Images.text000644 €;Ðâp000024 00000000646 12362521047 026332 0ustar00tdoranstaff000000 000000 This is a test of image features. And now a link to the first [image][], and the [second][another image]. Here is an image: ![image][] And another: ![another image][another] And now a link to the first [image][], and the [second][another image]. [image]: http://some.source.com/image.jpg "Image Title" width=500px height=50px [another]: http://some.source.com/image.jpg "Another Title" width="500px" height="50px" Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Images.xhtml000644 777777 000024 00000000172 12362521047 027662 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051415 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Images.xhtml000644 €;Ðâp000024 00000001235 12362521047 026475 0ustar00tdoranstaff000000 000000

    This is a test of image features.

    And now a link to the first image, and the second.

    Here is an image:

    image

    And another:

    another image

    And now a link to the first image, and the second.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Advanced).text000644 777777 000024 00000000172 12362521047 032255 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051416 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Advanced).text000644 €;Ðâp000024 00000000207 12362521047 031066 0ustar00tdoranstaff000000 000000 Simple block on one line:
    foo
    And nested without indentation:
    foo
    bar
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Advanced).xhtml000644 777777 000024 00000000172 12362521047 032425 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051417 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Advanced).xhtml000644 €;Ðâp000024 00000000224 12362521047 031235 0ustar00tdoranstaff000000 000000

    Simple block on one line:

    foo

    And nested without indentation:

    foo
    bar
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Simple).text000644 777777 000024 00000000172 12362521047 032001 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051418 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Simple).text000644 €;Ðâp000024 00000001051 12362521047 030610 0ustar00tdoranstaff000000 000000 Here's a simple block:
    foo
    This should be a code block, though:
    foo
    As should this:
    foo
    Now, nested:
    foo
    This should just be an HTML comment: Multiline: Code block: Just plain comment, with trailing spaces on the line: Code:
    Hr's:








    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Simple).xhtml000644 777777 000024 00000000172 12362521047 032151 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051419 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_(Simple).xhtml000644 €;Ðâp000024 00000001420 12362521047 030760 0ustar00tdoranstaff000000 000000

    Here's a simple block:

    foo

    This should be a code block, though:

    <div>
        foo
    </div>
    

    As should this:

    <div>foo</div>
    

    Now, nested:

    foo

    This should just be an HTML comment:

    Multiline:

    Code block:

    <!-- Comment -->
    

    Just plain comment, with trailing spaces on the line:

    Code:

    <hr />
    

    Hr's:










    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Inline_HTML_comments.text000644 777777 000024 00000000172 12362521047 032254 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051420 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_comments.text000644 €;Ðâp000024 00000000244 12362521047 031066 0ustar00tdoranstaff000000 000000 Paragraph one. Paragraph two. The end. Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Inline_HTML_comments.xhtml000644 777777 000024 00000000172 12362521047 032424 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051421 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Inline_HTML_comments.xhtml000644 €;Ðâp000024 00000000274 12362521047 031241 0ustar00tdoranstaff000000 000000

    Paragraph one.

    Paragraph two.

    The end.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Link_Attributes.text000644 777777 000024 00000000172 12362521047 031410 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051422 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Link_Attributes.text000644 €;Ðâp000024 00000000375 12362521047 030227 0ustar00tdoranstaff000000 000000 This is a formatted ![image][] and a [link][] with attributes. [image]: http://path.to/image "Image title" width=40px height=400px Some non-link text. [link]: http://path.to/link.html "Some Link" class=external style="border: solid black 1px;" Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Link_Attributes.xhtml000644 777777 000024 00000000172 12362521047 031560 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051423 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Link_Attributes.xhtml000644 €;Ðâp000024 00000000450 12362521047 030371 0ustar00tdoranstaff000000 000000

    This is a formatted image and a link with attributes.

    Some non-link text.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_brackets.text000644 777777 000024 00000000172 12362521047 031243 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051424 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_brackets.text000644 €;Ðâp000024 00000000167 12362521047 030061 0ustar00tdoranstaff000000 000000 [ZIP archives](http://en.wikipedia.org/wiki/ZIP_(file_format) "ZIP (file format) - Wikipedia, the free encyclopedia") Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_brackets.xhtml000644 777777 000024 00000000172 12362521047 031413 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051425 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_brackets.xhtml000644 €;Ðâp000024 00000000216 12362521047 030224 0ustar00tdoranstaff000000 000000

    ZIP archives

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_inline_style.text000644 777777 000024 00000000172 12362521047 032143 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051426 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_inline_style.text000644 €;Ðâp000024 00000000256 12362521047 030760 0ustar00tdoranstaff000000 000000 Just a [URL](/url/). [URL and title](/url/ "title"). [URL and title](/url/ "title preceded by two spaces"). [URL and title](/url/ "title preceded by a tab"). [Empty](). Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_inline_style.xhtml000644 777777 000024 00000000172 12362521047 032313 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051427 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_inline_style.xhtml000644 €;Ðâp000024 00000000431 12362521047 031123 0ustar00tdoranstaff000000 000000

    Just a URL.

    URL and title.

    URL and title.

    URL and title.

    Empty.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_multiline_bugs_1.html000644 777777 000024 00000000172 12362521047 032667 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051428 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_1.html000644 €;Ðâp000024 00000000174 12362521047 031503 0ustar00tdoranstaff000000 000000

    http://bugs.debian.org/459885

    link text

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_multiline_bugs_1.text000644 777777 000024 00000000172 12362521047 032707 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051429 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_1.text000644 €;Ðâp000024 00000000116 12362521047 031517 0ustar00tdoranstaff000000 000000 [link text] [link id] [link id]: /someurl/ Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_multiline_bugs_2.html000644 777777 000024 00000000172 12362521047 032670 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051430 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_2.html000644 €;Ðâp000024 00000000314 12362521047 031500 0ustar00tdoranstaff000000 000000

    http://bugs.debian.org/459885

    Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla bla. This is my
    University
    .

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_multiline_bugs_2.text000644 777777 000024 00000000172 12362521047 032710 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051431 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_multiline_bugs_2.text000644 €;Ðâp000024 00000000231 12362521047 031516 0ustar00tdoranstaff000000 000000 Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla bla. This is [my University][]. [my university]: http://www.ua.es Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_reference_style.text000644 777777 000024 00000000172 12362521047 032623 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051432 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_reference_style.text000644 €;Ðâp000024 00000001125 12362521047 031434 0ustar00tdoranstaff000000 000000 Foo [bar] [1]. Foo [bar][1]. Foo [bar] [1]. [1]: /url/ "Title" With [embedded [brackets]] [b]. Indented [once][]. Indented [twice][]. Indented [thrice][]. Indented [four][] times. [once]: /url [twice]: /url [thrice]: /url [four]: /url [b]: /url/ More multi line edge cases. First a broken link id [link text] [link id] [link id]: /someurl/ Then a line with 2 chars of trailing whitespace and a line break [my University][]. The a shortcut reference link with 2 chars of trailing whitespace and a line break [my University]. [my university]: http://www.ua.esText-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Links_reference_style.xhtml000644 777777 000024 00000000172 12362521047 032773 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051433 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Links_reference_style.xhtml000644 €;Ðâp000024 00000001413 12362521047 031604 0ustar00tdoranstaff000000 000000

    Foo bar.

    Foo bar.

    Foo bar.

    With embedded [brackets].

    Indented once.

    Indented twice.

    Indented thrice.

    Indented [four][] times.

    [four]: /url
    

    More multi line edge cases. First a broken link id

    link text

    Then a line with 2 chars of trailing whitespace and a line break my
    University
    .

    The a shortcut reference link with 2 chars of trailing whitespace and a line break my
    University
    .

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Lists-multilevel-md5-edgecase.text000644 777777 000024 00000000172 12362521047 034004 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051434 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists-multilevel-md5-edgecase.text000644 €;Ðâp000024 00000000222 12362521047 032612 0ustar00tdoranstaff000000 000000 # text1 * text2 * text3 text4 ## text5 * text6 * text7 text8 ## text9 * text10 * text11 text12 text13 t/Text-MultiMarkdown.mdtest/PaxHeader/Lists-multilevel-md5-edgecase.xhtml000644 777777 000024 00000000172 12362521047 034075 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051435 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists-multilevel-md5-edgecase.xhtml000644 €;Ðâp000024 00000000503 12362521047 032764 0ustar00tdoranstaff000000 000000

    text1

    • text2

      • text3

      text4

    text5

    • text6

      • text7

      text8

    text9

    • text10

      • text11

      text12

      text13

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Lists.text000644 777777 000024 00000000172 12362521047 027403 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051436 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists.text000644 €;Ðâp000024 00000000215 12362521047 026213 0ustar00tdoranstaff000000 000000 Introduction. 1. item with multiple paragraphs 1. Sublist 2. Item And a continuation of first item in main list. 2. second item.Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Lists.xhtml000644 777777 000024 00000000172 12362521047 027553 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051437 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Lists.xhtml000644 €;Ðâp000024 00000000344 12362521047 026366 0ustar00tdoranstaff000000 000000

    Introduction.

    1. item with multiple

      paragraphs

      1. Sublist

      2. Item

      And a continuation of first item in main list.

    2. second item.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Literal_quotes_in_titles.text000644 777777 000024 00000000172 12362521047 033353 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051438 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Literal_quotes_in_titles.text000644 €;Ðâp000024 00000000154 12362521047 032165 0ustar00tdoranstaff000000 000000 Foo [bar][]. Foo [bar](/url/ "Title with "quotes" inside"). [bar]: /url/ "Title with "quotes" inside" Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Literal_quotes_in_titles.xhtml000644 777777 000024 00000000172 12362521047 033523 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051439 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Literal_quotes_in_titles.xhtml000644 €;Ðâp000024 00000000243 12362521047 032334 0ustar00tdoranstaff000000 000000

    Foo bar.

    Foo bar.

    t/Text-MultiMarkdown.mdtest/PaxHeader/Markdown_Documentation_-_Basics.text000644 777777 000024 00000000172 12362521047 034401 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051440 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Basics.text000644 €;Ðâp000024 00000017601 12362521047 033277 0ustar00tdoranstaff000000 000000 Markdown: Basics ================ Getting the Gist of Markdown's Formatting Syntax ------------------------------------------------ This page offers a brief overview of what it's like to use Markdown. The [syntax page] [s] provides complete, detailed documentation for every feature, but Markdown should be very easy to pick up simply by looking at a few examples of it in action. The examples on this page are written in a before/after style, showing example syntax and the HTML output produced by Markdown. It's also helpful to simply try Markdown out; the [Dingus] [d] is a web application that allows you type your own Markdown-formatted text and translate it to XHTML. **Note:** This document is itself written using Markdown; you can [see the source for it by adding '.text' to the URL] [src]. [s]: /projects/markdown/syntax "Markdown Syntax" [d]: /projects/markdown/dingus "Markdown Dingus" [src]: /projects/markdown/basics.text ## Paragraphs, Headers, Blockquotes ## A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. (A blank line is any line that looks like a blank line -- a line containing nothing spaces or tabs is considered blank.) Normal paragraphs should not be intended with spaces or tabs. Markdown offers two styles of headers: *Setext* and *atx*. Setext-style headers for `

    ` and `

    ` are created by "underlining" with equal signs (`=`) and hyphens (`-`), respectively. To create an atx-style header, you put 1-6 hash marks (`#`) at the beginning of the line -- the number of hashes equals the resulting HTML header level. Blockquotes are indicated using email-style '`>`' angle brackets. Markdown: A First Level Header ==================== A Second Level Header --------------------- Now is the time for all good men to come to the aid of their country. This is just a regular paragraph. The quick brown fox jumped over the lazy dog's back. ### Header 3 > This is a blockquote. > > This is the second paragraph in the blockquote. > > ## This is an H2 in a blockquote Output:

    A First Level Header

    A Second Level Header

    Now is the time for all good men to come to the aid of their country. This is just a regular paragraph.

    The quick brown fox jumped over the lazy dog's back.

    Header 3

    This is a blockquote.

    This is the second paragraph in the blockquote.

    This is an H2 in a blockquote

    ### Phrase Emphasis ### Markdown uses asterisks and underscores to indicate spans of emphasis. Markdown: Some of these words *are emphasized*. Some of these words _are emphasized also_. Use two asterisks for **strong emphasis**. Or, if you prefer, __use two underscores instead__. Output:

    Some of these words are emphasized. Some of these words are emphasized also.

    Use two asterisks for strong emphasis. Or, if you prefer, use two underscores instead.

    ## Lists ## Unordered (bulleted) lists use asterisks, pluses, and hyphens (`*`, `+`, and `-`) as list markers. These three markers are interchangable; this: * Candy. * Gum. * Booze. this: + Candy. + Gum. + Booze. and this: - Candy. - Gum. - Booze. all produce the same output:
    • Candy.
    • Gum.
    • Booze.
    Ordered (numbered) lists use regular numbers, followed by periods, as list markers: 1. Red 2. Green 3. Blue Output:
    1. Red
    2. Green
    3. Blue
    If you put blank lines between items, you'll get `

    ` tags for the list item text. You can create multi-paragraph list items by indenting the paragraphs by 4 spaces or 1 tab: * A list item. With multiple paragraphs. * Another item in the list. Output:

    • A list item.

      With multiple paragraphs.

    • Another item in the list.

    ### Links ### Markdown supports two styles for creating links: *inline* and *reference*. With both styles, you use square brackets to delimit the text you want to turn into a link. Inline-style links use parentheses immediately after the link text. For example: This is an [example link](http://example.com/). Output:

    This is an example link.

    Optionally, you may include a title attribute in the parentheses: This is an [example link](http://example.com/ "With a Title"). Output:

    This is an example link.

    Reference-style links allow you to refer to your links by names, which you define elsewhere in your document: I get 10 times more traffic from [Google][1] than from [Yahoo][2] or [MSN][3]. [1]: http://google.com/ "Google" [2]: http://search.yahoo.com/ "Yahoo Search" [3]: http://search.msn.com/ "MSN Search" Output:

    I get 10 times more traffic from Google than from Yahoo or MSN.

    The title attribute is optional. Link names may contain letters, numbers and spaces, but are *not* case sensitive: I start my morning with a cup of coffee and [The New York Times][NY Times]. [ny times]: http://www.nytimes.com/ Output:

    I start my morning with a cup of coffee and The New York Times.

    ### Images ### Image syntax is very much like link syntax. Inline (titles are optional): ![alt text](/path/to/img.jpg "Title") Reference-style: ![alt text][id] [id]: /path/to/img.jpg "Title" Both of the above examples produce the same output: alt text ### Code ### In a regular paragraph, you can create code span by wrapping text in backtick quotes. Any ampersands (`&`) and angle brackets (`<` or `>`) will automatically be translated into HTML entities. This makes it easy to use Markdown to write about HTML example code: I strongly recommend against using any `` tags. I wish SmartyPants used named entities like `—` instead of decimal-encoded entites like `—`. Output:

    I strongly recommend against using any <blink> tags.

    I wish SmartyPants used named entities like &mdash; instead of decimal-encoded entites like &#8212;.

    To specify an entire block of pre-formatted code, indent every line of the block by 4 spaces or 1 tab. Just like with code spans, `&`, `<`, and `>` characters will be escaped automatically. Markdown: If you want your page to validate under XHTML 1.0 Strict, you've got to put paragraph tags in your blockquotes:

    For example.

    Output:

    If you want your page to validate under XHTML 1.0 Strict, you've got to put paragraph tags in your blockquotes:

    <blockquote>
            <p>For example.</p>
        </blockquote>
        
    t/Text-MultiMarkdown.mdtest/PaxHeader/Markdown_Documentation_-_Basics.xhtml000644 777777 000024 00000000172 12362521047 034551 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051441 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Basics.xhtml000644 €;Ðâp000024 00000022517 12362521047 033451 0ustar00tdoranstaff000000 000000

    Markdown: Basics

    Getting the Gist of Markdown's Formatting Syntax

    This page offers a brief overview of what it's like to use Markdown. The syntax page provides complete, detailed documentation for every feature, but Markdown should be very easy to pick up simply by looking at a few examples of it in action. The examples on this page are written in a before/after style, showing example syntax and the HTML output produced by Markdown.

    It's also helpful to simply try Markdown out; the Dingus is a web application that allows you type your own Markdown-formatted text and translate it to XHTML.

    Note: This document is itself written using Markdown; you can see the source for it by adding '.text' to the URL.

    Paragraphs, Headers, Blockquotes

    A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. (A blank line is any line that looks like a blank line -- a line containing nothing spaces or tabs is considered blank.) Normal paragraphs should not be intended with spaces or tabs.

    Markdown offers two styles of headers: Setext and atx. Setext-style headers for <h1> and <h2> are created by "underlining" with equal signs (=) and hyphens (-), respectively. To create an atx-style header, you put 1-6 hash marks (#) at the beginning of the line -- the number of hashes equals the resulting HTML header level.

    Blockquotes are indicated using email-style '>' angle brackets.

    Markdown:

    A First Level Header
    ====================
    
    A Second Level Header
    ---------------------
    
    Now is the time for all good men to come to
    the aid of their country. This is just a
    regular paragraph.
    
    The quick brown fox jumped over the lazy
    dog's back.
    
    ### Header 3
    
    > This is a blockquote.
    > 
    > This is the second paragraph in the blockquote.
    >
    > ## This is an H2 in a blockquote
    

    Output:

    <h1>A First Level Header</h1>
    
    <h2>A Second Level Header</h2>
    
    <p>Now is the time for all good men to come to
    the aid of their country. This is just a
    regular paragraph.</p>
    
    <p>The quick brown fox jumped over the lazy
    dog's back.</p>
    
    <h3>Header 3</h3>
    
    <blockquote>
        <p>This is a blockquote.</p>
    
        <p>This is the second paragraph in the blockquote.</p>
    
        <h2>This is an H2 in a blockquote</h2>
    </blockquote>
    

    Phrase Emphasis

    Markdown uses asterisks and underscores to indicate spans of emphasis.

    Markdown:

    Some of these words *are emphasized*.
    Some of these words _are emphasized also_.
    
    Use two asterisks for **strong emphasis**.
    Or, if you prefer, __use two underscores instead__.
    

    Output:

    <p>Some of these words <em>are emphasized</em>.
    Some of these words <em>are emphasized also</em>.</p>
    
    <p>Use two asterisks for <strong>strong emphasis</strong>.
    Or, if you prefer, <strong>use two underscores instead</strong>.</p>
    

    Lists

    Unordered (bulleted) lists use asterisks, pluses, and hyphens (*, +, and -) as list markers. These three markers are interchangable; this:

    *   Candy.
    *   Gum.
    *   Booze.
    

    this:

    +   Candy.
    +   Gum.
    +   Booze.
    

    and this:

    -   Candy.
    -   Gum.
    -   Booze.
    

    all produce the same output:

    <ul>
    <li>Candy.</li>
    <li>Gum.</li>
    <li>Booze.</li>
    </ul>
    

    Ordered (numbered) lists use regular numbers, followed by periods, as list markers:

    1.  Red
    2.  Green
    3.  Blue
    

    Output:

    <ol>
    <li>Red</li>
    <li>Green</li>
    <li>Blue</li>
    </ol>
    

    If you put blank lines between items, you'll get <p> tags for the list item text. You can create multi-paragraph list items by indenting the paragraphs by 4 spaces or 1 tab:

    *   A list item.
    
        With multiple paragraphs.
    
    *   Another item in the list.
    

    Output:

    <ul>
    <li><p>A list item.</p>
    <p>With multiple paragraphs.</p></li>
    <li><p>Another item in the list.</p></li>
    </ul>
    

    Markdown supports two styles for creating links: inline and reference. With both styles, you use square brackets to delimit the text you want to turn into a link.

    Inline-style links use parentheses immediately after the link text. For example:

    This is an [example link](http://example.com/).
    

    Output:

    <p>This is an <a href="http://example.com/">
    example link</a>.</p>
    

    Optionally, you may include a title attribute in the parentheses:

    This is an [example link](http://example.com/ "With a Title").
    

    Output:

    <p>This is an <a href="http://example.com/" title="With a Title">
    example link</a>.</p>
    

    Reference-style links allow you to refer to your links by names, which you define elsewhere in your document:

    I get 10 times more traffic from [Google][1] than from
    [Yahoo][2] or [MSN][3].
    
    [1]: http://google.com/        "Google"
    [2]: http://search.yahoo.com/  "Yahoo Search"
    [3]: http://search.msn.com/    "MSN Search"
    

    Output:

    <p>I get 10 times more traffic from <a href="http://google.com/"
    title="Google">Google</a> than from <a href="http://search.yahoo.com/"
    title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"
    title="MSN Search">MSN</a>.</p>
    

    The title attribute is optional. Link names may contain letters, numbers and spaces, but are not case sensitive:

    I start my morning with a cup of coffee and
    [The New York Times][NY Times].
    
    [ny times]: http://www.nytimes.com/
    

    Output:

    <p>I start my morning with a cup of coffee and
    <a href="http://www.nytimes.com/">The New York Times</a>.</p>
    

    Images

    Image syntax is very much like link syntax.

    Inline (titles are optional):

    ![alt text](/path/to/img.jpg "Title")
    

    Reference-style:

    ![alt text][id]
    
    [id]: /path/to/img.jpg "Title"
    

    Both of the above examples produce the same output:

    <img src="/path/to/img.jpg" alt="alt text" title="Title" />
    

    Code

    In a regular paragraph, you can create code span by wrapping text in backtick quotes. Any ampersands (&) and angle brackets (< or >) will automatically be translated into HTML entities. This makes it easy to use Markdown to write about HTML example code:

    I strongly recommend against using any `<blink>` tags.
    
    I wish SmartyPants used named entities like `&mdash;`
    instead of decimal-encoded entites like `&#8212;`.
    

    Output:

    <p>I strongly recommend against using any
    <code>&lt;blink&gt;</code> tags.</p>
    
    <p>I wish SmartyPants used named entities like
    <code>&amp;mdash;</code> instead of decimal-encoded
    entites like <code>&amp;#8212;</code>.</p>
    

    To specify an entire block of pre-formatted code, indent every line of the block by 4 spaces or 1 tab. Just like with code spans, &, <, and > characters will be escaped automatically.

    Markdown:

    If you want your page to validate under XHTML 1.0 Strict,
    you've got to put paragraph tags in your blockquotes:
    
        <blockquote>
            <p>For example.</p>
        </blockquote>
    

    Output:

    <p>If you want your page to validate under XHTML 1.0 Strict,
    you've got to put paragraph tags in your blockquotes:</p>
    
    <pre><code>&lt;blockquote&gt;
        &lt;p&gt;For example.&lt;/p&gt;
    &lt;/blockquote&gt;
    </code></pre>
    
    t/Text-MultiMarkdown.mdtest/PaxHeader/Markdown_Documentation_-_Syntax.text000644 777777 000024 00000000172 12362521047 034463 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051442 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Syntax.text000644 €;Ðâp000024 00000065445 12362521047 033372 0ustar00tdoranstaff000000 000000 Markdown: Syntax ================ * [Overview](#overview) * [Philosophy](#philosophy) * [Inline HTML](#html) * [Automatic Escaping for Special Characters](#autoescape) * [Block Elements](#block) * [Paragraphs and Line Breaks](#p) * [Headers](#header) * [Blockquotes](#blockquote) * [Lists](#list) * [Code Blocks](#precode) * [Horizontal Rules](#hr) * [Span Elements](#span) * [Links](#link) * [Emphasis](#em) * [Code](#code) * [Images](#img) * [Miscellaneous](#misc) * [Backslash Escapes](#backslash) * [Automatic Links](#autolink) **Note:** This document is itself written using Markdown; you can [see the source for it by adding '.text' to the URL][src]. [src]: /projects/markdown/syntax.text * * *

    Overview

    Philosophy

    Markdown is intended to be as easy-to-read and easy-to-write as is feasible. Readability, however, is emphasized above all else. A Markdown-formatted document should be publishable as-is, as plain text, without looking like it's been marked up with tags or formatting instructions. While Markdown's syntax has been influenced by several existing text-to-HTML filters -- including [Setext] [1], [atx] [2], [Textile] [3], [reStructuredText] [4], [Grutatext] [5], and [EtText] [6] -- the single biggest source of inspiration for Markdown's syntax is the format of plain text email. [1]: http://docutils.sourceforge.net/mirror/setext.html [2]: http://www.aaronsw.com/2002/atx/ [3]: http://textism.com/tools/textile/ [4]: http://docutils.sourceforge.net/rst.html [5]: http://www.triptico.com/software/grutatxt.html [6]: http://ettext.taint.org/doc/ To this end, Markdown's syntax is comprised entirely of punctuation characters, which punctuation characters have been carefully chosen so as to look like what they mean. E.g., asterisks around a word actually look like \*emphasis\*. Markdown lists look like, well, lists. Even blockquotes look like quoted passages of text, assuming you've ever used email.

    Inline HTML

    Markdown's syntax is intended for one purpose: to be used as a format for *writing* for the web. Markdown is not a replacement for HTML, or even close to it. Its syntax is very small, corresponding only to a very small subset of HTML tags. The idea is *not* to create a syntax that makes it easier to insert HTML tags. In my opinion, HTML tags are already easy to insert. The idea for Markdown is to make it easy to read, write, and edit prose. HTML is a *publishing* format; Markdown is a *writing* format. Thus, Markdown's formatting syntax only addresses issues that can be conveyed in plain text. For any markup that is not covered by Markdown's syntax, you simply use HTML itself. There's no need to preface it or delimit it to indicate that you're switching from Markdown to HTML; you just use the tags. The only restrictions are that block-level HTML elements -- e.g. `
    `, `
    `, `
    `, `

    `, etc. -- must be separated from surrounding content by blank lines, and the start and end tags of the block should not be indented with tabs or spaces. Markdown is smart enough not to add extra (unwanted) `

    ` tags around HTML block-level tags. For example, to add an HTML table to a Markdown article: This is a regular paragraph.

    Foo
    This is another regular paragraph. Note that Markdown formatting syntax is not processed within block-level HTML tags. E.g., you can't use Markdown-style `*emphasis*` inside an HTML block. Span-level HTML tags -- e.g. ``, ``, or `` -- can be used anywhere in a Markdown paragraph, list item, or header. If you want, you can even use HTML tags instead of Markdown formatting; e.g. if you'd prefer to use HTML `` or `` tags instead of Markdown's link or image syntax, go right ahead. Unlike block-level HTML tags, Markdown syntax *is* processed within span-level tags.

    Automatic Escaping for Special Characters

    In HTML, there are two characters that demand special treatment: `<` and `&`. Left angle brackets are used to start tags; ampersands are used to denote HTML entities. If you want to use them as literal characters, you must escape them as entities, e.g. `<`, and `&`. Ampersands in particular are bedeviling for web writers. If you want to write about 'AT&T', you need to write '`AT&T`'. You even need to escape ampersands within URLs. Thus, if you want to link to: http://images.google.com/images?num=30&q=larry+bird you need to encode the URL as: http://images.google.com/images?num=30&q=larry+bird in your anchor tag `href` attribute. Needless to say, this is easy to forget, and is probably the single most common source of HTML validation errors in otherwise well-marked-up web sites. Markdown allows you to use these characters naturally, taking care of all the necessary escaping for you. If you use an ampersand as part of an HTML entity, it remains unchanged; otherwise it will be translated into `&`. So, if you want to include a copyright symbol in your article, you can write: © and Markdown will leave it alone. But if you write: AT&T Markdown will translate it to: AT&T Similarly, because Markdown supports [inline HTML](#html), if you use angle brackets as delimiters for HTML tags, Markdown will treat them as such. But if you write: 4 < 5 Markdown will translate it to: 4 < 5 However, inside Markdown code spans and blocks, angle brackets and ampersands are *always* encoded automatically. This makes it easy to use Markdown to write about HTML code. (As opposed to raw HTML, which is a terrible format for writing about HTML syntax, because every single `<` and `&` in your example code needs to be escaped.) * * *

    Block Elements

    Paragraphs and Line Breaks

    A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. (A blank line is any line that looks like a blank line -- a line containing nothing but spaces or tabs is considered blank.) Normal paragraphs should not be intended with spaces or tabs. The implication of the "one or more consecutive lines of text" rule is that Markdown supports "hard-wrapped" text paragraphs. This differs significantly from most other text-to-HTML formatters (including Movable Type's "Convert Line Breaks" option) which translate every line break character in a paragraph into a `
    ` tag. When you *do* want to insert a `
    ` break tag using Markdown, you end a line with two or more spaces, then type return. Yes, this takes a tad more effort to create a `
    `, but a simplistic "every line break is a `
    `" rule wouldn't work for Markdown. Markdown's email-style [blockquoting][bq] and multi-paragraph [list items][l] work best -- and look better -- when you format them with hard breaks. [bq]: #blockquote [l]: #list Markdown supports two styles of headers, [Setext] [1] and [atx] [2]. Setext-style headers are "underlined" using equal signs (for first-level headers) and dashes (for second-level headers). For example: This is an H1 ============= This is an H2 ------------- Any number of underlining `=`'s or `-`'s will work. Atx-style headers use 1-6 hash characters at the start of the line, corresponding to header levels 1-6. For example: # This is an H1 ## This is an H2 ###### This is an H6 Optionally, you may "close" atx-style headers. This is purely cosmetic -- you can use this if you think it looks better. The closing hashes don't even need to match the number of hashes used to open the header. (The number of opening hashes determines the header level.) : # This is an H1 # ## This is an H2 ## ### This is an H3 ######

    Blockquotes

    Markdown uses email-style `>` characters for blockquoting. If you're familiar with quoting passages of text in an email message, then you know how to create a blockquote in Markdown. It looks best if you hard wrap the text and put a `>` before every line: > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. > > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse > id sem consectetuer libero luctus adipiscing. Markdown allows you to be lazy and only put the `>` before the first line of a hard-wrapped paragraph: > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by adding additional levels of `>`: > This is the first level of quoting. > > > This is nested blockquote. > > Back to the first level. Blockquotes can contain other Markdown elements, including headers, lists, and code blocks: > ## This is a header. > > 1. This is the first list item. > 2. This is the second list item. > > Here's some example code: > > return shell_exec("echo $input | $markdown_script"); Any decent text editor should make email-style quoting easy. For example, with BBEdit, you can make a selection and choose Increase Quote Level from the Text menu.

    Lists

    Markdown supports ordered (numbered) and unordered (bulleted) lists. Unordered lists use asterisks, pluses, and hyphens -- interchangably -- as list markers: * Red * Green * Blue is equivalent to: + Red + Green + Blue and: - Red - Green - Blue Ordered lists use numbers followed by periods: 1. Bird 2. McHale 3. Parish It's important to note that the actual numbers you use to mark the list have no effect on the HTML output Markdown produces. The HTML Markdown produces from the above list is:
    1. Bird
    2. McHale
    3. Parish
    If you instead wrote the list in Markdown like this: 1. Bird 1. McHale 1. Parish or even: 3. Bird 1. McHale 8. Parish you'd get the exact same HTML output. The point is, if you want to, you can use ordinal numbers in your ordered Markdown lists, so that the numbers in your source match the numbers in your published HTML. But if you want to be lazy, you don't have to. If you do use lazy list numbering, however, you should still start the list with the number 1. At some point in the future, Markdown may support starting ordered lists at an arbitrary number. List markers typically start at the left margin, but may be indented by up to three spaces. List markers must be followed by one or more spaces or a tab. To make lists look nice, you can wrap items with hanging indents: * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. But if you want to be lazy, you don't have to: * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. If list items are separated by blank lines, Markdown will wrap the items in `

    ` tags in the HTML output. For example, this input: * Bird * Magic will turn into:

    • Bird
    • Magic
    But this: * Bird * Magic will turn into:
    • Bird

    • Magic

    List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be intended by either 4 spaces or one tab: 1. This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. 2. Suspendisse id sem consectetuer libero luctus adipiscing. It looks nice if you indent every line of the subsequent paragraphs, but here again, Markdown will allow you to be lazy: * This is a list item with two paragraphs. This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. * Another item in the same list. To put a blockquote within a list item, the blockquote's `>` delimiters need to be indented: * A list item with a blockquote: > This is a blockquote > inside a list item. To put a code block within a list item, the code block needs to be indented *twice* -- 8 spaces or two tabs: * A list item with a code block: It's worth noting that it's possible to trigger an ordered list by accident, by writing something like this: 1986. What a great season. In other words, a *number-period-space* sequence at the beginning of a line. To avoid this, you can backslash-escape the period: 1986\. What a great season.

    Code Blocks

    Pre-formatted code blocks are used for writing about programming or markup source code. Rather than forming normal paragraphs, the lines of a code block are interpreted literally. Markdown wraps a code block in both `
    ` and `` tags.
    
    To produce a code block in Markdown, simply indent every line of the
    block by at least 4 spaces or 1 tab. For example, given this input:
    
        This is a normal paragraph:
    
            This is a code block.
    
    Markdown will generate:
    
        

    This is a normal paragraph:

    This is a code block.
        
    One level of indentation -- 4 spaces or 1 tab -- is removed from each line of the code block. For example, this: Here is an example of AppleScript: tell application "Foo" beep end tell will turn into:

    Here is an example of AppleScript:

    tell application "Foo"
            beep
        end tell
        
    A code block continues until it reaches a line that is not indented (or the end of the article). Within a code block, ampersands (`&`) and angle brackets (`<` and `>`) are automatically converted into HTML entities. This makes it very easy to include example HTML source code using Markdown -- just paste it and indent it, and Markdown will handle the hassle of encoding the ampersands and angle brackets. For example, this: will turn into:
    <div class="footer">
            &copy; 2004 Foo Corporation
        </div>
        
    Regular Markdown syntax is not processed within code blocks. E.g., asterisks are just literal asterisks within a code block. This means it's also easy to use Markdown to write about Markdown's own syntax.

    Horizontal Rules

    You can produce a horizontal rule tag (`
    `) by placing three or more hyphens, asterisks, or underscores on a line by themselves. If you wish, you may use spaces between the hyphens or asterisks. Each of the following lines will produce a horizontal rule: * * * *** ***** - - - --------------------------------------- _ _ _ * * *

    Span Elements

    Markdown supports two style of links: *inline* and *reference*. In both styles, the link text is delimited by [square brackets]. To create an inline link, use a set of regular parentheses immediately after the link text's closing square bracket. Inside the parentheses, put the URL where you want the link to point, along with an *optional* title for the link, surrounded in quotes. For example: This is [an example](http://example.com/ "Title") inline link. [This link](http://example.net/) has no title attribute. Will produce:

    This is an example inline link.

    This link has no title attribute.

    If you're referring to a local resource on the same server, you can use relative paths: See my [About](/about/) page for details. Reference-style links use a second set of square brackets, inside which you place a label of your choosing to identify the link: This is [an example][id] reference-style link. You can optionally use a space to separate the sets of brackets: This is [an example] [id] reference-style link. Then, anywhere in the document, you define your link label like this, on a line by itself: [id]: http://example.com/ "Optional Title Here" That is: * Square brackets containing the link identifier (optionally indented from the left margin using up to three spaces); * followed by a colon; * followed by one or more spaces (or tabs); * followed by the URL for the link; * optionally followed by a title attribute for the link, enclosed in double or single quotes. The link URL may, optionally, be surrounded by angle brackets: [id]: "Optional Title Here" You can put the title attribute on the next line and use extra spaces or tabs for padding, which tends to look better with longer URLs: [id]: http://example.com/longish/path/to/resource/here "Optional Title Here" Link definitions are only used for creating links during Markdown processing, and are stripped from your document in the HTML output. Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are *not* case sensitive. E.g. these two links: [link text][a] [link text][A] are equivalent. The *implicit link name* shortcut allows you to omit the name of the link, in which case the link text itself is used as the name. Just use an empty set of square brackets -- e.g., to link the word "Google" to the google.com web site, you could simply write: [Google][] And then define the link: [Google]: http://google.com/ Because link names may contain spaces, this shortcut even works for multiple words in the link text: Visit [Daring Fireball][] for more information. And then define the link: [Daring Fireball]: http://daringfireball.net/ Link definitions can be placed anywhere in your Markdown document. I tend to put them immediately after each paragraph in which they're used, but if you want, you can put them all at the end of your document, sort of like footnotes. Here's an example of reference links in action: I get 10 times more traffic from [Google] [1] than from [Yahoo] [2] or [MSN] [3]. [1]: http://google.com/ "Google" [2]: http://search.yahoo.com/ "Yahoo Search" [3]: http://search.msn.com/ "MSN Search" Using the implicit link name shortcut, you could instead write: I get 10 times more traffic from [Google][] than from [Yahoo][] or [MSN][]. [google]: http://google.com/ "Google" [yahoo]: http://search.yahoo.com/ "Yahoo Search" [msn]: http://search.msn.com/ "MSN Search" Both of the above examples will produce the following HTML output:

    I get 10 times more traffic from Google than from Yahoo or MSN.

    For comparison, here is the same paragraph written using Markdown's inline link style: I get 10 times more traffic from [Google](http://google.com/ "Google") than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or [MSN](http://search.msn.com/ "MSN Search"). The point of reference-style links is not that they're easier to write. The point is that with reference-style links, your document source is vastly more readable. Compare the above examples: using reference-style links, the paragraph itself is only 81 characters long; with inline-style links, it's 176 characters; and as raw HTML, it's 234 characters. In the raw HTML, there's more markup than there is text. With Markdown's reference-style links, a source document much more closely resembles the final output, as rendered in a browser. By allowing you to move the markup-related metadata out of the paragraph, you can add links without interrupting the narrative flow of your prose.

    Emphasis

    Markdown treats asterisks (`*`) and underscores (`_`) as indicators of emphasis. Text wrapped with one `*` or `_` will be wrapped with an HTML `` tag; double `*`'s or `_`'s will be wrapped with an HTML `` tag. E.g., this input: *single asterisks* _single underscores_ **double asterisks** __double underscores__ will produce: single asterisks single underscores double asterisks double underscores You can use whichever style you prefer; the lone restriction is that the same character must be used to open and close an emphasis span. Emphasis can be used in the middle of a word: un*fucking*believable But if you surround an `*` or `_` with spaces, it'll be treated as a literal asterisk or underscore. To produce a literal asterisk or underscore at a position where it would otherwise be used as an emphasis delimiter, you can backslash escape it: \*this text is surrounded by literal asterisks\*

    Code

    To indicate a span of code, wrap it with backtick quotes (`` ` ``). Unlike a pre-formatted code block, a code span indicates code within a normal paragraph. For example: Use the `printf()` function. will produce:

    Use the printf() function.

    To include a literal backtick character within a code span, you can use multiple backticks as the opening and closing delimiters: ``There is a literal backtick (`) here.`` which will produce this:

    There is a literal backtick (`) here.

    The backtick delimiters surrounding a code span may include spaces -- one after the opening, one before the closing. This allows you to place literal backtick characters at the beginning or end of a code span: A single backtick in a code span: `` ` `` A backtick-delimited string in a code span: `` `foo` `` will produce:

    A single backtick in a code span: `

    A backtick-delimited string in a code span: `foo`

    With a code span, ampersands and angle brackets are encoded as HTML entities automatically, which makes it easy to include example HTML tags. Markdown will turn this: Please don't use any `` tags. into:

    Please don't use any <blink> tags.

    You can write this: `—` is the decimal-encoded equivalent of `—`. to produce:

    &#8212; is the decimal-encoded equivalent of &mdash;.

    Images

    Admittedly, it's fairly difficult to devise a "natural" syntax for placing images into a plain text document format. Markdown uses an image syntax that is intended to resemble the syntax for links, allowing for two styles: *inline* and *reference*. Inline image syntax looks like this: ![Alt text](/path/to/img.jpg) ![Alt text](/path/to/img.jpg "Optional title") That is: * An exclamation mark: `!`; * followed by a set of square brackets, containing the `alt` attribute text for the image; * followed by a set of parentheses, containing the URL or path to the image, and an optional `title` attribute enclosed in double or single quotes. Reference-style image syntax looks like this: ![Alt text][id] Where "id" is the name of a defined image reference. Image references are defined using syntax identical to link references: [id]: url/to/image "Optional title attribute" As of this writing, Markdown has no syntax for specifying the dimensions of an image; if this is important to you, you can simply use regular HTML `` tags. * * *

    Miscellaneous

    Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this: Markdown will turn this into: http://example.com/ Automatic links for email addresses work similarly, except that Markdown will also perform a bit of randomized decimal and hex entity-encoding to help obscure your address from address-harvesting spambots. For example, Markdown will turn this: into something like this: address@exa mple.com which will render in a browser as a clickable link to "address@example.com". (This sort of entity-encoding trick will indeed fool many, if not most, address-harvesting bots, but it definitely won't fool all of them. It's better than nothing, but an address published in this way will probably eventually start receiving spam.)

    Backslash Escapes

    Markdown allows you to use backslash escapes to generate literal characters which would otherwise have special meaning in Markdown's formatting syntax. For example, if you wanted to surround a word with literal asterisks (instead of an HTML `` tag), you can backslashes before the asterisks, like this: \*literal asterisks\* Markdown provides backslash escapes for the following characters: \ backslash ` backtick * asterisk _ underscore {} curly braces [] square brackets () parentheses # hash mark + plus sign - minus sign (hyphen) . dot ! exclamation mark t/Text-MultiMarkdown.mdtest/PaxHeader/Markdown_Documentation_-_Syntax.xhtml000644 777777 000024 00000000172 12362521047 034633 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051443 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Markdown_Documentation_-_Syntax.xhtml000644 €;Ðâp000024 00000076077 12362521047 033545 0ustar00tdoranstaff000000 000000

    Markdown: Syntax

    Note: This document is itself written using Markdown; you can see the source for it by adding '.text' to the URL.


    Overview

    Philosophy

    Markdown is intended to be as easy-to-read and easy-to-write as is feasible.

    Readability, however, is emphasized above all else. A Markdown-formatted document should be publishable as-is, as plain text, without looking like it's been marked up with tags or formatting instructions. While Markdown's syntax has been influenced by several existing text-to-HTML filters -- including Setext, atx, Textile, reStructuredText, Grutatext, and EtText -- the single biggest source of inspiration for Markdown's syntax is the format of plain text email.

    To this end, Markdown's syntax is comprised entirely of punctuation characters, which punctuation characters have been carefully chosen so as to look like what they mean. E.g., asterisks around a word actually look like *emphasis*. Markdown lists look like, well, lists. Even blockquotes look like quoted passages of text, assuming you've ever used email.

    Inline HTML

    Markdown's syntax is intended for one purpose: to be used as a format for writing for the web.

    Markdown is not a replacement for HTML, or even close to it. Its syntax is very small, corresponding only to a very small subset of HTML tags. The idea is not to create a syntax that makes it easier to insert HTML tags. In my opinion, HTML tags are already easy to insert. The idea for Markdown is to make it easy to read, write, and edit prose. HTML is a publishing format; Markdown is a writing format. Thus, Markdown's formatting syntax only addresses issues that can be conveyed in plain text.

    For any markup that is not covered by Markdown's syntax, you simply use HTML itself. There's no need to preface it or delimit it to indicate that you're switching from Markdown to HTML; you just use the tags.

    The only restrictions are that block-level HTML elements -- e.g. <div>, <table>, <pre>, <p>, etc. -- must be separated from surrounding content by blank lines, and the start and end tags of the block should not be indented with tabs or spaces. Markdown is smart enough not to add extra (unwanted) <p> tags around HTML block-level tags.

    For example, to add an HTML table to a Markdown article:

    This is a regular paragraph.
    
    <table>
        <tr>
            <td>Foo</td>
        </tr>
    </table>
    
    This is another regular paragraph.
    

    Note that Markdown formatting syntax is not processed within block-level HTML tags. E.g., you can't use Markdown-style *emphasis* inside an HTML block.

    Span-level HTML tags -- e.g. <span>, <cite>, or <del> -- can be used anywhere in a Markdown paragraph, list item, or header. If you want, you can even use HTML tags instead of Markdown formatting; e.g. if you'd prefer to use HTML <a> or <img> tags instead of Markdown's link or image syntax, go right ahead.

    Unlike block-level HTML tags, Markdown syntax is processed within span-level tags.

    Automatic Escaping for Special Characters

    In HTML, there are two characters that demand special treatment: < and &. Left angle brackets are used to start tags; ampersands are used to denote HTML entities. If you want to use them as literal characters, you must escape them as entities, e.g. &lt;, and &amp;.

    Ampersands in particular are bedeviling for web writers. If you want to write about 'AT&T', you need to write 'AT&amp;T'. You even need to escape ampersands within URLs. Thus, if you want to link to:

    http://images.google.com/images?num=30&q=larry+bird
    

    you need to encode the URL as:

    http://images.google.com/images?num=30&amp;q=larry+bird
    

    in your anchor tag href attribute. Needless to say, this is easy to forget, and is probably the single most common source of HTML validation errors in otherwise well-marked-up web sites.

    Markdown allows you to use these characters naturally, taking care of all the necessary escaping for you. If you use an ampersand as part of an HTML entity, it remains unchanged; otherwise it will be translated into &amp;.

    So, if you want to include a copyright symbol in your article, you can write:

    &copy;
    

    and Markdown will leave it alone. But if you write:

    AT&T
    

    Markdown will translate it to:

    AT&amp;T
    

    Similarly, because Markdown supports inline HTML, if you use angle brackets as delimiters for HTML tags, Markdown will treat them as such. But if you write:

    4 < 5
    

    Markdown will translate it to:

    4 &lt; 5
    

    However, inside Markdown code spans and blocks, angle brackets and ampersands are always encoded automatically. This makes it easy to use Markdown to write about HTML code. (As opposed to raw HTML, which is a terrible format for writing about HTML syntax, because every single < and & in your example code needs to be escaped.)


    Block Elements

    Paragraphs and Line Breaks

    A paragraph is simply one or more consecutive lines of text, separated by one or more blank lines. (A blank line is any line that looks like a blank line -- a line containing nothing but spaces or tabs is considered blank.) Normal paragraphs should not be intended with spaces or tabs.

    The implication of the "one or more consecutive lines of text" rule is that Markdown supports "hard-wrapped" text paragraphs. This differs significantly from most other text-to-HTML formatters (including Movable Type's "Convert Line Breaks" option) which translate every line break character in a paragraph into a <br /> tag.

    When you do want to insert a <br /> break tag using Markdown, you end a line with two or more spaces, then type return.

    Yes, this takes a tad more effort to create a <br />, but a simplistic "every line break is a <br />" rule wouldn't work for Markdown. Markdown's email-style blockquoting and multi-paragraph list items work best -- and look better -- when you format them with hard breaks.

    Markdown supports two styles of headers, Setext and atx.

    Setext-style headers are "underlined" using equal signs (for first-level headers) and dashes (for second-level headers). For example:

    This is an H1
    =============
    
    This is an H2
    -------------
    

    Any number of underlining ='s or -'s will work.

    Atx-style headers use 1-6 hash characters at the start of the line, corresponding to header levels 1-6. For example:

    # This is an H1
    
    ## This is an H2
    
    ###### This is an H6
    

    Optionally, you may "close" atx-style headers. This is purely cosmetic -- you can use this if you think it looks better. The closing hashes don't even need to match the number of hashes used to open the header. (The number of opening hashes determines the header level.) :

    # This is an H1 #
    
    ## This is an H2 ##
    
    ### This is an H3 ######
    

    Blockquotes

    Markdown uses email-style > characters for blockquoting. If you're familiar with quoting passages of text in an email message, then you know how to create a blockquote in Markdown. It looks best if you hard wrap the text and put a > before every line:

    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
    > consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
    > Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    > 
    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
    > id sem consectetuer libero luctus adipiscing.
    

    Markdown allows you to be lazy and only put the > before the first line of a hard-wrapped paragraph:

    > This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
    consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
    Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    
    > Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
    id sem consectetuer libero luctus adipiscing.
    

    Blockquotes can be nested (i.e. a blockquote-in-a-blockquote) by adding additional levels of >:

    > This is the first level of quoting.
    >
    > > This is nested blockquote.
    >
    > Back to the first level.
    

    Blockquotes can contain other Markdown elements, including headers, lists, and code blocks:

    > ## This is a header.
    > 
    > 1.   This is the first list item.
    > 2.   This is the second list item.
    > 
    > Here's some example code:
    > 
    >     return shell_exec("echo $input | $markdown_script");
    

    Any decent text editor should make email-style quoting easy. For example, with BBEdit, you can make a selection and choose Increase Quote Level from the Text menu.

    Lists

    Markdown supports ordered (numbered) and unordered (bulleted) lists.

    Unordered lists use asterisks, pluses, and hyphens -- interchangably -- as list markers:

    *   Red
    *   Green
    *   Blue
    

    is equivalent to:

    +   Red
    +   Green
    +   Blue
    

    and:

    -   Red
    -   Green
    -   Blue
    

    Ordered lists use numbers followed by periods:

    1.  Bird
    2.  McHale
    3.  Parish
    

    It's important to note that the actual numbers you use to mark the list have no effect on the HTML output Markdown produces. The HTML Markdown produces from the above list is:

    <ol>
    <li>Bird</li>
    <li>McHale</li>
    <li>Parish</li>
    </ol>
    

    If you instead wrote the list in Markdown like this:

    1.  Bird
    1.  McHale
    1.  Parish
    

    or even:

    3. Bird
    1. McHale
    8. Parish
    

    you'd get the exact same HTML output. The point is, if you want to, you can use ordinal numbers in your ordered Markdown lists, so that the numbers in your source match the numbers in your published HTML. But if you want to be lazy, you don't have to.

    If you do use lazy list numbering, however, you should still start the list with the number 1. At some point in the future, Markdown may support starting ordered lists at an arbitrary number.

    List markers typically start at the left margin, but may be indented by up to three spaces. List markers must be followed by one or more spaces or a tab.

    To make lists look nice, you can wrap items with hanging indents:

    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
        Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
        viverra nec, fringilla in, laoreet vitae, risus.
    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
        Suspendisse id sem consectetuer libero luctus adipiscing.
    

    But if you want to be lazy, you don't have to:

    *   Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
    Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
    viverra nec, fringilla in, laoreet vitae, risus.
    *   Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
    Suspendisse id sem consectetuer libero luctus adipiscing.
    

    If list items are separated by blank lines, Markdown will wrap the items in <p> tags in the HTML output. For example, this input:

    *   Bird
    *   Magic
    

    will turn into:

    <ul>
    <li>Bird</li>
    <li>Magic</li>
    </ul>
    

    But this:

    *   Bird
    
    *   Magic
    

    will turn into:

    <ul>
    <li><p>Bird</p></li>
    <li><p>Magic</p></li>
    </ul>
    

    List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be intended by either 4 spaces or one tab:

    1.  This is a list item with two paragraphs. Lorem ipsum dolor
        sit amet, consectetuer adipiscing elit. Aliquam hendrerit
        mi posuere lectus.
    
        Vestibulum enim wisi, viverra nec, fringilla in, laoreet
        vitae, risus. Donec sit amet nisl. Aliquam semper ipsum
        sit amet velit.
    
    2.  Suspendisse id sem consectetuer libero luctus adipiscing.
    

    It looks nice if you indent every line of the subsequent paragraphs, but here again, Markdown will allow you to be lazy:

    *   This is a list item with two paragraphs.
    
        This is the second paragraph in the list item. You're
    only required to indent the first line. Lorem ipsum dolor
    sit amet, consectetuer adipiscing elit.
    
    *   Another item in the same list.
    

    To put a blockquote within a list item, the blockquote's > delimiters need to be indented:

    *   A list item with a blockquote:
    
        > This is a blockquote
        > inside a list item.
    

    To put a code block within a list item, the code block needs to be indented twice -- 8 spaces or two tabs:

    *   A list item with a code block:
    
            <code goes here>
    

    It's worth noting that it's possible to trigger an ordered list by accident, by writing something like this:

    1986. What a great season.
    

    In other words, a number-period-space sequence at the beginning of a line. To avoid this, you can backslash-escape the period:

    1986\. What a great season.
    

    Code Blocks

    Pre-formatted code blocks are used for writing about programming or markup source code. Rather than forming normal paragraphs, the lines of a code block are interpreted literally. Markdown wraps a code block in both <pre> and <code> tags.

    To produce a code block in Markdown, simply indent every line of the block by at least 4 spaces or 1 tab. For example, given this input:

    This is a normal paragraph:
    
        This is a code block.
    

    Markdown will generate:

    <p>This is a normal paragraph:</p>
    
    <pre><code>This is a code block.
    </code></pre>
    

    One level of indentation -- 4 spaces or 1 tab -- is removed from each line of the code block. For example, this:

    Here is an example of AppleScript:
    
        tell application "Foo"
            beep
        end tell
    

    will turn into:

    <p>Here is an example of AppleScript:</p>
    
    <pre><code>tell application "Foo"
        beep
    end tell
    </code></pre>
    

    A code block continues until it reaches a line that is not indented (or the end of the article).

    Within a code block, ampersands (&) and angle brackets (< and >) are automatically converted into HTML entities. This makes it very easy to include example HTML source code using Markdown -- just paste it and indent it, and Markdown will handle the hassle of encoding the ampersands and angle brackets. For example, this:

        <div class="footer">
            &copy; 2004 Foo Corporation
        </div>
    

    will turn into:

    <pre><code>&lt;div class="footer"&gt;
        &amp;copy; 2004 Foo Corporation
    &lt;/div&gt;
    </code></pre>
    

    Regular Markdown syntax is not processed within code blocks. E.g., asterisks are just literal asterisks within a code block. This means it's also easy to use Markdown to write about Markdown's own syntax.

    Horizontal Rules

    You can produce a horizontal rule tag (<hr />) by placing three or more hyphens, asterisks, or underscores on a line by themselves. If you wish, you may use spaces between the hyphens or asterisks. Each of the following lines will produce a horizontal rule:

    * * *
    
    ***
    
    *****
    
    - - -
    
    ---------------------------------------
    
    _ _ _
    

    Span Elements

    Markdown supports two style of links: inline and reference.

    In both styles, the link text is delimited by [square brackets].

    To create an inline link, use a set of regular parentheses immediately after the link text's closing square bracket. Inside the parentheses, put the URL where you want the link to point, along with an optional title for the link, surrounded in quotes. For example:

    This is [an example](http://example.com/ "Title") inline link.
    
    [This link](http://example.net/) has no title attribute.
    

    Will produce:

    <p>This is <a href="http://example.com/" title="Title">
    an example</a> inline link.</p>
    
    <p><a href="http://example.net/">This link</a> has no
    title attribute.</p>
    

    If you're referring to a local resource on the same server, you can use relative paths:

    See my [About](/about/) page for details.
    

    Reference-style links use a second set of square brackets, inside which you place a label of your choosing to identify the link:

    This is [an example][id] reference-style link.
    

    You can optionally use a space to separate the sets of brackets:

    This is [an example] [id] reference-style link.
    

    Then, anywhere in the document, you define your link label like this, on a line by itself:

    [id]: http://example.com/  "Optional Title Here"
    

    That is:

    • Square brackets containing the link identifier (optionally indented from the left margin using up to three spaces);
    • followed by a colon;
    • followed by one or more spaces (or tabs);
    • followed by the URL for the link;
    • optionally followed by a title attribute for the link, enclosed in double or single quotes.

    The link URL may, optionally, be surrounded by angle brackets:

    [id]: <http://example.com/>  "Optional Title Here"
    

    You can put the title attribute on the next line and use extra spaces or tabs for padding, which tends to look better with longer URLs:

    [id]: http://example.com/longish/path/to/resource/here
        "Optional Title Here"
    

    Link definitions are only used for creating links during Markdown processing, and are stripped from your document in the HTML output.

    Link definition names may constist of letters, numbers, spaces, and punctuation -- but they are not case sensitive. E.g. these two links:

    [link text][a]
    [link text][A]
    

    are equivalent.

    The implicit link name shortcut allows you to omit the name of the link, in which case the link text itself is used as the name. Just use an empty set of square brackets -- e.g., to link the word "Google" to the google.com web site, you could simply write:

    [Google][]
    

    And then define the link:

    [Google]: http://google.com/
    

    Because link names may contain spaces, this shortcut even works for multiple words in the link text:

    Visit [Daring Fireball][] for more information.
    

    And then define the link:

    [Daring Fireball]: http://daringfireball.net/
    

    Link definitions can be placed anywhere in your Markdown document. I tend to put them immediately after each paragraph in which they're used, but if you want, you can put them all at the end of your document, sort of like footnotes.

    Here's an example of reference links in action:

    I get 10 times more traffic from [Google] [1] than from
    [Yahoo] [2] or [MSN] [3].
    
      [1]: http://google.com/        "Google"
      [2]: http://search.yahoo.com/  "Yahoo Search"
      [3]: http://search.msn.com/    "MSN Search"
    

    Using the implicit link name shortcut, you could instead write:

    I get 10 times more traffic from [Google][] than from
    [Yahoo][] or [MSN][].
    
      [google]: http://google.com/        "Google"
      [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
      [msn]:    http://search.msn.com/    "MSN Search"
    

    Both of the above examples will produce the following HTML output:

    <p>I get 10 times more traffic from <a href="http://google.com/"
    title="Google">Google</a> than from
    <a href="http://search.yahoo.com/" title="Yahoo Search">Yahoo</a>
    or <a href="http://search.msn.com/" title="MSN Search">MSN</a>.</p>
    

    For comparison, here is the same paragraph written using Markdown's inline link style:

    I get 10 times more traffic from [Google](http://google.com/ "Google")
    than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
    [MSN](http://search.msn.com/ "MSN Search").
    

    The point of reference-style links is not that they're easier to write. The point is that with reference-style links, your document source is vastly more readable. Compare the above examples: using reference-style links, the paragraph itself is only 81 characters long; with inline-style links, it's 176 characters; and as raw HTML, it's 234 characters. In the raw HTML, there's more markup than there is text.

    With Markdown's reference-style links, a source document much more closely resembles the final output, as rendered in a browser. By allowing you to move the markup-related metadata out of the paragraph, you can add links without interrupting the narrative flow of your prose.

    Emphasis

    Markdown treats asterisks (*) and underscores (_) as indicators of emphasis. Text wrapped with one * or _ will be wrapped with an HTML <em> tag; double *'s or _'s will be wrapped with an HTML <strong> tag. E.g., this input:

    *single asterisks*
    
    _single underscores_
    
    **double asterisks**
    
    __double underscores__
    

    will produce:

    <em>single asterisks</em>
    
    <em>single underscores</em>
    
    <strong>double asterisks</strong>
    
    <strong>double underscores</strong>
    

    You can use whichever style you prefer; the lone restriction is that the same character must be used to open and close an emphasis span.

    Emphasis can be used in the middle of a word:

    un*fucking*believable
    

    But if you surround an * or _ with spaces, it'll be treated as a literal asterisk or underscore.

    To produce a literal asterisk or underscore at a position where it would otherwise be used as an emphasis delimiter, you can backslash escape it:

    \*this text is surrounded by literal asterisks\*
    

    Code

    To indicate a span of code, wrap it with backtick quotes (`). Unlike a pre-formatted code block, a code span indicates code within a normal paragraph. For example:

    Use the `printf()` function.
    

    will produce:

    <p>Use the <code>printf()</code> function.</p>
    

    To include a literal backtick character within a code span, you can use multiple backticks as the opening and closing delimiters:

    ``There is a literal backtick (`) here.``
    

    which will produce this:

    <p><code>There is a literal backtick (`) here.</code></p>
    

    The backtick delimiters surrounding a code span may include spaces -- one after the opening, one before the closing. This allows you to place literal backtick characters at the beginning or end of a code span:

    A single backtick in a code span: `` ` ``
    
    A backtick-delimited string in a code span: `` `foo` ``
    

    will produce:

    <p>A single backtick in a code span: <code>`</code></p>
    
    <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
    

    With a code span, ampersands and angle brackets are encoded as HTML entities automatically, which makes it easy to include example HTML tags. Markdown will turn this:

    Please don't use any `<blink>` tags.
    

    into:

    <p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>
    

    You can write this:

    `&#8212;` is the decimal-encoded equivalent of `&mdash;`.
    

    to produce:

    <p><code>&amp;#8212;</code> is the decimal-encoded
    equivalent of <code>&amp;mdash;</code>.</p>
    

    Images

    Admittedly, it's fairly difficult to devise a "natural" syntax for placing images into a plain text document format.

    Markdown uses an image syntax that is intended to resemble the syntax for links, allowing for two styles: inline and reference.

    Inline image syntax looks like this:

    ![Alt text](/path/to/img.jpg)
    
    ![Alt text](/path/to/img.jpg "Optional title")
    

    That is:

    • An exclamation mark: !;
    • followed by a set of square brackets, containing the alt attribute text for the image;
    • followed by a set of parentheses, containing the URL or path to the image, and an optional title attribute enclosed in double or single quotes.

    Reference-style image syntax looks like this:

    ![Alt text][id]
    

    Where "id" is the name of a defined image reference. Image references are defined using syntax identical to link references:

    [id]: url/to/image  "Optional title attribute"
    

    As of this writing, Markdown has no syntax for specifying the dimensions of an image; if this is important to you, you can simply use regular HTML <img> tags.


    Miscellaneous

    Markdown supports a shortcut style for creating "automatic" links for URLs and email addresses: simply surround the URL or email address with angle brackets. What this means is that if you want to show the actual text of a URL or email address, and also have it be a clickable link, you can do this:

    <http://example.com/>
    

    Markdown will turn this into:

    <a href="http://example.com/">http://example.com/</a>
    

    Automatic links for email addresses work similarly, except that Markdown will also perform a bit of randomized decimal and hex entity-encoding to help obscure your address from address-harvesting spambots. For example, Markdown will turn this:

    <address@example.com>
    

    into something like this:

    <a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
    &#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
    &#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
    &#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>
    

    which will render in a browser as a clickable link to "address@example.com".

    (This sort of entity-encoding trick will indeed fool many, if not most, address-harvesting bots, but it definitely won't fool all of them. It's better than nothing, but an address published in this way will probably eventually start receiving spam.)

    Backslash Escapes

    Markdown allows you to use backslash escapes to generate literal characters which would otherwise have special meaning in Markdown's formatting syntax. For example, if you wanted to surround a word with literal asterisks (instead of an HTML <em> tag), you can backslashes before the asterisks, like this:

    \*literal asterisks\*
    

    Markdown provides backslash escapes for the following characters:

    \   backslash
    `   backtick
    *   asterisk
    _   underscore
    {}  curly braces
    []  square brackets
    ()  parentheses
    #   hash mark
    +   plus sign
    -   minus sign (hyphen)
    .   dot
    !   exclamation mark
    
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Metadata_(Complete).text000644 777777 000024 00000000172 12362521047 031776 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051444 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Complete).text000644 €;Ðâp000024 00000000256 12362521047 030613 0ustar00tdoranstaff000000 000000 Title: MultiMarkdown Test Document Author: Fletcher T. Penney, MD Date: January 14, 2006 Format: complete Css: http://some.url/sample.css Intro: This is the first paragraph.Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Metadata_(Complete).xhtml000644 777777 000024 00000000172 12362521047 032146 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051445 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Complete).xhtml000644 €;Ðâp000024 00000000732 12362521047 030762 0ustar00tdoranstaff000000 000000 MultiMarkdown Test Document

    Intro: This is the first paragraph.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Metadata_(Snippet).html000644 777777 000024 00000000172 12362521047 031630 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051446 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Snippet).html000644 €;Ðâp000024 00000000227 12362521047 030443 0ustar00tdoranstaff000000 000000 Author: Fletcher T. Penney, MD
    Date: January 14, 2006
    Title: MultiMarkdown Test Document

    Intro: This is the first paragraph.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Metadata_(Snippet).text000644 777777 000024 00000000172 12362521047 031650 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051447 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Metadata_(Snippet).text000644 €;Ðâp000024 00000000175 12362521047 030465 0ustar00tdoranstaff000000 000000 Title: MultiMarkdown Test Document Author: Fletcher T. Penney, MD Date: January 14, 2006 Intro: This is the first paragraph.Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Nested_blockquotes.text000644 777777 000024 00000000172 12362521047 032142 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051448 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Nested_blockquotes.text000644 €;Ðâp000024 00000000030 12362521047 030745 0ustar00tdoranstaff000000 000000 > foo > > > bar > > foo Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Nested_blockquotes.xhtml000644 777777 000024 00000000172 12362521047 032312 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051449 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Nested_blockquotes.xhtml000644 €;Ðâp000024 00000000151 12362521047 031121 0ustar00tdoranstaff000000 000000

    foo

    bar

    foo

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Ordered_and_unordered_lists.text000644 777777 000024 00000000172 12362521047 034000 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051450 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Ordered_and_unordered_lists.text000644 €;Ðâp000024 00000001511 12362521047 032610 0ustar00tdoranstaff000000 000000 ## Unordered Asterisks tight: * asterisk 1 * asterisk 2 * asterisk 3 Asterisks loose: * asterisk 1 * asterisk 2 * asterisk 3 * * * Pluses tight: + Plus 1 + Plus 2 + Plus 3 Pluses loose: + Plus 1 + Plus 2 + Plus 3 * * * Minuses tight: - Minus 1 - Minus 2 - Minus 3 Minuses loose: - Minus 1 - Minus 2 - Minus 3 ## Ordered Tight: 1. First 2. Second 3. Third and: 1. One 2. Two 3. Three Loose using tabs: 1. First 2. Second 3. Third and using spaces: 1. One 2. Two 3. Three Multiple paragraphs: 1. Item 1, graf one. Item 2. graf two. The quick brown fox jumped over the lazy dog's back. 2. Item 2. 3. Item 3. ## Nested * Tab * Tab * Tab Here's another: 1. First 2. Second: * Fee * Fie * Foe 3. Third Same thing but with paragraphs: 1. First 2. Second: * Fee * Fie * Foe 3. Third Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Ordered_and_unordered_lists.xhtml000644 777777 000024 00000000172 12362521047 034150 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051451 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Ordered_and_unordered_lists.xhtml000644 €;Ðâp000024 00000003132 12362521047 032761 0ustar00tdoranstaff000000 000000

    Unordered

    Asterisks tight:

    • asterisk 1
    • asterisk 2
    • asterisk 3

    Asterisks loose:

    • asterisk 1

    • asterisk 2

    • asterisk 3


    Pluses tight:

    • Plus 1
    • Plus 2
    • Plus 3

    Pluses loose:

    • Plus 1

    • Plus 2

    • Plus 3


    Minuses tight:

    • Minus 1
    • Minus 2
    • Minus 3

    Minuses loose:

    • Minus 1

    • Minus 2

    • Minus 3

    Ordered

    Tight:

    1. First
    2. Second
    3. Third

    and:

    1. One
    2. Two
    3. Three

    Loose using tabs:

    1. First

    2. Second

    3. Third

    and using spaces:

    1. One

    2. Two

    3. Three

    Multiple paragraphs:

    1. Item 1, graf one.

      Item 2. graf two. The quick brown fox jumped over the lazy dog's back.

    2. Item 2.

    3. Item 3.

    Nested

    • Tab
      • Tab
        • Tab

    Here's another:

    1. First
    2. Second:
      • Fee
      • Fie
      • Foe
    3. Third

    Same thing but with paragraphs:

    1. First

    2. Second:

      • Fee
      • Fie
      • Foe
    3. Third

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/PHP-ASP_tags.text000644 777777 000024 00000000172 12362521047 030373 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051452 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PHP-ASP_tags.text000644 €;Ðâp000024 00000000317 12362521047 027206 0ustar00tdoranstaff000000 000000 I am going with the same as Markdown.pl 1.0.2b8 here. *However* I reserve the right to also leave Template toolkit alone at a later date if I need to.. <%foo ok %> [% template_toolkit %]Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/PHP-ASP_tags.xhtml000644 777777 000024 00000000172 12362521047 030543 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051453 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PHP-ASP_tags.xhtml000644 €;Ðâp000024 00000000345 12362521047 027357 0ustar00tdoranstaff000000 000000

    I am going with the same as Markdown.pl 1.0.2b8 here. However I reserve the right to also leave Template toolkit alone at a later date if I need to..

    <%foo ok %>

    [% template_toolkit %]

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Special_Characters.text000644 777777 000024 00000000172 12362521047 032024 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051454 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Special_Characters.text000644 €;Ðâp000024 00000000147 12362521047 030640 0ustar00tdoranstaff000000 000000 This is a list of special characters that are converted by MultiMarkdown. © should be converted. Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Special_Characters.xhtml000644 777777 000024 00000000172 12362521047 032174 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051455 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Special_Characters.xhtml000644 €;Ðâp000024 00000000165 12362521047 031010 0ustar00tdoranstaff000000 000000

    This is a list of special characters that are converted by MultiMarkdown.

    © should be converted.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Strong_and_em_together.text000644 777777 000024 00000000172 12362521047 032765 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051456 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Strong_and_em_together.text000644 €;Ðâp000024 00000000715 12362521047 031602 0ustar00tdoranstaff000000 000000 ***This is strong and em.*** So is ***this*** word. ___This is strong and em.___ So is ___this___ word. (Remember that `*` and `_` do not work in the middle of words in MultiMarkdown - too much accidental stuff with URL's) *\*This is em with surrounding asterisks.\** Rigorous test of combined strong and em: The sun is **_yellow and bright_**. The sky is __*blue and clear*__. The moon is *__full and gray__*. The stars are _**Bright and sparkly**_.Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Strong_and_em_together.xhtml000644 777777 000024 00000000172 12362521047 033135 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051457 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Strong_and_em_together.xhtml000644 €;Ðâp000024 00000001325 12362521047 031750 0ustar00tdoranstaff000000 000000

    This is strong and em.

    So is this word.

    This is strong and em.

    So is this word.

    (Remember that * and _ do not work in the middle of words in MultiMarkdown - too much accidental stuff with URL's)

    *This is em with surrounding asterisks.*

    Rigorous test of combined strong and em:

    The sun is yellow and bright.

    The sky is blue and clear.

    The moon is full and gray.

    The stars are Bright and sparkly.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Tables.text000644 777777 000024 00000000172 12362521047 027517 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051458 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tables.text000644 €;Ðâp000024 00000001611 12362521047 026330 0ustar00tdoranstaff000000 000000 And this should be a link to the [Prototype][]. Table with nested headers | | Grouping || First Header | Second Header | Third Header | ------------ | :-----------: | -----------: | Content | *Long Cell* || Content | **Cell** | Cell | New section | More | Data | And more | And more || [Prototype table][prototype] Table with no headers ------------ | :-----------: | -----------: | Content | *Long Cell* || Content | **Cell** | Cell | New section | More | Data | And more | And more || And a link | [test link][] || Cross Reference| [Test Header][]|| [Headerless table][Caption here this can be added to Xrefs for links] And this should be a link to the [Prototype][]. # Test Header # This is a separate section. [test link]: http://some.place.comm/ Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Tables.xhtml000644 777777 000024 00000000172 12362521047 027667 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051459 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tables.xhtml000644 €;Ðâp000024 00000003431 12362521047 026502 0ustar00tdoranstaff000000 000000

    And this should be a link to the Prototype.

    Table with nested headers

    Prototype table
    Grouping
    First Header Second Header Third Header
    Content Long Cell
    Content Cell Cell
    New section More Data
    And more And more

    Table with no headers

    Headerless table
    Content Long Cell
    Content Cell Cell
    New section More Data
    And more And more
    And a link test link
    Cross Reference Test Header

    And this should be a link to the Prototype.

    Test Header

    This is a separate section.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Tabs.text000644 777777 000024 00000000172 12362521047 027176 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051460 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tabs.text000644 €;Ðâp000024 00000000467 12362521047 026017 0ustar00tdoranstaff000000 000000 + this is a list item indented with tabs + this is a list item indented with spaces Code: this code block is indented by one tab And: this code block is indented by two tabs And: + this is an example list item indented with tabs + this is an example list item indented with spaces Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Tabs.xhtml000644 777777 000024 00000000172 12362521047 027346 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051461 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Tabs.xhtml000644 €;Ðâp000024 00000000667 12362521047 026171 0ustar00tdoranstaff000000 000000
    • this is a list item indented with tabs

    • this is a list item indented with spaces

    Code:

    this code block is indented by one tab
    

    And:

        this code block is indented by two tabs
    

    And:

    +   this is an example list item
        indented with tabs
    
    +   this is an example list item
        indented with spaces
    
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Warnings-rt34856.text000644 777777 000024 00000000172 12362521047 031132 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051462 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Warnings-rt34856.text000644 €;Ðâp000024 00000000062 12362521047 027742 0ustar00tdoranstaff000000 000000 | table | table | table | | | | | | a | b | c | Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Warnings-rt34856.xhtml000644 777777 000024 00000000172 12362521047 031302 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051463 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Warnings-rt34856.xhtml000644 €;Ðâp000024 00000000255 12362521047 030116 0ustar00tdoranstaff000000 000000
    table table table
    a b c
    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Wiki_Features.text000644 777777 000024 00000000172 12362521047 031046 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051464 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Wiki_Features.text000644 €;Ðâp000024 00000000447 12362521047 027665 0ustar00tdoranstaff000000 000000 Use WikiLinks: true Base Url: http://some.url.com/path/to/wiki/ This is a sample WikiWord, and a \WikiWord that is not a WikiWord. And this is a [[Free Link]]. A WikiWord and an escaped \WikiWord in a code block. And a `WikiWord in a code span`. And an escaped `\WikiWord` in a code span.Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/Wiki_Features.xhtml000644 777777 000024 00000000172 12362521047 031216 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051465 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/Wiki_Features.xhtml000644 €;Ðâp000024 00000001032 12362521047 030024 0ustar00tdoranstaff000000 000000 Base Url: http://some.url.com/path/to/wiki/
    Use WikiLinks: true

    This is a sample WikiWord, and a WikiWord that is not a WikiWord. And this is a Free Link.

    A WikiWord and an escaped \WikiWord in a code block.
    

    And a WikiWord in a code span.

    And an escaped \WikiWord in a code span.

    Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/XHTML_Headers.text000644 777777 000024 00000000172 12362521047 030634 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051466 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/XHTML_Headers.text000644 €;Ðâp000024 00000000600 12362521047 027442 0ustar00tdoranstaff000000 000000 Title: MultiMarkdown Test & Document Author: Fletcher T. Penney, MD & others Email: John "Bull" Doe Date: January 14, 2006 Format: complete Css: http://some.url/sample.css XHTML Header: Intro: This is the first paragraph.Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/PaxHeader/XHTML_Headers.xhtml000644 777777 000024 00000000172 12362521047 031004 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051467 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/Text-MultiMarkdown.mdtest/XHTML_Headers.xhtml000644 €;Ðâp000024 00000001321 12362521047 027613 0ustar00tdoranstaff000000 000000 MultiMarkdown Test & Document

    Intro: This is the first paragraph.

    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Backslash_escapes.text000644 777777 000024 00000000172 12362521047 030761 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051369 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Backslash_escapes.text000644 €;Ðâp000024 00000001571 12362521047 027577 0ustar00tdoranstaff000000 000000 These should all get escaped: Backslash: \\ Backtick: \` Asterisk: \* Underscore: \_ Left brace: \{ Right brace: \} Left bracket: \[ Right bracket: \] Left paren: \( Right paren: \) Greater-than: \> Hash: \# Period: \. Bang: \! Plus: \+ Minus: \- These should not, because they occur within a code block: Backslash: \\ Backtick: \` Asterisk: \* Underscore: \_ Left brace: \{ Right brace: \} Left bracket: \[ Right bracket: \] Left paren: \( Right paren: \) Greater-than: \> Hash: \# Period: \. Bang: \! Plus: \+ Minus: \- Nor should these, which occur in code spans: Backslash: `\\` Backtick: `` \` `` Asterisk: `\*` Underscore: `\_` Left brace: `\{` Right brace: `\}` Left bracket: `\[` Right bracket: `\]` Left paren: `\(` Right paren: `\)` Greater-than: `\>` Hash: `\#` Period: `\.` Bang: `\!` Plus: `\+` Minus: `\-` Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Backslash_escapes.xhtml000644 777777 000024 00000000172 12362521047 031131 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051370 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Backslash_escapes.xhtml000644 €;Ðâp000024 00000002425 12362521047 027746 0ustar00tdoranstaff000000 000000 These should all get escaped:

    Backslash: \

    Backtick: `

    Asterisk: *

    Underscore: _

    Left brace: {

    Right brace: }

    Left bracket: [

    Right bracket: ]

    Left paren: (

    Right paren: )

    Greater-than: >

    Hash: #

    Period: .

    Bang: !

    Plus: +

    Minus: -

    These should not, because they occur within a code block:

    Backslash: \\
    
    Backtick: \`
    
    Asterisk: \*
    
    Underscore: \_
    
    Left brace: \{
    
    Right brace: \}
    
    Left bracket: \[
    
    Right bracket: \]
    
    Left paren: \(
    
    Right paren: \)
    
    Greater-than: \>
    
    Hash: \#
    
    Period: \.
    
    Bang: \!
    
    Plus: \+
    
    Minus: \-
    

    Nor should these, which occur in code spans:

    Backslash: \\

    Backtick: \`

    Asterisk: \*

    Underscore: \_

    Left brace: \{

    Right brace: \}

    Left bracket: \[

    Right bracket: \]

    Left paren: \(

    Right paren: \)

    Greater-than: \>

    Hash: \#

    Period: \.

    Bang: \!

    Plus: \+

    Minus: \-

    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Footnotes.text000644 777777 000024 00000000172 12362521047 027343 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051371 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Footnotes.text000644 €;Ðâp000024 00000000062 12362521047 026153 0ustar00tdoranstaff000000 000000 Test footnote.[^1][]. [^1]: This is a footnote. Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Footnotes.xhtml000644 777777 000024 00000000172 12362521047 027513 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051372 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Footnotes.xhtml000644 €;Ðâp000024 00000000354 12362521047 026327 0ustar00tdoranstaff000000 000000

    Test footnote.1[].


    1. This is a footnote. ↩

    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Advanced).text000644 777777 000024 00000000172 12362521047 031333 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051373 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Advanced).text000644 €;Ðâp000024 00000000206 12362521047 030143 0ustar00tdoranstaff000000 000000 Simple block on one line:
    foo
    And nested without indentation:
    foo
    bar
    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Advanced).xhtml000644 777777 000024 00000000172 12362521047 031503 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051374 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Advanced).xhtml000644 €;Ðâp000024 00000000223 12362521047 030312 0ustar00tdoranstaff000000 000000 Simple block on one line:
    foo

    And nested without indentation:

    foo
    bar
    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Simple).text000644 777777 000024 00000000172 12362521047 031057 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051375 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Simple).text000644 €;Ðâp000024 00000001051 12362521047 027666 0ustar00tdoranstaff000000 000000 Here's a simple block:
    foo
    This should be a code block, though:
    foo
    As should this:
    foo
    Now, nested:
    foo
    This should just be an HTML comment: Multiline: Code block: Just plain comment, with trailing spaces on the line: Code:
    Hr's:








    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Inline_HTML_(Simple).xhtml000644 777777 000024 00000000172 12362521047 031227 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051376 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_(Simple).xhtml000644 €;Ðâp000024 00000001420 12362521047 030036 0ustar00tdoranstaff000000 000000

    Here's a simple block:

    foo

    This should be a code block, though:

    <div>
        foo
    </div>
    

    As should this:

    <div>foo</div>
    

    Now, nested:

    foo

    This should just be an HTML comment:

    Multiline:

    Code block:

    <!-- Comment -->
    

    Just plain comment, with trailing spaces on the line:

    Code:

    <hr />
    

    Hr's:










    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Inline_HTML_comments.text000644 777777 000024 00000000172 12362521047 031332 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051377 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_comments.text000644 €;Ðâp000024 00000000244 12362521047 030144 0ustar00tdoranstaff000000 000000 Paragraph one. Paragraph two. The end. Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Inline_HTML_comments.xhtml000644 777777 000024 00000000172 12362521047 031502 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051378 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Inline_HTML_comments.xhtml000644 €;Ðâp000024 00000000274 12362521047 030317 0ustar00tdoranstaff000000 000000

    Paragraph one.

    Paragraph two.

    The end.

    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Links_inline_style.text000644 777777 000024 00000000172 12362521047 031221 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051379 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_inline_style.text000644 €;Ðâp000024 00000000256 12362521047 030036 0ustar00tdoranstaff000000 000000 Just a [URL](/url/). [URL and title](/url/ "title"). [URL and title](/url/ "title preceded by two spaces"). [URL and title](/url/ "title preceded by a tab"). [Empty](). Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Links_inline_style.xhtml000644 777777 000024 00000000172 12362521047 031371 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051380 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_inline_style.xhtml000644 €;Ðâp000024 00000000431 12362521047 030201 0ustar00tdoranstaff000000 000000

    Just a URL.

    URL and title.

    URL and title.

    URL and title.

    Empty.

    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Links_reference_style.text000644 777777 000024 00000000172 12362521047 031701 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051381 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_reference_style.text000644 €;Ðâp000024 00000000421 12362521047 030510 0ustar00tdoranstaff000000 000000 Foo [bar] [1]. Foo [bar][1]. Foo [bar] [1]. [1]: /url/ "Title" With [embedded [brackets]] [b]. Indented [once][]. Indented [twice][]. Indented [thrice][]. Indented [four][] times. [once]: /url [twice]: /url [thrice]: /url [four]: /url [b]: /url/ Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Links_reference_style.xhtml000644 777777 000024 00000000172 12362521047 032051 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051382 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Links_reference_style.xhtml000644 €;Ðâp000024 00000000627 12362521047 030670 0ustar00tdoranstaff000000 000000

    Foo bar.

    Foo bar.

    Foo bar.

    With embedded [brackets].

    Indented once.

    Indented twice.

    Indented thrice.

    Indented [four][] times.

    [four]: /url
    
    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Literal_quotes_in_titles.text000644 777777 000024 00000000172 12362521047 032431 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051383 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Literal_quotes_in_titles.text000644 €;Ðâp000024 00000000154 12362521047 031243 0ustar00tdoranstaff000000 000000 Foo [bar][]. Foo [bar](/url/ "Title with "quotes" inside"). [bar]: /url/ "Title with "quotes" inside" Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Literal_quotes_in_titles.xhtml000644 777777 000024 00000000172 12362521047 032601 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051384 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Literal_quotes_in_titles.xhtml000644 €;Ðâp000024 00000000243 12362521047 031412 0ustar00tdoranstaff000000 000000

    Foo bar.

    Foo bar.

    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Nested_blockquotes.text000644 777777 000024 00000000172 12362521047 031220 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051385 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Nested_blockquotes.text000644 €;Ðâp000024 00000000030 12362521047 030023 0ustar00tdoranstaff000000 000000 > foo > > > bar > > foo Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Nested_blockquotes.xhtml000644 777777 000024 00000000172 12362521047 031370 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051386 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Nested_blockquotes.xhtml000644 €;Ðâp000024 00000000151 12362521047 030177 0ustar00tdoranstaff000000 000000

    foo

    bar

    foo

    Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Ordered_and_unordered_lists.text000644 777777 000024 00000000172 12362521047 033056 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051387 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Ordered_and_unordered_lists.text000644 €;Ðâp000024 00000001511 12362521047 031666 0ustar00tdoranstaff000000 000000 ## Unordered Asterisks tight: * asterisk 1 * asterisk 2 * asterisk 3 Asterisks loose: * asterisk 1 * asterisk 2 * asterisk 3 * * * Pluses tight: + Plus 1 + Plus 2 + Plus 3 Pluses loose: + Plus 1 + Plus 2 + Plus 3 * * * Minuses tight: - Minus 1 - Minus 2 - Minus 3 Minuses loose: - Minus 1 - Minus 2 - Minus 3 ## Ordered Tight: 1. First 2. Second 3. Third and: 1. One 2. Two 3. Three Loose using tabs: 1. First 2. Second 3. Third and using spaces: 1. One 2. Two 3. Three Multiple paragraphs: 1. Item 1, graf one. Item 2. graf two. The quick brown fox jumped over the lazy dog's back. 2. Item 2. 3. Item 3. ## Nested * Tab * Tab * Tab Here's another: 1. First 2. Second: * Fee * Fie * Foe 3. Third Same thing but with paragraphs: 1. First 2. Second: * Fee * Fie * Foe 3. Third Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/PaxHeader/Ordered_and_unordered_lists.xhtml000644 777777 000024 00000000172 12362521047 033226 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051388 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/MultiMarkdown.mdtest/Ordered_and_unordered_lists.xhtml000644 €;Ðâp000024 00000003122 12362521047 032036 0ustar00tdoranstaff000000 000000

    Unordered

    Asterisks tight:

    • asterisk 1
    • asterisk 2
    • asterisk 3

    Asterisks loose:

    • asterisk 1

    • asterisk 2

    • asterisk 3


    Pluses tight:

    • Plus 1
    • Plus 2
    • Plus 3

    Pluses loose:

    • Plus 1

    • Plus 2

    • Plus 3


    Minuses tight:

    • Minus 1
    • Minus 2
    • Minus 3

    Minuses loose:

    • Minus 1

    • Minus 2

    • Minus 3

    Ordered

    Tight:

    1. First
    2. Second
    3. Third

    and:

    1. One
    2. Two
    3. Three

    Loose using tabs:

    1. First

    2. Second

    3. Third

    and using spaces:

    1. One

    2. Two

    3. Three

    Multiple paragraphs:

    1. Item 1, graf one.

      Item 2. graf two. The quick brown fox jumped over the lazy dog's back.

    2. Item 2.

    3. Item 3.

    Nested

    • Tab
      • Tab
        • Tab

    Here's another:

    1. First
    2. Second:
      • Fee
      • Fie
      • Foe
    3. Third

    Same thing but with paragraphs:

    1. First

    2. Second:

      • Fee
      • Fie
      • Foe
    3. Third

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/auto_link.html000644 777777 000024 00000000172 12362521047 032006 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051598 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.html000644 €;Ðâp000024 00000000613 12362521047 030620 0ustar00tdoranstaff000000 000000

    I can has autolink? http://icanhascheeseburger.com

    Ask garfield: garfield@example.com

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/auto_link.text000644 777777 000024 00000000172 12362521047 032026 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051599 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.text000644 €;Ðâp000024 00000000133 12362521047 030635 0ustar00tdoranstaff000000 000000 I can has autolink? Ask garfield: Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/auto_link_safe_mode.html000644 777777 000024 00000000172 12362521047 034010 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051600 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html000644 €;Ðâp000024 00000000613 12362521047 032622 0ustar00tdoranstaff000000 000000

    I can has autolink? http://icanhascheeseburger.com

    Ask garfield: garfield@example.com

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/auto_link_safe_mode.opts000644 777777 000024 00000000172 12362521047 034031 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051601 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts000644 €;Ðâp000024 00000000024 12362521047 032637 0ustar00tdoranstaff000000 000000 {'safe_mode': True} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/auto_link_safe_mode.text000644 777777 000024 00000000172 12362521047 034030 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051602 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text000644 €;Ðâp000024 00000000133 12362521047 032637 0ustar00tdoranstaff000000 000000 I can has autolink? Ask garfield: Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/basic_safe_mode.html000644 777777 000024 00000000172 12362521047 033104 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051603 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html000644 €;Ðâp000024 00000000131 12362521047 031711 0ustar00tdoranstaff000000 000000

    blah [HTML_REMOVED] blah

    [HTML_REMOVED]yowzer![HTML_REMOVED]

    blah

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/basic_safe_mode.opts000644 777777 000024 00000000172 12362521047 033125 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051604 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts000644 €;Ðâp000024 00000000133 12362521047 031734 0ustar00tdoranstaff000000 000000 # Use the old (for-compat-only) way of specifying "replace" safe mode. {"safe_mode": True} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/basic_safe_mode.text000644 777777 000024 00000000172 12362521047 033124 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051605 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text000644 €;Ðâp000024 00000000072 12362521047 031735 0ustar00tdoranstaff000000 000000 blah blah
    yowzer!
    blah t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/basic_safe_mode_escape.html000644 777777 000024 00000000172 12362521047 034345 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051606 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html000644 €;Ðâp000024 00000000141 12362521047 033232 0ustar00tdoranstaff000000 000000

    blah <img src="dangerous"> blah

    <div>yowzer!</div>

    blah

    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/basic_safe_mode_escape.opts000644 777777 000024 00000000172 12362521047 034366 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051607 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts000644 €;Ðâp000024 00000000030 12362521047 033250 0ustar00tdoranstaff000000 000000 {"safe_mode": "escape"} t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/basic_safe_mode_escape.text000644 777777 000024 00000000172 12362521047 034365 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051608 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text000644 €;Ðâp000024 00000000072 12362521047 033255 0ustar00tdoranstaff000000 000000 blah blah
    yowzer!
    blah Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/blockquote.html000644 777777 000024 00000000172 12362521047 032171 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051609 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.html000644 €;Ðâp000024 00000000177 12362521047 031010 0ustar00tdoranstaff000000 000000

    [Trent wrote]

    no way

    [Jeff wrote]

    way

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/blockquote.text000644 777777 000024 00000000172 12362521047 032211 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051610 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.text000644 €;Ðâp000024 00000000053 12362521047 031021 0ustar00tdoranstaff000000 000000 [Trent wrote] > no way [Jeff wrote] > way Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/blockquote_with_pre.html000644 777777 000024 00000000172 12362521047 034072 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051611 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html000644 €;Ðâp000024 00000000310 12362521047 032676 0ustar00tdoranstaff000000 000000

    Markdown indents blockquotes a couple of spaces necessitating some tweaks for pre-blocks in that blockquote:

    here is a check
    for that
    
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/blockquote_with_pre.text000644 777777 000024 00000000172 12362521047 034112 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051612 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text000644 €;Ðâp000024 00000000232 12362521047 032721 0ustar00tdoranstaff000000 000000 > Markdown indents blockquotes a couple of spaces > necessitating some tweaks for pre-blocks in that > blockquote: > > here is a check > for that Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/code_block_with_tabs.html000644 777777 000024 00000000172 12362521047 034151 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051613 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html000644 €;Ðâp000024 00000000176 12362521047 032767 0ustar00tdoranstaff000000 000000

    Test with tabs for _Detab:

    Code    'block' with    some    "tabs"  and "quotes"
    
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/code_block_with_tabs.text000644 777777 000024 00000000172 12362521047 034171 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051614 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text000644 €;Ðâp000024 00000000112 12362521047 032775 0ustar00tdoranstaff000000 000000 Test with tabs for `_Detab`: Code 'block' with some "tabs" and "quotes" Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/code_safe_emphasis.html000644 777777 000024 00000000172 12362521047 033622 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051615 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html000644 €;Ðâp000024 00000000216 12362521047 032433 0ustar00tdoranstaff000000 000000

    This is italic and this is bold. This is NOT _italic_ and this is __bold__ because --code-safe is turned on.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/code_safe_emphasis.opts000644 777777 000024 00000000172 12362521047 033643 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051616 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts000644 €;Ðâp000024 00000000036 12362521047 032454 0ustar00tdoranstaff000000 000000 {"extras": ["code-friendly"]} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/code_safe_emphasis.text000644 777777 000024 00000000172 12362521047 033642 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051617 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text000644 €;Ðâp000024 00000000165 12362521047 032456 0ustar00tdoranstaff000000 000000 This is *italic* and this is **bold**. This is NOT _italic_ and this is __bold__ because --code-safe is turned on. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/codeblock.html000644 777777 000024 00000000172 12362521047 031746 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051618 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.html000644 €;Ðâp000024 00000000155 12362521047 030561 0ustar00tdoranstaff000000 000000
    some code
    

    some 'splaining

    some more code
    2 > 1
    
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/codeblock.text000644 777777 000024 00000000172 12362521047 031766 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051619 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.text000644 €;Ðâp000024 00000000076 12362521047 030603 0ustar00tdoranstaff000000 000000 some code some 'splaining some more code 2 > 1 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/codespans.html000644 777777 000024 00000000172 12362521047 032000 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051620 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans.html000644 €;Ðâp000024 00000000143 12362521047 030610 0ustar00tdoranstaff000000 000000

    This is a code span. And This is one with an `embedded backtick`.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/codespans.text000644 777777 000024 00000000172 12362521047 032020 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051621 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans.text000644 €;Ðâp000024 00000000111 12362521047 030623 0ustar00tdoranstaff000000 000000 `This` is a code span. And ``This is one with an `embedded backtick` ``. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/codespans_safe_mode.html000644 777777 000024 00000000172 12362521047 034002 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051622 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html000644 €;Ðâp000024 00000000143 12362521047 032612 0ustar00tdoranstaff000000 000000

    This is a code span. And This is one with an `embedded backtick`.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/codespans_safe_mode.opts000644 777777 000024 00000000172 12362521047 034023 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051623 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts000644 €;Ðâp000024 00000000024 12362521047 032631 0ustar00tdoranstaff000000 000000 {'safe_mode': True} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/codespans_safe_mode.text000644 777777 000024 00000000172 12362521047 034022 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051624 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text000644 €;Ðâp000024 00000000111 12362521047 032625 0ustar00tdoranstaff000000 000000 `This` is a code span. And ``This is one with an `embedded backtick` ``. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/emacs_head_vars.html000644 777777 000024 00000000172 12362521047 033125 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051625 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html000644 €;Ðâp000024 00000000250 12362521047 031734 0ustar00tdoranstaff000000 000000

    This sentence talks about the Python __init__ method, which I'd rather not be interpreted as Markdown's strong.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/emacs_head_vars.text000644 777777 000024 00000000172 12362521047 033145 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051626 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text000644 €;Ðâp000024 00000000241 12362521047 031754 0ustar00tdoranstaff000000 000000 This sentence talks about the Python __init__ method, which I'd rather not be interpreted as Markdown's strong. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/emacs_tail_vars.html000644 777777 000024 00000000172 12362521047 033155 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051627 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html000644 €;Ðâp000024 00000000276 12362521047 031774 0ustar00tdoranstaff000000 000000

    This sentence talks about the Python __init__ method, which I'd rather not be interpreted as Markdown's strong.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/emacs_tail_vars.text000644 777777 000024 00000000172 12362521047 033175 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051628 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text000644 €;Ðâp000024 00000000267 12362521047 032014 0ustar00tdoranstaff000000 000000 This sentence talks about the Python __init__ method, which I'd rather not be interpreted as Markdown's strong. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/emphasis.html000644 777777 000024 00000000172 12362521047 031632 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051629 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.html000644 €;Ðâp000024 00000000202 12362521047 030436 0ustar00tdoranstaff000000 000000

    This is italic and this is bold. This is also italic and this is bold.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/emphasis.text000644 777777 000024 00000000172 12362521047 031652 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051630 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.text000644 €;Ðâp000024 00000000125 12362521047 030462 0ustar00tdoranstaff000000 000000 This is *italic* and this is **bold**. This is also _italic_ and this is __bold__. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/escapes.html000644 777777 000024 00000000172 12362521047 031444 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051631 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/escapes.html000644 €;Ðâp000024 00000000061 12362521047 030253 0ustar00tdoranstaff000000 000000

    **don't shout**

    *don't emphasize*

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/escapes.text000644 777777 000024 00000000172 12362521047 031464 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051632 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/escapes.text000644 €;Ðâp000024 00000000051 12362521047 030272 0ustar00tdoranstaff000000 000000 \*\*don't shout\*\* \*don't emphasize\* Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes.html000644 777777 000024 00000000172 12362521047 032041 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051633 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.html000644 €;Ðâp000024 00000002254 12362521047 030656 0ustar00tdoranstaff000000 000000

    This is a para with a footnote.1

    This is another para with a footnote2 in it. Actually it has two3 of them. No, three4.


    1. Here is the body of the first footnote. 

    2. And of the second footnote.

      This one has multiple paragraphs. 

    3. Here is a footnote body that starts on next line. 

    4. quickie "that looks like a link ref if not careful" 

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes.opts000644 777777 000024 00000000172 12362521047 032062 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051634 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts000644 €;Ðâp000024 00000000032 12362521047 030667 0ustar00tdoranstaff000000 000000 {"extras": ["footnotes"]} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes.text000644 777777 000024 00000000172 12362521047 032061 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051635 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.text000644 €;Ðâp000024 00000000572 12362521047 030677 0ustar00tdoranstaff000000 000000 This is a para with a footnote.[^1] This is another para with a footnote[^2] in it. Actually it has two[^3] of them. No, three[^4]. [^1]: Here is the body of the first footnote. [^2]: And of the second footnote. This one has multiple paragraphs. [^3]: Here is a footnote body that starts on next line. [^4]: quickie "that looks like a link ref if not careful" Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_letters.html000644 777777 000024 00000000172 12362521047 033603 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051636 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html000644 €;Ðâp000024 00000001754 12362521047 032424 0ustar00tdoranstaff000000 000000

    This is a para with a footnote.1

    This is another para with a footnote2 in it. Actually it has two3 of them.


    1. Here is the body of the first footnote. 

    2. And of the second footnote.

      This one has multiple paragraphs. 

    3. Here is a footnote body that starts on next line. 

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_letters.opts000644 777777 000024 00000000172 12362521047 033624 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051637 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts000644 €;Ðâp000024 00000000032 12362521047 032431 0ustar00tdoranstaff000000 000000 {"extras": ["footnotes"]} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_letters.text000644 777777 000024 00000000172 12362521047 033623 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051638 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text000644 €;Ðâp000024 00000000523 12362521047 032435 0ustar00tdoranstaff000000 000000 This is a para with a footnote.[^foo] This is another para with a footnote[^hyphen-ated] in it. Actually it has two[^Capital] of them. [^foo]: Here is the body of the first footnote. [^hyphen-ated]: And of the second footnote. This one has multiple paragraphs. [^Capital]: Here is a footnote body that starts on next line. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_markup.html000644 777777 000024 00000000172 12362521047 033420 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051639 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html000644 €;Ðâp000024 00000001442 12362521047 032233 0ustar00tdoranstaff000000 000000

    This is a para with a footnote.1

    This is another para with a footnote.2


    1. And the body of the footnote has markup. For example, a link to digg. And some code:

      print "Hello, World!"
      

    2. This body has markup too, but doesn't end with a code block. 

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_markup.opts000644 777777 000024 00000000172 12362521047 033441 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051640 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts000644 €;Ðâp000024 00000000032 12362521047 032246 0ustar00tdoranstaff000000 000000 {"extras": ["footnotes"]} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_markup.text000644 777777 000024 00000000172 12362521047 033440 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051641 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text000644 €;Ðâp000024 00000000455 12362521047 032256 0ustar00tdoranstaff000000 000000 This is a para with a footnote.[^1] This is another para with a footnote.[^2] [^1]: And the **body** of the footnote has `markup`. For example, a [link to digg](http://digg.com). And some code: print "Hello, World!" [^2]: This body has markup too, *but* doesn't end with a code block. t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_safe_mode_escape.html000644 777777 000024 00000000172 12362521047 035304 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051642 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html000644 €;Ðâp000024 00000000725 12362521047 034201 0ustar00tdoranstaff000000 000000

    This is a para with a footnote.1


    1. Here is the <em>body</em> of <span class="yo">the</span> footnote.

      <div class="blah">And here is the second para of the footnote.</div> 

    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_safe_mode_escape.opts000644 777777 000024 00000000172 12362521047 035325 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051643 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts000644 €;Ðâp000024 00000000061 12362521047 034213 0ustar00tdoranstaff000000 000000 {"safe_mode": "escape", "extras": ["footnotes"]} t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/footnotes_safe_mode_escape.text000644 777777 000024 00000000172 12362521047 035324 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051644 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text000644 €;Ðâp000024 00000000271 12362521047 034215 0ustar00tdoranstaff000000 000000 This is a para with a footnote.[^1] [^1]: Here is the body of the footnote.
    And here is the second para of the footnote.
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/header.html000644 777777 000024 00000000172 12362521047 031251 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051645 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/header.html000644 €;Ðâp000024 00000000111 12362521047 030054 0ustar00tdoranstaff000000 000000

    an h1

    an h2

    another h1

    another h2

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/header.text000644 777777 000024 00000000172 12362521047 031271 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051646 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/header.text000644 €;Ðâp000024 00000000111 12362521047 030074 0ustar00tdoranstaff000000 000000 # an h1 ## an h2 another h1 ========== another h2 ---------- Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/hr.html000644 777777 000024 00000000172 12362521047 030432 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051647 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/hr.html000644 €;Ðâp000024 00000000115 12362521047 027241 0ustar00tdoranstaff000000 000000

    Dashes:





    ---
    
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/hr.text000644 777777 000024 00000000172 12362521047 030452 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051648 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/hr.text000644 €;Ðâp000024 00000000052 12362521047 027261 0ustar00tdoranstaff000000 000000 Dashes: --- --- --- --- --- Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/img_in_link.html000644 777777 000024 00000000172 12362521047 032300 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051649 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html000644 €;Ðâp000024 00000000477 12362521047 031122 0ustar00tdoranstaff000000 000000

    This example from http://orestis.gr/en/blog/2007/05/28/python-markdown-problems/:

    the google logo

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/img_in_link.text000644 777777 000024 00000000172 12362521047 032320 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051650 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text000644 €;Ðâp000024 00000000353 12362521047 031133 0ustar00tdoranstaff000000 000000 This example from : [![the google logo][logo]][google] [logo]: http://www.google.com/images/logo.gif [google]: http://www.google.com/ "click to visit Google.com" Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/inline_links.html000644 777777 000024 00000000172 12362521047 032477 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051651 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.html000644 €;Ðâp000024 00000000357 12362521047 031316 0ustar00tdoranstaff000000 000000

    an inline link

    a link "with" title

    an inline image link

    an image "with" title

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/inline_links.text000644 777777 000024 00000000172 12362521047 032517 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051652 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.text000644 €;Ðâp000024 00000000207 12362521047 031330 0ustar00tdoranstaff000000 000000 an inline [link](/url/) a [link "with" title](/url/ "title") an inline ![image link](/url/) an ![image "with" title](/url/ "title") t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/issue2_safe_mode_borks_markup.html000644 777777 000024 00000000172 12362521047 035735 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051653 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html000644 €;Ðâp000024 00000000256 12362521047 034631 0ustar00tdoranstaff000000 000000

    Heading 2

    blah [HTML_REMOVED]alert('this should be removed')[HTML_REMOVED] blah

    [HTML_REMOVED]alert('as should this')[HTML_REMOVED]

    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/issue2_safe_mode_borks_markup.opts000644 777777 000024 00000000172 12362521047 035756 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051654 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts000644 €;Ðâp000024 00000000031 12362521047 034641 0ustar00tdoranstaff000000 000000 {"safe_mode": "replace"} t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/issue2_safe_mode_borks_markup.text000644 777777 000024 00000000172 12362521047 035755 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051655 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text000644 €;Ðâp000024 00000000170 12362521047 034644 0ustar00tdoranstaff000000 000000 ## Heading 2 blah **blah** t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_defn_alt_title_delims.html000644 777777 000024 00000000172 12362521047 035271 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051656 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html000644 €;Ðâp000024 00000000630 12362521047 034161 0ustar00tdoranstaff000000 000000

    Alternative delimiters for link definitions are allowed -- as of Markdown 1.0.2, I think. Hence, this link and this link work too.

    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_defn_alt_title_delims.text000644 777777 000024 00000000172 12362521047 035311 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051657 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text000644 €;Ðâp000024 00000000614 12362521047 034203 0ustar00tdoranstaff000000 000000 Alternative delimiters for [link definitions][link1] are allowed -- as of Markdown 1.0.2, I think. Hence, [this link][link2] and [this link][link3] work too. [link1]: http://daringfireball.net/projects/markdown/syntax#link "link syntax" [link2]: http://daringfireball.net/projects/markdown/syntax#link 'link syntax' [link3]: http://daringfireball.net/projects/markdown/syntax#link (link syntax) Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns.html000644 777777 000024 00000000172 12362521047 032676 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051658 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html000644 €;Ðâp000024 00000000247 12362521047 031513 0ustar00tdoranstaff000000 000000

    Recipe 123 and Komodo bug 234 are related.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns.opts000644 777777 000024 00000000172 12362521047 032717 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051659 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts000644 €;Ðâp000024 00000000367 12362521047 031537 0ustar00tdoranstaff000000 000000 {"extras": ["link-patterns"], "link_patterns": [ (re.compile("recipe\s+(\d+)", re.I), r"http://code.activestate.com/recipes/\1/"), (re.compile("(?:komodo\s+)?bug\s+(\d+)", re.I), r"http://bugs.activestate.com/show_bug.cgi?id=\1"), ], } Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns.text000644 777777 000024 00000000172 12362521047 032716 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051660 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text000644 €;Ðâp000024 00000000053 12362521047 031526 0ustar00tdoranstaff000000 000000 Recipe 123 and Komodo bug 234 are related. t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns_double_hit.html000644 777777 000024 00000000172 12362521047 035015 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051661 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html000644 €;Ðâp000024 00000000272 12362521047 033707 0ustar00tdoranstaff000000 000000

    There once was a Mozilla bug 123 and a Komodo bug 123.

    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns_double_hit.opts000644 777777 000024 00000000172 12362521047 035036 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051662 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts000644 €;Ðâp000024 00000000406 12362521047 033727 0ustar00tdoranstaff000000 000000 {"extras": ["link-patterns"], "link_patterns": [ (re.compile(r'mozilla\s+bug\s+(\d+)', re.I), r'http://bugzilla.mozilla.org/show_bug.cgi?id=\1'), (re.compile("(?:komodo\s+)?bug\s+(\d+)", re.I), r"http://bugs.activestate.com/show_bug.cgi?id=\1"), ], } t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns_double_hit.text000644 777777 000024 00000000172 12362521047 035035 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051663 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text000644 €;Ðâp000024 00000000067 12362521047 033731 0ustar00tdoranstaff000000 000000 There once was a Mozilla bug 123 and a Komodo bug 123. t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns_edge_cases.html000644 777777 000024 00000000172 12362521047 034761 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051664 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html000644 €;Ðâp000024 00000000145 12362521047 033652 0ustar00tdoranstaff000000 000000

    Blah 123 becomes a line with two underscores.

    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns_edge_cases.opts000644 777777 000024 00000000172 12362521047 035002 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051665 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts000644 €;Ðâp000024 00000000206 12362521047 033671 0ustar00tdoranstaff000000 000000 {"extras": ["link-patterns"], "link_patterns": [ (re.compile("Blah\s+(\d+)", re.I), r"http://foo.com/blah_blah_blah/\1"), ], } t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/link_patterns_edge_cases.text000644 777777 000024 00000000172 12362521047 035001 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051666 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text000644 €;Ðâp000024 00000000056 12362521047 033673 0ustar00tdoranstaff000000 000000 Blah 123 becomes a line with two underscores. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/lists.html000644 777777 000024 00000000172 12362521047 031157 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051667 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/lists.html000644 €;Ðâp000024 00000000221 12362521047 027764 0ustar00tdoranstaff000000 000000

    count:

    • one
    • two
    • three

    count in spanish:

    1. uno
    2. dos
    3. tres
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/lists.text000644 777777 000024 00000000172 12362521047 031177 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051668 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/lists.text000644 €;Ðâp000024 00000000106 12362521047 030006 0ustar00tdoranstaff000000 000000 count: * one * two * three count in spanish: 1. uno 2. dos 3. tres Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/mismatched_footnotes.html000644 777777 000024 00000000172 12362521047 034237 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051669 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html000644 €;Ðâp000024 00000001212 12362521047 033045 0ustar00tdoranstaff000000 000000

    This is sentence has a footnote foo1 and whamo[^whamo].

    This is another para with a numbered footnote2.


    1. Here is the body of the footnote foo. 

    2. Here is the body of the footnote 6. 

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/mismatched_footnotes.opts000644 777777 000024 00000000172 12362521047 034260 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051670 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts000644 €;Ðâp000024 00000000032 12362521047 033065 0ustar00tdoranstaff000000 000000 {"extras": ["footnotes"]} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/mismatched_footnotes.text000644 777777 000024 00000000172 12362521047 034257 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051671 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text000644 €;Ðâp000024 00000000372 12362521047 033073 0ustar00tdoranstaff000000 000000 This is sentence has a footnote foo[^foo] and whamo[^whamo]. This is another para with a numbered footnote[^6]. [^foo]: Here is the body of the footnote foo. [^bar]: Here is the body of the footnote bar. [^6]: Here is the body of the footnote 6. Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/missing_link_defn.html000644 777777 000024 00000000172 12362521047 033503 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051672 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html000644 €;Ðâp000024 00000000127 12362521047 032315 0ustar00tdoranstaff000000 000000

    This is a [missing link][missing] and a used link.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/missing_link_defn.text000644 777777 000024 00000000172 12362521047 033523 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051673 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text000644 €;Ðâp000024 00000000157 12362521047 032340 0ustar00tdoranstaff000000 000000 This is a [missing link][missing] and a [used link][used]. [used]: http://foo.com [unused]: http://foo.com Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/nested_list.html000644 777777 000024 00000000172 12362521047 032336 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051674 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.html000644 €;Ðâp000024 00000000266 12362521047 031154 0ustar00tdoranstaff000000 000000

    shopping list:

    • veggies
      • carrots
      • lettuce
    • fruits
      • oranges
      • apples
      • peaches
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/nested_list.text000644 777777 000024 00000000172 12362521047 032356 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051675 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.text000644 €;Ðâp000024 00000000152 12362521047 031166 0ustar00tdoranstaff000000 000000 shopping list: - veggies + carrots + lettuce - fruits + oranges + apples + *peaches* t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/nested_list_safe_mode.html000644 777777 000024 00000000172 12362521047 034261 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051676 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html000644 €;Ðâp000024 00000000266 12362521047 033156 0ustar00tdoranstaff000000 000000

    shopping list:

    • veggies
      • carrots
      • lettuce
    • fruits
      • oranges
      • apples
      • peaches
    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/nested_list_safe_mode.opts000644 777777 000024 00000000172 12362521047 034302 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051677 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts000644 €;Ðâp000024 00000000024 12362521047 033167 0ustar00tdoranstaff000000 000000 {'safe_mode': True} t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/nested_list_safe_mode.text000644 777777 000024 00000000172 12362521047 034301 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051678 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text000644 €;Ðâp000024 00000000152 12362521047 033170 0ustar00tdoranstaff000000 000000 shopping list: - veggies + carrots + lettuce - fruits + oranges + apples + *peaches* Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/parens_in_url_4.html000644 777777 000024 00000000172 12362521047 033104 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051679 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html000644 €;Ðâp000024 00000000125 12362521047 031714 0ustar00tdoranstaff000000 000000

    Inline link 4 with non-escaped parens.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/parens_in_url_4.text000644 777777 000024 00000000172 12362521047 033124 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051680 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text000644 €;Ðâp000024 00000000077 12362521047 031742 0ustar00tdoranstaff000000 000000 [Inline link 4 with non-escaped parens]( "title"). Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/raw_html.html000644 777777 000024 00000000172 12362521047 031636 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051681 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.html000644 €;Ðâp000024 00000000143 12362521047 030446 0ustar00tdoranstaff000000 000000

    Hi, there. blah

    **ack**
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/raw_html.text000644 777777 000024 00000000172 12362521047 031656 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051682 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.text000644 €;Ðâp000024 00000000126 12362521047 030467 0ustar00tdoranstaff000000 000000 Hi, *there*. blah
    **ack**
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/ref_links.html000644 777777 000024 00000000172 12362521047 031775 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051683 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.html000644 €;Ðâp000024 00000000143 12362521047 030605 0ustar00tdoranstaff000000 000000

    Google is fast star.

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/ref_links.text000644 777777 000024 00000000172 12362521047 032015 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051684 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.text000644 €;Ðâp000024 00000000130 12362521047 030621 0ustar00tdoranstaff000000 000000 [Google][] is fast ![star][]. [google]: http://www.google.com/ [star]: /img/star.png Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/sublist-para.html000644 777777 000024 00000000172 12362521047 032427 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051685 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html000644 €;Ðâp000024 00000001204 12362521047 031236 0ustar00tdoranstaff000000 000000

    Some quick thoughts from a coder's perspective:

    • The source will be available in a Mercurial ...

    • Komodo is a Mozilla-based application...

      • Get a slightly tweaked mozilla build (C++, JavaScript, XUL).
      • Get a slightly tweaks Python build (C).
      • Add a bunch of core logic (Python)...
      • Add Komodo chrome (XUL, JavaScript, CSS, DTDs).

      What this means is that work on and add significant functionality...

    • Komodo uses the same extension mechanisms as Firefox...

    • Komodo builds and runs on Windows, Linux and ...

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/sublist-para.text000644 777777 000024 00000000172 12362521047 032447 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051686 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text000644 €;Ðâp000024 00000001023 12362521047 031255 0ustar00tdoranstaff000000 000000 Some quick thoughts from a coder's perspective: - The source will be available in a Mercurial ... - Komodo is a Mozilla-based application... - Get a slightly tweaked mozilla build (C++, JavaScript, XUL). - Get a slightly tweaks Python build (C). - Add a bunch of core logic (Python)... - Add Komodo chrome (XUL, JavaScript, CSS, DTDs). What this means is that work on and add significant functionality... - Komodo uses the same extension mechanisms as Firefox... - Komodo builds and runs on Windows, Linux and ... Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/syntax_color.html000644 777777 000024 00000000172 12362521047 032545 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051687 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html000644 €;Ðâp000024 00000002002 12362521047 031351 0ustar00tdoranstaff000000 000000

    Here is some sample code:

    import sys
    def main(argv=sys.argv):
        logging.basicConfig()
        log.info('hi')
    

    and:

    use 'zlib'
    sub main(argv)
        puts 'hi'
    end
    
    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/syntax_color.opts000644 777777 000024 00000000172 12362521047 032566 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051688 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts000644 €;Ðâp000024 00000000033 12362521047 031374 0ustar00tdoranstaff000000 000000 {"extras": ["code-color"]} Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/syntax_color.text000644 777777 000024 00000000172 12362521047 032565 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051689 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text000644 €;Ðâp000024 00000000331 12362521047 031374 0ustar00tdoranstaff000000 000000 Here is some sample code: :::python import sys def main(argv=sys.argv): logging.basicConfig() log.info('hi') and: :::ruby use 'zlib' sub main(argv) puts 'hi' end Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/tricky_anchors.html000644 777777 000024 00000000172 12362521047 033043 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051690 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html000644 €;Ðâp000024 00000000622 12362521047 031655 0ustar00tdoranstaff000000 000000

    with [brackets][] in text

    with [[brackets][]] in text

    full link [like](/this/) in text

    full link to img like is ok

    [only open bracket(/in/) text

    only close bracket text](/url/)

    Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/tricky_anchors.text000644 777777 000024 00000000172 12362521047 033063 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051691 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text000644 €;Ðâp000024 00000000414 12362521047 031674 0ustar00tdoranstaff000000 000000 [with [brackets][] in text](/url/) [with [[brackets][]] in text](/url/ "a title") [full link [like](/this/) in text](/url/) [full link to img ![like](/this/) is ok](/url/) [only open [bracket(/in/) text](/url/ 'a title') [only close bracket](/in/) text](/url/) t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/underline_in_autolink.html000644 777777 000024 00000000172 12362521047 034323 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051692 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html000644 €;Ðâp000024 00000000347 12362521047 033220 0ustar00tdoranstaff000000 000000

    Eric wrote up a (long) intro to writing UDL definitions a while back on his blog: http://blogs.activestate.com/ericp/2007/01/kid_adding_a_ne.html

    t/docs-pythonmarkdown2-tm-cases-pass/PaxHeader/underline_in_autolink.text000644 777777 000024 00000000172 12362521047 034343 xustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.00003518 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051693 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text000644 €;Ðâp000024 00000000224 12362521047 033232 0ustar00tdoranstaff000000 000000 Eric wrote up a (long) intro to writing UDL definitions a while back on his blog: Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/PaxHeader/Amps_and_angle_encoding.html000644 777777 000024 00000000172 12362521047 032573 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051591 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Amps_and_angle_encoding.html000644 €;Ðâp000024 00000001200 12362521047 031376 0ustar00tdoranstaff000000 000000

    AT&T has an ampersand in their name.

    AT&T is another way to write it.

    This & that.

    4 < 5.

    6 > 5.

    Here's a link with an ampersand in the URL.

    Here's a link with an amersand in the link text: AT&T.

    Here's an inline link.

    Here's an inline link.

    This is not handled <<properly>>.

    But this <<is>>.
    

    As is << this>>/.

    Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/PaxHeader/Amps_and_angle_encoding.text000644 777777 000024 00000000172 12362521047 032613 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051592 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Amps_and_angle_encoding.text000644 €;Ðâp000024 00000000710 12362521047 031423 0ustar00tdoranstaff000000 000000 AT&T has an ampersand in their name. AT&T is another way to write it. This & that. 4 < 5. 6 > 5. Here's a [link] [1] with an ampersand in the URL. Here's a link with an amersand in the link text: [AT&T] [2]. Here's an inline [link](/script?foo=1&bar=2). Here's an inline [link](). [1]: http://example.com/?foo=1&bar=2 [2]: http://att.com/ "AT&T" This is not handled <>. But this <>. As is << this>>/. Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/PaxHeader/Email_Obfuscation.html000644 777777 000024 00000000172 12362521047 031420 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051593 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Email_Obfuscation.html000644 €;Ðâp000024 00000000504 12362521047 030231 0ustar00tdoranstaff000000 000000

    some.user@some.company.com

    some.user@some.company.com

    Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/PaxHeader/Email_Obfuscation.text000644 777777 000024 00000000172 12362521047 031440 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051594 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Email_Obfuscation.text000644 €;Ðâp000024 00000000071 12362521047 030250 0ustar00tdoranstaff000000 000000 some.user@some.company.com Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/PaxHeader/Tidyness.html000644 777777 000024 00000000172 12362521047 027637 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051595 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Tidyness.html000644 €;Ðâp000024 00000000205 12362521047 026446 0ustar00tdoranstaff000000 000000

    A list within a blockquote:

    • asterisk 1
    • asterisk 2
    • asterisk 3
    Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/PaxHeader/Tidyness.text000644 777777 000024 00000000172 12362521047 027657 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051596 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-multimarkdown-todo/Tidyness.text000644 €;Ðâp000024 00000000116 12362521047 026467 0ustar00tdoranstaff000000 000000 > A list within a blockquote: > > * asterisk 1 > * asterisk 2 > * asterisk 3 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/abbreviations.html000644 777777 000024 00000000172 12362521047 030206 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051471 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/abbreviations.html000644 €;Ðâp000024 00000000323 12362521047 027016 0ustar00tdoranstaff000000 000000

    The HTML specification is maintained by the W3C.

    Operation Tigra Genesis is going well.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/abbreviations.text000644 777777 000024 00000000172 12362521047 030226 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051472 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/abbreviations.text000644 €;Ðâp000024 00000000267 12362521047 027045 0ustar00tdoranstaff000000 000000 The HTML specification is maintained by the W3C. *[HTML]: Hyper Text Markup Language *[W3C]: World Wide Web Consortium Operation Tigra Genesis is going well. *[Tigra Genesis]: Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/alt.html000644 777777 000024 00000000172 12362521047 026136 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051473 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/alt.html000644 €;Ðâp000024 00000000050 12362521047 024743 0ustar00tdoranstaff000000 000000

    bar

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/alt.text000644 777777 000024 00000000172 12362521047 026156 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051474 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/alt.text000644 €;Ðâp000024 00000000024 12362521047 024764 0ustar00tdoranstaff000000 000000 ![bar](/foo.jpg) Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/blank.html000644 777777 000024 00000000172 12362521047 026445 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051475 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blank.html000644 €;Ðâp000024 00000000037 12362521047 025257 0ustar00tdoranstaff000000 000000

    Linea 1

    Linea 2

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/blank.text000644 777777 000024 00000000172 12362521047 026465 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051476 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blank.text000644 €;Ðâp000024 00000000022 12362521047 025271 0ustar00tdoranstaff000000 000000 Linea 1 Linea 2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/blanks_in_code.html000644 777777 000024 00000000172 12362521047 030310 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051477 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blanks_in_code.html000644 €;Ðâp000024 00000000333 12362521047 027121 0ustar00tdoranstaff000000 000000

    This block is composed of three lines:

    one
    
    three

    This block is composed of 5

    one
    
    
    four

    This block is composed of 2

    two
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/blanks_in_code.text000644 777777 000024 00000000172 12362521047 030330 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051478 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/blanks_in_code.text000644 €;Ðâp000024 00000000220 12362521047 027134 0ustar00tdoranstaff000000 000000 This block is composed of three lines: one three This block is composed of 5 one four This block is composed of 2 two Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/bug_def.html000644 777777 000024 00000000172 12362521047 026751 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051479 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_def.html000644 €;Ðâp000024 00000000032 12362521047 025556 0ustar00tdoranstaff000000 000000

    test:

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/bug_def.text000644 777777 000024 00000000172 12362521047 026771 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051480 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_def.text000644 €;Ðâp000024 00000000013 12362521047 025575 0ustar00tdoranstaff000000 000000 [test][]: Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/bug_table.html000644 777777 000024 00000000172 12362521047 027302 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051481 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_table.html000644 €;Ðâp000024 00000000423 12362521047 026113 0ustar00tdoranstaff000000 000000

    hello

    hh
    c1c2
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/bug_table.text000644 777777 000024 00000000172 12362521047 027322 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051482 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/bug_table.text000644 €;Ðâp000024 00000000265 12362521047 026137 0ustar00tdoranstaff000000 000000 hello {: summary="Table summary" .class1 style="color:red"} h | h ----------|-- {:t} c1 | c2 {: summary="Table summary" .class1 style="color:red"} {:t: scope="row"} Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/code.html000644 777777 000024 00000000172 12362521047 026270 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051483 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code.html000644 €;Ðâp000024 00000000173 12362521047 025103 0ustar00tdoranstaff000000 000000

    Here is an example of AppleScript:

    tell application "Foo"
        beep
    end tell
    	tab
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/code.text000644 777777 000024 00000000172 12362521047 026310 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051484 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code.text000644 €;Ðâp000024 00000000143 12362521047 025120 0ustar00tdoranstaff000000 000000 Here is an example of AppleScript: tell application "Foo" beep end tell tab Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/code2.html000644 777777 000024 00000000172 12362521047 026352 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051485 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code2.html000644 €;Ðâp000024 00000000105 12362521047 025160 0ustar00tdoranstaff000000 000000

    Code

    Ciao
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/code2.text000644 777777 000024 00000000172 12362521047 026372 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051486 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code2.text000644 €;Ðâp000024 00000000024 12362521047 025200 0ustar00tdoranstaff000000 000000 > Code > > Ciao Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/code3.html000644 777777 000024 00000000172 12362521047 026353 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051487 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code3.html000644 €;Ðâp000024 00000000350 12362521047 025163 0ustar00tdoranstaff000000 000000

    This is code (4 spaces):

    Code

    This is not code

    Code

    This is code (1 tab):

    Code

    This is not code

    Code
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/code3.text000644 777777 000024 00000000172 12362521047 026373 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051488 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/code3.text000644 €;Ðâp000024 00000000174 12362521047 025207 0ustar00tdoranstaff000000 000000 This is code (4 spaces): Code This is not code Code This is code (1 tab): Code This is not code Code Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/convert.pl000644 777777 000024 00000000172 12362521047 026505 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051489 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/convert.pl000644 €;Ðâp000024 00000001763 12362521047 025326 0ustar00tdoranstaff000000 000000 use strict; use warnings; open(LS, "ls -1 *.md|") or die; my @list = ; close(LS); foreach (@list) { chomp; s/\.md$//; my ($markdown, $html) = convert_to_perl_test("$_.md"); open(MD, ">$_.text") or die; print MD $markdown; close(MD); open(MD, ">$_.html") or die; print MD $html; close(MD); } sub convert_to_perl_test { my ($file) = @_; my $FH; open($FH, '<', $file) or die("Cannot open $file"); my ($markdown, $html); my @lines = <$FH>; close($FH); my $mode = 0; foreach my $l (@lines) { if ($l =~ /^\*\*\*/) { $mode = 0; if ($l =~ /Markdown input/i) { $mode = 1; } if ($l =~ /Output of to_html/) { $mode = 2; } } elsif ($mode > 0) { if (1 == $mode) { $markdown .= $l; } else { $html .= $l; } } } return ($markdown, $html); } Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/data_loss.html000644 777777 000024 00000000172 12362521047 027327 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051490 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/data_loss.html000644 €;Ðâp000024 00000000043 12362521047 026136 0ustar00tdoranstaff000000 000000
    1. abcd efgh ijkl
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/data_loss.text000644 777777 000024 00000000172 12362521047 027347 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051491 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/data_loss.text000644 €;Ðâp000024 00000000023 12362521047 026154 0ustar00tdoranstaff000000 000000 1. abcd efgh ijkl Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/easy.html000644 777777 000024 00000000172 12362521047 026317 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051492 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/easy.html000644 €;Ðâp000024 00000000065 12362521047 025132 0ustar00tdoranstaff000000 000000

    Hello! how are you?

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/easy.text000644 777777 000024 00000000172 12362521047 026337 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051493 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/easy.text000644 €;Ðâp000024 00000000032 12362521047 025144 0ustar00tdoranstaff000000 000000 *Hello!* how are **you**? Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/email.html000644 777777 000024 00000000172 12362521047 026445 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051494 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/email.html000644 €;Ðâp000024 00000000257 12362521047 025263 0ustar00tdoranstaff000000 000000

    This is an email address: andrea@invalid.it

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/email.text000644 777777 000024 00000000172 12362521047 026465 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051495 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/email.text000644 €;Ðâp000024 00000000062 12362521047 025275 0ustar00tdoranstaff000000 000000 This is an email address: Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/entities.html000644 777777 000024 00000000172 12362521047 027202 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051496 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/entities.html000644 €;Ðâp000024 00000001640 12362521047 026015 0ustar00tdoranstaff000000 000000

    Maruku translates HTML entities to the equivalent in LaTeX:

    EntityResult
    &copy;©
    &pound;£
    a&nbsp;ba b
    &lambda;λ
    &mdash;

    Entity-substitution does not happen in code blocks or inline code.

    The following should not be translated:

    &copy;

    It should read just like this: &copy;.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/entities.text000644 777777 000024 00000000172 12362521047 027222 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051497 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/entities.text000644 €;Ðâp000024 00000000601 12362521047 026031 0ustar00tdoranstaff000000 000000 Maruku translates HTML entities to the equivalent in LaTeX: Entity | Result ------------|---------- `©` | © `£` | £ `a b` | a b `λ` | λ `—` | — Entity-substitution does not happen in code blocks or inline code. The following should not be translated: © It should read just like this: `©`. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/escaping.html000644 777777 000024 00000000172 12362521047 027147 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051498 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/escaping.html000644 €;Ðâp000024 00000000532 12362521047 025761 0ustar00tdoranstaff000000 000000

    Hello: ! ! ` { } [ ] ( ) # . ! * * *

    Ora, emphasis, bold, * <- due asterischi-> * , un underscore-> _ , emphasis, incrediblee!

    This is Code with a special: -> ` <-(after)

    Start of paragraph

    End of paragraph

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/escaping.text000644 777777 000024 00000000172 12362521047 027167 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051499 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/escaping.text000644 €;Ðâp000024 00000000367 12362521047 026007 0ustar00tdoranstaff000000 000000 Hello: ! \! \` \{ \} \[ \] \( \) \# \. \! * \* * Ora, *emphasis*, **bold**, * <- due asterischi-> * , un underscore-> _ , _emphasis_, incre*dible*e! This is ``Code with a special: -> ` <- ``(after) `Start ` of paragraph End of `paragraph ` Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/extra_dl.html000644 777777 000024 00000000172 12362521047 027160 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051500 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_dl.html000644 €;Ðâp000024 00000000270 12362521047 025771 0ustar00tdoranstaff000000 000000
    Apple
    Pomaceous fruit of plants of the genus Malus in the family Rosaceae.
    Orange
    The fruit of an evergreen tree of the genus Citrus.
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/extra_dl.text000644 777777 000024 00000000172 12362521047 027200 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051501 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_dl.text000644 €;Ðâp000024 00000000246 12362521047 026014 0ustar00tdoranstaff000000 000000 CSS: style.css Apple : Pomaceous fruit of plants of the genus Malus in the family Rosaceae. Orange : The fruit of an evergreen tree of the genus Citrus. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/extra_header_id.html000644 777777 000024 00000000172 12362521047 030465 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051502 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_header_id.html000644 €;Ðâp000024 00000000505 12362521047 027277 0ustar00tdoranstaff000000 000000

    Header 1

    Header 2

    Header 3

    Then you can create links to different parts of the same document like this:

    Link back to header 1, Link back to header 2, Link back to header 3

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/extra_header_id.text000644 777777 000024 00000000172 12362521047 030505 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051503 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_header_id.text000644 €;Ðâp000024 00000000453 12362521047 027321 0ustar00tdoranstaff000000 000000 Header 1 {#header1} ======== Header 2 {#header2} -------- ### Header 3 ### {#header3} Then you can create links to different parts of the same document like this: [Link back to header 1](#header1), [Link back to header 2](#header2), [Link back to header 3](#header3) Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/extra_table1.html000644 777777 000024 00000000172 12362521047 027731 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051504 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_table1.html000644 €;Ðâp000024 00000000462 12362521047 026545 0ustar00tdoranstaff000000 000000
    First HeaderSecond Header
    Content CellContent Cell
    Content CellContent Cell
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/extra_table1.text000644 777777 000024 00000000172 12362521047 027751 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051505 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/extra_table1.text000644 €;Ðâp000024 00000000207 12362521047 026562 0ustar00tdoranstaff000000 000000 CSS: style.css First Header | Second Header ------------- | ------------- Content Cell | Content Cell Content Cell | Content Cell Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/footnotes.html000644 777777 000024 00000000172 12362521047 027376 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051506 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/footnotes.html000644 €;Ðâp000024 00000001414 12362521047 026210 0ustar00tdoranstaff000000 000000

    That’s some text with a footnote 1 and another 2 and another 3.

    This is not a footnote.


    1. And that’s the footnote. This is second sentence (same paragraph).

    2. This is the very long one.

      That’s the second paragraph.

    3. And that’s the footnote.

      That’s the second paragraph of the footnote.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/footnotes.text000644 777777 000024 00000000172 12362521047 027416 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051507 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/footnotes.text000644 €;Ðâp000024 00000000510 12362521047 026224 0ustar00tdoranstaff000000 000000 That's some text with a footnote [^b] and another [^c] and another [^a]. [^a]: And that's the footnote. That's the second paragraph of the footnote. [^b]: And that's the footnote. This is second sentence (same paragraph). [^c]: This is the very long one. That's the second paragraph. This is not a footnote. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/headers.html000644 777777 000024 00000000172 12362521047 026771 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051508 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/headers.html000644 €;Ðâp000024 00000000313 12362521047 025600 0ustar00tdoranstaff000000 000000

    A title with emphasis

    A title with emphasis

    A title with emphasis

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/headers.text000644 777777 000024 00000000172 12362521047 027011 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051509 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/headers.text000644 €;Ðâp000024 00000000210 12362521047 025614 0ustar00tdoranstaff000000 000000 A title with *emphasis* ======================= A title with *emphasis* ----------------------- #### A title with *emphasis* #### Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/hex_entities.html000644 777777 000024 00000000172 12362521047 030046 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051510 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hex_entities.html000644 €;Ðâp000024 00000000313 12362521047 026655 0ustar00tdoranstaff000000 000000

    Examples of numeric character references include © or © for the copyright symbol, Α or Α for the Greek capital letter alpha, and ا or ا for the Arabic letter alef.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/hex_entities.text000644 777777 000024 00000000172 12362521047 030066 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051511 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hex_entities.text000644 €;Ðâp000024 00000000307 12362521047 026700 0ustar00tdoranstaff000000 000000 Examples of numeric character references include © or © for the copyright symbol, Α or Α for the Greek capital letter alpha, and ا or ا for the Arabic letter alef. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/hrule.html000644 777777 000024 00000000172 12362521047 026475 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051512 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hrule.html000644 €;Ðâp000024 00000000037 12362521047 025307 0ustar00tdoranstaff000000 000000




    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/hrule.text000644 777777 000024 00000000172 12362521047 026515 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051513 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/hrule.text000644 €;Ðâp000024 00000000007 12362521047 025324 0ustar00tdoranstaff000000 000000 * * * Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html2.html000644 777777 000024 00000000172 12362521047 026404 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051514 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html2.html000644 €;Ðâp000024 00000000036 12362521047 025215 0ustar00tdoranstaff000000 000000

    One

    123

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html2.text000644 777777 000024 00000000172 12362521047 026424 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051515 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html2.text000644 €;Ðâp000024 00000000043 12362521047 025233 0ustar00tdoranstaff000000 000000 One
    123
    123 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html3.html000644 777777 000024 00000000172 12362521047 026405 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051516 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html3.html000644 €;Ðâp000024 00000000511 12362521047 025214 0ustar00tdoranstaff000000 000000

    taking part in some arcane conspirations which involve coffee, robots, sushi,

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html3.text000644 777777 000024 00000000172 12362521047 026425 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051517 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html3.text000644 €;Ðâp000024 00000000504 12362521047 025236 0ustar00tdoranstaff000000 000000 taking part in some arcane conspirations which involve coffee, robots, sushi, Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html4.html000644 777777 000024 00000000172 12362521047 026406 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051518 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html4.html000644 €;Ðâp000024 00000000307 12362521047 025220 0ustar00tdoranstaff000000 000000
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html4.text000644 777777 000024 00000000172 12362521047 026426 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051519 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html4.text000644 €;Ðâp000024 00000000316 12362521047 025240 0ustar00tdoranstaff000000 000000
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html5.html000644 777777 000024 00000000172 12362521047 026407 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051520 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html5.html000644 €;Ðâp000024 00000000351 12362521047 025220 0ustar00tdoranstaff000000 000000
    Aperitif
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/html5.text000644 777777 000024 00000000172 12362521047 026427 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051521 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/html5.text000644 €;Ðâp000024 00000000355 12362521047 025244 0ustar00tdoranstaff000000 000000
    Aperitif
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/ie.html000644 777777 000024 00000000172 12362521047 025753 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051522 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/ie.html000644 €;Ðâp000024 00000001277 12362521047 024574 0ustar00tdoranstaff000000 000000

    <p>here's an apostrophe & a quote "</p>

    <p>here's an apostrophe & a quote "</p>
    <p>here's an apostrophe & a quote "</p>
    <p>here's an apostrophe & a quote "</p>
    <p>here's an apostrophe & a quote "</p>
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/ie.text000644 777777 000024 00000000172 12362521047 025773 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051523 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/ie.text000644 €;Ðâp000024 00000000460 12362521047 024605 0ustar00tdoranstaff000000 000000 `

    here's an apostrophe & a quote "

    `

    here's an apostrophe & a quote "

    {:}

    here's an apostrophe & a quote "

    {:lang=xml}

    here's an apostrophe & a quote "

    {:html_use_syntax=true lang=not_supported}

    here's an apostrophe & a quote "

    {:html_use_syntax=true lang=xml} Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/images.html000644 777777 000024 00000000172 12362521047 026623 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051524 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images.html000644 €;Ðâp000024 00000001227 12362521047 025437 0ustar00tdoranstaff000000 000000

    This page does not uilizes Cascading Style Sheets

    Please mouseover to see the title: Cascading Style Sheets

    Please mouseover to see the title: Cascading Style Sheets

    I’ll say it one more time: this page does not use Cascading Style Sheets

    This is double size: Cascading Style Sheets

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/images.text000644 777777 000024 00000000172 12362521047 026643 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051525 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images.text000644 €;Ðâp000024 00000001314 12362521047 025454 0ustar00tdoranstaff000000 000000 This page does not uilizes ![Cascading Style Sheets](http://jigsaw.w3.org/css-validator/images/vcss) Please mouseover to see the title: ![Cascading Style Sheets](http://jigsaw.w3.org/css-validator/images/vcss "Title ok!") Please mouseover to see the title: ![Cascading Style Sheets](http://jigsaw.w3.org/css-validator/images/vcss 'Title ok!') I'll say it one more time: this page does not use ![Cascading Style Sheets] [css] This is double size: ![Cascading Style Sheets] [css2] [css]: http://jigsaw.w3.org/css-validator/images/vcss "Optional title attribute" [css2]: http://jigsaw.w3.org/css-validator/images/vcss "Optional title attribute" class=external style="border:0;width:188px;height:131px" Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/images2.html000644 777777 000024 00000000172 12362521047 026705 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051526 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images2.html000644 €;Ðâp000024 00000000157 12362521047 025522 0ustar00tdoranstaff000000 000000

    This is an image.

    This is an image.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/images2.text000644 777777 000024 00000000172 12362521047 026725 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051527 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/images2.text000644 €;Ðâp000024 00000000103 12362521047 025531 0ustar00tdoranstaff000000 000000 This is an ![image][]. This is an ![image]. [image]: image.jpg Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/inline_html.html000644 777777 000024 00000000172 12362521047 027660 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051528 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html.html000644 €;Ðâp000024 00000002631 12362521047 026474 0ustar00tdoranstaff000000 000000

    Input:

    <em>Emphasis</em>

    Result: Emphasis

    Input:

    <img src="http://jigsaw.w3.org/css-validator/images/vcss"/>

    Result on span:

    Result alone:

    Without closing:

    This is

    true

    markdown text (paragraph)

    This is

    true

    markdown text (no paragraph)

    This is

    true

    markdown text (block paragraph)

    This is

    true

    markdown text. (no par)

    This is

    true

    markdown text. (par)

    The following is invalid HTML, and will generate an error:

    HTML parse error: 
    <table>
    <td markdown="1">This is *true* markdown text. (no par)</td>
    <td markdown="block">This is *true* markdown text. (par)</td>
    </tr>
    HTML parse error: 
    </table>
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/inline_html.text000644 777777 000024 00000000172 12362521047 027700 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051529 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html.text000644 €;Ðâp000024 00000001667 12362521047 026524 0ustar00tdoranstaff000000 000000 CSS: style.css Input: Emphasis Result: Emphasis Input: Result on span: Result alone: Without closing:
    This is *true* markdown text (paragraph)

    This is *true* markdown text (no paragraph)

    This is *true* markdown text (block paragraph)

    This is *true* markdown text. (no par) This is *true* markdown text. (par)
    The following is invalid HTML, and will generate an error:
    This is *true* markdown text. (no par) This is *true* markdown text. (par)
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/inline_html2.html000644 777777 000024 00000000172 12362521047 027742 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051530 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html2.html000644 €;Ðâp000024 00000000120 12362521047 026545 0ustar00tdoranstaff000000 000000

    Test bold

    Test bold

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/inline_html2.text000644 777777 000024 00000000172 12362521047 027762 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051531 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/inline_html2.text000644 €;Ðâp000024 00000000110 12362521047 026564 0ustar00tdoranstaff000000 000000
    Test **bold**

    Test **bold**

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/links.html000644 777777 000024 00000000172 12362521047 026476 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051532 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/links.html000644 €;Ðâp000024 00000001654 12362521047 025316 0ustar00tdoranstaff000000 000000

    Search on Google

    Search on Google

    Search on Google

    Search on Google

    Search on Google images

    Inline: Google images

    Inline with title: Google images

    Inline with title: Google images

    Search on http://www.gogole.com or http://Here.com or ask bill@google.com or you might ask bill@google.com.

    If all else fails, ask Google

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/links.text000644 777777 000024 00000000172 12362521047 026516 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051533 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/links.text000644 €;Ðâp000024 00000001422 12362521047 025327 0ustar00tdoranstaff000000 000000 Search on [Google][] Search on [Google] [] Search on [Google] [google] Search on [Google] [Google] Search on [Google images][] Inline: [Google images](http://google.com) Inline with title: [Google images](http://google.com "Title") Inline with title: [Google images]( http://google.com "Title" ) Search on or or ask or you might ask bill@google.com. If all else fails, ask [Google](http://www.google.com) [google]: http://www.google.com [google2]: http://www.google.com 'Single quotes' [google3]: http://www.google.com "Double quotes" [google4]: http://www.google.com (Parenthesis) [Google Search]: http://www.google.com "Google search" [Google Images]: http://images.google.com (Google images) Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list1.html000644 777777 000024 00000000172 12362521047 026412 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051534 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list1.html000644 €;Ðâp000024 00000000210 12362521047 025215 0ustar00tdoranstaff000000 000000
    • A list item with a blockquote:

      This is a blockquote inside a list item.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list1.text000644 777777 000024 00000000172 12362521047 026432 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051535 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list1.text000644 €;Ðâp000024 00000000132 12362521047 025240 0ustar00tdoranstaff000000 000000 * A list item with a blockquote: > This is a blockquote > inside a list item. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list2.html000644 777777 000024 00000000172 12362521047 026413 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051536 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list2.html000644 €;Ðâp000024 00000000405 12362521047 025224 0ustar00tdoranstaff000000 000000
    • This is a list item with two paragraphs.

      This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

    • other

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list2.text000644 777777 000024 00000000172 12362521047 026433 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051537 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list2.text000644 €;Ðâp000024 00000000326 12362521047 025246 0ustar00tdoranstaff000000 000000 * This is a list item with two paragraphs. This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. * other Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list3.html000644 777777 000024 00000000172 12362521047 026414 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051538 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list3.html000644 €;Ðâp000024 00000000352 12362521047 025226 0ustar00tdoranstaff000000 000000
    • A list item with a blockquote:

      This is a blockquote inside a list item.

    • A list item with a code block:

      <code goes here>
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list3.text000644 777777 000024 00000000172 12362521047 026434 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051539 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list3.text000644 €;Ðâp000024 00000000227 12362521047 025247 0ustar00tdoranstaff000000 000000 * A list item with a blockquote: > This is a blockquote > inside a list item. * A list item with a code block: Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list4.html000644 777777 000024 00000000172 12362521047 026415 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051540 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list4.html000644 €;Ðâp000024 00000000317 12362521047 025230 0ustar00tdoranstaff000000 000000

    This is a list:

    • one
    • two

    This is not a list: * one ciao

    This is a list:

    1. one
    2. two

    This is not a list: 1987. one ciao

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/list4.text000644 777777 000024 00000000172 12362521047 026435 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051541 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/list4.text000644 €;Ðâp000024 00000000200 12362521047 025237 0ustar00tdoranstaff000000 000000 This is a list: * one * two This is not a list: * one ciao This is a list: 1. one 1. two This is not a list: 1987. one ciao Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists.html000644 777777 000024 00000000172 12362521047 026514 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051542 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists.html000644 €;Ðâp000024 00000002366 12362521047 025335 0ustar00tdoranstaff000000 000000
    • Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    • Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.

    Ancora

    • This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.

      ATTENZIONE!

    • Suspendisse id sem consectetuer libero luctus adipiscing.

    Ancora

    • This is a list item with two paragraphs.

      This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

    • Another item in the same list.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists.text000644 777777 000024 00000000172 12362521047 026534 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051543 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists.text000644 €;Ðâp000024 00000002173 12362521047 025351 0ustar00tdoranstaff000000 000000 * Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. * Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. Ancora * This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. ATTENZIONE! * Suspendisse id sem consectetuer libero luctus adipiscing. Ancora * This is a list item with two paragraphs. This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. * Another item in the same list. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists11.html000644 777777 000024 00000000172 12362521047 026656 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051544 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists11.html000644 €;Ðâp000024 00000000020 12362521047 025460 0ustar00tdoranstaff000000 000000

    - ένα

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists11.text000644 777777 000024 00000000172 12362521047 026676 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051545 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists11.text000644 €;Ðâp000024 00000000012 12362521047 025501 0ustar00tdoranstaff000000 000000 - ένα Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists6.html000644 777777 000024 00000000172 12362521047 026602 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051546 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists6.html000644 €;Ðâp000024 00000000001 12362521047 025403 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists6.text000644 777777 000024 00000000172 12362521047 026622 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051547 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists6.text000644 €;Ðâp000024 00000000001 12362521047 025423 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists7.html000644 777777 000024 00000000172 12362521047 026603 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051548 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7.html000644 €;Ðâp000024 00000000142 12362521047 025412 0ustar00tdoranstaff000000 000000

    Ciao

    • Tab * Tab * Tab

    Ciao

    • Tab * Tab * Tab
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists7.text000644 777777 000024 00000000172 12362521047 026623 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051549 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7.text000644 €;Ðâp000024 00000000034 12362521047 025432 0ustar00tdoranstaff000000 000000 Ciao * Tab * Tab * Tab Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists7b.html000644 777777 000024 00000000172 12362521047 026745 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051550 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7b.html000644 €;Ðâp000024 00000000302 12362521047 025552 0ustar00tdoranstaff000000 000000
    • a
      • a1
      • a2
    • b

    -----| WARNING | -----
    • a

      • a1
      • a2
    • b

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists7b.text000644 777777 000024 00000000172 12362521047 026765 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051551 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists7b.text000644 €;Ðâp000024 00000000030 12362521047 025570 0ustar00tdoranstaff000000 000000 * a * a1 * a2 * b Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists8.html000644 777777 000024 00000000172 12362521047 026604 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051552 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists8.html000644 €;Ðâp000024 00000000260 12362521047 025414 0ustar00tdoranstaff000000 000000

    Here is a paragraph.

    • Item 1
    • Item 2
    • Item 3
    -----| WARNING | -----

    Here is a paragraph.

    * Item 1 * Item 2 * Item 3

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists8.text000644 777777 000024 00000000172 12362521047 026624 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051553 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists8.text000644 €;Ðâp000024 00000000074 12362521047 025437 0ustar00tdoranstaff000000 000000 Here is a paragraph. * Item 1 * Item 2 * Item 3 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists9.html000644 777777 000024 00000000172 12362521047 026605 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051554 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists9.html000644 €;Ðâp000024 00000000155 12362521047 025420 0ustar00tdoranstaff000000 000000
    • Due

      1. tre
      2. tre
      3. tre
    • Due

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists9.text000644 777777 000024 00000000172 12362521047 026625 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051555 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists9.text000644 €;Ðâp000024 00000000047 12362521047 025440 0ustar00tdoranstaff000000 000000 - Due 1. tre 1. tre 1. tre - Due Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists_after_paragraph.html000644 777777 000024 00000000172 12362521047 031722 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051556 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_after_paragraph.html000644 €;Ðâp000024 00000001615 12362521047 030537 0ustar00tdoranstaff000000 000000

    Paragraph, list with no space: * ciao

    Paragraph, list with 1 space: * ciao

    Paragraph, list with 3 space: * ciao

    Paragraph, list with 4 spaces: * ciao

    Paragraph, list with 1 tab: * ciao

    Paragraph (1 space after), list with no space: * ciao

    Paragraph (2 spaces after), list with no space:
    * ciao

    Paragraph (3 spaces after), list with no space:
    * ciao

    Paragraph with block quote:

    Quoted

    Paragraph with header:

    Paragraph with header on two lines:

    Paragraph with html after

    Paragraph with html after, indented: Emphasis

    Paragraph with html after, indented: Emphasis tralla Emph

    Paragraph with html after, indented: Emphasis *tralla* Emph

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists_after_paragraph.text000644 777777 000024 00000000172 12362521047 031742 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051557 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_after_paragraph.text000644 €;Ðâp000024 00000001356 12362521047 030561 0ustar00tdoranstaff000000 000000 Paragraph, list with no space: * ciao Paragraph, list with 1 space: * ciao Paragraph, list with 3 space: * ciao Paragraph, list with 4 spaces: * ciao Paragraph, list with 1 tab: * ciao Paragraph (1 space after), list with no space: * ciao Paragraph (2 spaces after), list with no space: * ciao Paragraph (3 spaces after), list with no space: * ciao Paragraph with block quote: > Quoted Paragraph with header: ### header ### Paragraph with header on two lines: header ------ Paragraph with html after
    Paragraph with html after, indented: Emphasis Paragraph with html after, indented: Emphasis *tralla* Emph Paragraph with html after, indented: Emphasis *tralla* Emph Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists_ol.html000644 777777 000024 00000000172 12362521047 027206 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051558 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_ol.html000644 €;Ðâp000024 00000002573 12362521047 026027 0ustar00tdoranstaff000000 000000
    1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
    2. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    3. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    4. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.
    5. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing.

    Ancora

    1. This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.

      ATTENZIONE!

      • Uno

      • Due

        1. tre
        2. tre
        3. tre
      • Due

    2. Suspendisse id sem consectetuer libero luctus adipiscing.

    Ancora

    • This is a list item with two paragraphs.

      This is the second paragraph in the list item. You’re only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

    • Another item in the same list.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/lists_ol.text000644 777777 000024 00000000172 12362521047 027226 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051559 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/lists_ol.text000644 €;Ðâp000024 00000002310 12362521047 026034 0ustar00tdoranstaff000000 000000 1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus. 2. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. 3. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. 3. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. 4. Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse id sem consectetuer libero luctus adipiscing. Ancora 1. This is a list item with two paragraphs. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus. ATTENZIONE! - Uno - Due 1. tre 1. tre 1. tre - Due 2. Suspendisse id sem consectetuer libero luctus adipiscing. Ancora * This is a list item with two paragraphs. This is the second paragraph in the list item. You're only required to indent the first line. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. * Another item in the same list. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/loss.html000644 777777 000024 00000000172 12362521047 026336 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051560 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/loss.html000644 €;Ðâp000024 00000000007 12362521047 025145 0ustar00tdoranstaff000000 000000
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/loss.text000644 777777 000024 00000000172 12362521047 026356 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051561 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/loss.text000644 €;Ðâp000024 00000000012 12362521047 025161 0ustar00tdoranstaff000000 000000
    123 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/misc_sw.html000644 777777 000024 00000000172 12362521047 027022 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051562 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/misc_sw.html000644 €;Ðâp000024 00000010320 12362521047 025630 0ustar00tdoranstaff000000 000000

    General

    • Operating System : Mac OS X: heaven, after the purgatory of Linux and the hell of Windows.
    • Browser: Firefox. On a Mac, Camino.
    • Email: GMail, “search, don’t sort” really works.
    • Text Editor: TextMate, you have to buy it, but it’s worth every penny. There are rumours that it’s been converting (recovering) Emacs users (addicts). Unfortunately, it’s Mac only. An alternative is jedit (GPL, Java).

    Development

    • Build system: cmake, throw the autotools away.

    • Source code control system: ditch CVS for subversion.

    • Project management: Trac tracks everything.

    • Scripting language: Ruby is Japanese pragmatism (and has a poignant guide). Python, you say? Python is too academic and snob:

      $ python       
      Python 2.4.1 (\#1, Jun  4 2005, 00:54:33) 
      Type "help", "copyright", "credits" or "license" for more information.
      >>> exit
      'Use Ctrl-D (i.e. EOF) to exit.'
      >>> quit
      'Use Ctrl-D (i.e. EOF) to exit.'
    • Java IDE: JBuilder is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained generics and got opensourced.

    • Mark-up language: HTML is so 2001, why don’t you take at look at Markdown? Look at the source of this page.

    • C++ libraries: * QT for GUIs. * GSL for math. * Magick++ for manipulating images. * Cairo for creating PDFs. * Boost for just about everything else.

    Research

    • Writing papers: LaTeX
    • Writing papers & enjoying the process: LyX
    • Handsome figures in your papers: xfig or, better, jfig.
    • The occasional presentation with many graphical content: OpenOffice Impress (using the OOOlatex plugin); the alternative is PowerPoint with the TexPoint plugin.
    • Managing BibTeX: jabref: multi-platform, for all your bibtex needs.
    • IEEExplore and BibTeX: convert citations using BibConverter.

    Cool websites

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/misc_sw.text000644 777777 000024 00000000172 12362521047 027042 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051563 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/misc_sw.text000644 €;Ðâp000024 00000010544 12362521047 025660 0ustar00tdoranstaff000000 000000 Subject: Software not painful to use Subject_short: painless software Topic: /misc/coolsw Archive: no Date: Nov 20 2006 Order: -9.5 inMenu: true ### General ### * *Operating System* : [Mac OS X][switch]: heaven, after the purgatory of Linux and the hell of Windows. * *Browser*: [Firefox][firefox]. On a Mac, [Camino][camino]. * *Email*: [GMail][gmail], "search, don't sort" really works. * *Text Editor*: [TextMate][textmate], you have to buy it, but it's worth every penny. There are rumours that it's been converting (recovering) Emacs users (addicts). Unfortunately, it's Mac only. An alternative is [jedit][jedit] (GPL, Java). ### Development ### * *Build system*: [cmake][cmake], throw the [autotools][autotools] away. * *Source code control system*: ditch CVS for [subversion][subversion]. * *Project management*: [Trac][trac] tracks everything. * *Scripting language*: [Ruby][ruby] is Japanese pragmatism (and has a [poignant][poignant] guide). Python, you say? Python is too academic and snob: $ python Python 2.4.1 (\#1, Jun 4 2005, 00:54:33) Type "help", "copyright", "credits" or "license" for more information. >>> exit 'Use Ctrl-D (i.e. EOF) to exit.' >>> quit 'Use Ctrl-D (i.e. EOF) to exit.' * *Java IDE*: [JBuilder][jbuilder] is great software and has a free version (IMHO better than Eclipse). Java is not a pain anymore since it gained [generics][java-generics] and got opensourced. * *Mark-up language*: HTML is so 2001, why don't you take at look at [Markdown][markdown]? [Look at the source of this page](data/misc_markdown.png). * *C++ libraries*: * [QT][qt] for GUIs. * [GSL][gsl] for math. * [Magick++][magick] for manipulating images. * [Cairo][cairo] for creating PDFs. * [Boost][boost] for just about everything else. ### Research ### * *Writing papers*: [LaTeX][latex] * *Writing papers & enjoying the process*: [LyX][lyx] * *Handsome figures in your papers*: [xfig][xfig] or, better, [jfig][jfig]. * *The occasional presentation with many graphical content*: [OpenOffice Impress][impress] (using the [OOOlatex plugin][ooolatex]); the alternative is PowerPoint with the [TexPoint][texpoint] plugin. * *Managing BibTeX*: [jabref][jabref]: multi-platform, for all your bibtex needs. * *IEEExplore and BibTeX*: convert citations using [BibConverter][bibconverter]. ### Cool websites ### * *Best site in the wwworld*: [Wikipedia][wikipedia] * [Mutopia][mutopia] for sheet music; [the Gutenberg Project][gutenberg] for books; [LiberLiber][liberliber] for books in italian. * *Blogs*: [Bloglines][bloglines] * *Sharing photos*: [flickr][flickr] exposes an API you can use. [firefox]: http://getfirefox.com/ [gmail]: http://gmail.com/ [bloglines]: http://bloglines.com/ [wikipedia]: http://en.wikipedia.org/ [ruby]: http://www.ruby-lang.org/ [poignant]: http://poignantguide.net/ruby/ [webgen]: http://webgen.rubyforge.org/ [markdown]: http://daringfireball.net/projects/markdown/ [latex]: http://en.wikipedia.org/wiki/LaTeX [lyx]: http://www.lyx.org [impress]: http://www.openoffice.org/product/impress.html [ooolatex]: http://ooolatex.sourceforge.net/ [texpoint]: http://texpoint.necula.org/ [jabref]: http://jabref.sourceforge.net/ [camino]: http://www.caminobrowser.org/ [switch]: http://www.apple.com/getamac/ [textmate]: http://www.apple.com/getamac/ [cmake]: http://www.cmake.org/ [xfig]: http://www.xfig.org/ [jfig]: http://tams-www.informatik.uni-hamburg.de/applets/jfig/ [subversion]: http://subversion.tigris.org [jbuilder]: http://www.borland.com/us/products/jbuilder/index.html [flickr]: http://www.flickr.com/ [myflickr]: http://www.flickr.com/photos/censi [bibconverter]: http://www.bibconverter.net/ieeexplore/ [autotools]: http://sources.redhat.com/autobook/ [jedit]: http://www.jedit.org/ [qt]: http://www.trolltech.no/ [gsl]: http://www.gnu.org/software/gsl/ [magick]: http://www.imagemagick.org/Magick++/ [cairo]: http://cairographics.org/ [boost]: http://www.boost.org/ [markdown]: http://en.wikipedia.org/wiki/Markdown [trac]: http://trac.edgewall.org/ [mutopia]: http://www.mutopiaproject.org/ [liberliber]: http://www.liberliber.it/ [gutenberg]: http://www.gutenberg.org/ [java-generics]: http://java.sun.com/j2se/1.5.0/docs/guide/language/generics.html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/olist.html000644 777777 000024 00000000172 12362521047 026510 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051564 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/olist.html000644 €;Ðâp000024 00000000116 12362521047 025320 0ustar00tdoranstaff000000 000000

    This is a list:

    1. one
    2. two
    3. three
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/olist.text000644 777777 000024 00000000172 12362521047 026530 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051565 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/olist.text000644 €;Ðâp000024 00000000050 12362521047 025335 0ustar00tdoranstaff000000 000000 This is a list: 2. one 2. two 3. three Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/one.html000644 777777 000024 00000000172 12362521047 026137 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051566 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/one.html000644 €;Ðâp000024 00000000020 12362521047 024741 0ustar00tdoranstaff000000 000000

    One line

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/one.text000644 777777 000024 00000000172 12362521047 026157 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051567 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/one.text000644 €;Ðâp000024 00000000011 12362521047 024761 0ustar00tdoranstaff000000 000000 One line Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/paragraph.html000644 777777 000024 00000000172 12362521047 027323 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051568 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraph.html000644 €;Ðâp000024 00000000021 12362521047 026126 0ustar00tdoranstaff000000 000000

    Paragraph

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/paragraph.text000644 777777 000024 00000000172 12362521047 027343 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051569 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraph.text000644 €;Ðâp000024 00000000013 12362521047 026147 0ustar00tdoranstaff000000 000000 Paragraph Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/paragraphs.html000644 777777 000024 00000000172 12362521047 027506 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051570 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraphs.html000644 €;Ðâp000024 00000000152 12362521047 026316 0ustar00tdoranstaff000000 000000

    Paragraph 1

    Paragraph 2

    Paragraph 3 Paragraph 4 Paragraph Br->
    Paragraph 5

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/paragraphs.text000644 777777 000024 00000000172 12362521047 027526 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051571 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/paragraphs.text000644 €;Ðâp000024 00000000122 12362521047 026333 0ustar00tdoranstaff000000 000000 Paragraph 1 Paragraph 2 Paragraph 3 Paragraph 4 Paragraph Br-> Paragraph 5 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/smartypants.html000644 777777 000024 00000000172 12362521047 027743 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051572 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/smartypants.html000644 €;Ðâp000024 00000001221 12362521047 026551 0ustar00tdoranstaff000000 000000
    'Twas a "test" to 'remember' in the '90s.

    ‘Twas a “test” to ‘remember’ in the ’90s.

    It was --- in a sense --- really... interesting.

    It was — in a sense — really… interesting.

    I -- too -- met << some curly quotes >> there or <<here>>No space.

    I – too – met « some curly quotes » there or «here»No space.

    She was 6\"12\'.

    She was 6"12'.

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/smartypants.text000644 777777 000024 00000000172 12362521047 027763 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051573 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/smartypants.text000644 €;Ðâp000024 00000000552 12362521047 026577 0ustar00tdoranstaff000000 000000 'Twas a "test" to 'remember' in the '90s. 'Twas a "test" to 'remember' in the '90s. It was --- in a sense --- really... interesting. It was --- in a sense --- really... interesting. I -- too -- met << some curly quotes >> there or <>No space. I -- too -- met << some curly quotes >> there or <>No space. She was 6\"12\'. > She was 6\"12\'. Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/syntax_hl.html000644 777777 000024 00000000172 12362521047 027367 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051574 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/syntax_hl.html000644 €;Ðâp000024 00000000571 12362521047 026204 0ustar00tdoranstaff000000 000000

    This is ruby code:

    require 'maruku'
    
    puts Maruku.new($stdin).to_html

    This is ruby code:

    require 'maruku'
    puts Maruku.new($stdin).to_html
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/syntax_hl.text000644 777777 000024 00000000172 12362521047 027407 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051575 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/syntax_hl.text000644 €;Ðâp000024 00000000261 12362521047 026220 0ustar00tdoranstaff000000 000000 This is ruby code: require 'maruku' puts Maruku.new($stdin).to_html This is ruby code: require 'maruku' {: lang=ruby html_use_syntax} puts Maruku.new($stdin).to_html Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/table_attributes.html000644 777777 000024 00000000172 12362521047 030713 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051576 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/table_attributes.html000644 €;Ðâp000024 00000000471 12362521047 027527 0ustar00tdoranstaff000000 000000
    hh
    c1c2
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/table_attributes.text000644 777777 000024 00000000172 12362521047 030733 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051577 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/table_attributes.text000644 €;Ðâp000024 00000000300 12362521047 027536 0ustar00tdoranstaff000000 000000 h | h ----------|-- {:t} c1 | c2 {: summary="Table summary" .class1 style="color:red" border=3 width="50%" frame=lhs rules=cols cellspacing=2em cellpadding=4px} {:t: scope="row"} Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/test.html000644 777777 000024 00000000172 12362521047 026335 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051578 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/test.html000644 €;Ðâp000024 00000000057 12362521047 025151 0ustar00tdoranstaff000000 000000
           $ python       
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/test.text000644 777777 000024 00000000172 12362521047 026355 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051579 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/test.text000644 €;Ðâp000024 00000000037 12362521047 025167 0ustar00tdoranstaff000000 000000 $ python Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/wrapping.html000644 777777 000024 00000000172 12362521047 027205 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051580 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/wrapping.html000644 €;Ðâp000024 00000001127 12362521047 026020 0ustar00tdoranstaff000000 000000

    Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Break:
    Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet.

    • Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet Lorem ipsum Break:
      Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet
    • Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/wrapping.text000644 777777 000024 00000000172 12362521047 027225 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051581 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/wrapping.text000644 €;Ðâp000024 00000001066 12362521047 026042 0ustar00tdoranstaff000000 000000 Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Break: Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. * Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet Lorem ipsum Break: Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet * Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet. Lorem ipsum dolor amet Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml.html000644 777777 000024 00000000172 12362521047 026156 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051582 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml.html000644 €;Ðâp000024 00000000353 12362521047 024771 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml.text000644 777777 000024 00000000172 12362521047 026176 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051583 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml.text000644 €;Ðâp000024 00000000372 12362521047 025012 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml2.html000644 777777 000024 00000000172 12362521047 026240 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051584 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml2.html000644 €;Ðâp000024 00000000013 12362521047 025044 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml2.text000644 777777 000024 00000000172 12362521047 026260 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051585 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml2.text000644 €;Ðâp000024 00000000013 12362521047 025064 0ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml3.html000644 777777 000024 00000000172 12362521047 026241 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051586 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml3.html000644 €;Ðâp000024 00000000075 12362521047 025055 0ustar00tdoranstaff000000 000000 Blah
    em
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml3.text000644 777777 000024 00000000172 12362521047 026261 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051587 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml3.text000644 €;Ðâp000024 00000000110 12362521047 025063 0ustar00tdoranstaff000000 000000 Blah
    *em*
    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml_instruction.html000644 777777 000024 00000000172 12362521047 030617 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051588 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml_instruction.html000644 €;Ðâp000024 00000000220 12362521047 027423 0ustar00tdoranstaff000000 000000

    Targets

    Inside: last

    Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/PaxHeader/xml_instruction.text000644 777777 000024 00000000172 12362521047 030637 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051589 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/t/docs-maruku-unittest/xml_instruction.text000644 €;Ðâp000024 00000000215 12362521047 027447 0ustar00tdoranstaff000000 000000 Targets Inside: last Text-MultiMarkdown-1.000035/script/PaxHeader/MultiMarkdown.pl000644 777777 000024 00000000172 12362521047 024554 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 23 SCHILY.dev=16777218 23 SCHILY.ino=69051338 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/script/MultiMarkdown.pl000644 €;Ðâp000024 00000007001 12362521047 023364 0ustar00tdoranstaff000000 000000 #!/usr/bin/env perl use strict; use warnings; use Text::MultiMarkdown qw(markdown); =head1 NAME MultiMarkdown.pl - Convert MultiMarkdown syntax to (X)HTML =head1 DESCRIPTION This program is distributed as part of Perl's Text::MultiMarkdown module, illustrating sample usage. MultiMarkdown.pl can be invoked on any file containing MultiMarkdown-syntax, and will produce the corresponding (X)HTML on STDOUT: $ cat file.txt [MultiMarkdown][] *extends* the very well-known [Markdown][] syntax. [MultiMarkdown]: http://fletcherpenney.net/What_is_MultiMarkdown [Markdown]: http://daringfireball.net/projects/markdown/ $ multimarkdown file.txt

    MultiMarkdown extends the very well-known Markdown syntax.

    If no file is specified, it will expect its input from STDIN: $ echo "A **simple** test" | multimarkdown

    A simple test

    =head1 OPTIONS =over =item version Shows the full information for this version =item shortversion Shows only the version number =item html4tags Produce HTML 4-style tags instead of XHTML - XHTML requires elements that do not wrap a block (i.e. the C
    tag) to state they will not be closed, by closing with C>. HTML 4-style will plainly output the tag as it comes: $ echo '---' | multimarkdown
    $ echo '---' | multimarkdown --html4tags
    =item help Shows this documentation =back =head1 AUTHOR Copyright 2004 John Gruber Copyright 2006 Fletcher Penny Copyright 2008 Tomas Doran The manpage was written by Gunnar Wolf for its use in Debian systems, but can be freely used elsewhere. For full licensing information, please refer to Text::MultiMarkdown.pm's full documentation. =head1 SEE ALSO L, L =cut #### Check for command-line switches: ################# my %cli_opts; use Getopt::Long; Getopt::Long::Configure('pass_through'); GetOptions(\%cli_opts, 'version', 'shortversion', 'html4tags', 'help' ); if ($cli_opts{'version'}) { # Version info print "\nThis is MultiMarkdown, version $Text::MultiMarkdown::VERSION.\n"; print "Copyright 2004 John Gruber\n"; print "Copyright 2006 Fletcher Penny\n"; print "Copyright 2008 Tomas Doran\n"; print "Parts contributed by several other people."; print "http://fletcherpenney.net/MultiMarkdown/\n\n"; exit 0; } if ($cli_opts{'shortversion'}) { # Just the version number string. print $Text::MultiMarkdown::VERSION; exit 0; } if ($cli_opts{'help'}) { for my $dir (split m/:/, $ENV{PATH}) { my $cmd = "$dir/perldoc"; exec($cmd, $0) if (-f $cmd and -x $cmd); } die "perldoc could not be found in your path - Cannot show help, sorry\n"; } my $m; if ($cli_opts{'html4tags'}) { # Use HTML tag style instead of XHTML $m = Text::MultiMarkdown->new(empty_element_suffix => '>'); } else { $m = Text::MultiMarkdown->new; } sub main { my (@fns) = @_; my $f; if (scalar @fns) { foreach my $fn (@fns) { die("Cannot find file $fn") unless (-r $fn); my $fh; open($fh, '<', $fn) or die; $f = join('', <$fh>); close($fh) or die; } } else { # STDIN local $/; # Slurp the whole file $f = <>; } return $m->markdown($f); } print main(@ARGV) unless caller(); Text-MultiMarkdown-1.000035/lib/PaxHeader/Text000755 777777 000024 00000000172 12362552430 021536 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062248 18 SCHILY.nlink=3 Text-MultiMarkdown-1.000035/lib/Text/000755 €;Ðâp000024 00000000000 12362552430 020422 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/lib/Text/PaxHeader/MultiMarkdown.pm000644 777777 000024 00000000240 12362522046 024737 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405790061 38 LIBARCHIVE.creationtime=1405789179 23 SCHILY.dev=16777218 23 SCHILY.ino=69053883 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/lib/Text/MultiMarkdown.pm000644 €;Ðâp000024 00000121366 12362522046 023566 0ustar00tdoranstaff000000 000000 package Text::MultiMarkdown; require 5.008_000; use strict; use warnings; use re 'eval'; use Digest::MD5 qw(md5_hex); use Encode qw(); use Carp qw(croak); use base qw(Text::Markdown); use HTML::Entities qw(encode_entities); our $VERSION = '1.000035'; # 1.0.34 $VERSION = eval $VERSION; our @EXPORT_OK = qw(markdown); =head1 NAME Text::MultiMarkdown - Convert MultiMarkdown syntax to (X)HTML =head1 SYNOPSIS use Text::MultiMarkdown 'markdown'; my $html = markdown($text); use Text::MultiMarkdown 'markdown'; my $html = markdown( $text, { empty_element_suffix => '>', tab_width => 2, use_wikilinks => 1, } ); use Text::MultiMarkdown; my $m = Text::MultiMarkdown->new; my $html = $m->markdown($text); use Text::MultiMarkdown; my $m = Text::MultiMarkdown->new( empty_element_suffix => '>', tab_width => 2, use_wikilinks => 1, ); my $html = $m->markdown( $text ); =head1 DESCRIPTION Markdown is a text-to-HTML filter; it translates an easy-to-read / easy-to-write structured text format into HTML. Markdown's text format is most similar to that of plain text email, and supports features such as headers, *emphasis*, code blocks, blockquotes, and links. Markdown's syntax is designed not as a generic markup language, but specifically to serve as a front-end to (X)HTML. You can use span-level HTML tags anywhere in a Markdown document, and you can use block level HTML tags (C<<
    >>, C<< >> etc.). Note that by default Markdown isn't interpreted in HTML block-level elements, unless you add a C attribute to the element. See L for details. This module implements the MultiMarkdown markdown syntax extensions from: http://fletcherpenney.net/multimarkdown/ =head1 SYNTAX For more information about (original) Markdown's syntax, see: http://daringfireball.net/projects/markdown/ This module implements MultiMarkdown, which is an extension to Markdown.. The extension is documented at: http://fletcherpenney.net/multimarkdown/ and borrows from php-markdown, which lives at: http://michelf.com/projects/php-markdown/extra/ This documentation is going to be moved/copied into this module for clearer reading in a future release.. =head1 OPTIONS MultiMarkdown supports a number of options to it's processor which control the behaviour of the output document. These options can be supplied to the constructor, on in a hash with the individual calls to the markdown method. See the synopsis for examples of both of the above styles. The options for the processor are: =over =item use_metadata Controls the metadata options below. =item strip_metadata If true, any metadata in the input document is removed from the output document (note - does not take effect in complete document format). =item empty element suffix This option can be used to generate normal HTML output. By default, it is ' />', which is xHTML, change to '>' for normal HTML. =item img_ids Controls if tags generated have an id attribute. Defaults to true. Turn off for compatibility with the original markdown. =item heading_ids Controls if tags generated have an id attribute. Defaults to true. Turn off for compatibility with the original markdown. =item bibliography_title The title of the generated bibliography, defaults to 'Bibliography'. =item tab_width Controls indent width in the generated markup, defaults to 4 =item disable_tables If true, this disables the MultiMarkdown table handling. =item disable_footnotes If true, this disables the MultiMarkdown footnotes handling. =item disable_bibliography If true, this disables the MultiMarkdown bibliography/citation handling. =item disable_definition_lists If true, this disables the MultiMarkdown definition list handling. =back A number of possible items of metadata can also be supplied as options. Note that if the use_metadata is true then the metadata in the document will overwrite the settings on command line. Metadata options supported are: =over =item document_format =item use_wikilinks =item base_url =item self_url - The document url is prepended to the "#" anchor of footnotes. =back =head1 METADATA MultiMarkdown supports the concept of 'metadata', which allows you to specify a number of formatting options within the document itself. Metadata should be placed in the top few lines of a file, on value per line as colon separated key/value pairs. The metadata should be separated from the document with a blank line. Most metadata keys are also supported as options to the constructor, or options to the markdown method itself. (Note, as metadata, keys contain space, whereas options the keys are underscore separated.) You can attach arbitrary metadata to a document, which is output in HTML tags if unknown, see t/11document_format.t for more info. A list of 'known' metadata keys, and their effects are listed below: =over =item document format If set to 'complete', MultiMarkdown will render an entire xHTML page, otherwise it will render a document fragment =over =item css Sets a CSS file for the file, if in 'complete' document format. =item title Sets the page title, if in 'complete' document format. =back =item use wikilinks If set to '1' or 'on', causes links that are WikiWords to automatically be processed into links. =item base url This is the base URL for referencing wiki pages. In this is not supplied, all wiki links are relative. =back =head1 METHODS =head2 new A simple constructor, see the SYNTAX and OPTIONS sections for more information. =cut sub new { my ($class, %p) = @_; # Default metadata to 1 $p{use_metadata} = 1 unless exists $p{use_metadata}; # Squash value to [01] $p{use_metadata} = $p{use_metadata} ? 1 : 0; $p{base_url} ||= ''; # This is the base url to be used for WikiLinks $p{tab_width} = 4 unless (defined $p{tab_width} and $p{tab_width} =~ m/^\d+$/); $p{document_format} ||= ''; $p{empty_element_suffix} ||= ' />'; # Change to ">" for HTML output #$p{heading_ids} = defined $p{heading_ids} ? $p{heading_ids} : 1; # For use with WikiWords and [[Wiki Links]] # NOTE: You can use \WikiWord to prevent a WikiWord from being treated as a link $p{use_wikilinks} = $p{use_wikilinks} ? 1 : 0; $p{heading_ids} = defined $p{heading_ids} ? $p{heading_ids} : 1; $p{img_ids} = defined $p{img_ids} ? $p{img_ids} : 1; $p{bibliography_title} ||= 'Bibliography'; # FIXME - Test and document, can also be in metadata! $p{self_url} ||= ''; # Used in footnotes to prepend anchors my $self = { params => \%p }; bless $self, ref($class) || $class; return $self; } =head2 markdown The main function as far as the outside world is concerned. See the SYNOPSIS for details on use. =cut sub markdown { my ( $self, $text, $options ) = @_; # Detect functional mode, and create an instance for this run.. unless (ref $self) { if ( $self ne __PACKAGE__ ) { my $ob = __PACKAGE__->new(); # $self is text, $text is options return $ob->markdown($self, $text); } else { croak('Calling ' . $self . '->markdown (as a class method) is not supported.'); } } $options ||= {}; %$self = (%{ $self->{params} }, %$options, params => $self->{params}); $self->_CleanUpRunData($options); return $self->_Markdown($text); } sub _CleanUpRunData { my ($self, $options) = @_; # Clear the global hashes. If we don't clear these, you get conflicts # from other articles when generating a page which contains more than # one article (e.g. an index page that shows the N most recent # articles): $self->{_crossrefs} = {}; $self->{_footnotes} = {}; $self->{_references} = {}; $self->{_used_footnotes} = []; # Why do we need 2 data structures for footnotes? FIXME $self->{_used_references} = []; # Ditto for references $self->{_citation_counter} = 0; $self->{_metadata} = {}; $self->{_attributes} = {}; # Used for extra attributes on links / images. $self->SUPER::_CleanUpRunData($options); } sub _Markdown { # # Main function. The order in which other subs are called here is # essential. Link and image substitutions need to happen before # _EscapeSpecialChars(), so that any *'s or _'s in the # and tags get encoded. # # Can't think of any good way to make this inherit from the Markdown version as ordering is so important, so I've left it. my ($self, $text) = @_; $text = $self->_CleanUpDoc($text); # MMD only. Strip out MetaData $text = $self->_ParseMetaData($text) if ($self->{use_metadata} || $self->{strip_metadata}); # Turn block-level HTML blocks into hash entries $text = $self->_HashHTMLBlocks($text, {interpret_markdown_on_attribute => 1}); $text = $self->_StripLinkDefinitions($text); # MMD only $text = $self->_StripMarkdownReferences($text); $text = $self->_RunBlockGamut($text, {wrap_in_p_tags => 1}); # MMD Only $text = $self->_DoMarkdownCitations($text) unless $self->{disable_bibliography}; $text = $self->_DoFootnotes($text) unless $self->{disable_footnotes}; $text = $self->_UnescapeSpecialChars($text); # MMD Only # This must follow _UnescapeSpecialChars $text = $self->_UnescapeWikiWords($text); $text = $self->_FixFootnoteParagraphs($text) unless $self->{disable_footnotes}; # TODO: remove. Doesn't make any difference to test suite pass/failure $text .= $self->_PrintFootnotes() unless $self->{disable_footnotes}; $text .= $self->_PrintMarkdownBibliography() unless $self->{disable_bibliography}; $text = $self->_ConvertCopyright($text); # MMD Only if (lc($self->{document_format}) =~ /^complete\s*$/) { return $self->_xhtmlMetaData() . "\n" . $text . "\n\n"; } else { return $self->_textMetaData() . $text . "\n"; } } # # Routines which are overridden for slightly different behaviour in MultiMarkdown # # Delegate to super class, then do wiki links sub _RunSpanGamut { my ($self, $text) = @_; $text = $self->SUPER::_RunSpanGamut($text); # Process WikiWords if ($self->_UseWikiLinks()) { $text = $self->_DoWikiLinks($text); # And then reprocess anchors and images # FIXME - This is needed exactly why? $text = $self->_DoImages($text); $text = $self->_DoAnchors($text); } return $text; } # Don't do Wiki Links in Headers, otherwise delegate to super class # Do tables stright after headers sub _DoHeaders { my ($self, $text) = @_; local $self->{use_wikilinks} = 0; $text = $self->SUPER::_DoHeaders($text); # Do tables to populate the table id's for cross-refs # (but after headers as the tables can contain cross-refs to other things, so we want the header cross-refs) $text = $self->_DoTables($text); } sub _DoLists { my ($self, $text) = @_; $text = $self->_DoDefinitionLists($text) unless $self->{disable_definition_lists}; $self->SUPER::_DoLists($text); } sub _DoDefinitionLists { my ($self, $text) = @_; # Uses the syntax proposed by Michel Fortin in PHP Markdown Extra my $less_than_tab = $self->{tab_width} -1; my $line_start = qr{ [ ]{0,$less_than_tab} }mx; my $term = qr{ $line_start [^:\s][^\n]*\n }sx; my $definition = qr{ \n?[ ]{0,$less_than_tab} \:[ \t]+(.*?)\n ((?=\n?\:)|\n|\Z) # Lookahead for next definition, two returns, # or the end of the document }sx; my $definition_block = qr{ ((?:$term)+) # $1 = one or more terms ((?:$definition)+) # $2 = by one or more definitions }sx; my $definition_list = qr{ (?:$definition_block\n*)+ # One ore more definition blocks }sx; $text =~ s{ ($definition_list) # $1 = the whole list }{ my $list = $1; my $result = $1; $list =~ s{ (?:$definition_block)\n* }{ my $terms = $1; my $defs = $2; $terms =~ s{ [ ]{0,$less_than_tab} (.*) \s* }{ my $term = $1; my $result = ""; $term =~ s/^\s*(.*?)\s*$/$1/; if ($term !~ /^\s*$/){ $result = "
    " . $self->_RunSpanGamut($1) . "
    \n"; } $result; }xmge; $defs =~ s{ $definition }{ my $def = $1 . "\n"; $def =~ s/^[ ]{0,$self->{tab_width}}//gm; "
    \n" . $self->_RunBlockGamut($def) . "\n
    \n"; }xsge; $terms . $defs . "\n"; }xsge; "
    \n" . $list . "
    \n\n"; }xsge; return $text } # Generating headers automatically generates X-refs in MultiMarkdown (always) # Also, by default, you get id attributes added to your headers, you can turn this # part of the MultiMarkdown behaviour off with the heading_ids flag. sub _GenerateHeader { my ($self, $level, $id) = @_; my $label = $self->{heading_ids} ? $self->_Header2Label($id) : ''; my $header = $self->_RunSpanGamut($id); if ($label ne '') { $self->{_crossrefs}{$label} = "#$label"; $self->{_titles}{$label} = $header; $label = qq{ id="$label"}; } return "$header\n\n"; } # Protect Wiki Links in Code Blocks (if wiki links are turned on), then delegate to super class. sub _EncodeCode { my ($self, $text) = @_; if ($self->_UseWikiLinks()) { $text =~ s/([A-Z]+[a-z\x80-\xff]+[A-Z][A-Za-z\x80-\xff]*)/\\$1/gx; } return $self->SUPER::_EncodeCode($text); } # Full function pulled out of Text::Markdown as MultiMarkdown supports supplying extra 'attributes' with links and # images which are then pushed back into the generated HTML, and this needs a different regex. It should be possible # to extract the just the regex from Text::Markdown, and use that here, but I haven't done so yet. # Strip footnote definitions at the same time as stripping link definitions. # Also extract images and then replace them straight back in (code smell!) to be able to cross reference images sub _StripLinkDefinitions { # # Strips link definitions from text, stores the URLs and titles in # hash references. # my ($self, $text) = @_; $text = $self->_StripFootnoteDefinitions($text) unless $self->{disable_footnotes}; my $less_than_tab = $self->{tab_width} - 1; # Link defs are in the form: ^[id]: url "optional title" # FIXME - document attributes here. while ($text =~ s{ # Pattern altered for MultiMarkdown # in order to not match citations or footnotes ^[ ]{0,$less_than_tab}\[([^#^].*)\]: # id = $1 [ \t]* \n? # maybe *one* newline [ \t]* ? # url = $2 [ \t]* \n? # maybe one newline [ \t]* (?: (?<=\s) # lookbehind for whitespace ["(] (.+?) # title = $3 [")] [ \t]* )? # title is optional # MultiMarkdown addition for attribute support \n? ( # Attributes = $4 (?<=\s) # lookbehind for whitespace (([ \t]*\n)?[ \t]*((\S+=\S+)|(\S+=".*?")))* )? [ \t]* # /addition (?:\n+|\Z) } {}mx) { $self->{_urls}{lc $1} = $self->_EncodeAmpsAndAngles( $2 ); # Link IDs are case-insensitive if ($3) { $self->{_titles}{lc $1} = $3; $self->{_titles}{lc $1} =~ s/"/"/g; } # MultiMarkdown addition " if ($4) { $self->{_attributes}{lc $1} = $4; } # /addition } $text = $self->_GenerateImageCrossRefs($text); return $text; } # Add the extra cross-references to headers that MultiMarkdown supports, and also # the additional link attributes. sub _GenerateAnchor { # FIXME - Fugly, change to named params? my ($self, $whole_match, $link_text, $link_id, $url, $title, $attributes) = @_; # Allow automatic cross-references to headers if (defined $link_id) { my $label = $self->_Header2Label($link_id); if (defined $self->{_crossrefs}{$label}) { $url ||= $self->{_crossrefs}{$label}; } if ( defined $self->{_titles}{$label} ) { $title ||= $self->{_titles}{$label}; } $attributes ||= $self->_DoAttributes($label); } return $self->SUPER::_GenerateAnchor($whole_match, $link_text, $link_id, $url, $title, $attributes); } # Add the extra cross-references to images that MultiMarkdown supports, and also # the additional attributes. sub _GenerateImage { # FIXME - Fugly, change to named params? my ($self, $whole_match, $alt_text, $link_id, $url, $title, $attributes) = @_; if (defined $alt_text && length $alt_text) { my $label = $self->_Header2Label($alt_text); $self->{_crossrefs}{$label} = "#$label"; $attributes .= $self->{img_ids} ? qq{ id="$label"} : ''; } $attributes .= $self->_DoAttributes($link_id) if defined $link_id; $self->SUPER::_GenerateImage($whole_match, $alt_text, $link_id, $url, $title, $attributes); } # # MultiMarkdown specific routines # # FIXME - This is really really ugly! sub _ParseMetaData { my ($self, $text) = @_; my $clean_text = ""; my ($inMetaData, $currentKey) = (1, ''); foreach my $line ( split /\n/, $text ) { $line =~ /^\s*$/ and $inMetaData = 0 and $clean_text .= $line and next; if ($inMetaData) { next unless $self->{use_metadata}; # We can come in here as use_metadata => 0, strip_metadata => 1 if ($line =~ /^([a-zA-Z0-9][0-9a-zA-Z _-]+?):\s*(.*)$/ ) { $currentKey = $1; $currentKey =~ s/ / /g; $self->{_metadata}{$currentKey} = defined $2 ? $2 : ''; if (lc($currentKey) eq "format") { $self->{document_format} = $self->{_metadata}{$currentKey}; } if (lc($currentKey) eq "base url") { $self->{base_url} = $self->{_metadata}{$currentKey}; } if (lc($currentKey) eq "bibliography title") { $self->{bibliography_title} = $self->{_metadata}{$currentKey}; $self->{bibliography_title} =~ s/\s*$//; } } else { if ($currentKey eq "") { # No metadata present $clean_text .= "$line\n"; $inMetaData = 0; next; } if ($line =~ /^\s*(.+)$/ ) { $self->{_metadata}{$currentKey} .= "\n$1"; } } } else { $clean_text .= "$line\n"; } } # Recheck for leading blank lines $clean_text =~ s/^\n+//s; return $clean_text; } # FIXME - This is really ugly, why do we match stuff and substitute it with the thing we just matched? sub _GenerateImageCrossRefs { my ($self, $text) = @_; # # First, handle reference-style labeled images: ![alt text][id] # $text =~ s{ ( # wrap whole match in $1 !\[ (.*?) # alt text = $2 \] [ ]? # one optional space (?:\n[ ]*)? # one optional newline followed by spaces \[ (.*?) # id = $3 \] ) }{ my $whole_match = $1; my $alt_text = $2; my $link_id = lc $3; if ($link_id eq "") { $link_id = lc $alt_text; # for shortcut links like ![this][]. } $alt_text =~ s/"/"/g; if (defined $self->{_urls}{$link_id}) { my $label = $self->_Header2Label($alt_text); $self->{_crossrefs}{$label} = "#$label"; } $whole_match; }xsge; # # Next, handle inline images: ![alt text](url "optional title") # Don't forget: encode * and _ $text =~ s{ ( # wrap whole match in $1 !\[ (.*?) # alt text = $2 \] \( # literal paren [ \t]* ? # src url = $3 [ \t]* ( # $4 (['"]) # quote char = $5 (.*?) # title = $6 \5 # matching quote [ \t]* )? # title is optional \) ) }{ my $result; my $whole_match = $1; my $alt_text = $2; $alt_text =~ s/"/"/g; my $label = $self->_Header2Label($alt_text); $self->{_crossrefs}{$label} = "#$label"; $whole_match; }xsge; return $text; } sub _StripFootnoteDefinitions { my ($self, $text) = @_; my $less_than_tab = $self->{tab_width} - 1; while ($text =~ s{ \n\[\^([^\n]+?)\]\:[ \t]*# id = $1 \n? (.*?)\n{1,2} # end at new paragraph ((?=\n[ ]{0,$less_than_tab}\S)|\Z) # Lookahead for non-space at line-start, or end of doc } {\n}sx) { my $id = $1; my $footnote = "$2\n"; $footnote =~ s/^[ ]{0,$self->{tab_width}}//gm; $self->{_footnotes}{$self->_Id2Footnote($id)} = $footnote; } return $text; } sub _DoFootnotes { my ($self, $text) = @_; return '' unless length $text; # First, run routines that get skipped in footnotes foreach my $label (sort keys %{ $self->{_footnotes} }) { my $footnote = $self->_RunBlockGamut($self->{_footnotes}{$label}, {wrap_in_p_tags => 1}); $footnote = $self->_UnescapeSpecialChars($footnote); $footnote = $self->_DoMarkdownCitations($footnote); $self->{_footnotes}{$label} = $footnote; } my $footnote_counter = 0; $text =~ s{ \[\^(.*?)\] # id = $1 }{ my $result = ''; my $id = $self->_Id2Footnote($1); if (defined $self->{_footnotes}{$id} ) { $footnote_counter++; if ($self->{_footnotes}{$id} =~ /^glossary:/i) { $result = qq{
    $footnote_counter}; } else { $result = qq{$footnote_counter}; } push (@{ $self->{_used_footnotes} }, $id); } $result; }xsge; return $text; } # TODO: remove. Doesn't make any difference to test suite pass/failure sub _FixFootnoteParagraphs { my ($self, $text) = @_; $text =~ s(^

    )()gm; return $text; } sub _PrintFootnotes { my ($self) = @_; my $footnote_counter = 0; my $result; foreach my $id (@{ $self->{_used_footnotes} }) { $footnote_counter++; my $footnote = $self->{_footnotes}{$id}; $footnote =~ s/(<\/(p(re)?|ol|ul)>)$//; my $footnote_closing_tag = $1; $footnote_closing_tag = '' if !defined $footnote_closing_tag; if ($footnote =~ s/^glossary:\s*//i) { # Add some formatting for glossary entries $footnote =~ s{ ^(.*?) # $1 = term \s* (?:\(([^\(\)]*)\)[^\n]*)? # $2 = optional sort key \n }{ my $glossary = qq{$1}; if ($2) { $glossary.= qq{}; }; $glossary . q{:

    }; }egsx; $result .= qq{

  • $footnote ↩$footnote_closing_tag
  • \n\n}; } else { $result .= qq{
  • $footnote ↩$footnote_closing_tag
  • \n\n}; } } if ($footnote_counter > 0) { $result = qq[\n\n
    \n{empty_element_suffix}\n
      \n\n] . $result . "
    \n
    "; } else { $result = ""; } return $result; } sub _Header2Label { my ($self, $header) = @_; my $label = lc $header; $label =~ s/[^A-Za-z0-9:_.-]//g; # Strip illegal characters while ($label =~ s/^[^A-Za-z]//g) {}; # Strip illegal leading characters return $label; } sub _Id2Footnote { # Since we prepend "fn:", we can allow leading digits in footnotes my ($self, $id) = @_; my $footnote = lc $id; $footnote =~ s/[^A-Za-z0-9:_.-]//g; # Strip illegal characters return $footnote; } sub _xhtmlMetaData { my ($self) = @_; # FIXME: Should not assume encoding my $result; # FIXME: This breaks some things in IE 6- = qq{\n}; # This screws up xsltproc - make sure to use `-nonet -novalid` if you # have difficulty $result .= qq{\n}; $result.= "\n\t\n"; foreach my $key (sort keys %{$self->{_metadata}} ) { if (lc($key) eq "title") { $result.= "\t\t" . encode_entities($self->{_metadata}{$key}) . "\n"; } elsif (lc($key) eq "css") { $result.= qq[\t\t{empty_element_suffix}\n]; } elsif( lc($key) eq "xhtml header") { $result .= qq[\t\t$self->{_metadata}{$key}\n] } else { $result.= qq[\t\t{empty_element_suffix}\n]; } } $result.= "\t\n"; return $result; } sub _textMetaData { my ($self) = @_; my $result = ""; return $result if $self->{strip_metadata}; foreach my $key (sort keys %{$self->{_metadata}} ) { $result .= "$key: $self->{_metadata}{$key}\n"; } $result =~ s/\s*\n/{empty_element_suffix}\n/g; if ($result ne "") { $result.= "\n"; } return $result; } sub _UseWikiLinks { my ($self) = @_; return 1 if $self->{use_wikilinks}; my ($k) = grep { /use wikilinks/i } keys %{$self->{_metadata}}; return unless $k; return 1 if $self->{_metadata}{$k}; return; } sub _CreateWikiLink { my ($self, $title) = @_; my $id = $title; $id =~ s/ /_/g; $id =~ s/__+/_/g; $id =~ s/^_//g; $id =~ s/_$//; $title =~ s/_/ /g; return "[$title](" . $self->{base_url} . "$id)"; } sub _DoWikiLinks { my ($self, $text) = @_; my $WikiWord = '[A-Z]+[a-z\x80-\xff]+[A-Z][A-Za-z\x80-\xff]*'; my $FreeLinkPattern = "([-,.()' _0-9A-Za-z\x80-\xff]+)"; if ($self->_UseWikiLinks()) { # FreeLinks $text =~ s{ \[\[($FreeLinkPattern)\]\] }{ my $label = $1; $label =~ s{ ([\s\>])($WikiWord) }{ $1 ."\\" . $2 }xsge; $self->_CreateWikiLink($label) }xsge; # WikiWords $text =~ s{ ([\s])($WikiWord) }{ $1 . $self->_CreateWikiLink($2) }xsge; # Catch WikiWords at beginning of text $text =~ s{^($WikiWord) }{ $self->_CreateWikiLink($1) }xse; } return $text; } sub _UnescapeWikiWords { my ($self, $text) = @_; my $WikiWord = '[A-Z]+[a-z\x80-\xff]+[A-Z][A-Za-z\x80-\xff]*'; # Unescape escaped WikiWords $text =~ s/(?<=\B)\\($WikiWord)/$1/g; return $text; } sub _DoTables { my ($self, $text) = @_; return $text if $self->{disable_tables}; my $less_than_tab = $self->{tab_width} - 1; # Algorithm inspired by PHP Markdown Extra's # # Reusable regexp's to match table my $line_start = qr{ [ ]{0,$less_than_tab} }mx; my $table_row = qr{ [^\n]*?\|[^\n]*?\n }mx; my $first_row = qr{ $line_start \S+.*?\|.*?\n }mx; my $table_rows = qr{ (\n?$table_row) }mx; my $table_caption = qr{ $line_start \[.*?\][ \t]*\n }mx; my $table_divider = qr{ $line_start [\|\-\:\.][ \-\|\:\.]* \| [ \-\|\:\.]* }mx; my $whole_table = qr{ ($table_caption)? # Optional caption ($first_row # First line must start at beginning ($table_row)*?)? # Header Rows $table_divider # Divider/Alignment definitions $table_rows+ # Body Rows ($table_caption)? # Optional caption }mx; # Find whole tables, then break them up and process them $text =~ s{ ^($whole_table) # Whole table in $1 (\n|\Z) # End of file or 2 blank lines }{ my $table = $1; my $result = "
    \n"; my @alignments; my $use_row_header = 0; # Add Caption, if present if ($table =~ s/^$line_start\[\s*(.*?)\s*\](\[\s*(.*?)\s*\])?[ \t]*$//m) { if (defined $3) { # add caption id to cross-ref list my $table_id = $self->_Header2Label($3); $result .= qq{\n"; $self->{_crossrefs}{$table_id} = "#$table_id"; $self->{_titles}{$table_id} = "$1"; } else { $result .= "\n"; } } # If a second "caption" is present, treat it as a summary # However, this is not valid in XHTML 1.0 Strict # But maybe in future # A summary might be longer than one line if ($table =~ s/\n$line_start\[\s*(.*?)\s*\][ \t]*\n/\n/s) { # $result .= "" . $self->_RunSpanGamut($1) . "\n"; } # Now, divide table into header, alignment, and body # First, add leading \n in case there is no header $table = "\n" . $table; # Need to be greedy $table =~ s/\n($table_divider)\n(($table_rows)+)//s; my $alignment_string = $1; my $body = $2; # Process column alignment while ($alignment_string =~ /\|?\s*(.+?)\s*(\||\Z)/gs) { my $cell = $self->_RunSpanGamut($1); if ($cell =~ /\:$/) { if ($cell =~ /^\:/) { $result .= qq[{empty_element_suffix}\n]; push(@alignments,"center"); } else { $result .= qq[{empty_element_suffix}\n]; push(@alignments,"right"); } } else { if ($cell =~ /^\:/) { $result .= qq[{empty_element_suffix}\n]; push(@alignments,"left"); } else { if (($cell =~ /^\./) || ($cell =~ /\.$/)) { $result .= qq[{empty_element_suffix}\n]; push(@alignments,"char"); } else { $result .= "{empty_element_suffix}\n"; push(@alignments,""); } } } } # Process headers $table =~ s/^\n+//s; $result .= "\n"; # Strip blank lines $table =~ s/\n[ \t]*\n/\n/g; foreach my $line (split(/\n/, $table)) { # process each line (row) in table $result .= "\n"; my $count=0; while ($line =~ /\|?\s*([^\|]+?)\s*(\|+|\Z)/gs) { # process contents of each cell my $cell = $self->_RunSpanGamut($1); my $ending = $2; my $colspan = ""; if ($ending =~ s/^\s*(\|{2,})\s*$/$1/) { $colspan = " colspan=\"" . length($ending) . "\""; } $result .= "\t$cell\n"; if ( $count == 0) { if ($cell =~ /^\s*$/) { $use_row_header = 1; } else { $use_row_header = 0; } } $count++; } $result .= "\n"; } # Process body $result .= "\n\n"; foreach my $line (split(/\n/, $body)) { # process each line (row) in table if ($line =~ /^\s*$/) { $result .= "\n\n\n"; next; } $result .= "\n"; my $count=0; while ($line =~ /\|?\s*([^\|]+?)\s*(\|+|\Z)/gs) { # process contents of each cell no warnings 'uninitialized'; my $cell = $self->_RunSpanGamut($1); my $ending = $2; my $colspan = ""; my $cell_type = "td"; if ($count == 0 && $use_row_header == 1) { $cell_type = "th"; } if ($ending =~ s/^\s*(\|{2,})\s*$/$1/) { $colspan = " colspan=\"" . length($ending) . "\""; } if ($alignments[$count] !~ /^\s*$/) { $result .= "\t<$cell_type$colspan align=\"$alignments[$count]\">$cell\n"; } else { $result .= "\t<$cell_type$colspan>$cell\n"; } $count++; } $result .= "\n"; } $result .= "\n
    } . $self->_RunSpanGamut($1). "" . $self->_RunSpanGamut($1). "
    \n"; $result }egmx; my $table_body = qr{ ( # wrap whole match in $2 (.*?\|.*?)\n # wrap headers in $3 [ ]{0,$less_than_tab} ($table_divider) # alignment in $4 ( # wrap cells in $5 $table_rows ) ) }mx; return $text; } sub _DoAttributes { my ($self, $id) = @_; my $result = ""; if (defined $self->{_attributes}{$id}) { while ($self->{_attributes}{$id} =~ s/(\S+)="(.*?)"//) { $result .= qq{ $1="$2"}; } while ($self->{_attributes}{$id} =~ /(\S+)=(\S+)/g) { $result .= qq{ $1="$2"}; } } return $result; } sub _StripMarkdownReferences { my ($self, $text) = @_; my $less_than_tab = $self->{tab_width} - 1; while ($text =~ s{ \n\[\#(.+?)\]:[ \t]* # id = $1 \n? (.*?)\n{1,2} # end at new paragraph ((?=\n[ ]{0,$less_than_tab}\S)|\Z) # Lookahead for non-space at line-start, or end of doc } {\n}sx) { my $id = $1; my $reference = "$2\n"; $reference =~ s/^[ ]{0,$self->{tab_width}}//gm; $reference = $self->_RunBlockGamut($reference, {wrap_in_p_tags => 0}); $self->{_references}{$id} = $reference; } return $text; } sub _DoMarkdownCitations { my ($self, $text) = @_; $text =~ s{ \[([^\[]*?)\] # citation text = $1 [ ]? # one optional space (?:\n[ ]*)? # one optional newline followed by spaces \[\#(.*?)\] # id = $2 }{ my $result; my $anchor_text = $1; my $id = $2; my $count; if (defined $self->{_references}{$id} ) { my $citation_counter=0; # See if citation has been used before foreach my $old_id (@{ $self->{_used_references} }) { $citation_counter++; $count = $citation_counter if ($old_id eq $id); } if (! defined $count) { $count = ++$self->{_citation_counter}; push (@{ $self->{_used_references} }, $id); } $result = qq[ ($count]; if ($anchor_text ne "") { $result .= qq[, $anchor_text]; } $result .= ")"; } else { # No reference exists $result = qq[ ($id]; if ($anchor_text ne "") { $result .= qq[, $anchor_text]; } $result .= ")"; } if ($self->_Header2Label($anchor_text) eq "notcited"){ $result = qq[]; } $result; }xsge; return $text; } sub _PrintMarkdownBibliography { my ($self) = @_; my $citation_counter = 0; my $result; foreach my $id (@{ $self->{_used_references} }) { $citation_counter++; $result .= qq|

    [$citation_counter] $self->{_references}{$id}

    \n\n|; } $result .= "
    "; if ($citation_counter > 0) { $result = qq[\n\n
    \n{empty_element_suffix}\n

    $self->{bibliography_title}

    \n\n] . $result; } else { $result = ""; } return $result; } 1; __END__ =head1 BUGS To file bug reports or feature requests please send email to: bug-Text-Markdown@rt.cpan.org Please include with your report: (1) the example input; (2) the output you expected; (3) the output Markdown actually produced. =head1 VERSION HISTORY See the Changes file for detailed release notes for this version. =head1 AUTHOR John Gruber http://daringfireball.net/ PHP port and other contributions by Michel Fortin http://michelf.com/ MultiMarkdown changes by Fletcher Penney http://fletcher.freeshell.org/ CPAN Module Text::MultiMarkdown (based on Text::Markdown by Sebastian Riedel) originally by Darren Kulp (http://kulp.ch/) This module is maintained by: Tomas Doran http://www.bobtfish.net/ =head1 THIS DISTRIBUTION Please note that this distribution is a fork of Fletcher Penny's MultiMarkdown project, and it *is not* in any way blessed by him. Whilst this code aims to be compatible with the original MultiMarkdown (and incorporates and passes the MultiMarkdown test suite) whilst fixing a number of bugs in the original - there may be differences between the behaviour of this module and MultiMarkdown. If you find any differences where you believe Text::MultiMarkdown behaves contrary to the MultiMarkdown spec, please report them as bugs. =head1 SOURCE CODE You can find the source code repository for L and L on GitHub at . =head1 COPYRIGHT AND LICENSE Original Code Copyright (c) 2003-2004 John Gruber All rights reserved. MultiMarkdown changes Copyright (c) 2005-2006 Fletcher T. Penney All rights reserved. Text::MultiMarkdown changes Copyright (c) 2006-2009 Darren Kulp and Tomas Doran Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name "Markdown" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. =cut Text-MultiMarkdown-1.000035/inc/PaxHeader/Module000755 777777 000024 00000000172 12362552430 022042 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062079 18 SCHILY.nlink=4 Text-MultiMarkdown-1.000035/inc/Module/000755 €;Ðâp000024 00000000000 12362552430 020726 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/inc/Module/PaxHeader/Install000755 777777 000024 00000000173 12362552430 023451 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69062080 19 SCHILY.nlink=10 Text-MultiMarkdown-1.000035/inc/Module/Install/000755 €;Ðâp000024 00000000000 12362552430 022334 5ustar00tdoranstaff000000 000000 Text-MultiMarkdown-1.000035/inc/Module/PaxHeader/Install.pm000644 777777 000024 00000000172 12362522055 024060 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054375 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install.pm000644 €;Ðâp000024 00000030135 12362522055 022674 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install; # For any maintainers: # The load order for Module::Install is a bit magic. # It goes something like this... # # IF ( host has Module::Install installed, creating author mode ) { # 1. Makefile.PL calls "use inc::Module::Install" # 2. $INC{inc/Module/Install.pm} set to installed version of inc::Module::Install # 3. The installed version of inc::Module::Install loads # 4. inc::Module::Install calls "require Module::Install" # 5. The ./inc/ version of Module::Install loads # } ELSE { # 1. Makefile.PL calls "use inc::Module::Install" # 2. $INC{inc/Module/Install.pm} set to ./inc/ version of Module::Install # 3. The ./inc/ version of Module::Install loads # } use 5.005; use strict 'vars'; use Cwd (); use File::Find (); use File::Path (); use vars qw{$VERSION $MAIN}; BEGIN { # All Module::Install core packages now require synchronised versions. # This will be used to ensure we don't accidentally load old or # different versions of modules. # This is not enforced yet, but will be some time in the next few # releases once we can make sure it won't clash with custom # Module::Install extensions. $VERSION = '1.08'; # Storage for the pseudo-singleton $MAIN = undef; *inc::Module::Install::VERSION = *VERSION; @inc::Module::Install::ISA = __PACKAGE__; } sub import { my $class = shift; my $self = $class->new(@_); my $who = $self->_caller; #------------------------------------------------------------- # all of the following checks should be included in import(), # to allow "eval 'require Module::Install; 1' to test # installation of Module::Install. (RT #51267) #------------------------------------------------------------- # Whether or not inc::Module::Install is actually loaded, the # $INC{inc/Module/Install.pm} is what will still get set as long as # the caller loaded module this in the documented manner. # If not set, the caller may NOT have loaded the bundled version, and thus # they may not have a MI version that works with the Makefile.PL. This would # result in false errors or unexpected behaviour. And we don't want that. my $file = join( '/', 'inc', split /::/, __PACKAGE__ ) . '.pm'; unless ( $INC{$file} ) { die <<"END_DIE" } Please invoke ${\__PACKAGE__} with: use inc::${\__PACKAGE__}; not: use ${\__PACKAGE__}; END_DIE # This reportedly fixes a rare Win32 UTC file time issue, but # as this is a non-cross-platform XS module not in the core, # we shouldn't really depend on it. See RT #24194 for detail. # (Also, this module only supports Perl 5.6 and above). eval "use Win32::UTCFileTime" if $^O eq 'MSWin32' && $] >= 5.006; # If the script that is loading Module::Install is from the future, # then make will detect this and cause it to re-run over and over # again. This is bad. Rather than taking action to touch it (which # is unreliable on some platforms and requires write permissions) # for now we should catch this and refuse to run. if ( -f $0 ) { my $s = (stat($0))[9]; # If the modification time is only slightly in the future, # sleep briefly to remove the problem. my $a = $s - time; if ( $a > 0 and $a < 5 ) { sleep 5 } # Too far in the future, throw an error. my $t = time; if ( $s > $t ) { die <<"END_DIE" } Your installer $0 has a modification time in the future ($s > $t). This is known to create infinite loops in make. Please correct this, then run $0 again. END_DIE } # Build.PL was formerly supported, but no longer is due to excessive # difficulty in implementing every single feature twice. if ( $0 =~ /Build.PL$/i ) { die <<"END_DIE" } Module::Install no longer supports Build.PL. It was impossible to maintain duel backends, and has been deprecated. Please remove all Build.PL files and only use the Makefile.PL installer. END_DIE #------------------------------------------------------------- # To save some more typing in Module::Install installers, every... # use inc::Module::Install # ...also acts as an implicit use strict. $^H |= strict::bits(qw(refs subs vars)); #------------------------------------------------------------- unless ( -f $self->{file} ) { foreach my $key (keys %INC) { delete $INC{$key} if $key =~ /Module\/Install/; } local $^W; require "$self->{path}/$self->{dispatch}.pm"; File::Path::mkpath("$self->{prefix}/$self->{author}"); $self->{admin} = "$self->{name}::$self->{dispatch}"->new( _top => $self ); $self->{admin}->init; @_ = ($class, _self => $self); goto &{"$self->{name}::import"}; } local $^W; *{"${who}::AUTOLOAD"} = $self->autoload; $self->preload; # Unregister loader and worker packages so subdirs can use them again delete $INC{'inc/Module/Install.pm'}; delete $INC{'Module/Install.pm'}; # Save to the singleton $MAIN = $self; return 1; } sub autoload { my $self = shift; my $who = $self->_caller; my $cwd = Cwd::cwd(); my $sym = "${who}::AUTOLOAD"; $sym->{$cwd} = sub { my $pwd = Cwd::cwd(); if ( my $code = $sym->{$pwd} ) { # Delegate back to parent dirs goto &$code unless $cwd eq $pwd; } unless ($$sym =~ s/([^:]+)$//) { # XXX: it looks like we can't retrieve the missing function # via $$sym (usually $main::AUTOLOAD) in this case. # I'm still wondering if we should slurp Makefile.PL to # get some context or not ... my ($package, $file, $line) = caller; die <<"EOT"; Unknown function is found at $file line $line. Execution of $file aborted due to runtime errors. If you're a contributor to a project, you may need to install some Module::Install extensions from CPAN (or other repository). If you're a user of a module, please contact the author. EOT } my $method = $1; if ( uc($method) eq $method ) { # Do nothing return; } elsif ( $method =~ /^_/ and $self->can($method) ) { # Dispatch to the root M:I class return $self->$method(@_); } # Dispatch to the appropriate plugin unshift @_, ( $self, $1 ); goto &{$self->can('call')}; }; } sub preload { my $self = shift; unless ( $self->{extensions} ) { $self->load_extensions( "$self->{prefix}/$self->{path}", $self ); } my @exts = @{$self->{extensions}}; unless ( @exts ) { @exts = $self->{admin}->load_all_extensions; } my %seen; foreach my $obj ( @exts ) { while (my ($method, $glob) = each %{ref($obj) . '::'}) { next unless $obj->can($method); next if $method =~ /^_/; next if $method eq uc($method); $seen{$method}++; } } my $who = $self->_caller; foreach my $name ( sort keys %seen ) { local $^W; *{"${who}::$name"} = sub { ${"${who}::AUTOLOAD"} = "${who}::$name"; goto &{"${who}::AUTOLOAD"}; }; } } sub new { my ($class, %args) = @_; delete $INC{'FindBin.pm'}; { # to suppress the redefine warning local $SIG{__WARN__} = sub {}; require FindBin; } # ignore the prefix on extension modules built from top level. my $base_path = Cwd::abs_path($FindBin::Bin); unless ( Cwd::abs_path(Cwd::cwd()) eq $base_path ) { delete $args{prefix}; } return $args{_self} if $args{_self}; $args{dispatch} ||= 'Admin'; $args{prefix} ||= 'inc'; $args{author} ||= ($^O eq 'VMS' ? '_author' : '.author'); $args{bundle} ||= 'inc/BUNDLES'; $args{base} ||= $base_path; $class =~ s/^\Q$args{prefix}\E:://; $args{name} ||= $class; $args{version} ||= $class->VERSION; unless ( $args{path} ) { $args{path} = $args{name}; $args{path} =~ s!::!/!g; } $args{file} ||= "$args{base}/$args{prefix}/$args{path}.pm"; $args{wrote} = 0; bless( \%args, $class ); } sub call { my ($self, $method) = @_; my $obj = $self->load($method) or return; splice(@_, 0, 2, $obj); goto &{$obj->can($method)}; } sub load { my ($self, $method) = @_; $self->load_extensions( "$self->{prefix}/$self->{path}", $self ) unless $self->{extensions}; foreach my $obj (@{$self->{extensions}}) { return $obj if $obj->can($method); } my $admin = $self->{admin} or die <<"END_DIE"; The '$method' method does not exist in the '$self->{prefix}' path! Please remove the '$self->{prefix}' directory and run $0 again to load it. END_DIE my $obj = $admin->load($method, 1); push @{$self->{extensions}}, $obj; $obj; } sub load_extensions { my ($self, $path, $top) = @_; my $should_reload = 0; unless ( grep { ! ref $_ and lc $_ eq lc $self->{prefix} } @INC ) { unshift @INC, $self->{prefix}; $should_reload = 1; } foreach my $rv ( $self->find_extensions($path) ) { my ($file, $pkg) = @{$rv}; next if $self->{pathnames}{$pkg}; local $@; my $new = eval { local $^W; require $file; $pkg->can('new') }; unless ( $new ) { warn $@ if $@; next; } $self->{pathnames}{$pkg} = $should_reload ? delete $INC{$file} : $INC{$file}; push @{$self->{extensions}}, &{$new}($pkg, _top => $top ); } $self->{extensions} ||= []; } sub find_extensions { my ($self, $path) = @_; my @found; File::Find::find( sub { my $file = $File::Find::name; return unless $file =~ m!^\Q$path\E/(.+)\.pm\Z!is; my $subpath = $1; return if lc($subpath) eq lc($self->{dispatch}); $file = "$self->{path}/$subpath.pm"; my $pkg = "$self->{name}::$subpath"; $pkg =~ s!/!::!g; # If we have a mixed-case package name, assume case has been preserved # correctly. Otherwise, root through the file to locate the case-preserved # version of the package name. if ( $subpath eq lc($subpath) || $subpath eq uc($subpath) ) { my $content = Module::Install::_read($subpath . '.pm'); my $in_pod = 0; foreach ( split //, $content ) { $in_pod = 1 if /^=\w/; $in_pod = 0 if /^=cut/; next if ($in_pod || /^=cut/); # skip pod text next if /^\s*#/; # and comments if ( m/^\s*package\s+($pkg)\s*;/i ) { $pkg = $1; last; } } } push @found, [ $file, $pkg ]; }, $path ) if -d $path; @found; } ##################################################################### # Common Utility Functions sub _caller { my $depth = 0; my $call = caller($depth); while ( $call eq __PACKAGE__ ) { $depth++; $call = caller($depth); } return $call; } # Done in evals to avoid confusing Perl::MinimumVersion eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _read { local *FH; open( FH, '<', $_[0] ) or die "open($_[0]): $!"; my $string = do { local $/; }; close FH or die "close($_[0]): $!"; return $string; } END_NEW sub _read { local *FH; open( FH, "< $_[0]" ) or die "open($_[0]): $!"; my $string = do { local $/; }; close FH or die "close($_[0]): $!"; return $string; } END_OLD sub _readperl { my $string = Module::Install::_read($_[0]); $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; $string =~ s/(\n)\n*__(?:DATA|END)__\b.*\z/$1/s; $string =~ s/\n\n=\w+.+?\n\n=cut\b.+?\n+/\n\n/sg; return $string; } sub _readpod { my $string = Module::Install::_read($_[0]); $string =~ s/(?:\015{1,2}\012|\015|\012)/\n/sg; return $string if $_[0] =~ /\.pod\z/; $string =~ s/(^|\n=cut\b.+?\n+)[^=\s].+?\n(\n=\w+|\z)/$1$2/sg; $string =~ s/\n*=pod\b[^\n]*\n+/\n\n/sg; $string =~ s/\n*=cut\b[^\n]*\n+/\n\n/sg; $string =~ s/^\n+//s; return $string; } # Done in evals to avoid confusing Perl::MinimumVersion eval( $] >= 5.006 ? <<'END_NEW' : <<'END_OLD' ); die $@ if $@; sub _write { local *FH; open( FH, '>', $_[0] ) or die "open($_[0]): $!"; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } close FH or die "close($_[0]): $!"; } END_NEW sub _write { local *FH; open( FH, "> $_[0]" ) or die "open($_[0]): $!"; foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } close FH or die "close($_[0]): $!"; } END_OLD # _version is for processing module versions (eg, 1.03_05) not # Perl versions (eg, 5.8.1). sub _version ($) { my $s = shift || 0; my $d =()= $s =~ /(\.)/g; if ( $d >= 2 ) { # Normalise multipart versions $s =~ s/(\.)(\d{1,3})/sprintf("$1%03d",$2)/eg; } $s =~ s/^(\d+)\.?//; my $l = $1 || 0; my @v = map { $_ . '0' x (3 - length $_) } $s =~ /(\d{1,3})\D?/g; $l = $l . '.' . join '', @v if @v; return $l + 0; } sub _cmp ($$) { _version($_[1]) <=> _version($_[2]); } # Cloned from Params::Util::_CLASS sub _CLASS ($) { ( defined $_[0] and ! ref $_[0] and $_[0] =~ m/^[^\W\d]\w*(?:::\w+)*\z/s ) ? $_[0] : undef; } 1; # Copyright 2008 - 2012 Adam Kennedy. Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/Base.pm000644 777777 000024 00000000172 12362522055 024732 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054378 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/Base.pm000644 €;Ðâp000024 00000002147 12362522055 023550 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::Base; use strict 'vars'; use vars qw{$VERSION}; BEGIN { $VERSION = '1.08'; } # Suspend handler for "redefined" warnings BEGIN { my $w = $SIG{__WARN__}; $SIG{__WARN__} = sub { $w }; } #line 42 sub new { my $class = shift; unless ( defined &{"${class}::call"} ) { *{"${class}::call"} = sub { shift->_top->call(@_) }; } unless ( defined &{"${class}::load"} ) { *{"${class}::load"} = sub { shift->_top->load(@_) }; } bless { @_ }, $class; } #line 61 sub AUTOLOAD { local $@; my $func = eval { shift->_top->autoload } or return; goto &$func; } #line 75 sub _top { $_[0]->{_top}; } #line 90 sub admin { $_[0]->_top->{admin} or Module::Install::Base::FakeAdmin->new; } #line 106 sub is_admin { ! $_[0]->admin->isa('Module::Install::Base::FakeAdmin'); } sub DESTROY {} package Module::Install::Base::FakeAdmin; use vars qw{$VERSION}; BEGIN { $VERSION = $Module::Install::Base::VERSION; } my $fake; sub new { $fake ||= bless(\@_, $_[0]); } sub AUTOLOAD {} sub DESTROY {} # Restore warning handler BEGIN { $SIG{__WARN__} = $SIG{__WARN__}->(); } 1; #line 159 Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/Can.pm000644 777777 000024 00000000172 12362522056 024562 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054383 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/Can.pm000644 €;Ðâp000024 00000006157 12362522056 023405 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::Can; use strict; use Config (); use ExtUtils::MakeMaker (); use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.08'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } # check if we can load some module ### Upgrade this to not have to load the module if possible sub can_use { my ($self, $mod, $ver) = @_; $mod =~ s{::|\\}{/}g; $mod .= '.pm' unless $mod =~ /\.pm$/i; my $pkg = $mod; $pkg =~ s{/}{::}g; $pkg =~ s{\.pm$}{}i; local $@; eval { require $mod; $pkg->VERSION($ver || 0); 1 }; } # Check if we can run some command sub can_run { my ($self, $cmd) = @_; my $_cmd = $cmd; return $_cmd if (-x $_cmd or $_cmd = MM->maybe_command($_cmd)); for my $dir ((split /$Config::Config{path_sep}/, $ENV{PATH}), '.') { next if $dir eq ''; require File::Spec; my $abs = File::Spec->catfile($dir, $cmd); return $abs if (-x $abs or $abs = MM->maybe_command($abs)); } return; } # Can our C compiler environment build XS files sub can_xs { my $self = shift; # Ensure we have the CBuilder module $self->configure_requires( 'ExtUtils::CBuilder' => 0.27 ); # Do we have the configure_requires checker? local $@; eval "require ExtUtils::CBuilder;"; if ( $@ ) { # They don't obey configure_requires, so it is # someone old and delicate. Try to avoid hurting # them by falling back to an older simpler test. return $self->can_cc(); } # Do we have a working C compiler my $builder = ExtUtils::CBuilder->new( quiet => 1, ); unless ( $builder->have_compiler ) { # No working C compiler return 0; } # Write a C file representative of what XS becomes require File::Temp; my ( $FH, $tmpfile ) = File::Temp::tempfile( "compilexs-XXXXX", SUFFIX => '.c', ); binmode $FH; print $FH <<'END_C'; #include "EXTERN.h" #include "perl.h" #include "XSUB.h" int main(int argc, char **argv) { return 0; } int boot_sanexs() { return 1; } END_C close $FH; # Can the C compiler access the same headers XS does my @libs = (); my $object = undef; eval { local $^W = 0; $object = $builder->compile( source => $tmpfile, ); @libs = $builder->link( objects => $object, module_name => 'sanexs', ); }; my $result = $@ ? 0 : 1; # Clean up all the build files foreach ( $tmpfile, $object, @libs ) { next unless defined $_; 1 while unlink; } return $result; } # Can we locate a (the) C compiler sub can_cc { my $self = shift; my @chunks = split(/ /, $Config::Config{cc}) or return; # $Config{cc} may contain args; try to find out the program part while (@chunks) { return $self->can_run("@chunks") || (pop(@chunks), next); } return; } # Fix Cygwin bug on maybe_command(); if ( $^O eq 'cygwin' ) { require ExtUtils::MM_Cygwin; require ExtUtils::MM_Win32; if ( ! defined(&ExtUtils::MM_Cygwin::maybe_command) ) { *ExtUtils::MM_Cygwin::maybe_command = sub { my ($self, $file) = @_; if ($file =~ m{^/cygdrive/}i and ExtUtils::MM_Win32->can('maybe_command')) { ExtUtils::MM_Win32->maybe_command($file); } else { ExtUtils::MM_Unix->maybe_command($file); } } } } 1; __END__ #line 236 Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/Fetch.pm000644 777777 000024 00000000172 12362522056 025112 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054384 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/Fetch.pm000644 €;Ðâp000024 00000004627 12362522056 023735 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::Fetch; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.08'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } sub get_file { my ($self, %args) = @_; my ($scheme, $host, $path, $file) = $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; if ( $scheme eq 'http' and ! eval { require LWP::Simple; 1 } ) { $args{url} = $args{ftp_url} or (warn("LWP support unavailable!\n"), return); ($scheme, $host, $path, $file) = $args{url} =~ m|^(\w+)://([^/]+)(.+)/(.+)| or return; } $|++; print "Fetching '$file' from $host... "; unless (eval { require Socket; Socket::inet_aton($host) }) { warn "'$host' resolve failed!\n"; return; } return unless $scheme eq 'ftp' or $scheme eq 'http'; require Cwd; my $dir = Cwd::getcwd(); chdir $args{local_dir} or return if exists $args{local_dir}; if (eval { require LWP::Simple; 1 }) { LWP::Simple::mirror($args{url}, $file); } elsif (eval { require Net::FTP; 1 }) { eval { # use Net::FTP to get past firewall my $ftp = Net::FTP->new($host, Passive => 1, Timeout => 600); $ftp->login("anonymous", 'anonymous@example.com'); $ftp->cwd($path); $ftp->binary; $ftp->get($file) or (warn("$!\n"), return); $ftp->quit; } } elsif (my $ftp = $self->can_run('ftp')) { eval { # no Net::FTP, fallback to ftp.exe require FileHandle; my $fh = FileHandle->new; local $SIG{CHLD} = 'IGNORE'; unless ($fh->open("|$ftp -n")) { warn "Couldn't open ftp: $!\n"; chdir $dir; return; } my @dialog = split(/\n/, <<"END_FTP"); open $host user anonymous anonymous\@example.com cd $path binary get $file $file quit END_FTP foreach (@dialog) { $fh->print("$_\n") } $fh->close; } } else { warn "No working 'ftp' program available!\n"; chdir $dir; return; } unless (-f $file) { warn "Fetching failed: $@\n"; chdir $dir; return; } return if exists $args{size} and -s $file != $args{size}; system($args{run}) if exists $args{run}; unlink($file) if $args{remove}; print(((!exists $args{check_for} or -e $args{check_for}) ? "done!" : "failed! ($!)"), "\n"); chdir $dir; return !$?; } 1; Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/Makefile.pm000644 777777 000024 00000000172 12362522055 025575 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054379 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/Makefile.pm000644 €;Ðâp000024 00000027437 12362522055 024424 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::Makefile; use strict 'vars'; use ExtUtils::MakeMaker (); use Module::Install::Base (); use Fcntl qw/:flock :seek/; use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.08'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } sub Makefile { $_[0] } my %seen = (); sub prompt { shift; # Infinite loop protection my @c = caller(); if ( ++$seen{"$c[1]|$c[2]|$_[0]"} > 3 ) { die "Caught an potential prompt infinite loop ($c[1]|$c[2]|$_[0])"; } # In automated testing or non-interactive session, always use defaults if ( ($ENV{AUTOMATED_TESTING} or -! -t STDIN) and ! $ENV{PERL_MM_USE_DEFAULT} ) { local $ENV{PERL_MM_USE_DEFAULT} = 1; goto &ExtUtils::MakeMaker::prompt; } else { goto &ExtUtils::MakeMaker::prompt; } } # Store a cleaned up version of the MakeMaker version, # since we need to behave differently in a variety of # ways based on the MM version. my $makemaker = eval $ExtUtils::MakeMaker::VERSION; # If we are passed a param, do a "newer than" comparison. # Otherwise, just return the MakeMaker version. sub makemaker { ( @_ < 2 or $makemaker >= eval($_[1]) ) ? $makemaker : 0 } # Ripped from ExtUtils::MakeMaker 6.56, and slightly modified # as we only need to know here whether the attribute is an array # or a hash or something else (which may or may not be appendable). my %makemaker_argtype = ( C => 'ARRAY', CONFIG => 'ARRAY', # CONFIGURE => 'CODE', # ignore DIR => 'ARRAY', DL_FUNCS => 'HASH', DL_VARS => 'ARRAY', EXCLUDE_EXT => 'ARRAY', EXE_FILES => 'ARRAY', FUNCLIST => 'ARRAY', H => 'ARRAY', IMPORTS => 'HASH', INCLUDE_EXT => 'ARRAY', LIBS => 'ARRAY', # ignore '' MAN1PODS => 'HASH', MAN3PODS => 'HASH', META_ADD => 'HASH', META_MERGE => 'HASH', PL_FILES => 'HASH', PM => 'HASH', PMLIBDIRS => 'ARRAY', PMLIBPARENTDIRS => 'ARRAY', PREREQ_PM => 'HASH', CONFIGURE_REQUIRES => 'HASH', SKIP => 'ARRAY', TYPEMAPS => 'ARRAY', XS => 'HASH', # VERSION => ['version',''], # ignore # _KEEP_AFTER_FLUSH => '', clean => 'HASH', depend => 'HASH', dist => 'HASH', dynamic_lib=> 'HASH', linkext => 'HASH', macro => 'HASH', postamble => 'HASH', realclean => 'HASH', test => 'HASH', tool_autosplit => 'HASH', # special cases where you can use makemaker_append CCFLAGS => 'APPENDABLE', DEFINE => 'APPENDABLE', INC => 'APPENDABLE', LDDLFLAGS => 'APPENDABLE', LDFROM => 'APPENDABLE', ); sub makemaker_args { my ($self, %new_args) = @_; my $args = ( $self->{makemaker_args} ||= {} ); foreach my $key (keys %new_args) { if ($makemaker_argtype{$key}) { if ($makemaker_argtype{$key} eq 'ARRAY') { $args->{$key} = [] unless defined $args->{$key}; unless (ref $args->{$key} eq 'ARRAY') { $args->{$key} = [$args->{$key}] } push @{$args->{$key}}, ref $new_args{$key} eq 'ARRAY' ? @{$new_args{$key}} : $new_args{$key}; } elsif ($makemaker_argtype{$key} eq 'HASH') { $args->{$key} = {} unless defined $args->{$key}; foreach my $skey (keys %{ $new_args{$key} }) { $args->{$key}{$skey} = $new_args{$key}{$skey}; } } elsif ($makemaker_argtype{$key} eq 'APPENDABLE') { $self->makemaker_append($key => $new_args{$key}); } } else { if (defined $args->{$key}) { warn qq{MakeMaker attribute "$key" is overriden; use "makemaker_append" to append values\n}; } $args->{$key} = $new_args{$key}; } } return $args; } # For mm args that take multiple space-seperated args, # append an argument to the current list. sub makemaker_append { my $self = shift; my $name = shift; my $args = $self->makemaker_args; $args->{$name} = defined $args->{$name} ? join( ' ', $args->{$name}, @_ ) : join( ' ', @_ ); } sub build_subdirs { my $self = shift; my $subdirs = $self->makemaker_args->{DIR} ||= []; for my $subdir (@_) { push @$subdirs, $subdir; } } sub clean_files { my $self = shift; my $clean = $self->makemaker_args->{clean} ||= {}; %$clean = ( %$clean, FILES => join ' ', grep { length $_ } ($clean->{FILES} || (), @_), ); } sub realclean_files { my $self = shift; my $realclean = $self->makemaker_args->{realclean} ||= {}; %$realclean = ( %$realclean, FILES => join ' ', grep { length $_ } ($realclean->{FILES} || (), @_), ); } sub libs { my $self = shift; my $libs = ref $_[0] ? shift : [ shift ]; $self->makemaker_args( LIBS => $libs ); } sub inc { my $self = shift; $self->makemaker_args( INC => shift ); } sub _wanted_t { } sub tests_recursive { my $self = shift; my $dir = shift || 't'; unless ( -d $dir ) { die "tests_recursive dir '$dir' does not exist"; } my %tests = map { $_ => 1 } split / /, ($self->tests || ''); require File::Find; File::Find::find( sub { /\.t$/ and -f $_ and $tests{"$File::Find::dir/*.t"} = 1 }, $dir ); $self->tests( join ' ', sort keys %tests ); } sub write { my $self = shift; die "&Makefile->write() takes no arguments\n" if @_; # Check the current Perl version my $perl_version = $self->perl_version; if ( $perl_version ) { eval "use $perl_version; 1" or die "ERROR: perl: Version $] is installed, " . "but we need version >= $perl_version"; } # Make sure we have a new enough MakeMaker require ExtUtils::MakeMaker; if ( $perl_version and $self->_cmp($perl_version, '5.006') >= 0 ) { # This previous attempted to inherit the version of # ExtUtils::MakeMaker in use by the module author, but this # was found to be untenable as some authors build releases # using future dev versions of EU:MM that nobody else has. # Instead, #toolchain suggests we use 6.59 which is the most # stable version on CPAN at time of writing and is, to quote # ribasushi, "not terminally fucked, > and tested enough". # TODO: We will now need to maintain this over time to push # the version up as new versions are released. $self->build_requires( 'ExtUtils::MakeMaker' => 6.59 ); $self->configure_requires( 'ExtUtils::MakeMaker' => 6.59 ); } else { # Allow legacy-compatibility with 5.005 by depending on the # most recent EU:MM that supported 5.005. $self->build_requires( 'ExtUtils::MakeMaker' => 6.36 ); $self->configure_requires( 'ExtUtils::MakeMaker' => 6.36 ); } # Generate the MakeMaker params my $args = $self->makemaker_args; $args->{DISTNAME} = $self->name; $args->{NAME} = $self->module_name || $self->name; $args->{NAME} =~ s/-/::/g; $args->{VERSION} = $self->version or die <<'EOT'; ERROR: Can't determine distribution version. Please specify it explicitly via 'version' in Makefile.PL, or set a valid $VERSION in a module, and provide its file path via 'version_from' (or 'all_from' if you prefer) in Makefile.PL. EOT if ( $self->tests ) { my @tests = split ' ', $self->tests; my %seen; $args->{test} = { TESTS => (join ' ', grep {!$seen{$_}++} @tests), }; } elsif ( $Module::Install::ExtraTests::use_extratests ) { # Module::Install::ExtraTests doesn't set $self->tests and does its own tests via harness. # So, just ignore our xt tests here. } elsif ( -d 'xt' and ($Module::Install::AUTHOR or $ENV{RELEASE_TESTING}) ) { $args->{test} = { TESTS => join( ' ', map { "$_/*.t" } grep { -d $_ } qw{ t xt } ), }; } if ( $] >= 5.005 ) { $args->{ABSTRACT} = $self->abstract; $args->{AUTHOR} = join ', ', @{$self->author || []}; } if ( $self->makemaker(6.10) ) { $args->{NO_META} = 1; #$args->{NO_MYMETA} = 1; } if ( $self->makemaker(6.17) and $self->sign ) { $args->{SIGN} = 1; } unless ( $self->is_admin ) { delete $args->{SIGN}; } if ( $self->makemaker(6.31) and $self->license ) { $args->{LICENSE} = $self->license; } my $prereq = ($args->{PREREQ_PM} ||= {}); %$prereq = ( %$prereq, map { @$_ } # flatten [module => version] map { @$_ } grep $_, ($self->requires) ); # Remove any reference to perl, PREREQ_PM doesn't support it delete $args->{PREREQ_PM}->{perl}; # Merge both kinds of requires into BUILD_REQUIRES my $build_prereq = ($args->{BUILD_REQUIRES} ||= {}); %$build_prereq = ( %$build_prereq, map { @$_ } # flatten [module => version] map { @$_ } grep $_, ($self->configure_requires, $self->build_requires) ); # Remove any reference to perl, BUILD_REQUIRES doesn't support it delete $args->{BUILD_REQUIRES}->{perl}; # Delete bundled dists from prereq_pm, add it to Makefile DIR my $subdirs = ($args->{DIR} || []); if ($self->bundles) { my %processed; foreach my $bundle (@{ $self->bundles }) { my ($mod_name, $dist_dir) = @$bundle; delete $prereq->{$mod_name}; $dist_dir = File::Basename::basename($dist_dir); # dir for building this module if (not exists $processed{$dist_dir}) { if (-d $dist_dir) { # List as sub-directory to be processed by make push @$subdirs, $dist_dir; } # Else do nothing: the module is already present on the system $processed{$dist_dir} = undef; } } } unless ( $self->makemaker('6.55_03') ) { %$prereq = (%$prereq,%$build_prereq); delete $args->{BUILD_REQUIRES}; } if ( my $perl_version = $self->perl_version ) { eval "use $perl_version; 1" or die "ERROR: perl: Version $] is installed, " . "but we need version >= $perl_version"; if ( $self->makemaker(6.48) ) { $args->{MIN_PERL_VERSION} = $perl_version; } } if ($self->installdirs) { warn qq{old INSTALLDIRS (probably set by makemaker_args) is overriden by installdirs\n} if $args->{INSTALLDIRS}; $args->{INSTALLDIRS} = $self->installdirs; } my %args = map { ( $_ => $args->{$_} ) } grep {defined($args->{$_} ) } keys %$args; my $user_preop = delete $args{dist}->{PREOP}; if ( my $preop = $self->admin->preop($user_preop) ) { foreach my $key ( keys %$preop ) { $args{dist}->{$key} = $preop->{$key}; } } my $mm = ExtUtils::MakeMaker::WriteMakefile(%args); $self->fix_up_makefile($mm->{FIRST_MAKEFILE} || 'Makefile'); } sub fix_up_makefile { my $self = shift; my $makefile_name = shift; my $top_class = ref($self->_top) || ''; my $top_version = $self->_top->VERSION || ''; my $preamble = $self->preamble ? "# Preamble by $top_class $top_version\n" . $self->preamble : ''; my $postamble = "# Postamble by $top_class $top_version\n" . ($self->postamble || ''); local *MAKEFILE; open MAKEFILE, "+< $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!"; eval { flock MAKEFILE, LOCK_EX }; my $makefile = do { local $/; }; $makefile =~ s/\b(test_harness\(\$\(TEST_VERBOSE\), )/$1'inc', /; $makefile =~ s/( -I\$\(INST_ARCHLIB\))/ -Iinc$1/g; $makefile =~ s/( "-I\$\(INST_LIB\)")/ "-Iinc"$1/g; $makefile =~ s/^(FULLPERL = .*)/$1 "-Iinc"/m; $makefile =~ s/^(PERL = .*)/$1 "-Iinc"/m; # Module::Install will never be used to build the Core Perl # Sometimes PERL_LIB and PERL_ARCHLIB get written anyway, which breaks # PREFIX/PERL5LIB, and thus, install_share. Blank them if they exist $makefile =~ s/^PERL_LIB = .+/PERL_LIB =/m; #$makefile =~ s/^PERL_ARCHLIB = .+/PERL_ARCHLIB =/m; # Perl 5.005 mentions PERL_LIB explicitly, so we have to remove that as well. $makefile =~ s/(\"?)-I\$\(PERL_LIB\)\1//g; # XXX - This is currently unused; not sure if it breaks other MM-users # $makefile =~ s/^pm_to_blib\s+:\s+/pm_to_blib :: /mg; seek MAKEFILE, 0, SEEK_SET; truncate MAKEFILE, 0; print MAKEFILE "$preamble$makefile$postamble" or die $!; close MAKEFILE or die $!; 1; } sub preamble { my ($self, $text) = @_; $self->{preamble} = $text . $self->{preamble} if defined $text; $self->{preamble}; } sub postamble { my ($self, $text) = @_; $self->{postamble} ||= $self->admin->postamble; $self->{postamble} .= $text if defined $text; $self->{postamble} } 1; __END__ #line 544 Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/Metadata.pm000644 777777 000024 00000000172 12362522055 025600 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054377 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/Metadata.pm000644 €;Ðâp000024 00000043277 12362522055 024427 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::Metadata; use strict 'vars'; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.08'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } my @boolean_keys = qw{ sign }; my @scalar_keys = qw{ name module_name abstract version distribution_type tests installdirs }; my @tuple_keys = qw{ configure_requires build_requires requires recommends bundles resources }; my @resource_keys = qw{ homepage bugtracker repository }; my @array_keys = qw{ keywords author }; *authors = \&author; sub Meta { shift } sub Meta_BooleanKeys { @boolean_keys } sub Meta_ScalarKeys { @scalar_keys } sub Meta_TupleKeys { @tuple_keys } sub Meta_ResourceKeys { @resource_keys } sub Meta_ArrayKeys { @array_keys } foreach my $key ( @boolean_keys ) { *$key = sub { my $self = shift; if ( defined wantarray and not @_ ) { return $self->{values}->{$key}; } $self->{values}->{$key} = ( @_ ? $_[0] : 1 ); return $self; }; } foreach my $key ( @scalar_keys ) { *$key = sub { my $self = shift; return $self->{values}->{$key} if defined wantarray and !@_; $self->{values}->{$key} = shift; return $self; }; } foreach my $key ( @array_keys ) { *$key = sub { my $self = shift; return $self->{values}->{$key} if defined wantarray and !@_; $self->{values}->{$key} ||= []; push @{$self->{values}->{$key}}, @_; return $self; }; } foreach my $key ( @resource_keys ) { *$key = sub { my $self = shift; unless ( @_ ) { return () unless $self->{values}->{resources}; return map { $_->[1] } grep { $_->[0] eq $key } @{ $self->{values}->{resources} }; } return $self->{values}->{resources}->{$key} unless @_; my $uri = shift or die( "Did not provide a value to $key()" ); $self->resources( $key => $uri ); return 1; }; } foreach my $key ( grep { $_ ne "resources" } @tuple_keys) { *$key = sub { my $self = shift; return $self->{values}->{$key} unless @_; my @added; while ( @_ ) { my $module = shift or last; my $version = shift || 0; push @added, [ $module, $version ]; } push @{ $self->{values}->{$key} }, @added; return map {@$_} @added; }; } # Resource handling my %lc_resource = map { $_ => 1 } qw{ homepage license bugtracker repository }; sub resources { my $self = shift; while ( @_ ) { my $name = shift or last; my $value = shift or next; if ( $name eq lc $name and ! $lc_resource{$name} ) { die("Unsupported reserved lowercase resource '$name'"); } $self->{values}->{resources} ||= []; push @{ $self->{values}->{resources} }, [ $name, $value ]; } $self->{values}->{resources}; } # Aliases for build_requires that will have alternative # meanings in some future version of META.yml. sub test_requires { shift->build_requires(@_) } sub install_requires { shift->build_requires(@_) } # Aliases for installdirs options sub install_as_core { $_[0]->installdirs('perl') } sub install_as_cpan { $_[0]->installdirs('site') } sub install_as_site { $_[0]->installdirs('site') } sub install_as_vendor { $_[0]->installdirs('vendor') } sub dynamic_config { my $self = shift; my $value = @_ ? shift : 1; if ( $self->{values}->{dynamic_config} ) { # Once dynamic we never change to static, for safety return 0; } $self->{values}->{dynamic_config} = $value ? 1 : 0; return 1; } # Convenience command sub static_config { shift->dynamic_config(0); } sub perl_version { my $self = shift; return $self->{values}->{perl_version} unless @_; my $version = shift or die( "Did not provide a value to perl_version()" ); # Normalize the version $version = $self->_perl_version($version); # We don't support the really old versions unless ( $version >= 5.005 ) { die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n"; } $self->{values}->{perl_version} = $version; } sub all_from { my ( $self, $file ) = @_; unless ( defined($file) ) { my $name = $self->name or die( "all_from called with no args without setting name() first" ); $file = join('/', 'lib', split(/-/, $name)) . '.pm'; $file =~ s{.*/}{} unless -e $file; unless ( -e $file ) { die("all_from cannot find $file from $name"); } } unless ( -f $file ) { die("The path '$file' does not exist, or is not a file"); } $self->{values}{all_from} = $file; # Some methods pull from POD instead of code. # If there is a matching .pod, use that instead my $pod = $file; $pod =~ s/\.pm$/.pod/i; $pod = $file unless -e $pod; # Pull the different values $self->name_from($file) unless $self->name; $self->version_from($file) unless $self->version; $self->perl_version_from($file) unless $self->perl_version; $self->author_from($pod) unless @{$self->author || []}; $self->license_from($pod) unless $self->license; $self->abstract_from($pod) unless $self->abstract; return 1; } sub provides { my $self = shift; my $provides = ( $self->{values}->{provides} ||= {} ); %$provides = (%$provides, @_) if @_; return $provides; } sub auto_provides { my $self = shift; return $self unless $self->is_admin; unless (-e 'MANIFEST') { warn "Cannot deduce auto_provides without a MANIFEST, skipping\n"; return $self; } # Avoid spurious warnings as we are not checking manifest here. local $SIG{__WARN__} = sub {1}; require ExtUtils::Manifest; local *ExtUtils::Manifest::manicheck = sub { return }; require Module::Build; my $build = Module::Build->new( dist_name => $self->name, dist_version => $self->version, license => $self->license, ); $self->provides( %{ $build->find_dist_packages || {} } ); } sub feature { my $self = shift; my $name = shift; my $features = ( $self->{values}->{features} ||= [] ); my $mods; if ( @_ == 1 and ref( $_[0] ) ) { # The user used ->feature like ->features by passing in the second # argument as a reference. Accomodate for that. $mods = $_[0]; } else { $mods = \@_; } my $count = 0; push @$features, ( $name => [ map { ref($_) ? ( ref($_) eq 'HASH' ) ? %$_ : @$_ : $_ } @$mods ] ); return @$features; } sub features { my $self = shift; while ( my ( $name, $mods ) = splice( @_, 0, 2 ) ) { $self->feature( $name, @$mods ); } return $self->{values}->{features} ? @{ $self->{values}->{features} } : (); } sub no_index { my $self = shift; my $type = shift; push @{ $self->{values}->{no_index}->{$type} }, @_ if $type; return $self->{values}->{no_index}; } sub read { my $self = shift; $self->include_deps( 'YAML::Tiny', 0 ); require YAML::Tiny; my $data = YAML::Tiny::LoadFile('META.yml'); # Call methods explicitly in case user has already set some values. while ( my ( $key, $value ) = each %$data ) { next unless $self->can($key); if ( ref $value eq 'HASH' ) { while ( my ( $module, $version ) = each %$value ) { $self->can($key)->($self, $module => $version ); } } else { $self->can($key)->($self, $value); } } return $self; } sub write { my $self = shift; return $self unless $self->is_admin; $self->admin->write_meta; return $self; } sub version_from { require ExtUtils::MM_Unix; my ( $self, $file ) = @_; $self->version( ExtUtils::MM_Unix->parse_version($file) ); # for version integrity check $self->makemaker_args( VERSION_FROM => $file ); } sub abstract_from { require ExtUtils::MM_Unix; my ( $self, $file ) = @_; $self->abstract( bless( { DISTNAME => $self->name }, 'ExtUtils::MM_Unix' )->parse_abstract($file) ); } # Add both distribution and module name sub name_from { my ($self, $file) = @_; if ( Module::Install::_read($file) =~ m/ ^ \s* package \s* ([\w:]+) \s* ; /ixms ) { my ($name, $module_name) = ($1, $1); $name =~ s{::}{-}g; $self->name($name); unless ( $self->module_name ) { $self->module_name($module_name); } } else { die("Cannot determine name from $file\n"); } } sub _extract_perl_version { if ( $_[0] =~ m/ ^\s* (?:use|require) \s* v? ([\d_\.]+) \s* ; /ixms ) { my $perl_version = $1; $perl_version =~ s{_}{}g; return $perl_version; } else { return; } } sub perl_version_from { my $self = shift; my $perl_version=_extract_perl_version(Module::Install::_read($_[0])); if ($perl_version) { $self->perl_version($perl_version); } else { warn "Cannot determine perl version info from $_[0]\n"; return; } } sub author_from { my $self = shift; my $content = Module::Install::_read($_[0]); if ($content =~ m/ =head \d \s+ (?:authors?)\b \s* ([^\n]*) | =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b \s* .*? copyright .*? \d\d\d[\d.]+ \s* (?:\bby\b)? \s* ([^\n]*) /ixms) { my $author = $1 || $2; # XXX: ugly but should work anyway... if (eval "require Pod::Escapes; 1") { # Pod::Escapes has a mapping table. # It's in core of perl >= 5.9.3, and should be installed # as one of the Pod::Simple's prereqs, which is a prereq # of Pod::Text 3.x (see also below). $author =~ s{ E<( (\d+) | ([A-Za-z]+) )> } { defined $2 ? chr($2) : defined $Pod::Escapes::Name2character_number{$1} ? chr($Pod::Escapes::Name2character_number{$1}) : do { warn "Unknown escape: E<$1>"; "E<$1>"; }; }gex; } elsif (eval "require Pod::Text; 1" && $Pod::Text::VERSION < 3) { # Pod::Text < 3.0 has yet another mapping table, # though the table name of 2.x and 1.x are different. # (1.x is in core of Perl < 5.6, 2.x is in core of # Perl < 5.9.3) my $mapping = ($Pod::Text::VERSION < 2) ? \%Pod::Text::HTML_Escapes : \%Pod::Text::ESCAPES; $author =~ s{ E<( (\d+) | ([A-Za-z]+) )> } { defined $2 ? chr($2) : defined $mapping->{$1} ? $mapping->{$1} : do { warn "Unknown escape: E<$1>"; "E<$1>"; }; }gex; } else { $author =~ s{E}{<}g; $author =~ s{E}{>}g; } $self->author($author); } else { warn "Cannot determine author info from $_[0]\n"; } } #Stolen from M::B my %license_urls = ( perl => 'http://dev.perl.org/licenses/', apache => 'http://apache.org/licenses/LICENSE-2.0', apache_1_1 => 'http://apache.org/licenses/LICENSE-1.1', artistic => 'http://opensource.org/licenses/artistic-license.php', artistic_2 => 'http://opensource.org/licenses/artistic-license-2.0.php', lgpl => 'http://opensource.org/licenses/lgpl-license.php', lgpl2 => 'http://opensource.org/licenses/lgpl-2.1.php', lgpl3 => 'http://opensource.org/licenses/lgpl-3.0.html', bsd => 'http://opensource.org/licenses/bsd-license.php', gpl => 'http://opensource.org/licenses/gpl-license.php', gpl2 => 'http://opensource.org/licenses/gpl-2.0.php', gpl3 => 'http://opensource.org/licenses/gpl-3.0.html', mit => 'http://opensource.org/licenses/mit-license.php', mozilla => 'http://opensource.org/licenses/mozilla1.1.php', open_source => undef, unrestricted => undef, restrictive => undef, unknown => undef, ); sub license { my $self = shift; return $self->{values}->{license} unless @_; my $license = shift or die( 'Did not provide a value to license()' ); $license = __extract_license($license) || lc $license; $self->{values}->{license} = $license; # Automatically fill in license URLs if ( $license_urls{$license} ) { $self->resources( license => $license_urls{$license} ); } return 1; } sub _extract_license { my $pod = shift; my $matched; return __extract_license( ($matched) = $pod =~ m/ (=head \d \s+ L(?i:ICEN[CS]E|ICENSING)\b.*?) (=head \d.*|=cut.*|)\z /xms ) || __extract_license( ($matched) = $pod =~ m/ (=head \d \s+ (?:C(?i:OPYRIGHTS?)|L(?i:EGAL))\b.*?) (=head \d.*|=cut.*|)\z /xms ); } sub __extract_license { my $license_text = shift or return; my @phrases = ( '(?:under )?the same (?:terms|license) as (?:perl|the perl (?:\d )?programming language)' => 'perl', 1, '(?:under )?the terms of (?:perl|the perl programming language) itself' => 'perl', 1, 'Artistic and GPL' => 'perl', 1, 'GNU general public license' => 'gpl', 1, 'GNU public license' => 'gpl', 1, 'GNU lesser general public license' => 'lgpl', 1, 'GNU lesser public license' => 'lgpl', 1, 'GNU library general public license' => 'lgpl', 1, 'GNU library public license' => 'lgpl', 1, 'GNU Free Documentation license' => 'unrestricted', 1, 'GNU Affero General Public License' => 'open_source', 1, '(?:Free)?BSD license' => 'bsd', 1, 'Artistic license 2\.0' => 'artistic_2', 1, 'Artistic license' => 'artistic', 1, 'Apache (?:Software )?license' => 'apache', 1, 'GPL' => 'gpl', 1, 'LGPL' => 'lgpl', 1, 'BSD' => 'bsd', 1, 'Artistic' => 'artistic', 1, 'MIT' => 'mit', 1, 'Mozilla Public License' => 'mozilla', 1, 'Q Public License' => 'open_source', 1, 'OpenSSL License' => 'unrestricted', 1, 'SSLeay License' => 'unrestricted', 1, 'zlib License' => 'open_source', 1, 'proprietary' => 'proprietary', 0, ); while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) { $pattern =~ s#\s+#\\s+#gs; if ( $license_text =~ /\b$pattern\b/i ) { return $license; } } return ''; } sub license_from { my $self = shift; if (my $license=_extract_license(Module::Install::_read($_[0]))) { $self->license($license); } else { warn "Cannot determine license info from $_[0]\n"; return 'unknown'; } } sub _extract_bugtracker { my @links = $_[0] =~ m#L<( https?\Q://rt.cpan.org/\E[^>]+| https?\Q://github.com/\E[\w_]+/[\w_]+/issues| https?\Q://code.google.com/p/\E[\w_\-]+/issues/list )>#gx; my %links; @links{@links}=(); @links=keys %links; return @links; } sub bugtracker_from { my $self = shift; my $content = Module::Install::_read($_[0]); my @links = _extract_bugtracker($content); unless ( @links ) { warn "Cannot determine bugtracker info from $_[0]\n"; return 0; } if ( @links > 1 ) { warn "Found more than one bugtracker link in $_[0]\n"; return 0; } # Set the bugtracker bugtracker( $links[0] ); return 1; } sub requires_from { my $self = shift; my $content = Module::Install::_readperl($_[0]); my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+(v?[\d\.]+)/mg; while ( @requires ) { my $module = shift @requires; my $version = shift @requires; $self->requires( $module => $version ); } } sub test_requires_from { my $self = shift; my $content = Module::Install::_readperl($_[0]); my @requires = $content =~ m/^use\s+([^\W\d]\w*(?:::\w+)*)\s+([\d\.]+)/mg; while ( @requires ) { my $module = shift @requires; my $version = shift @requires; $self->test_requires( $module => $version ); } } # Convert triple-part versions (eg, 5.6.1 or 5.8.9) to # numbers (eg, 5.006001 or 5.008009). # Also, convert double-part versions (eg, 5.8) sub _perl_version { my $v = $_[-1]; $v =~ s/^([1-9])\.([1-9]\d?\d?)$/sprintf("%d.%03d",$1,$2)/e; $v =~ s/^([1-9])\.([1-9]\d?\d?)\.(0|[1-9]\d?\d?)$/sprintf("%d.%03d%03d",$1,$2,$3 || 0)/e; $v =~ s/(\.\d\d\d)000$/$1/; $v =~ s/_.+$//; if ( ref($v) ) { # Numify $v = $v + 0; } return $v; } sub add_metadata { my $self = shift; my %hash = @_; for my $key (keys %hash) { warn "add_metadata: $key is not prefixed with 'x_'.\n" . "Use appopriate function to add non-private metadata.\n" unless $key =~ /^x_/; $self->{values}->{$key} = $hash{$key}; } } ###################################################################### # MYMETA Support sub WriteMyMeta { die "WriteMyMeta has been deprecated"; } sub write_mymeta_yaml { my $self = shift; # We need YAML::Tiny to write the MYMETA.yml file unless ( eval { require YAML::Tiny; 1; } ) { return 1; } # Generate the data my $meta = $self->_write_mymeta_data or return 1; # Save as the MYMETA.yml file print "Writing MYMETA.yml\n"; YAML::Tiny::DumpFile('MYMETA.yml', $meta); } sub write_mymeta_json { my $self = shift; # We need JSON to write the MYMETA.json file unless ( eval { require JSON; 1; } ) { return 1; } # Generate the data my $meta = $self->_write_mymeta_data or return 1; # Save as the MYMETA.yml file print "Writing MYMETA.json\n"; Module::Install::_write( 'MYMETA.json', JSON->new->pretty(1)->canonical->encode($meta), ); } sub _write_mymeta_data { my $self = shift; # If there's no existing META.yml there is nothing we can do return undef unless -f 'META.yml'; # We need Parse::CPAN::Meta to load the file unless ( eval { require Parse::CPAN::Meta; 1; } ) { return undef; } # Merge the perl version into the dependencies my $val = $self->Meta->{values}; my $perl = delete $val->{perl_version}; if ( $perl ) { $val->{requires} ||= []; my $requires = $val->{requires}; # Canonize to three-dot version after Perl 5.6 if ( $perl >= 5.006 ) { $perl =~ s{^(\d+)\.(\d\d\d)(\d*)}{join('.', $1, int($2||0), int($3||0))}e } unshift @$requires, [ perl => $perl ]; } # Load the advisory META.yml file my @yaml = Parse::CPAN::Meta::LoadFile('META.yml'); my $meta = $yaml[0]; # Overwrite the non-configure dependency hashs delete $meta->{requires}; delete $meta->{build_requires}; delete $meta->{recommends}; if ( exists $val->{requires} ) { $meta->{requires} = { map { @$_ } @{ $val->{requires} } }; } if ( exists $val->{build_requires} ) { $meta->{build_requires} = { map { @$_ } @{ $val->{build_requires} } }; } return $meta; } 1; Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/Scripts.pm000644 777777 000024 00000000172 12362522056 025510 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054380 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/Scripts.pm000644 €;Ðâp000024 00000001011 12362522056 024313 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::Scripts; use strict 'vars'; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.08'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } sub install_script { my $self = shift; my $args = $self->makemaker_args; my $exe = $args->{EXE_FILES} ||= []; foreach ( @_ ) { if ( -f $_ ) { push @$exe, $_; } elsif ( -d 'script' and -f "script/$_" ) { push @$exe, "script/$_"; } else { die("Cannot find script '$_'"); } } } 1; Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/Win32.pm000644 777777 000024 00000000172 12362522056 024763 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054382 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/Win32.pm000644 €;Ðâp000024 00000003403 12362522056 023575 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::Win32; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.08'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } # determine if the user needs nmake, and download it if needed sub check_nmake { my $self = shift; $self->load('can_run'); $self->load('get_file'); require Config; return unless ( $^O eq 'MSWin32' and $Config::Config{make} and $Config::Config{make} =~ /^nmake\b/i and ! $self->can_run('nmake') ); print "The required 'nmake' executable not found, fetching it...\n"; require File::Basename; my $rv = $self->get_file( url => 'http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe', ftp_url => 'ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe', local_dir => File::Basename::dirname($^X), size => 51928, run => 'Nmake15.exe /o > nul', check_for => 'Nmake.exe', remove => 1, ); die <<'END_MESSAGE' unless $rv; ------------------------------------------------------------------------------- Since you are using Microsoft Windows, you will need the 'nmake' utility before installation. It's available at: http://download.microsoft.com/download/vc15/Patch/1.52/W95/EN-US/Nmake15.exe or ftp://ftp.microsoft.com/Softlib/MSLFILES/Nmake15.exe Please download the file manually, save it to a directory in %PATH% (e.g. C:\WINDOWS\COMMAND\), then launch the MS-DOS command line shell, "cd" to that directory, and run "Nmake15.exe" from there; that will create the 'nmake.exe' file needed by this module. You may then resume the installation process described in README. ------------------------------------------------------------------------------- END_MESSAGE } 1; Text-MultiMarkdown-1.000035/inc/Module/Install/PaxHeader/WriteAll.pm000644 777777 000024 00000000172 12362522056 025604 xustar00tdoranstaff000000 000000 18 uid=1003545200 20 ctime=1405801752 20 atime=1405801752 23 SCHILY.dev=16777218 23 SCHILY.ino=69054381 18 SCHILY.nlink=2 Text-MultiMarkdown-1.000035/inc/Module/Install/WriteAll.pm000644 €;Ðâp000024 00000002376 12362522056 024426 0ustar00tdoranstaff000000 000000 #line 1 package Module::Install::WriteAll; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '1.08'; @ISA = qw{Module::Install::Base}; $ISCORE = 1; } sub WriteAll { my $self = shift; my %args = ( meta => 1, sign => 0, inline => 0, check_nmake => 1, @_, ); $self->sign(1) if $args{sign}; $self->admin->WriteAll(%args) if $self->is_admin; $self->check_nmake if $args{check_nmake}; unless ( $self->makemaker_args->{PL_FILES} ) { # XXX: This still may be a bit over-defensive... unless ($self->makemaker(6.25)) { $self->makemaker_args( PL_FILES => {} ) if -f 'Build.PL'; } } # Until ExtUtils::MakeMaker support MYMETA.yml, make sure # we clean it up properly ourself. $self->realclean_files('MYMETA.yml'); if ( $args{inline} ) { $self->Inline->write; } else { $self->Makefile->write; } # The Makefile write process adds a couple of dependencies, # so write the META.yml files after the Makefile. if ( $args{meta} ) { $self->Meta->write; } # Experimental support for MYMETA if ( $ENV{X_MYMETA} ) { if ( $ENV{X_MYMETA} eq 'JSON' ) { $self->Meta->write_mymeta_json; } else { $self->Meta->write_mymeta_yaml; } } return 1; } 1;