Text-Markdown-1.0.26/0000755000076500000240000000000011261760161012670 5ustar t0mstaffText-Markdown-1.0.26/Changes0000644000076500000240000002456711261760105014177 0ustar t0mstaffThis file documents the revision history for Perl extension Text::Markdown. 1.0.26 2009-10-04T00:37:00 - Minor POD changes (typos, wrapping) - Added note about and test for output always ending in exactly one newline (dandv) - Fix RT#48943 + tests (genehack) - Support for optionally interpreting markdown in HTML block elements using the markdown="1" attribute (GitHub issue #1; dandv) 1.0.25 2009-08-25T09:31:30 - Remove MultiMarkdown from the Text::Markdown distribution - Change repository and bugtracker metadata to github. - Update File::Slurp dependency, fixing RT#43888. 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::MutltiMarkdown 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-Markdown-1.0.26/inc/0000755000076500000240000000000011261760160013440 5ustar t0mstaffText-Markdown-1.0.26/inc/Module/0000755000076500000240000000000011261760161014666 5ustar t0mstaffText-Markdown-1.0.26/inc/Module/Install/0000755000076500000240000000000011261760161016274 5ustar t0mstaffText-Markdown-1.0.26/inc/Module/Install/Base.pm0000644000076500000240000000176611261760144017517 0ustar t0mstaff#line 1 package Module::Install::Base; use strict 'vars'; use vars qw{$VERSION}; BEGIN { $VERSION = '0.91'; } # 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->VERSION; } sub DESTROY {} package Module::Install::Base::FakeAdmin; my $fake; sub new { $fake ||= bless(\@_, $_[0]); } sub AUTOLOAD {} sub DESTROY {} # Restore warning handler BEGIN { $SIG{__WARN__} = $SIG{__WARN__}->(); } 1; #line 154 Text-Markdown-1.0.26/inc/Module/Install/Can.pm0000644000076500000240000000333311261760144017336 0ustar t0mstaff#line 1 package Module::Install::Can; use strict; use Config (); use File::Spec (); use ExtUtils::MakeMaker (); use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '0.91'; @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 ''; my $abs = File::Spec->catfile($dir, $_[1]); return $abs if (-x $abs or $abs = MM->maybe_command($abs)); } return; } # 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 156 Text-Markdown-1.0.26/inc/Module/Install/Fetch.pm0000644000076500000240000000462711261760144017675 0ustar t0mstaff#line 1 package Module::Install::Fetch; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '0.91'; @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-Markdown-1.0.26/inc/Module/Install/Makefile.pm0000644000076500000240000001600311261760144020350 0ustar t0mstaff#line 1 package Module::Install::Makefile; use strict 'vars'; use ExtUtils::MakeMaker (); use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '0.91'; @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, always use defaults if ( $ENV{AUTOMATED_TESTING} and ! $ENV{PERL_MM_USE_DEFAULT} ) { local $ENV{PERL_MM_USE_DEFAULT} = 1; goto &ExtUtils::MakeMaker::prompt; } else { goto &ExtUtils::MakeMaker::prompt; } } sub makemaker_args { my $self = shift; my $args = ( $self->{makemaker_args} ||= {} ); %$args = ( %$args, @_ ); return $args; } # For mm args that take multiple space-seperated args, # append an argument to the current list. sub makemaker_append { my $self = sShift; 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 ); } my %test_dir = (); sub _wanted_t { /\.t$/ and -f $_ and $test_dir{$File::Find::dir} = 1; } sub tests_recursive { my $self = shift; if ( $self->tests ) { die "tests_recursive will not work if tests are already defined"; } my $dir = shift || 't'; unless ( -d $dir ) { die "tests_recursive dir '$dir' does not exist"; } %test_dir = (); require File::Find; File::Find::find( \&_wanted_t, $dir ); $self->tests( join ' ', map { "$_/*.t" } sort keys %test_dir ); } 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 ) { # MakeMaker can complain about module versions that include # an underscore, even though its own version may contain one! # Hence the funny regexp to get rid of it. See RT #35800 # for details. $self->build_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ ); $self->configure_requires( 'ExtUtils::MakeMaker' => $ExtUtils::MakeMaker::VERSION =~ /^(\d+\.\d+)/ ); } 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.42 ); $self->configure_requires( 'ExtUtils::MakeMaker' => 6.42 ); } # Generate the MakeMaker params my $args = $self->makemaker_args; $args->{DISTNAME} = $self->name; $args->{NAME} = $self->module_name || $self->name; $args->{VERSION} = $self->version; $args->{NAME} =~ s/-/::/g; if ( $self->tests ) { $args->{test} = { TESTS => $self->tests }; } if ( $] >= 5.005 ) { $args->{ABSTRACT} = $self->abstract; $args->{AUTHOR} = $self->author; } if ( eval($ExtUtils::MakeMaker::VERSION) >= 6.10 ) { $args->{NO_META} = 1; } if ( eval($ExtUtils::MakeMaker::VERSION) > 6.17 and $self->sign ) { $args->{SIGN} = 1; } unless ( $self->is_admin ) { delete $args->{SIGN}; } # Merge both kinds of requires into prereq_pm my $prereq = ($args->{PREREQ_PM} ||= {}); %$prereq = ( %$prereq, map { @$_ } map { @$_ } grep $_, ($self->configure_requires, $self->build_requires, $self->requires) ); # Remove any reference to perl, PREREQ_PM doesn't support it delete $args->{PREREQ_PM}->{perl}; # merge both kinds of requires into prereq_pm my $subdirs = ($args->{DIR} ||= []); if ($self->bundles) { foreach my $bundle (@{ $self->bundles }) { my ($file, $dir) = @$bundle; push @$subdirs, $dir if -d $dir; delete $prereq->{$file}; } } 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"; } $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: $!"; my $makefile = do { local $/; }; close MAKEFILE or die $!; $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; open MAKEFILE, "> $makefile_name" or die "fix_up_makefile: Couldn't open $makefile_name: $!"; 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 394 Text-Markdown-1.0.26/inc/Module/Install/Metadata.pm0000644000076500000240000003530411261760144020360 0ustar t0mstaff#line 1 package Module::Install::Metadata; use strict 'vars'; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '0.91'; @ISA = 'Module::Install::Base'; $ISCORE = 1; } my @boolean_keys = qw{ sign }; my @scalar_keys = qw{ name module_name abstract author 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 }; 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; unless ( @_ ) { warn "You MUST provide an explicit true/false value to dynamic_config\n"; return $self; } $self->{values}->{dynamic_config} = $_[0] ? 1 : 0; return 1; } 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 reall old versions unless ( $version >= 5.005 ) { die "Module::Install only supports 5.005 or newer (use ExtUtils::MakeMaker)\n"; } $self->{values}->{perl_version} = $version; } #Stolen from M::B my %license_urls = ( perl => 'http://dev.perl.org/licenses/', apache => 'http://apache.org/licenses/LICENSE-2.0', 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()' ); $self->{values}->{license} = $license; # Automatically fill in license URLs if ( $license_urls{$license} ) { $self->resources( license => $license_urls{$license} ); } return 1; } 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"); } # 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) ); } 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 perl_version_from { my $self = shift; if ( Module::Install::_read($_[0]) =~ m/ ^ (?:use|require) \s* v? ([\d_\.]+) \s* ; /ixms ) { my $perl_version = $1; $perl_version =~ s{_}{}g; $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; $author =~ s{E}{<}g; $author =~ s{E}{>}g; $self->author($author); } else { warn "Cannot determine author info from $_[0]\n"; } } sub license_from { my $self = shift; if ( Module::Install::_read($_[0]) =~ m/ ( =head \d \s+ (?:licen[cs]e|licensing|copyright|legal)\b .*? ) (=head\\d.*|=cut.*|) \z /ixms ) { my $license_text = $1; my @phrases = ( 'under the same (?:terms|license) as (?:perl|the perl programming language) itself' => '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, 'BSD license' => 'bsd', 1, 'Artistic license' => 'artistic', 1, 'GPL' => 'gpl', 1, 'LGPL' => 'lgpl', 1, 'BSD' => 'bsd', 1, 'Artistic' => 'artistic', 1, 'MIT' => 'mit', 1, 'proprietary' => 'proprietary', 0, ); while ( my ($pattern, $license, $osi) = splice(@phrases, 0, 3) ) { $pattern =~ s{\s+}{\\s+}g; if ( $license_text =~ /\b$pattern\b/i ) { $self->license($license); return 1; } } } warn "Cannot determine license info from $_[0]\n"; return 'unknown'; } sub _extract_bugtracker { my @links = $_[0] =~ m#L<(\Qhttp://rt.cpan.org/\E[^>]+)>#g; 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 on rt.cpan.org 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+([\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; } ###################################################################### # 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-Markdown-1.0.26/inc/Module/Install/Win32.pm0000644000076500000240000000340311261760144017535 0ustar t0mstaff#line 1 package Module::Install::Win32; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '0.91'; @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-Markdown-1.0.26/inc/Module/Install/WriteAll.pm0000644000076500000240000000222211261760144020354 0ustar t0mstaff#line 1 package Module::Install::WriteAll; use strict; use Module::Install::Base (); use vars qw{$VERSION @ISA $ISCORE}; BEGIN { $VERSION = '0.91';; @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} ) { $self->makemaker_args( PL_FILES => {} ); } # 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; Text-Markdown-1.0.26/inc/Module/Install.pm0000644000076500000240000002411411261760144016635 0ustar t0mstaff#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 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 = '0.91'; # Storage for the pseudo-singleton $MAIN = undef; *inc::Module::Install::VERSION = *VERSION; @inc::Module::Install::ISA = __PACKAGE__; } # 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 # 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)); use Cwd (); use File::Find (); use File::Path (); use FindBin; 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; } $$sym =~ /([^:]+)$/ or die "Cannot autoload $who - $sym"; 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 import { my $class = shift; my $self = $class->new(@_); my $who = $self->_caller; unless ( -f $self->{file} ) { 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"}; } *{"${who}::AUTOLOAD"} = $self->autoload; $self->preload; # Unregister loader and worker packages so subdirs can use them again delete $INC{"$self->{file}"}; delete $INC{"$self->{path}.pm"}; # Save to the singleton $MAIN = $self; return 1; } 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 ) { *{"${who}::$name"} = sub { ${"${who}::AUTOLOAD"} = "${who}::$name"; goto &{"${who}::AUTOLOAD"}; }; } } sub new { my ($class, %args) = @_; # 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) = @_; unless ( grep { ! ref $_ and lc $_ eq lc $self->{prefix} } @INC ) { unshift @INC, $self->{prefix}; } foreach my $rv ( $self->find_extensions($path) ) { my ($file, $pkg) = @{$rv}; next if $self->{pathnames}{$pkg}; local $@; my $new = eval { require $file; $pkg->can('new') }; unless ( $new ) { warn $@ if $@; next; } $self->{pathnames}{$pkg} = delete $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; } sub _read { local *FH; if ( $] >= 5.006 ) { open( FH, '<', $_[0] ) or die "open($_[0]): $!"; } else { open( FH, "< $_[0]" ) or die "open($_[0]): $!"; } my $string = do { local $/; }; close FH or die "close($_[0]): $!"; return $string; } 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; } sub _write { local *FH; if ( $] >= 5.006 ) { open( FH, '>', $_[0] ) or die "open($_[0]): $!"; } else { open( FH, "> $_[0]" ) or die "open($_[0]): $!"; } foreach ( 1 .. $#_ ) { print FH $_[$_] or die "print($_[0]): $!"; } close FH or die "close($_[0]): $!"; } # _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($_[0]) <=> _version($_[1]); } # 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 - 2009 Adam Kennedy. Text-Markdown-1.0.26/lib/0000755000076500000240000000000011261760160013435 5ustar t0mstaffText-Markdown-1.0.26/lib/Text/0000755000076500000240000000000011261760160014361 5ustar t0mstaffText-Markdown-1.0.26/lib/Text/Markdown.pm0000644000076500000240000015024211261757515016517 0ustar t0mstaffpackage Text::Markdown; 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 'Exporter'; our $VERSION = '1.0.26'; our @EXPORT_OK = qw(markdown); =head1 NAME Text::Markdown - Convert Markdown syntax to (X)HTML =head1 SYNOPSIS use Text::Markdown 'markdown'; my $html = markdown($text); use Text::Markdown 'markdown'; my $html = markdown( $text, { empty_element_suffix => '>', tab_width => 2, } ); use Text::Markdown; my $m = Text::Markdown->new; my $html = $m->markdown($text); use Text::Markdown; my $m = Text::MultiMarkdown->new( empty_element_suffix => '>', tab_width => 2, ); 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 (like
    and as well). =head1 SYNTAX This module implements the 'original' Markdown markdown syntax from: http://daringfireball.net/projects/markdown/ Note that L ensures that the output always ends with B newline. The fact that multiple newlines are collapsed into one makes sense, because this is the behavior of HTML towards whispace. The fact that there's always a newline at the end makes sense again, given that the output will always be nested in a B-level element (as opposed to an inline element). That block element can be a C<<

    >> (most often), or a C<<

    >>. Markdown is B interpreted in HTML block-level elements, in order for chunks of pasted HTML (e.g. JavaScript widgets, web counters) to not be magically (mis)interpreted. For selective processing of Markdown in some, but not other, HTML block elements, add a C attribute to the block element and set its value to C<1>, C or C:
    as well). SYNTAX This module implements the 'original' Markdown markdown syntax from: http://daringfireball.net/projects/markdown/ Note that Text::Markdown ensures that the output always ends with *one* newline. The fact that multiple newlines are collapsed into one makes sense, because this is the behavior of HTML towards whispace. The fact that there's always a newline at the end makes sense again, given that the output will always be nested in a block-level element (as opposed to an inline element). That block element can be a

    (most often), or a

    . Markdown is *not* interpreted in HTML block-level elements, in order for chunks of pasted HTML (e.g. JavaScript widgets, web counters) to not be magically (mis)interpreted. For selective processing of Markdown in some, but not other, HTML block elements, add a "markdown" attribute to the block element and set its value to "1", "on" or "yes":
    hh
    c1c2
    Text-Markdown-1.0.26/t/docs-maruku-unittest/bug_table.text0000644000076500000240000000026511233534574022105 0ustar t0mstaff hello {: summary="Table summary" .class1 style="color:red"} h | h ----------|-- {:t} c1 | c2 {: summary="Table summary" .class1 style="color:red"} {:t: scope="row"} Text-Markdown-1.0.26/t/docs-maruku-unittest/code.html0000644000076500000240000000017311233534574021051 0ustar t0mstaff

    Here is an example of AppleScript:

    tell application "Foo"
        beep
    end tell
    	tab
    Text-Markdown-1.0.26/t/docs-maruku-unittest/code.text0000644000076500000240000000014311233534574021066 0ustar t0mstaffHere is an example of AppleScript: tell application "Foo" beep end tell tab Text-Markdown-1.0.26/t/docs-maruku-unittest/code2.html0000644000076500000240000000010511233534574021126 0ustar t0mstaff

    Code

    Ciao
    Text-Markdown-1.0.26/t/docs-maruku-unittest/code2.text0000644000076500000240000000002411233534574021146 0ustar t0mstaff> Code > > Ciao Text-Markdown-1.0.26/t/docs-maruku-unittest/code3.html0000644000076500000240000000035011233534574021131 0ustar t0mstaff

    This is code (4 spaces):

    Code

    This is not code

    Code

    This is code (1 tab):

    Code

    This is not code

    Code
    Text-Markdown-1.0.26/t/docs-maruku-unittest/code3.text0000644000076500000240000000017411233534574021155 0ustar t0mstaff This is code (4 spaces): Code This is not code Code This is code (1 tab): Code This is not code Code Text-Markdown-1.0.26/t/docs-maruku-unittest/convert.pl0000644000076500000240000000176311233534574021274 0ustar t0mstaffuse 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-Markdown-1.0.26/t/docs-maruku-unittest/data_loss.html0000644000076500000240000000004311233534574022104 0ustar t0mstaff
    1. abcd efgh ijkl
    Text-Markdown-1.0.26/t/docs-maruku-unittest/data_loss.text0000644000076500000240000000002311233534574022122 0ustar t0mstaff1. abcd efgh ijkl Text-Markdown-1.0.26/t/docs-maruku-unittest/easy.html0000644000076500000240000000006511233534574021100 0ustar t0mstaff

    Hello! how are you?

    Text-Markdown-1.0.26/t/docs-maruku-unittest/easy.text0000644000076500000240000000003211233534574021112 0ustar t0mstaff*Hello!* how are **you**? Text-Markdown-1.0.26/t/docs-maruku-unittest/email.html0000644000076500000240000000025711233534574021231 0ustar t0mstaff

    This is an email address: andrea@invalid.it

    Text-Markdown-1.0.26/t/docs-maruku-unittest/email.text0000644000076500000240000000006211233534574021243 0ustar t0mstaff This is an email address: Text-Markdown-1.0.26/t/docs-maruku-unittest/entities.html0000644000076500000240000000164011233534574021763 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/entities.text0000644000076500000240000000060111233534574021777 0ustar t0mstaffMaruku 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-Markdown-1.0.26/t/docs-maruku-unittest/escaping.html0000644000076500000240000000053211233534574021727 0ustar t0mstaff

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

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

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

    Start of paragraph

    End of paragraph

    Text-Markdown-1.0.26/t/docs-maruku-unittest/escaping.text0000644000076500000240000000036711233534574021755 0ustar t0mstaff 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-Markdown-1.0.26/t/docs-maruku-unittest/extra_dl.html0000644000076500000240000000027011233534574021737 0ustar t0mstaff
    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-Markdown-1.0.26/t/docs-maruku-unittest/extra_dl.text0000644000076500000240000000024611233534574021762 0ustar t0mstaffCSS: 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-Markdown-1.0.26/t/docs-maruku-unittest/extra_header_id.html0000644000076500000240000000050511233534574023245 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/extra_header_id.text0000644000076500000240000000045311233534574023267 0ustar t0mstaffHeader 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-Markdown-1.0.26/t/docs-maruku-unittest/extra_table1.html0000644000076500000240000000046211233534574022513 0ustar t0mstaff
    First HeaderSecond Header
    Content CellContent Cell
    Content CellContent Cell
    Text-Markdown-1.0.26/t/docs-maruku-unittest/extra_table1.text0000644000076500000240000000020711233534574022530 0ustar t0mstaffCSS: style.css First Header | Second Header ------------- | ------------- Content Cell | Content Cell Content Cell | Content Cell Text-Markdown-1.0.26/t/docs-maruku-unittest/footnotes.html0000644000076500000240000000141411233534574022156 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/footnotes.text0000644000076500000240000000051011233534574022172 0ustar t0mstaffThat'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-Markdown-1.0.26/t/docs-maruku-unittest/headers.html0000644000076500000240000000031311233534574021546 0ustar t0mstaff

    A title with emphasis

    A title with emphasis

    A title with emphasis

    Text-Markdown-1.0.26/t/docs-maruku-unittest/headers.text0000644000076500000240000000021011233534574021562 0ustar t0mstaffA title with *emphasis* ======================= A title with *emphasis* ----------------------- #### A title with *emphasis* #### Text-Markdown-1.0.26/t/docs-maruku-unittest/hex_entities.html0000644000076500000240000000031311233534574022623 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/hex_entities.text0000644000076500000240000000030711233534574022646 0ustar t0mstaffExamples 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-Markdown-1.0.26/t/docs-maruku-unittest/hrule.html0000644000076500000240000000003711233534574021255 0ustar t0mstaff




    Text-Markdown-1.0.26/t/docs-maruku-unittest/hrule.text0000644000076500000240000000000711233534574021272 0ustar t0mstaff* * * Text-Markdown-1.0.26/t/docs-maruku-unittest/html2.html0000644000076500000240000000003611233534574021163 0ustar t0mstaff

    One

    123

    Text-Markdown-1.0.26/t/docs-maruku-unittest/html2.text0000644000076500000240000000004311233534574021201 0ustar t0mstaffOne
    123
    123 Text-Markdown-1.0.26/t/docs-maruku-unittest/html3.html0000644000076500000240000000051111233534574021162 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-maruku-unittest/html3.text0000644000076500000240000000050411233534574021204 0ustar t0mstafftaking part in some arcane conspirations which involve coffee, robots, sushi, Text-Markdown-1.0.26/t/docs-maruku-unittest/html4.html0000644000076500000240000000030711233534574021166 0ustar t0mstaff
    Text-Markdown-1.0.26/t/docs-maruku-unittest/html4.text0000644000076500000240000000031611233534574021206 0ustar t0mstaff
    Text-Markdown-1.0.26/t/docs-maruku-unittest/html5.html0000644000076500000240000000035111233534574021166 0ustar t0mstaff
    Aperitif
    Text-Markdown-1.0.26/t/docs-maruku-unittest/html5.text0000644000076500000240000000035511233534574021212 0ustar t0mstaff
    Aperitif
    Text-Markdown-1.0.26/t/docs-maruku-unittest/ie.html0000644000076500000240000000127711233534574020542 0ustar t0mstaff

    <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-Markdown-1.0.26/t/docs-maruku-unittest/ie.text0000644000076500000240000000046011233534574020553 0ustar t0mstaff`

    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-Markdown-1.0.26/t/docs-maruku-unittest/images.html0000644000076500000240000000122711233534574021405 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/images.text0000644000076500000240000000131411233534574021422 0ustar t0mstaff 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-Markdown-1.0.26/t/docs-maruku-unittest/images2.html0000644000076500000240000000015711233534574021470 0ustar t0mstaff

    This is an image.

    This is an image.

    Text-Markdown-1.0.26/t/docs-maruku-unittest/images2.text0000644000076500000240000000010311233534574021477 0ustar t0mstaff This is an ![image][]. This is an ![image]. [image]: image.jpg Text-Markdown-1.0.26/t/docs-maruku-unittest/inline_html.html0000644000076500000240000000263111233534574022442 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/inline_html.text0000644000076500000240000000166711233534574022472 0ustar t0mstaffCSS: 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-Markdown-1.0.26/t/docs-maruku-unittest/inline_html2.html0000644000076500000240000000012011233534574022513 0ustar t0mstaff

    Test bold

    Test bold

    Text-Markdown-1.0.26/t/docs-maruku-unittest/inline_html2.text0000644000076500000240000000011011233534574022532 0ustar t0mstaff
    Test **bold**

    Test **bold**

    Text-Markdown-1.0.26/t/docs-maruku-unittest/links.html0000644000076500000240000000165411233534574021264 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/links.text0000644000076500000240000000142211233534574021275 0ustar t0mstaff 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-Markdown-1.0.26/t/docs-maruku-unittest/list1.html0000644000076500000240000000021011233534574021163 0ustar t0mstaff
    • A list item with a blockquote:

      This is a blockquote inside a list item.

    Text-Markdown-1.0.26/t/docs-maruku-unittest/list1.text0000644000076500000240000000013211233534574021206 0ustar t0mstaff* A list item with a blockquote: > This is a blockquote > inside a list item. Text-Markdown-1.0.26/t/docs-maruku-unittest/list2.html0000644000076500000240000000040511233534574021172 0ustar t0mstaff
    • 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-Markdown-1.0.26/t/docs-maruku-unittest/list2.text0000644000076500000240000000032611233534574021214 0ustar t0mstaff* 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-Markdown-1.0.26/t/docs-maruku-unittest/list3.html0000644000076500000240000000035211233534574021174 0ustar t0mstaff
    • 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-Markdown-1.0.26/t/docs-maruku-unittest/list3.text0000644000076500000240000000022711233534574021215 0ustar t0mstaff* A list item with a blockquote: > This is a blockquote > inside a list item. * A list item with a code block: Text-Markdown-1.0.26/t/docs-maruku-unittest/list4.html0000644000076500000240000000031711233534574021176 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/list4.text0000644000076500000240000000020011233534574021205 0ustar t0mstaffThis 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-Markdown-1.0.26/t/docs-maruku-unittest/lists.html0000644000076500000240000000236611233534574021303 0ustar t0mstaff
    • 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-Markdown-1.0.26/t/docs-maruku-unittest/lists.text0000644000076500000240000000217311233534574021317 0ustar t0mstaff* 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-Markdown-1.0.26/t/docs-maruku-unittest/lists11.html0000644000076500000240000000002011233534574021426 0ustar t0mstaff

    - ένα

    Text-Markdown-1.0.26/t/docs-maruku-unittest/lists11.text0000644000076500000240000000001211233534574021447 0ustar t0mstaff- ένα Text-Markdown-1.0.26/t/docs-maruku-unittest/lists6.html0000644000076500000240000000000111233534574021351 0ustar t0mstaff Text-Markdown-1.0.26/t/docs-maruku-unittest/lists6.text0000644000076500000240000000000111233534574021371 0ustar t0mstaff Text-Markdown-1.0.26/t/docs-maruku-unittest/lists7.html0000644000076500000240000000014211233534574021360 0ustar t0mstaff

    Ciao

    • Tab * Tab * Tab

    Ciao

    • Tab * Tab * Tab
    Text-Markdown-1.0.26/t/docs-maruku-unittest/lists7.text0000644000076500000240000000003411233534574021400 0ustar t0mstaffCiao * Tab * Tab * Tab Text-Markdown-1.0.26/t/docs-maruku-unittest/lists7b.html0000644000076500000240000000030211233534574021520 0ustar t0mstaff
    • a
      • a1
      • a2
    • b

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

      • a1
      • a2
    • b

    Text-Markdown-1.0.26/t/docs-maruku-unittest/lists7b.text0000644000076500000240000000003011233534574021536 0ustar t0mstaff* a * a1 * a2 * b Text-Markdown-1.0.26/t/docs-maruku-unittest/lists8.html0000644000076500000240000000026011233534574021362 0ustar t0mstaff

    Here is a paragraph.

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

    Here is a paragraph.

    * Item 1 * Item 2 * Item 3

    Text-Markdown-1.0.26/t/docs-maruku-unittest/lists8.text0000644000076500000240000000007411233534574021405 0ustar t0mstaffHere is a paragraph. * Item 1 * Item 2 * Item 3 Text-Markdown-1.0.26/t/docs-maruku-unittest/lists9.html0000644000076500000240000000015511233534574021366 0ustar t0mstaff
    • Due

      1. tre
      2. tre
      3. tre
    • Due

    Text-Markdown-1.0.26/t/docs-maruku-unittest/lists9.text0000644000076500000240000000004711233534574021406 0ustar t0mstaff- Due 1. tre 1. tre 1. tre - Due Text-Markdown-1.0.26/t/docs-maruku-unittest/lists_after_paragraph.html0000644000076500000240000000161511233534574024505 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/lists_after_paragraph.text0000644000076500000240000000135611233534574024527 0ustar t0mstaffParagraph, 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-Markdown-1.0.26/t/docs-maruku-unittest/lists_ol.html0000644000076500000240000000257311233534574021775 0ustar t0mstaff
    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-Markdown-1.0.26/t/docs-maruku-unittest/lists_ol.text0000644000076500000240000000231011233534574022002 0ustar t0mstaff1. 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-Markdown-1.0.26/t/docs-maruku-unittest/loss.html0000644000076500000240000000000711233534574021113 0ustar t0mstaff
    Text-Markdown-1.0.26/t/docs-maruku-unittest/loss.text0000644000076500000240000000001211233534574021127 0ustar t0mstaff
    123 Text-Markdown-1.0.26/t/docs-maruku-unittest/misc_sw.html0000644000076500000240000001032011233534574021576 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/misc_sw.text0000644000076500000240000001054411233534574021626 0ustar t0mstaffSubject: 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-Markdown-1.0.26/t/docs-maruku-unittest/olist.html0000644000076500000240000000011611233534574021266 0ustar t0mstaff

    This is a list:

    1. one
    2. two
    3. three
    Text-Markdown-1.0.26/t/docs-maruku-unittest/olist.text0000644000076500000240000000005011233534574021303 0ustar t0mstaffThis is a list: 2. one 2. two 3. three Text-Markdown-1.0.26/t/docs-maruku-unittest/one.html0000644000076500000240000000002011233534574020707 0ustar t0mstaff

    One line

    Text-Markdown-1.0.26/t/docs-maruku-unittest/one.text0000644000076500000240000000001111233534574020727 0ustar t0mstaffOne line Text-Markdown-1.0.26/t/docs-maruku-unittest/paragraph.html0000644000076500000240000000002111233534574022074 0ustar t0mstaff

    Paragraph

    Text-Markdown-1.0.26/t/docs-maruku-unittest/paragraph.text0000644000076500000240000000001311233534574022115 0ustar t0mstaffParagraph Text-Markdown-1.0.26/t/docs-maruku-unittest/paragraphs.html0000644000076500000240000000015211233534574022264 0ustar t0mstaff

    Paragraph 1

    Paragraph 2

    Paragraph 3 Paragraph 4 Paragraph Br->
    Paragraph 5

    Text-Markdown-1.0.26/t/docs-maruku-unittest/paragraphs.text0000644000076500000240000000012211233534574022301 0ustar t0mstaffParagraph 1 Paragraph 2 Paragraph 3 Paragraph 4 Paragraph Br-> Paragraph 5 Text-Markdown-1.0.26/t/docs-maruku-unittest/smartypants.html0000644000076500000240000000122111233534574022517 0ustar t0mstaff
    '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-Markdown-1.0.26/t/docs-maruku-unittest/smartypants.text0000644000076500000240000000055211233534574022545 0ustar t0mstaff '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-Markdown-1.0.26/t/docs-maruku-unittest/syntax_hl.html0000644000076500000240000000057111233534574022152 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/syntax_hl.text0000644000076500000240000000026111233534574022166 0ustar t0mstaffThis 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-Markdown-1.0.26/t/docs-maruku-unittest/table_attributes.html0000644000076500000240000000047111233534574023475 0ustar t0mstaff
    hh
    c1c2
    Text-Markdown-1.0.26/t/docs-maruku-unittest/table_attributes.text0000644000076500000240000000030011233534574023504 0ustar t0mstaff 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-Markdown-1.0.26/t/docs-maruku-unittest/test.html0000644000076500000240000000005711233534574021117 0ustar t0mstaff
           $ python       
    Text-Markdown-1.0.26/t/docs-maruku-unittest/test.text0000644000076500000240000000003711233534574021135 0ustar t0mstaff $ python Text-Markdown-1.0.26/t/docs-maruku-unittest/wrapping.html0000644000076500000240000000112711233534574021766 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-maruku-unittest/wrapping.text0000644000076500000240000000106611233534574022010 0ustar t0mstaffLorem 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-Markdown-1.0.26/t/docs-maruku-unittest/xml.html0000644000076500000240000000035311233534574020737 0ustar t0mstaff Text-Markdown-1.0.26/t/docs-maruku-unittest/xml.text0000644000076500000240000000037211233534574020760 0ustar t0mstaff Text-Markdown-1.0.26/t/docs-maruku-unittest/xml2.html0000644000076500000240000000001311233534574021012 0ustar t0mstaff Text-Markdown-1.0.26/t/docs-maruku-unittest/xml2.text0000644000076500000240000000001311233534574021032 0ustar t0mstaff Text-Markdown-1.0.26/t/docs-maruku-unittest/xml3.html0000644000076500000240000000007511233534574021023 0ustar t0mstaffBlah
    em
    Text-Markdown-1.0.26/t/docs-maruku-unittest/xml3.text0000644000076500000240000000011011233534574021031 0ustar t0mstaff Blah
    *em*
    Text-Markdown-1.0.26/t/docs-maruku-unittest/xml_instruction.html0000644000076500000240000000022011233534574023371 0ustar t0mstaff

    Targets

    Inside: last

    Text-Markdown-1.0.26/t/docs-maruku-unittest/xml_instruction.text0000644000076500000240000000021511233534574023415 0ustar t0mstaff Targets Inside: last Text-Markdown-1.0.26/t/docs-php-markdown/0000755000076500000240000000000011261760161016470 5ustar t0mstaffText-Markdown-1.0.26/t/docs-php-markdown/Backslash_escapes.html0000644000076500000240000000023411233534574022761 0ustar t0mstaff

    Tricky combinaisons:

    backslash with \-- two dashes

    backslash with \> greater than

    \[test](not a link)

    \*no emphasis*

    Text-Markdown-1.0.26/t/docs-php-markdown/Backslash_escapes.text0000644000076500000240000000017611233534574023006 0ustar t0mstaffTricky combinaisons: backslash with \\-- two dashes backslash with \\> greater than \\\[test](not a link) \\\*no emphasis*Text-Markdown-1.0.26/t/docs-php-markdown/Code_block_in_a_list_item.html0000644000076500000240000000017211233534574024447 0ustar t0mstaff
    • List Item:

      code block
      
      
      with a blank line
      

      within a list item.

    Text-Markdown-1.0.26/t/docs-php-markdown/Code_block_in_a_list_item.text0000644000076500000240000000010611233534574024464 0ustar t0mstaff * List Item: code block with a blank line within a list item.Text-Markdown-1.0.26/t/docs-php-markdown/Code_Spans.html0000644000076500000240000000021711233534574021402 0ustar t0mstaff

    From <!-- to --> on two lines.

    From <!-- to --> on three lines.

    Text-Markdown-1.0.26/t/docs-php-markdown/Code_Spans.text0000644000076500000240000000011111233534574021413 0ustar t0mstaffFrom `` on two lines. From `` on three lines. Text-Markdown-1.0.26/t/docs-php-markdown/Headers.html0000644000076500000240000000051211233534574020735 0ustar t0mstaff

    Header

    Header

    Header


    Header

    Paragraph

    Header

    Paragraph

    Header

    Paragraph


    Paragraph

    Header

    Paragraph

    Paragraph

    Header

    Paragraph

    Paragraph

    Header

    Paragraph

    Text-Markdown-1.0.26/t/docs-php-markdown/Headers.text0000644000076500000240000000034611233534574020762 0ustar t0mstaffHeader ====== Header ------ ### Header - - - Header ====== Paragraph Header ------ Paragraph ### Header Paragraph - - - Paragraph Header ====== Paragraph Paragraph Header ------ Paragraph Paragraph ### Header ParagraphText-Markdown-1.0.26/t/docs-php-markdown/Images_(Untitled).html0000644000076500000240000000020011233534574022552 0ustar t0mstaff

    alt text

    alt text

    alt text

    Text-Markdown-1.0.26/t/docs-php-markdown/Images_(Untitled).text0000644000076500000240000000011211233534574022574 0ustar t0mstaff![alt text](/url/) ![alt text]() ![alt text][foo] [foo]: /url/Text-Markdown-1.0.26/t/docs-php-markdown/Inline_HTML_(Simple).html0000644000076500000240000000023411233534574023057 0ustar t0mstaff

    With some attributes:

    foo
    foo

    Hr's:


    Text-Markdown-1.0.26/t/docs-php-markdown/Inline_HTML_(Simple).text0000644000076500000240000000021211233534574023073 0ustar t0mstaffWith some attributes:
    foo
    foo
    Hr's:
    Text-Markdown-1.0.26/t/docs-php-markdown/Inline_HTML_comments.html0000644000076500000240000000021211233534574023326 0ustar t0mstaff

    Paragraph one.

    Paragraph two.

    The end.

    Text-Markdown-1.0.26/t/docs-php-markdown/Inline_HTML_comments.text0000644000076500000240000000016511233534574023355 0ustar t0mstaffParagraph one. Paragraph two. The end. Text-Markdown-1.0.26/t/docs-php-markdown/PHP-Specific_Bugs.html0000644000076500000240000000106611233534574022521 0ustar t0mstaff

    This tests for a bug where quotes escaped by PHP when using preg_replace with the /e modifier must be correctly unescaped (hence the _UnslashQuotes function found only in PHP Markdown).

    Headers below should appear exactly as they are typed (no backslash added or removed).

    Header "quoted\" again \""

    Header "quoted\" again \""

    Header "quoted\" again \""

    Test with tabs for _Detab:

    Code    'block' with    some    "tabs"  and "quotes"
    
    Text-Markdown-1.0.26/t/docs-php-markdown/PHP-Specific_Bugs.text0000644000076500000240000000077711233534574022551 0ustar t0mstaffThis tests for a bug where quotes escaped by PHP when using `preg_replace` with the `/e` modifier must be correctly unescaped (hence the `_UnslashQuotes` function found only in PHP Markdown). Headers below should appear exactly as they are typed (no backslash added or removed). Header "quoted\" again \\"" =========================== Header "quoted\" again \\"" --------------------------- ### Header "quoted\" again \\"" ### Test with tabs for `_Detab`: Code 'block' with some "tabs" and "quotes" Text-Markdown-1.0.26/t/docs-php-markdown/Tight_blocks.html0000644000076500000240000000045011233534574021777 0ustar t0mstaff

    Paragraph and no space: * ciao

    Paragraph and 1 space: * ciao

    Paragraph and 3 spaces: * ciao

    Paragraph and 4 spaces: * ciao

    Paragraph before header:

    Header

    Paragraph before blockquote:

    Some quote.

    Text-Markdown-1.0.26/t/docs-php-markdown/Tight_blocks.text0000644000076500000240000000032111233534574022014 0ustar t0mstaffParagraph and no space: * ciao Paragraph and 1 space: * ciao Paragraph and 3 spaces: * ciao Paragraph and 4 spaces: * ciao Paragraph before header: #Header Paragraph before blockquote: >Some quote. Text-Markdown-1.0.26/t/docs-php-markdown-extra/0000755000076500000240000000000011261760161017611 5ustar t0mstaffText-Markdown-1.0.26/t/docs-php-markdown-extra/Abbr.html0000644000076500000240000000160011233534574021350 0ustar t0mstaff

    Some text about HTML, SGML and HTML4.

    Let's talk about the U.S.A., (É.U. or É.-U. d'A. in French).

    And here we have a CD, some CDs, and some other CD's.

    Let's transfert documents through TCP/IP, using TCP packets.


    Bienvenue sur CMS.

    Text-Markdown-1.0.26/t/docs-php-markdown-extra/Abbr.text0000644000076500000240000000120711233534574021373 0ustar t0mstaffSome text about HTML, SGML and HTML4. Let's talk about the U.S.A., (É.U. or É.-U. d'A. in French). *[HTML4]: Hyper Text Markup Language version 4 *[HTML]: Hyper Text Markup Language *[SGML]: Standard Generalized Markup Language *[U.S.A.]: United States of America *[É.U.] : États-Unis d'Amérique *[É.-U. d'A.] : États-Unis d'Amérique And here we have a CD, some CDs, and some other CD's. *[CD]: Compact Disk Let's transfert documents through TCP/IP, using TCP packets. *[IP]: Internet Protocol *[TCP]: Transmission Control Protocol --- Bienvenue sur [CMS](http://www.bidulecms.com "Bidule CMS"). *[CMS]: Content Management SystemText-Markdown-1.0.26/t/docs-php-markdown-extra/Definition_Lists.html0000644000076500000240000000435111233534574023756 0ustar t0mstaff

    A simple definition list:

    Term 1
    Definition 1
    Term 2
    Definition 2

    With multiple terms:

    Term 1
    Term 2
    Definition 1
    Term 3
    Term 4
    Definition 2

    With multiple definitions:

    Term 1
    Definition 1
    Definition 2
    Term 2
    Definition 3
    Definition 4

    With multiple lines per definition:

    Term 1
    Definition 1 line 1 ... Definition 1 line 2
    Definition 2 line 1 ... Definition 2 line 2
    Term 2
    Definition 3 line 2 ... Definition 3 line 2
    Definition 4 line 2 ... Definition 4 line 2

    With paragraphs:

    Term 1

    Definition 1 (paragraph)

    Term 2

    Definition 2 (paragraph)

    With multiple paragraphs:

    Term 1

    Definition 1 paragraph 1 line 1 ... Definition 1 paragraph 1 line 2

    Definition 1 paragraph 2 line 1 ... Definition 1 paragraph 2 line 2

    Term 2

    Definition 1 paragraph 1 line 1 ... Definition 1 paragraph 1 line 2 (lazy)

    Definition 1 paragraph 2 line 1 ... Definition 1 paragraph 2 line 2 (lazy)


    A mix:

    Term 1
    Term 2

    Definition 1 paragraph 1 line 1 ... Definition 1 paragraph 1 line 2 (lazy)

    Definition 1 paragraph 2 line 1 ... Definition 1 paragraph 2 line 2

    Definition 2 paragraph 1 line 1 ... Definition 2 paragraph 1 line 2 (lazy)

    Term 3
    Definition 3 (no paragraph)
    Definition 4 (no paragraph)
    Definition 5 line 1 ... Definition 5 line 2 (no paragraph)

    Definition 6 paragraph 1 line 1 ... Definition 6 paragraph 1 line 2

    Definition 7 (no paragraph)

    Definition 8 paragraph 1 line 1 (forced paragraph) ... Definition 8 paragraph 1 line 2

    Definition 8 paragraph 2 line 1

    Term 4

    Definition 9 paragraph 1 line 1 (forced paragraph) ... Definition 9 paragraph 1 line 2

    Definition 9 paragraph 2 line 1

    Definition 10 (no paragraph)
    Text-Markdown-1.0.26/t/docs-php-markdown-extra/Definition_Lists.text0000644000076500000240000000341611233534574023777 0ustar t0mstaffA simple definition list: Term 1 : Definition 1 Term 2 : Definition 2 With multiple terms: Term 1 Term 2 : Definition 1 Term 3 Term 4 : Definition 2 With multiple definitions: Term 1 : Definition 1 : Definition 2 Term 2 : Definition 3 : Definition 4 With multiple lines per definition: Term 1 : Definition 1 line 1 ... Definition 1 line 2 : Definition 2 line 1 ... Definition 2 line 2 Term 2 : Definition 3 line 2 ... Definition 3 line 2 : Definition 4 line 2 ... Definition 4 line 2 With paragraphs: Term 1 : Definition 1 (paragraph) Term 2 : Definition 2 (paragraph) With multiple paragraphs: Term 1 : Definition 1 paragraph 1 line 1 ... Definition 1 paragraph 1 line 2 Definition 1 paragraph 2 line 1 ... Definition 1 paragraph 2 line 2 Term 2 : Definition 1 paragraph 1 line 1 ... Definition 1 paragraph 1 line 2 (lazy) Definition 1 paragraph 2 line 1 ... Definition 1 paragraph 2 line 2 (lazy) * * * A mix: Term 1 Term 2 : Definition 1 paragraph 1 line 1 ... Definition 1 paragraph 1 line 2 (lazy) Definition 1 paragraph 2 line 1 ... Definition 1 paragraph 2 line 2 : Definition 2 paragraph 1 line 1 ... Definition 2 paragraph 1 line 2 (lazy) Term 3 : Definition 3 (no paragraph) : Definition 4 (no paragraph) : Definition 5 line 1 ... Definition 5 line 2 (no paragraph) : Definition 6 paragraph 1 line 1 ... Definition 6 paragraph 1 line 2 : Definition 7 (no paragraph) : Definition 8 paragraph 1 line 1 (forced paragraph) ... Definition 8 paragraph 1 line 2 Definition 8 paragraph 2 line 1 Term 4 : Definition 9 paragraph 1 line 1 (forced paragraph) ... Definition 9 paragraph 1 line 2 Definition 9 paragraph 2 line 1 : Definition 10 (no paragraph)Text-Markdown-1.0.26/t/docs-php-markdown-extra/Emphasis.html0000644000076500000240000000341311233534574022257 0ustar t0mstaff

    Combined emphasis:

    1. test test
    2. test test
    3. test test
    4. test test
    5. test test
    6. test test
    7. test test
    8. test test
    9. test test
    10. test test
    11. test test
    12. test test
    13. test test
    14. test test
    15. test test
    16. test test

    Incorrect nesting:

    1. *test test* test
    2. _test test_ test
    3. **test test* test*
    4. __test test_ test_
    5. test *test test*
    6. test _test test_
    7. test test test
    8. test test test

    No emphasis:

    1. test* test *test
    2. test** test **test
    3. test_ test _test
    4. test__ test __test

    Middle-word emphasis (asterisks):

    1. ab
    2. ab
    3. abc
    4. ab
    5. ab
    6. abc

    Middle-word emphasis (underscore):

    1. _a_b
    2. a_b_
    3. a_b_c
    4. __a__b
    5. a__b__
    6. a__b__c

    my_precious_file.txt

    Tricky Cases

    E**. Test TestTestTest

    E**. Test Test Test Test

    Text-Markdown-1.0.26/t/docs-php-markdown-extra/Emphasis.text0000644000076500000240000000173311233534574022302 0ustar t0mstaffCombined emphasis: 1. ***test test*** 2. ___test test___ 3. *test **test*** 4. **test *test*** 5. ***test* test** 6. ***test** test* 7. ***test* test** 8. **test *test*** 9. *test **test*** 10. _test __test___ 11. __test _test___ 12. ___test_ test__ 13. ___test__ test_ 14. ___test_ test__ 15. __test _test___ 16. _test __test___ Incorrect nesting: 1. *test **test* test** 2. _test __test_ test__ 3. **test *test** test* 4. __test _test__ test_ 5. *test *test* test* 6. _test _test_ test_ 7. **test **test** test** 8. __test __test__ test__ No emphasis: 1. test* test *test 2. test** test **test 3. test_ test _test 4. test__ test __test Middle-word emphasis (asterisks): 1. *a*b 2. a*b* 3. a*b*c 4. **a**b 5. a**b** 6. a**b**c Middle-word emphasis (underscore): 1. _a_b 2. a_b_ 3. a_b_c 4. __a__b 5. a__b__ 6. a__b__c my_precious_file.txt ## Tricky Cases E**. **Test** TestTestTest E**. **Test** Test Test Test Text-Markdown-1.0.26/t/docs-php-markdown-extra/Footnotes.html0000644000076500000240000000505411233534574022471 0ustar t0mstaff

    This is the first paragraph.1

    • List item one.2
    • List item two.3

    Header4

    Some paragraph with a footnote5, and another6.

    Another paragraph with a named footnote7.

    This paragraph should not have a footnote marker since the footnote is undefined.[^3]

    This paragraph should not have a footnote marker since the footnote has already been used before.[^1]

    This paragraph links to a footnote with plenty of block-level content.8

    This paragraph host the footnote reference within a footnote test9.


    1. This is the first note. 

    2. This is the second note. 

    3. This is the third note, defined out of order. 

    4. This is the fourth note. 

    5. Content for fifth footnote. 

    6. Content for sixth footnote spaning on three lines, with some span-level markup like emphasis, a link

    7. Footnote beginning on the line next to the marker. 

    8. Paragraph.

      • List item

      Blockquote

      Code block
      

    9. This footnote attemps to refer to another footnote. This should be impossible.[^impossible] 

    Text-Markdown-1.0.26/t/docs-php-markdown-extra/Footnotes.text0000644000076500000240000000241211233534574022504 0ustar t0mstaffThis is the first paragraph.[^first] [^first]: This is the first note. * List item one.[^second] * List item two.[^third] [^third]: This is the third note, defined out of order. [^second]: This is the second note. [^fourth]: This is the fourth note. # Header[^fourth] Some paragraph with a footnote[^1], and another[^2]. [^1]: Content for fifth footnote. [^2]: Content for sixth footnote spaning on three lines, with some span-level markup like _emphasis_, a [link][]. [link]: http://www.michelf.com/ Another paragraph with a named footnote[^fn-name]. [^fn-name]: Footnote beginning on the line next to the marker. This paragraph should not have a footnote marker since the footnote is undefined.[^3] This paragraph should not have a footnote marker since the footnote has already been used before.[^1] This paragraph links to a footnote with plenty of block-level content.[^block] [^block]: Paragraph. * List item > Blockquote Code block This paragraph host the footnote reference within a footnote test[^reference]. [^reference]: This footnote attemps to refer to another footnote. This should be impossible.[^impossible] [^impossible]: This footnote should not appear, as it is refered from another footnote, which is not allowed. Text-Markdown-1.0.26/t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.html0000644000076500000240000000345011233534574027200 0ustar t0mstaff

    Markdown inside code blocks

    foo

    foo

    foo

    test emphasis (span)
    test emphasis (span)

    test emphasis (block)

    More complicated

    * this is not a list item
    * this is not a list item
    • this is a list item

    With indent

    This text is no code block: if it was, the closing <div> would be too and the HTML block would be invalid.

    Markdown content in HTML blocks is assumed to be indented the same as the block opening tag.

    This should be the third paragraph after the header.

    Code block with rogue </div>s in Markdown code span and block

    This is a code block however:

    </div>
    

    Funny isn't it? Here is a code span: </div>.

    • List item, not a code block

    Some text

    This is a code block.
    

    No code block in markdown span mode

    This is not a code block since Markdown parse paragraph content as span. Code spans like </p> are allowed though.

    Hello world

    Preserving attributes and tags on more than one line:

    Some span content.

    Header confusion bug

    Hello World! ============ Hello World!
    Text-Markdown-1.0.26/t/docs-php-markdown-extra/Inline_HTML_with_Markdown_content.text0000644000076500000240000000332511233534574027221 0ustar t0mstaff# Markdown inside code blocks
    foo
    foo
    foo
    test _emphasis_ (span)
    test _emphasis_ (span)
    test _emphasis_ (block)
    ## More complicated
    * this is _not_ a list item
    * this is _not_ a list item
    * this _is_ a list item
    ## With indent
    This text is no code block: if it was, the closing `
    ` would be too and the HTML block would be invalid. Markdown content in HTML blocks is assumed to be indented the same as the block opening tag. **This should be the third paragraph after the header.**
    ## Code block with rogue `
    `s in Markdown code span and block
    This is a code block however:
    Funny isn't it? Here is a code span: `
    `.
    * List item, not a code block Some text This is a code block.
    ## No code block in markdown span mode

    This is not a code block since Markdown parse paragraph content as span. Code spans like `

    ` are allowed though.

    _Hello_ _world_

    ## Preserving attributes and tags on more than one line:

    Some _span_ content.

    ## Header confusion bug
    Hello World! ============ Hello World!
    Text-Markdown-1.0.26/t/docs-php-markdown-extra/Tables.html0000644000076500000240000000663411233534574021730 0ustar t0mstaff

    Simple tables

    Header 1 Header 2
    Cell 1 Cell 2
    Cell 3 Cell 4

    With leading pipes:

    Header 1 Header 2
    Cell 1 Cell 2
    Cell 3 Cell 4

    With tailing pipes:

    Header 1 Header 2
    Cell 1 Cell 2
    Cell 3 Cell 4

    With leading and tailing pipes:

    Header 1 Header 2
    Cell 1 Cell 2
    Cell 3 Cell 4

    One-column one-row table

    With leading pipes:

    Header
    Cell

    With tailing pipes:

    Header
    Cell

    With leading and tailing pipes:

    Header
    Cell

    Table alignement:

    Default Right Center Left
    Long Cell Long Cell Long Cell Long Cell
    Cell Cell Cell Cell

    Table alignement (alternate spacing):

    Default Right Center Left
    Long Cell Long Cell Long Cell Long Cell
    Cell Cell Cell Cell

    Empty cells

    Header 1 Header 2
    A B
    C
    Header 1 Header 2
    A B
    D

    Missing tailing pipe

    Header 1 Header 2
    Cell Cell
    Cell Cell
    Header 1 Header 2
    Cell Cell
    Cell Cell
    Header 1 Header 2
    Cell Cell
    Cell Cell
    Header 1 Header 2
    Cell Cell
    Cell Cell
    Text-Markdown-1.0.26/t/docs-php-markdown-extra/Tables.text0000644000076500000240000000333111233534574021737 0ustar t0mstaff# Simple tables Header 1 | Header 2 --------- | --------- Cell 1 | Cell 2 Cell 3 | Cell 4 With leading pipes: | Header 1 | Header 2 | --------- | --------- | Cell 1 | Cell 2 | Cell 3 | Cell 4 With tailing pipes: Header 1 | Header 2 | --------- | --------- | Cell 1 | Cell 2 | Cell 3 | Cell 4 | With leading and tailing pipes: | Header 1 | Header 2 | | --------- | --------- | | Cell 1 | Cell 2 | | Cell 3 | Cell 4 | * * * # One-column one-row table With leading pipes: | Header | ------- | Cell With tailing pipes: Header | ------- | Cell | With leading and tailing pipes: | Header | | ------- | | Cell | * * * Table alignement: | Default | Right | Center | Left | | --------- |:--------- |:---------:| ---------:| | Long Cell | Long Cell | Long Cell | Long Cell | | Cell | Cell | Cell | Cell | Table alignement (alternate spacing): | Default | Right | Center | Left | | --------- | :-------- | :-------: | --------: | | Long Cell | Long Cell | Long Cell | Long Cell | | Cell | Cell | Cell | Cell | * * * # Empty cells | Header 1 | Header 2 | | --------- | --------- | | A | B | | C | | Header 1 | Header 2 --------- | --------- A | B | D * * * # Missing tailing pipe Header 1 | Header 2 --------- | --------- | Cell | Cell | Cell | Cell | Header 1 | Header 2 | --------- | --------- Cell | Cell | Cell | Cell | Header 1 | Header 2 | --------- | --------- | Cell | Cell Cell | Cell | Header 1 | Header 2 | --------- | --------- | Cell | Cell | Cell | Cell Text-Markdown-1.0.26/t/docs-php-markdown-todo/0000755000076500000240000000000011261760161017433 5ustar t0mstaffText-Markdown-1.0.26/t/docs-php-markdown-todo/Email_auto_links.html0000644000076500000240000000114611233534574023610 0ustar t0mstaff

    michel.fortin@michelf.com

    International domain names: help@tūdaliņ.lv

    Text-Markdown-1.0.26/t/docs-php-markdown-todo/Email_auto_links.text0000644000076500000240000000011411233534574023622 0ustar t0mstaff International domain names: Text-Markdown-1.0.26/t/docs-php-markdown-todo/Emphasis.html0000644000076500000240000000351611233534574022105 0ustar t0mstaff

    Combined emphasis:

    1. test test
    2. test test
    3. test test
    4. test test
    5. test test
    6. test test
    7. test test
    8. test test
    9. test test
    10. test test
    11. test test
    12. test test
    13. test test
    14. test test
    15. test test
    16. test test

    Incorrect nesting:

    1. *test test* test
    2. _test test_ test
    3. **test test* test*
    4. __test test_ test_
    5. test *test test*
    6. test _test test_
    7. test test test
    8. test test test

    No emphasis:

    1. test* test *test
    2. test** test **test
    3. test_ test _test
    4. test__ test __test

    Middle-word emphasis (asterisks):

    1. ab
    2. ab
    3. abc
    4. ab
    5. ab
    6. abc

    Middle-word emphasis (underscore):

    1. ab
    2. ab
    3. abc
    4. ab
    5. ab
    6. abc

    mypreciousfile.txt

    Tricky Cases

    E**. Test TestTestTest

    E**. Test Test Test Test

    Text-Markdown-1.0.26/t/docs-php-markdown-todo/Emphasis.text0000644000076500000240000000173311233534574022124 0ustar t0mstaffCombined emphasis: 1. ***test test*** 2. ___test test___ 3. *test **test*** 4. **test *test*** 5. ***test* test** 6. ***test** test* 7. ***test* test** 8. **test *test*** 9. *test **test*** 10. _test __test___ 11. __test _test___ 12. ___test_ test__ 13. ___test__ test_ 14. ___test_ test__ 15. __test _test___ 16. _test __test___ Incorrect nesting: 1. *test **test* test** 2. _test __test_ test__ 3. **test *test** test* 4. __test _test__ test_ 5. *test *test* test* 6. _test _test_ test_ 7. **test **test** test** 8. __test __test__ test__ No emphasis: 1. test* test *test 2. test** test **test 3. test_ test _test 4. test__ test __test Middle-word emphasis (asterisks): 1. *a*b 2. a*b* 3. a*b*c 4. **a**b 5. a**b** 6. a**b**c Middle-word emphasis (underscore): 1. _a_b 2. a_b_ 3. a_b_c 4. __a__b 5. a__b__ 6. a__b__c my_precious_file.txt ## Tricky Cases E**. **Test** TestTestTest E**. **Test** Test Test Test Text-Markdown-1.0.26/t/docs-php-markdown-todo/Inline_HTML_(Span).html0000644000076500000240000000025411233534574023474 0ustar t0mstaff

    ACINACS

    SB SB

    Text-Markdown-1.0.26/t/docs-php-markdown-todo/Inline_HTML_(Span).text0000644000076500000240000000023611233534574023514 0ustar t0mstaffACINACS SB SBText-Markdown-1.0.26/t/docs-php-markdown-todo/Ins_and_del.text0000644000076500000240000000044411233534574022550 0ustar t0mstaffHere is a block tag ins:

    Some text

    And here it is inside a paragraph. And here it is in the middle of a paragraph.

    Some text

    And here is ins as a paragraph. And here it is in the middle of a paragraph. Text-Markdown-1.0.26/t/docs-php-markdown-todo/Ins_and_del.xhtml0000644000076500000240000000050711233534574022720 0ustar t0mstaff

    Here is a block tag ins:

    Some text

    And here it is inside a paragraph.

    And here it is in the middle of a paragraph.

    Some text

    And here is ins as a paragraph.

    And here it is in the middle of a paragraph.

    Text-Markdown-1.0.26/t/docs-php-markdown-todo/Links_inline_style.html0000644000076500000240000000007711233534574024171 0ustar t0mstaff

    silly URL w/ angle brackets.

    Text-Markdown-1.0.26/t/docs-php-markdown-todo/Links_inline_style.text0000644000076500000240000000005311233534574024203 0ustar t0mstaff[silly URL w/ angle brackets](). Text-Markdown-1.0.26/t/docs-php-markdown-todo/Nesting.html0000644000076500000240000000036611233534574021743 0ustar t0mstaff

    Valid nesting:

    Link

    Link

    Link

    Invalid nesting:

    [Link](url)

    Text-Markdown-1.0.26/t/docs-php-markdown-todo/Nesting.text0000644000076500000240000000015311233534574021755 0ustar t0mstaffValid nesting: **[Link](url)** [**Link**](url) **[**Link**](url)** Invalid nesting: [[Link](url)](url)Text-Markdown-1.0.26/t/docs-php-markdown-todo/Parens_in_URL.html0000644000076500000240000000073011233534574022767 0ustar t0mstaff

    Inline link 1 with parens.

    Inline link 2 with parens.

    Inline link 3 with non-escaped parens.

    Inline link 4 with non-escaped parens.

    Reference link 1 with parens.

    Reference link 2 with parens.

    Text-Markdown-1.0.26/t/docs-php-markdown-todo/Parens_in_URL.text0000644000076500000240000000054611233534574023014 0ustar t0mstaff[Inline link 1 with parens](/url\(test\) "title"). [Inline link 2 with parens]( "title"). [Inline link 3 with non-escaped parens](/url(test) "title"). [Inline link 4 with non-escaped parens]( "title"). [Reference link 1 with parens][1]. [Reference link 2 with parens][2]. [1]: /url(test) "title" [2]: "title" Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/0000755000076500000240000000000011261760161021705 5ustar t0mstaffText-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.html0000644000076500000240000000061311233534574024566 0ustar t0mstaff

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

    Ask garfield: garfield@example.com

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/auto_link.text0000644000076500000240000000013311233534574024603 0ustar t0mstaffI can has autolink? Ask garfield: Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.html0000644000076500000240000000061311233534574026570 0ustar t0mstaff

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

    Ask garfield: garfield@example.com

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.opts0000644000076500000240000000002411233534574026605 0ustar t0mstaff{'safe_mode': True} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/auto_link_safe_mode.text0000644000076500000240000000013311233534574026605 0ustar t0mstaffI can has autolink? Ask garfield: Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.html0000644000076500000240000000013111233534574025657 0ustar t0mstaff

    blah [HTML_REMOVED] blah

    [HTML_REMOVED]yowzer![HTML_REMOVED]

    blah

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.opts0000644000076500000240000000013311233534574025702 0ustar t0mstaff# Use the old (for-compat-only) way of specifying "replace" safe mode. {"safe_mode": True} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode.text0000644000076500000240000000007211233534574025703 0ustar t0mstaffblah blah
    yowzer!
    blah Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.html0000644000076500000240000000014111233534574027200 0ustar t0mstaff

    blah <img src="dangerous"> blah

    <div>yowzer!</div>

    blah

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.opts0000644000076500000240000000003011233534574027216 0ustar t0mstaff{"safe_mode": "escape"} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/basic_safe_mode_escape.text0000644000076500000240000000007211233534574027223 0ustar t0mstaffblah blah
    yowzer!
    blah Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.html0000644000076500000240000000017711233534574024756 0ustar t0mstaff

    [Trent wrote]

    no way

    [Jeff wrote]

    way

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/blockquote.text0000644000076500000240000000005311233534574024767 0ustar t0mstaff[Trent wrote] > no way [Jeff wrote] > way Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.html0000644000076500000240000000031011233534574026644 0ustar t0mstaff

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

    here is a check
    for that
    
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/blockquote_with_pre.text0000644000076500000240000000023211233534574026667 0ustar t0mstaff> Markdown indents blockquotes a couple of spaces > necessitating some tweaks for pre-blocks in that > blockquote: > > here is a check > for that Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.html0000644000076500000240000000017611233534574026735 0ustar t0mstaff

    Test with tabs for _Detab:

    Code    'block' with    some    "tabs"  and "quotes"
    
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/code_block_with_tabs.text0000644000076500000240000000011211233534574026743 0ustar t0mstaffTest with tabs for `_Detab`: Code 'block' with some "tabs" and "quotes" Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.html0000644000076500000240000000021611233534574026401 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.opts0000644000076500000240000000003611233534574026422 0ustar t0mstaff{"extras": ["code-friendly"]} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/code_safe_emphasis.text0000644000076500000240000000016511233534574026424 0ustar t0mstaffThis is *italic* and this is **bold**. This is NOT _italic_ and this is __bold__ because --code-safe is turned on. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.html0000644000076500000240000000015511233534574024527 0ustar t0mstaff
    some code
    

    some 'splaining

    some more code
    2 > 1
    
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/codeblock.text0000644000076500000240000000007611233534574024551 0ustar t0mstaff some code some 'splaining some more code 2 > 1 Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/codespans.html0000644000076500000240000000014311233534574024556 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/codespans.text0000644000076500000240000000011111233534574024571 0ustar t0mstaff`This` is a code span. And ``This is one with an `embedded backtick` ``. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.html0000644000076500000240000000014311233534574026560 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.opts0000644000076500000240000000002411233534574026577 0ustar t0mstaff{'safe_mode': True} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/codespans_safe_mode.text0000644000076500000240000000011111233534574026573 0ustar t0mstaff`This` is a code span. And ``This is one with an `embedded backtick` ``. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.html0000644000076500000240000000025011233534574025702 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/emacs_head_vars.text0000644000076500000240000000024111233534574025722 0ustar t0mstaff This sentence talks about the Python __init__ method, which I'd rather not be interpreted as Markdown's strong. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.html0000644000076500000240000000027611233534574025742 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/emacs_tail_vars.text0000644000076500000240000000026711233534574025762 0ustar t0mstaffThis sentence talks about the Python __init__ method, which I'd rather not be interpreted as Markdown's strong. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.html0000644000076500000240000000020211233534574024404 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/emphasis.text0000644000076500000240000000012511233534574024430 0ustar t0mstaffThis is *italic* and this is **bold**. This is also _italic_ and this is __bold__. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/escapes.html0000644000076500000240000000006111233534574024221 0ustar t0mstaff

    **don't shout**

    *don't emphasize*

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/escapes.text0000644000076500000240000000005111233534574024240 0ustar t0mstaff\*\*don't shout\*\* \*don't emphasize\* Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.html0000644000076500000240000000225411233534574024624 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.opts0000644000076500000240000000003211233534574024635 0ustar t0mstaff{"extras": ["footnotes"]} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes.text0000644000076500000240000000057211233534574024645 0ustar t0mstaffThis 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.html0000644000076500000240000000175411233534574026372 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.opts0000644000076500000240000000003211233534574026377 0ustar t0mstaff{"extras": ["footnotes"]} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_letters.text0000644000076500000240000000052311233534574026403 0ustar t0mstaffThis 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.html0000644000076500000240000000144211233534574026201 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.opts0000644000076500000240000000003211233534574026214 0ustar t0mstaff{"extras": ["footnotes"]} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_markup.text0000644000076500000240000000045511233534574026224 0ustar t0mstaffThis 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. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.html0000644000076500000240000000072511233534574030147 0ustar t0mstaff

    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> 

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.opts0000644000076500000240000000006111233534574030161 0ustar t0mstaff{"safe_mode": "escape", "extras": ["footnotes"]} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/footnotes_safe_mode_escape.text0000644000076500000240000000027111233534574030163 0ustar t0mstaffThis 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/header.html0000644000076500000240000000011111233534574024022 0ustar t0mstaff

    an h1

    an h2

    another h1

    another h2

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/header.text0000644000076500000240000000011111233534574024042 0ustar t0mstaff# an h1 ## an h2 another h1 ========== another h2 ---------- Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/hr.html0000644000076500000240000000011511233534574023207 0ustar t0mstaff

    Dashes:





    ---
    
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/hr.text0000644000076500000240000000005211233534574023227 0ustar t0mstaffDashes: --- --- --- --- --- Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.html0000644000076500000240000000047711233534574025070 0ustar t0mstaff

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

    the google logo

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/img_in_link.text0000644000076500000240000000035311233534574025101 0ustar t0mstaffThis 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.html0000644000076500000240000000035711233534574025264 0ustar t0mstaff

    an inline link

    a link "with" title

    an inline image link

    an image "with" title

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/inline_links.text0000644000076500000240000000020711233534574025276 0ustar t0mstaffan inline [link](/url/) a [link "with" title](/url/ "title") an inline ![image link](/url/) an ![image "with" title](/url/ "title") Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.html0000644000076500000240000000025611233534574030577 0ustar t0mstaff

    Heading 2

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

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.opts0000644000076500000240000000003111233534574030607 0ustar t0mstaff{"safe_mode": "replace"} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/issue2_safe_mode_borks_markup.text0000644000076500000240000000017011233534574030612 0ustar t0mstaff## Heading 2 blah **blah** Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.html0000644000076500000240000000063011233534574030127 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_defn_alt_title_delims.text0000644000076500000240000000061411233534574030151 0ustar t0mstaffAlternative 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.html0000644000076500000240000000024711233534574025461 0ustar t0mstaff

    Recipe 123 and Komodo bug 234 are related.

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.opts0000644000076500000240000000036711233534574025505 0ustar t0mstaff{"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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns.text0000644000076500000240000000005311233534574025474 0ustar t0mstaffRecipe 123 and Komodo bug 234 are related. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.html0000644000076500000240000000027211233534574027655 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.opts0000644000076500000240000000040611233534574027675 0ustar t0mstaff{"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"), ], } Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_double_hit.text0000644000076500000240000000006711233534574027677 0ustar t0mstaffThere once was a Mozilla bug 123 and a Komodo bug 123. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.html0000644000076500000240000000014511233534574027620 0ustar t0mstaff

    Blah 123 becomes a line with two underscores.

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.opts0000644000076500000240000000020611233534574027637 0ustar t0mstaff{"extras": ["link-patterns"], "link_patterns": [ (re.compile("Blah\s+(\d+)", re.I), r"http://foo.com/blah_blah_blah/\1"), ], } Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/link_patterns_edge_cases.text0000644000076500000240000000005611233534574027641 0ustar t0mstaffBlah 123 becomes a line with two underscores. Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/lists.html0000644000076500000240000000022111233534574023732 0ustar t0mstaff

    count:

    • one
    • two
    • three

    count in spanish:

    1. uno
    2. dos
    3. tres
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/lists.text0000644000076500000240000000010611233534574023754 0ustar t0mstaffcount: * one * two * three count in spanish: 1. uno 2. dos 3. tres Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.html0000644000076500000240000000121211233534574027013 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.opts0000644000076500000240000000003211233534574027033 0ustar t0mstaff{"extras": ["footnotes"]} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/mismatched_footnotes.text0000644000076500000240000000037211233534574027041 0ustar t0mstaffThis 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.html0000644000076500000240000000012711233534574026263 0ustar t0mstaff

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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/missing_link_defn.text0000644000076500000240000000015711233534574026306 0ustar t0mstaff This is a [missing link][missing] and a [used link][used]. [used]: http://foo.com [unused]: http://foo.com Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.html0000644000076500000240000000026611233534574025122 0ustar t0mstaff

    shopping list:

    • veggies
      • carrots
      • lettuce
    • fruits
      • oranges
      • apples
      • peaches
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/nested_list.text0000644000076500000240000000015211233534574025134 0ustar t0mstaffshopping list: - veggies + carrots + lettuce - fruits + oranges + apples + *peaches* Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.html0000644000076500000240000000026611233534574027124 0ustar t0mstaff

    shopping list:

    • veggies
      • carrots
      • lettuce
    • fruits
      • oranges
      • apples
      • peaches
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.opts0000644000076500000240000000002411233534574027135 0ustar t0mstaff{'safe_mode': True} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/nested_list_safe_mode.text0000644000076500000240000000015211233534574027136 0ustar t0mstaffshopping list: - veggies + carrots + lettuce - fruits + oranges + apples + *peaches* Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.html0000644000076500000240000000012511233534574025662 0ustar t0mstaff

    Inline link 4 with non-escaped parens.

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/parens_in_url_4.text0000644000076500000240000000007711233534574025710 0ustar t0mstaff[Inline link 4 with non-escaped parens]( "title"). Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.html0000644000076500000240000000014311233534574024414 0ustar t0mstaff

    Hi, there. blah

    **ack**
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/raw_html.text0000644000076500000240000000012611233534574024435 0ustar t0mstaff Hi, *there*. blah
    **ack**
    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.html0000644000076500000240000000014311233534574024553 0ustar t0mstaff

    Google is fast star.

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/ref_links.text0000644000076500000240000000013011233534574024567 0ustar t0mstaff[Google][] is fast ![star][]. [google]: http://www.google.com/ [star]: /img/star.png Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.html0000644000076500000240000000120411233534574025204 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/sublist-para.text0000644000076500000240000000102311233534574025223 0ustar t0mstaffSome 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.html0000644000076500000240000000200211233534574025317 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.opts0000644000076500000240000000003311233534574025342 0ustar t0mstaff{"extras": ["code-color"]} Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/syntax_color.text0000644000076500000240000000033111233534574025342 0ustar t0mstaffHere 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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.html0000644000076500000240000000062211233534574025623 0ustar t0mstaff

    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-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/tricky_anchors.text0000644000076500000240000000041411233534574025642 0ustar t0mstaff[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/) Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.html0000644000076500000240000000034711233534574027166 0ustar t0mstaff

    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

    Text-Markdown-1.0.26/t/docs-pythonmarkdown2-tm-cases-pass/underline_in_autolink.text0000644000076500000240000000022411233534574027200 0ustar t0mstaffEric wrote up a (long) intro to writing UDL definitions a while back on his blog: Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/0000755000076500000240000000000011261760161020533 5ustar t0mstaffText-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.text0000644000076500000240000000057511233534574026214 0ustar t0mstaffAT&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"Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Amps_and_angle_encoding.xhtml0000644000076500000240000000077111233534574026362 0ustar t0mstaff

    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.

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Auto_links.text0000644000076500000240000000040711233534574023560 0ustar t0mstaffLink: . With an ampersand: * In a list? * * It should. > Blockquoted: Auto-links should not occur here: `` or here: Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Auto_links.xhtml0000644000076500000240000000104211233534574023724 0ustar t0mstaff

    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-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text0000644000076500000240000000234211233534574025046 0ustar t0mstaffThese 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: `\-` These should get escaped, even though they're matching pairs for other Markdown constructs: \*asterisks\* \_underscores\_ \`backticks\` This is a code span with a literal backslash-backtick sequence: `` \` `` This is a tag with unescaped backticks bar. This is a tag with backslashes bar. Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml0000644000076500000240000000326111233534574025217 0ustar t0mstaff

    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: \-

    These should get escaped, even though they're matching pairs for other Markdown constructs:

    *asterisks*

    _underscores_

    `backticks`

    This is a code span with a literal backslash-backtick sequence: \`

    This is a tag with unescaped backticks bar.

    This is a tag with backslashes bar.

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.text0000644000076500000240000000020711233534574027323 0ustar t0mstaff> Example: > > sub status { > print "working"; > } > > Or: > > sub status { > return "working"; > } Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Blockquotes_with_code_blocks.xhtml0000644000076500000240000000027211233534574027475 0ustar t0mstaff

    Example:

    sub status {
        print "working";
    }
    

    Or:

    sub status {
        return "working";
    }
    
    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Code_Blocks.text0000644000076500000240000000030711233534574023616 0ustar t0mstaff code block on the first line Regular text. code block indented by spaces Regular text. the lines in this block all contain trailing spaces Regular Text. code block on the last lineText-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Code_Blocks.xhtml0000644000076500000240000000047011233534574023767 0ustar t0mstaff
    code block on the first line
    

    Regular text.

    code block indented by spaces
    

    Regular text.

    the lines in this block  
    all contain trailing spaces  
    

    Regular Text.

    code block on the last line
    
    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Code_Spans.text0000644000076500000240000000024511233534574023466 0ustar t0mstaff`` Fix for backticks within HTML tag: like this Here's how you put `` `backticks` `` in a code span.Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml0000644000076500000240000000033611233534574023637 0ustar t0mstaff

    <test a=" content of attribute ">

    Fix for backticks within HTML tag: like this

    Here's how you put `backticks` in a code span.

    ././@LongLink0000000000000000000000000000015000000000000011702 Lustar rootwheelText-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.textText-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.t0000644000076500000240000000030511233534574031654 0ustar t0mstaffIn 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. ././@LongLink0000000000000000000000000000015100000000000011703 Lustar rootwheelText-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.xhtmlText-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Hard-wrapped_paragraphs_with_list-like_lines.x0000644000076500000240000000032311233534574031660 0ustar t0mstaff

    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-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.text0000644000076500000240000000041611233534574025013 0ustar t0mstaffDashes: --- --- --- --- --- - - - - - - - - - - - - - - - Asterisks: *** *** *** *** *** * * * * * * * * * * * * * * * Underscores: ___ ___ ___ ___ ___ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Horizontal_rules.xhtml0000644000076500000240000000066111233534574025165 0ustar t0mstaff

    Dashes:





    ---
    




    - - -
    

    Asterisks:





    ***
    




    * * *
    

    Underscores:





    ___
    




    _ _ _
    
    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Images.text0000644000076500000240000000067011233534574022657 0ustar t0mstaff![Alt text](/path/to/img.jpg) ![Alt text](/path/to/img.jpg "Optional title") Inline within a paragraph: [alt text](/url/). ![alt text](/url/ "title preceded by two spaces") ![alt text](/url/ "title has spaces afterward" ) ![alt text]() ![alt text]( "with a title"). ![Empty]() ![this is a stupid URL](http://example.com/(parens).jpg) ![alt text][foo] [foo]: /url/ ![alt text][bar] [bar]: /url/ "Title here"Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Images.xhtml0000644000076500000240000000125211233534574023024 0ustar t0mstaff

    Alt text

    Alt text

    Inline within a paragraph: alt text.

    alt text

    alt text

    alt text

    alt text.

    Empty

    this is a stupid URL

    alt text

    alt text

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).text0000644000076500000240000000047011233534574025420 0ustar t0mstaffSimple block on one line:
    foo
    And nested without indentation:
    foo
    bar
    And with attributes:
    This was broken in 1.0.2b7:
    foo
    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Advanced).xhtml0000644000076500000240000000053211233534574025567 0ustar t0mstaff

    Simple block on one line:

    foo

    And nested without indentation:

    foo
    bar

    And with attributes:

    This was broken in 1.0.2b7:

    foo
    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html0000644000076500000240000000142011233534574025120 0ustar t0mstaff

    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-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text0000644000076500000240000000105111233534574025140 0ustar t0mstaffHere'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-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html0000644000076500000240000000027411233534574025401 0ustar t0mstaff

    Paragraph one.

    Paragraph two.

    The end.

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text0000644000076500000240000000024411233534574025416 0ustar t0mstaffParagraph one. Paragraph two. The end. Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Links_inline_style.text0000644000076500000240000000110211233534574025277 0ustar t0mstaffJust 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"). [URL and title](/url/ "title has spaces afterward" ). [URL wrapped in angle brackets](). [URL w/ angle brackets + title]( "Here's the title"). [Empty](). [With parens in the URL](http://en.wikipedia.org/wiki/WIMP_(computing)) (With outer parens and [parens in url](/foo(bar))) [With parens in the URL](/foo(bar) "and a title") (With outer parens and [parens in url](/foo(bar) "and a title")) Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml0000644000076500000240000000147411233534574025463 0ustar t0mstaff

    Just a URL.

    URL and title.

    URL and title.

    URL and title.

    URL and title.

    URL wrapped in angle brackets.

    URL w/ angle brackets + title.

    Empty.

    With parens in the URL

    (With outer parens and parens in url)

    With parens in the URL

    (With outer parens and parens in url)

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Links_reference_style.text0000644000076500000240000000142711233534574025771 0ustar t0mstaffFoo [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/ * * * [this] [this] should work So should [this][this]. And [this] []. And [this][]. And [this]. But not [that] []. Nor [that][]. Nor [that]. [Something in brackets like [this][] should work] [Same with [this].] In this case, [this](/somethingelse/) points to something else. Backslashing should suppress \[this] and [this\]. [this]: foo * * * Here's one where the [link breaks] across lines. Here's another where the [link breaks] across lines, but with a line-ending space. [link breaks]: /url/ Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Links_reference_style.xhtml0000644000076500000240000000214511233534574026137 0ustar t0mstaff

    Foo bar.

    Foo bar.

    Foo bar.

    With embedded [brackets].

    Indented once.

    Indented twice.

    Indented thrice.

    Indented [four][] times.

    [four]: /url
    

    this should work

    So should this.

    And this.

    And this.

    And this.

    But not [that] [].

    Nor [that][].

    Nor [that].

    [Something in brackets like this should work]

    [Same with this.]

    In this case, this points to something else.

    Backslashing should suppress [this] and [this].


    Here's one where the link breaks across lines.

    Here's another where the link breaks across lines, but with a line-ending space.

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.text0000644000076500000240000000035411233534574026665 0ustar t0mstaffThis is the [simple case]. [simple case]: /simple This one has a [line break]. This one has a [line break] with a line-ending space. [line break]: /foo [this] [that] and the [other] [this]: /this [that]: /that [other]: /other Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Links_shortcut_references.xhtml0000644000076500000240000000040011233534574027025 0ustar t0mstaff

    This is the simple case.

    This one has a line break.

    This one has a line break with a line-ending space.

    this and the other

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.text0000644000076500000240000000015411233534574026515 0ustar t0mstaffFoo [bar][]. Foo [bar](/url/ "Title with "quotes" inside"). [bar]: /url/ "Title with "quotes" inside" Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Literal_quotes_in_titles.xhtml0000644000076500000240000000024311233534574026664 0ustar t0mstaff

    Foo bar.

    Foo bar.

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.text0000644000076500000240000001760011233534574027626 0ustar t0mstaffMarkdown: 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>
        
    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Basics.xhtml0000644000076500000240000002225011233534574027773 0ustar t0mstaff

    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>
    

    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:

    <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>
    
    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.text0000644000076500000240000006544411233534574027721 0ustar t0mstaffMarkdown: 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 Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Markdown_Documentation_-_Syntax.xhtml0000644000076500000240000007605111233534574030065 0ustar t0mstaff

    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-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.text0000644000076500000240000000003011233534574025275 0ustar t0mstaff> foo > > > bar > > foo Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Nested_blockquotes.xhtml0000644000076500000240000000015111233534574025451 0ustar t0mstaff

    foo

    bar

    foo

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.text0000644000076500000240000000160711233534574027146 0ustar t0mstaff## 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 This was an error in Markdown 1.0.1: * this * sub that Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Ordered_and_unordered_lists.xhtml0000644000076500000240000000324511233534574027316 0ustar t0mstaff

    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

    This was an error in Markdown 1.0.1:

    • this

      • sub

      that

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.text0000644000076500000240000000015311233534574026126 0ustar t0mstaff***This is strong and em.*** So is ***this*** word. ___This is strong and em.___ So is ___this___ word. Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Strong_and_em_together.xhtml0000644000076500000240000000032711233534574026301 0ustar t0mstaff

    This is strong and em.

    So is this word.

    This is strong and em.

    So is this word.

    Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Tabs.text0000644000076500000240000000046711233534574022347 0ustar t0mstaff+ 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-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Tabs.xhtml0000644000076500000240000000066711233534574022521 0ustar t0mstaff
    • 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-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Tidyness.text0000644000076500000240000000011611233534574023247 0ustar t0mstaff> A list within a blockquote: > > * asterisk 1 > * asterisk 2 > * asterisk 3 Text-Markdown-1.0.26/t/Markdown-from-MDTest1.1.mdtest/Tidyness.xhtml0000644000076500000240000000020511233534574023416 0ustar t0mstaff

    A list within a blockquote:

    • asterisk 1
    • asterisk 2
    • asterisk 3
    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/0000755000076500000240000000000011261760161021242 5ustar t0mstaffText-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.text0000644000076500000240000000017611233534574025560 0ustar t0mstaffTricky combinaisons: backslash with \\-- two dashes backslash with \\> greater than \\\[test](not a link) \\\*no emphasis*Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Backslash_escapes.xhtml0000644000076500000240000000023411233534574025723 0ustar t0mstaff

    Tricky combinaisons:

    backslash with \-- two dashes

    backslash with \> greater than

    \[test](not a link)

    \*no emphasis*

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.text0000644000076500000240000000010611233534574027236 0ustar t0mstaff * List Item: code block with a blank line within a list item.Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_block_in_a_list_item.xhtml0000644000076500000240000000017111233534574027410 0ustar t0mstaff
    • List Item:

      code block
      
      with a blank line
      

      within a list item.

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.text0000644000076500000240000000011111233534574024165 0ustar t0mstaffFrom `` on two lines. From `` on three lines. Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Code_Spans.xhtml0000644000076500000240000000021711233534574024344 0ustar t0mstaff

    From <!-- to --> on two lines.

    From <!-- to --> on three lines.

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.text0000644000076500000240000000011411233534574025431 0ustar t0mstaff International domain names: Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Email_auto_links.xhtml0000644000076500000240000000114611233534574025607 0ustar t0mstaff

    michel.fortin@michelf.com

    International domain names: help@tūdaliņ.lv

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.text0000644000076500000240000000173311233534574023733 0ustar t0mstaffCombined emphasis: 1. ***test test*** 2. ___test test___ 3. *test **test*** 4. **test *test*** 5. ***test* test** 6. ***test** test* 7. ***test* test** 8. **test *test*** 9. *test **test*** 10. _test __test___ 11. __test _test___ 12. ___test_ test__ 13. ___test__ test_ 14. ___test_ test__ 15. __test _test___ 16. _test __test___ Incorrect nesting: 1. *test **test* test** 2. _test __test_ test__ 3. **test *test** test* 4. __test _test__ test_ 5. *test *test* test* 6. _test _test_ test_ 7. **test **test** test** 8. __test __test__ test__ No emphasis: 1. test* test *test 2. test** test **test 3. test_ test _test 4. test__ test __test Middle-word emphasis (asterisks): 1. *a*b 2. a*b* 3. a*b*c 4. **a**b 5. a**b** 6. a**b**c Middle-word emphasis (underscore): 1. _a_b 2. a_b_ 3. a_b_c 4. __a__b 5. a__b__ 6. a__b__c my_precious_file.txt ## Tricky Cases E**. **Test** TestTestTest E**. **Test** Test Test Test Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Emphasis.xhtml0000644000076500000240000000351611233534574024104 0ustar t0mstaff

    Combined emphasis:

    1. test test
    2. test test
    3. test test
    4. test test
    5. test test
    6. test test
    7. test test
    8. test test
    9. test test
    10. test test
    11. test test
    12. test test
    13. test test
    14. test test
    15. test test
    16. test test

    Incorrect nesting:

    1. *test test* test
    2. _test test_ test
    3. **test test* test*
    4. __test test_ test_
    5. test *test test*
    6. test _test test_
    7. test test test
    8. test test test

    No emphasis:

    1. test* test *test
    2. test** test **test
    3. test_ test _test
    4. test__ test __test

    Middle-word emphasis (asterisks):

    1. ab
    2. ab
    3. abc
    4. ab
    5. ab
    6. abc

    Middle-word emphasis (underscore):

    1. ab
    2. ab
    3. abc
    4. ab
    5. ab
    6. abc

    mypreciousfile.txt

    Tricky Cases

    E**. Test TestTestTest

    E**. Test Test Test Test

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Headers.text0000644000076500000240000000034611233534574023534 0ustar t0mstaffHeader ====== Header ------ ### Header - - - Header ====== Paragraph Header ------ Paragraph ### Header Paragraph - - - Paragraph Header ====== Paragraph Paragraph Header ------ Paragraph Paragraph ### Header ParagraphText-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Headers.xhtml0000644000076500000240000000051211233534574023677 0ustar t0mstaff

    Header

    Header

    Header


    Header

    Paragraph

    Header

    Paragraph

    Header

    Paragraph


    Paragraph

    Header

    Paragraph

    Paragraph

    Header

    Paragraph

    Paragraph

    Header

    Paragraph

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.text0000644000076500000240000000022411233534574025457 0ustar t0mstaffHorizontal rules: - - - * * * *** --- ___ Not horizontal rules (testing for a bug in 1.0.1j): +++ ,,, === ??? AAA jjj j j j n n n Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Horizontal_Rules.xhtml0000644000076500000240000000034211233534574025630 0ustar t0mstaff

    Horizontal rules:






    Not horizontal rules (testing for a bug in 1.0.1j):

    +++

    ,,,

    ===

    ???

    AAA

    jjj

    j j j

    n n n

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).html0000644000076500000240000000023411233534574025631 0ustar t0mstaff

    With some attributes:

    foo
    foo

    Hr's:


    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Simple).text0000644000076500000240000000021211233534574025645 0ustar t0mstaffWith some attributes:
    foo
    foo
    Hr's:
    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).text0000644000076500000240000000023611233534574025323 0ustar t0mstaffACINACS SB SBText-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_(Span).xhtml0000644000076500000240000000025411233534574025473 0ustar t0mstaff

    ACINACS

    SB SB

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.html0000644000076500000240000000021211233534574026100 0ustar t0mstaff

    Paragraph one.

    Paragraph two.

    The end.

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Inline_HTML_comments.text0000644000076500000240000000016511233534574026127 0ustar t0mstaffParagraph one. Paragraph two. The end. Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.text0000644000076500000240000000044411233534574024357 0ustar t0mstaffHere is a block tag ins:

    Some text

    And here it is inside a paragraph. And here it is in the middle of a paragraph.

    Some text

    And here is ins as a paragraph. And here it is in the middle of a paragraph. Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Ins_and_del.xhtml0000644000076500000240000000050711233534574024527 0ustar t0mstaff

    Here is a block tag ins:

    Some text

    And here it is inside a paragraph.

    And here it is in the middle of a paragraph.

    Some text

    And here is ins as a paragraph.

    And here it is in the middle of a paragraph.

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.text0000644000076500000240000000005311233534574026012 0ustar t0mstaff[silly URL w/ angle brackets](). Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Links_inline_style.xhtml0000644000076500000240000000007711233534574026170 0ustar t0mstaff

    silly URL w/ angle brackets.

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.text0000644000076500000240000000026411233534574024040 0ustar t0mstaff# Character Escapes The MD5 value for `+` is "26b17225b626fb9238849fd60eabdf60". # HTML Blocks

    test

    The MD5 value for `

    test

    ` is: 6205333b793f34273d75379350b36826Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/MD5_Hashes.xhtml0000644000076500000240000000037211233534574024210 0ustar t0mstaff

    Character Escapes

    The MD5 value for + is "26b17225b626fb9238849fd60eabdf60".

    HTML Blocks

    test

    The MD5 value for <p>test</p> is:

    6205333b793f34273d75379350b36826

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.text0000644000076500000240000000015311233534574023564 0ustar t0mstaffValid nesting: **[Link](url)** [**Link**](url) **[**Link**](url)** Invalid nesting: [[Link](url)](url)Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Nesting.xhtml0000644000076500000240000000036611233534574023742 0ustar t0mstaff

    Valid nesting:

    Link

    Link

    Link

    Invalid nesting:

    [Link](url)

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.text0000644000076500000240000000054611233534574024623 0ustar t0mstaff[Inline link 1 with parens](/url\(test\) "title"). [Inline link 2 with parens]( "title"). [Inline link 3 with non-escaped parens](/url(test) "title"). [Inline link 4 with non-escaped parens]( "title"). [Reference link 1 with parens][1]. [Reference link 2 with parens][2]. [1]: /url(test) "title" [2]: "title" Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Parens_in_URL.xhtml0000644000076500000240000000073011233534574024766 0ustar t0mstaff

    Inline link 1 with parens.

    Inline link 2 with parens.

    Inline link 3 with non-escaped parens.

    Inline link 4 with non-escaped parens.

    Reference link 1 with parens.

    Reference link 2 with parens.

    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.text0000644000076500000240000000077711233534574025323 0ustar t0mstaffThis tests for a bug where quotes escaped by PHP when using `preg_replace` with the `/e` modifier must be correctly unescaped (hence the `_UnslashQuotes` function found only in PHP Markdown). Headers below should appear exactly as they are typed (no backslash added or removed). Header "quoted\" again \\"" =========================== Header "quoted\" again \\"" --------------------------- ### Header "quoted\" again \\"" ### Test with tabs for `_Detab`: Code 'block' with some "tabs" and "quotes" Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/PHP-Specific_Bugs.xhtml0000644000076500000240000000106611233534574025463 0ustar t0mstaff

    This tests for a bug where quotes escaped by PHP when using preg_replace with the /e modifier must be correctly unescaped (hence the _UnslashQuotes function found only in PHP Markdown).

    Headers below should appear exactly as they are typed (no backslash added or removed).

    Header "quoted\" again \""

    Header "quoted\" again \""

    Header "quoted\" again \""

    Test with tabs for _Detab:

    Code    'block' with    some    "tabs"  and "quotes"
    
    Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.text0000644000076500000240000000032111233534574024566 0ustar t0mstaffParagraph and no space: * ciao Paragraph and 1 space: * ciao Paragraph and 3 spaces: * ciao Paragraph and 4 spaces: * ciao Paragraph before header: #Header Paragraph before blockquote: >Some quote. Text-Markdown-1.0.26/t/PHP_Markdown-from-MDTest1.1.mdtest/Tight_blocks.xhtml0000644000076500000240000000045011233534574024741 0ustar t0mstaff

    Paragraph and no space: * ciao

    Paragraph and 1 space: * ciao

    Paragraph and 3 spaces: * ciao

    Paragraph and 4 spaces: * ciao

    Paragraph before header:

    Header

    Paragraph before blockquote:

    Some quote.

    Text-Markdown-1.0.26/t/rt37909.t0000644000076500000240000000034411233534574014370 0ustar t0mstaffuse strict; use warnings; use Test::More tests => 2; use_ok( 'Text::Markdown', 'markdown' ); my $m = Text::Markdown->new; my $html1 = $m->markdown(''); like( $html1, qr/

    .+&#.+<\/a><\/p>/ ); Text-Markdown-1.0.26/t/Text-Markdown.mdtest/0000755000076500000240000000000011261760161017136 5ustar t0mstaffText-Markdown-1.0.26/t/Text-Markdown.mdtest/CoreDumps5.8.text0000644000076500000240000000006511233534574022207 0ustar t0mstaff* Unordered 1. Ordered Text * Unordered 1. Ordered Text-Markdown-1.0.26/t/Text-Markdown.mdtest/CoreDumps5.8.xhtml0000644000076500000240000000020211233534574022350 0ustar t0mstaff

    Text

    • Unordered
      1. Ordered
    Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Emphasis.text0000644000076500000240000000026211233534574021623 0ustar t0mstaff_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-Markdown-1.0.26/t/Text-Markdown.mdtest/Emphasis.xhtml0000644000076500000240000000030711233534574021773 0ustar t0mstaff

    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-Markdown-1.0.26/t/Text-Markdown.mdtest/HTML-Comment-encoding.text0000644000076500000240000000042711233534574024005 0ustar t0mstaffA 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-Markdown-1.0.26/t/Text-Markdown.mdtest/HTML-Comment-encoding.xhtml0000644000076500000240000000046011233534574024152 0ustar t0mstaff

    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-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_brackets.text0000644000076500000240000000016711233534574023014 0ustar t0mstaff[ZIP archives](http://en.wikipedia.org/wiki/ZIP_(file_format) "ZIP (file format) - Wikipedia, the free encyclopedia") Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_brackets.xhtml0000644000076500000240000000021611233534574023157 0ustar t0mstaff

    ZIP archives

    Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_multiline_bugs_1.html0000644000076500000240000000017411233534574024436 0ustar t0mstaff

    http://bugs.debian.org/459885

    link text

    Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_multiline_bugs_1.text0000644000076500000240000000011611233534574024452 0ustar t0mstaff [link text] [link id] [link id]: /someurl/ Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_multiline_bugs_2.html0000644000076500000240000000031411233534574024433 0ustar t0mstaff

    http://bugs.debian.org/459885

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

    Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_multiline_bugs_2.text0000644000076500000240000000023111233534574024451 0ustar t0mstaff Bla, bla, bla, bla, bla, bla, bla, bla, bla, bla bla. This is [my University][]. [my university]: http://www.ua.es Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_reference_style.text0000644000076500000240000000213311233534574024367 0ustar t0mstaffFoo [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/ * * * [this] [this] should work So should [this][this]. And [this] []. And [this][]. And [this]. But not [that] []. Nor [that][]. Nor [that]. [Something in brackets like [this][] should work] [Same with [this].] In this case, [this](/somethingelse/) points to something else. Backslashing should suppress \[this] and [this\]. [this]: foo * * * Here's one where the [link breaks] across lines. Here's another where the [link breaks] across lines, but with a line-ending space. [link breaks]: /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-Markdown-1.0.26/t/Text-Markdown.mdtest/Links_reference_style.xhtml0000644000076500000240000000273111233534574024543 0ustar t0mstaff

    Foo bar.

    Foo bar.

    Foo bar.

    With embedded [brackets].

    Indented once.

    Indented twice.

    Indented thrice.

    Indented [four][] times.

    [four]: /url
    

    this should work

    So should this.

    And this.

    And this.

    And this.

    But not [that] [].

    Nor [that][].

    Nor [that].

    [Something in brackets like this should work]

    [Same with this.]

    In this case, this points to something else.

    Backslashing should suppress [this] and [this].


    Here's one where the link breaks across lines.

    Here's another where the link breaks across lines, but with a line-ending space.

    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-Markdown-1.0.26/t/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.text0000644000076500000240000000022211233534574025545 0ustar t0mstaff# text1 * text2 * text3 text4 ## text5 * text6 * text7 text8 ## text9 * text10 * text11 text12 text13 Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Lists-multilevel-md5-edgecase.xhtml0000644000076500000240000000044211233534574025721 0ustar t0mstaff

    text1

    • text2

      • text3

      text4

    text5

    • text6

      • text7

      text8

    text9

    • text10

      • text11

      text12

      text13

    Text-Markdown-1.0.26/t/Text-Markdown.mdtest/PHP-ASP_tags.text0000644000076500000240000000031711233534574022141 0ustar t0mstaffI 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-Markdown-1.0.26/t/Text-Markdown.mdtest/PHP-ASP_tags.xhtml0000644000076500000240000000034511233534574022312 0ustar t0mstaff

    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-Markdown-1.0.26/t/Text-Markdown.mdtest/Unicode.text0000644000076500000240000000004511233534574021437 0ustar t0mstaff> Fo—o μορεοϋερ > ßåř Text-Markdown-1.0.26/t/Text-Markdown.mdtest/Unicode.xhtml0000644000076500000240000000016011233534574021605 0ustar t0mstaff

    Fo—o

    μορεοϋερ

    ßåř

    Text-Markdown-1.0.26/Todo0000644000076500000240000000361211261757515013533 0ustar t0mstaffTodo 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: . 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..