Browse Source
http://daringfireball.net/projects/downloads/Markdown_1.0.1.zip md5: f17b3c2b2830c6fd2fe0098226e59a2f sha1: 7e6d1d9224f16fec5631bf6bc5147f1e64715a4b sha256: 6520e9b6a58c5555e381b6223d66feddee67f675ed312ec19e9cee1b92bc0137master markdown_1.0.1
John Gruber
20 years ago
commit
f7b11523cf
3 changed files with 1821 additions and 0 deletions
@ -0,0 +1,30 @@ |
|||
Copyright (c) 2004, John Gruber |
|||
<http://daringfireball.net/> |
|||
All rights reserved. |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions are |
|||
met: |
|||
|
|||
* Redistributions of source code must retain the above copyright notice, |
|||
this list of conditions and the following disclaimer. |
|||
|
|||
* Redistributions in binary form must reproduce the above copyright |
|||
notice, this list of conditions and the following disclaimer in the |
|||
documentation and/or other materials provided with the distribution. |
|||
|
|||
* Neither the name "Markdown" nor the names of its contributors may |
|||
be used to endorse or promote products derived from this software |
|||
without specific prior written permission. |
|||
|
|||
This software is provided by the copyright holders and contributors "as |
|||
is" and any express or implied warranties, including, but not limited |
|||
to, the implied warranties of merchantability and fitness for a |
|||
particular purpose are disclaimed. In no event shall the copyright owner |
|||
or contributors be liable for any direct, indirect, incidental, special, |
|||
exemplary, or consequential damages (including, but not limited to, |
|||
procurement of substitute goods or services; loss of use, data, or |
|||
profits; or business interruption) however caused and on any theory of |
|||
liability, whether in contract, strict liability, or tort (including |
|||
negligence or otherwise) arising in any way out of the use of this |
|||
software, even if advised of the possibility of such damage. |
@ -0,0 +1,341 @@ |
|||
Markdown |
|||
======== |
|||
|
|||
Version 1.0.1 - Tue 14 Dec 2004 |
|||
|
|||
by John Gruber |
|||
<http://daringfireball.net/> |
|||
|
|||
|
|||
Introduction |
|||
------------ |
|||
|
|||
Markdown is a text-to-HTML conversion tool for web writers. Markdown |
|||
allows you to write using an easy-to-read, easy-to-write plain text |
|||
format, then convert it to structurally valid XHTML (or HTML). |
|||
|
|||
Thus, "Markdown" is two things: a plain text markup syntax, and a |
|||
software tool, written in Perl, that converts the plain text markup |
|||
to HTML. |
|||
|
|||
Markdown works both as a Movable Type plug-in and as a standalone Perl |
|||
script -- which means it can also be used as a text filter in BBEdit |
|||
(or any other application that supporst filters written in Perl). |
|||
|
|||
Full documentation of Markdown's syntax and configuration options is |
|||
available on the web: <http://daringfireball.net/projects/markdown/>. |
|||
(Note: this readme file is formatted in Markdown.) |
|||
|
|||
|
|||
|
|||
Installation and Requirements |
|||
----------------------------- |
|||
|
|||
Markdown requires Perl 5.6.0 or later. Welcome to the 21st Century. |
|||
Markdown also requires the standard Perl library module `Digest::MD5`. |
|||
|
|||
|
|||
### Movable Type ### |
|||
|
|||
Markdown works with Movable Type version 2.6 or later (including |
|||
MT 3.0 or later). |
|||
|
|||
1. Copy the "Markdown.pl" file into your Movable Type "plugins" |
|||
directory. The "plugins" directory should be in the same directory |
|||
as "mt.cgi"; if the "plugins" directory doesn't already exist, use |
|||
your FTP program to create it. Your installation should look like |
|||
this: |
|||
|
|||
(mt home)/plugins/Markdown.pl |
|||
|
|||
2. Once installed, Markdown will appear as an option in Movable Type's |
|||
Text Formatting pop-up menu. This is selectable on a per-post basis. |
|||
Markdown translates your posts to HTML when you publish; the posts |
|||
themselves are stored in your MT database in Markdown format. |
|||
|
|||
3. If you also install SmartyPants 1.5 (or later), Markdown will offer |
|||
a second text formatting option: "Markdown with SmartyPants". This |
|||
option is the same as the regular "Markdown" formatter, except that |
|||
automatically uses SmartyPants to create typographically correct |
|||
curly quotes, em-dashes, and ellipses. See the SmartyPants web page |
|||
for more information: <http://daringfireball.net/projects/smartypants/> |
|||
|
|||
4. To make Markdown (or "Markdown with SmartyPants") your default |
|||
text formatting option for new posts, go to Weblog Config -> |
|||
Preferences. |
|||
|
|||
Note that by default, Markdown produces XHTML output. To configure |
|||
Markdown to produce HTML 4 output, see "Configuration", below. |
|||
|
|||
|
|||
### Blosxom ### |
|||
|
|||
Markdown works with Blosxom version 2.x. |
|||
|
|||
1. Rename the "Markdown.pl" plug-in to "Markdown" (case is |
|||
important). Movable Type requires plug-ins to have a ".pl" |
|||
extension; Blosxom forbids it. |
|||
|
|||
2. Copy the "Markdown" plug-in file to your Blosxom plug-ins folder. |
|||
If you're not sure where your Blosxom plug-ins folder is, see the |
|||
Blosxom documentation for information. |
|||
|
|||
3. That's it. The entries in your weblog will now automatically be |
|||
processed by Markdown. |
|||
|
|||
4. If you'd like to apply Markdown formatting only to certain posts, |
|||
rather than all of them, see Jason Clark's instructions for using |
|||
Markdown in conjunction with Blosxom's Meta plugin: |
|||
|
|||
<http://jclark.org/weblog/WebDev/Blosxom/Markdown.html> |
|||
|
|||
|
|||
### BBEdit ### |
|||
|
|||
Markdown works with BBEdit 6.1 or later on Mac OS X. (It also works |
|||
with BBEdit 5.1 or later and MacPerl 5.6.1 on Mac OS 8.6 or later.) |
|||
|
|||
1. Copy the "Markdown.pl" file to appropriate filters folder in your |
|||
"BBEdit Support" folder. On Mac OS X, this should be: |
|||
|
|||
BBEdit Support/Unix Support/Unix Filters/ |
|||
|
|||
See the BBEdit documentation for more details on the location of |
|||
these folders. |
|||
|
|||
You can rename "Markdown.pl" to whatever you wish. |
|||
|
|||
2. That's it. To use Markdown, select some text in a BBEdit document, |
|||
then choose Markdown from the Filters sub-menu in the "#!" menu, or |
|||
the Filters floating palette |
|||
|
|||
|
|||
|
|||
Configuration |
|||
------------- |
|||
|
|||
By default, Markdown produces XHTML output for tags with empty elements. |
|||
E.g.: |
|||
|
|||
<br /> |
|||
|
|||
Markdown can be configured to produce HTML-style tags; e.g.: |
|||
|
|||
<br> |
|||
|
|||
|
|||
### Movable Type ### |
|||
|
|||
You need to use a special `MTMarkdownOptions` container tag in each |
|||
Movable Type template where you want HTML 4-style output: |
|||
|
|||
<MTMarkdownOptions output='html4'> |
|||
... put your entry content here ... |
|||
</MTMarkdownOptions> |
|||
|
|||
The easiest way to use MTMarkdownOptions is probably to put the |
|||
opening tag right after your `<body>` tag, and the closing tag right |
|||
before `</body>`. |
|||
|
|||
To suppress Markdown processing in a particular template, i.e. to |
|||
publish the raw Markdown-formatted text without translation into |
|||
(X)HTML, set the `output` attribute to 'raw': |
|||
|
|||
<MTMarkdownOptions output='raw'> |
|||
... put your entry content here ... |
|||
</MTMarkdownOptions> |
|||
|
|||
|
|||
### Command-Line ### |
|||
|
|||
Use the `--html4tags` command-line switch to produce HTML output from a |
|||
Unix-style command line. E.g.: |
|||
|
|||
% perl Markdown.pl --html4tags foo.text |
|||
|
|||
Type `perldoc Markdown.pl`, or read the POD documentation within the |
|||
Markdown.pl source code for more information. |
|||
|
|||
|
|||
|
|||
Bugs |
|||
---- |
|||
|
|||
To file bug reports or feature requests please send email to: |
|||
<markdown@daringfireball.net>. |
|||
|
|||
|
|||
|
|||
Version History |
|||
--------------- |
|||
|
|||
1.0.1 (14 Dec 2004): |
|||
|
|||
+ Changed the syntax rules for code blocks and spans. Previously, |
|||
backslash escapes for special Markdown characters were processed |
|||
everywhere other than within inline HTML tags. Now, the contents |
|||
of code blocks and spans are no longer processed for backslash |
|||
escapes. This means that code blocks and spans are now treated |
|||
literally, with no special rules to worry about regarding |
|||
backslashes. |
|||
|
|||
**NOTE**: This changes the syntax from all previous versions of |
|||
Markdown. Code blocks and spans involving backslash characters |
|||
will now generate different output than before. |
|||
|
|||
+ Tweaked the rules for link definitions so that they must occur |
|||
within three spaces of the left margin. Thus if you indent a link |
|||
definition by four spaces or a tab, it will now be a code block. |
|||
|
|||
[a]: /url/ "Indented 3 spaces, this is a link def" |
|||
|
|||
[b]: /url/ "Indented 4 spaces, this is a code block" |
|||
|
|||
**IMPORTANT**: This may affect existing Markdown content if it |
|||
contains link definitions indented by 4 or more spaces. |
|||
|
|||
+ Added `>`, `+`, and `-` to the list of backslash-escapable |
|||
characters. These should have been done when these characters |
|||
were added as unordered list item markers. |
|||
|
|||
+ Trailing spaces and tabs following HTML comments and `<hr/>` tags |
|||
are now ignored. |
|||
|
|||
+ Inline links using `<` and `>` URL delimiters weren't working: |
|||
|
|||
like [this](<http://example.com/>) |
|||
|
|||
+ Added a bit of tolerance for trailing spaces and tabs after |
|||
Markdown hr's. |
|||
|
|||
+ Fixed bug where auto-links were being processed within code spans: |
|||
|
|||
like this: `<http://example.com/>` |
|||
|
|||
+ Sort-of fixed a bug where lines in the middle of hard-wrapped |
|||
paragraphs, which lines look like the start of a list item, |
|||
would accidentally trigger the creation of a list. E.g. a |
|||
paragraph that looked like this: |
|||
|
|||
I recommend upgrading to version |
|||
8. Oops, now this line is treated |
|||
as a sub-list. |
|||
|
|||
This is fixed for top-level lists, but it can still happen for |
|||
sub-lists. E.g., the following list item will not be parsed |
|||
properly: |
|||
|
|||
+ I recommend upgrading to version |
|||
8. Oops, now this line is treated |
|||
as a sub-list. |
|||
|
|||
Given Markdown's list-creation rules, I'm not sure this can |
|||
be fixed. |
|||
|
|||
+ Standalone HTML comments are now handled; previously, they'd get |
|||
wrapped in a spurious `<p>` tag. |
|||
|
|||
+ Fix for horizontal rules preceded by 2 or 3 spaces. |
|||
|
|||
+ `<hr>` HTML tags in must occur within three spaces of left |
|||
margin. (With 4 spaces or a tab, they should be code blocks, but |
|||
weren't before this fix.) |
|||
|
|||
+ Capitalized "With" in "Markdown With SmartyPants" for |
|||
consistency with the same string label in SmartyPants.pl. |
|||
(This fix is specific to the MT plug-in interface.) |
|||
|
|||
+ Auto-linked email address can now optionally contain |
|||
a 'mailto:' protocol. I.e. these are equivalent: |
|||
|
|||
<mailto:user@example.com> |
|||
<user@example.com> |
|||
|
|||
+ Fixed annoying bug where nested lists would wind up with |
|||
spurious (and invalid) `<p>` tags. |
|||
|
|||
+ You can now write empty links: |
|||
|
|||
[like this]() |
|||
|
|||
and they'll be turned into anchor tags with empty href attributes. |
|||
This should have worked before, but didn't. |
|||
|
|||
+ `***this***` and `___this___` are now turned into |
|||
|
|||
<strong><em>this</em></strong> |
|||
|
|||
Instead of |
|||
|
|||
<strong><em>this</strong></em> |
|||
|
|||
which isn't valid. (Thanks to Michel Fortin for the fix.) |
|||
|
|||
+ Added a new substitution in `_EncodeCode()`: s/\$/$/g; This |
|||
is only for the benefit of Blosxom users, because Blosxom |
|||
(sometimes?) interpolates Perl scalars in your article bodies. |
|||
|
|||
+ Fixed problem for links defined with urls that include parens, e.g.: |
|||
|
|||
[1]: http://sources.wikipedia.org/wiki/Middle_East_Policy_(Chomsky) |
|||
|
|||
"Chomsky" was being erroneously treated as the URL's title. |
|||
|
|||
+ At some point during 1.0's beta cycle, I changed every sub's |
|||
argument fetching from this idiom: |
|||
|
|||
my $text = shift; |
|||
|
|||
to: |
|||
|
|||
my $text = shift || return ''; |
|||
|
|||
The idea was to keep Markdown from doing any work in a sub |
|||
if the input was empty. This introduced a bug, though: |
|||
if the input to any function was the single-character string |
|||
"0", it would also evaluate as false and return immediately. |
|||
How silly. Now fixed. |
|||
|
|||
|
|||
|
|||
Donations |
|||
--------- |
|||
|
|||
Donations to support Markdown's development are happily accepted. See: |
|||
<http://daringfireball.net/projects/markdown/> for details. |
|||
|
|||
|
|||
|
|||
Copyright and License |
|||
--------------------- |
|||
|
|||
Copyright (c) 2003-2004 John Gruber |
|||
<http://daringfireball.net/> |
|||
All rights reserved. |
|||
|
|||
Redistribution and use in source and binary forms, with or without |
|||
modification, are permitted provided that the following conditions are |
|||
met: |
|||
|
|||
* Redistributions of source code must retain the above copyright notice, |
|||
this list of conditions and the following disclaimer. |
|||
|
|||
* Redistributions in binary form must reproduce the above copyright |
|||
notice, this list of conditions and the following disclaimer in the |
|||
documentation and/or other materials provided with the distribution. |
|||
|
|||
* Neither the name "Markdown" nor the names of its contributors may |
|||
be used to endorse or promote products derived from this software |
|||
without specific prior written permission. |
|||
|
|||
This software is provided by the copyright holders and contributors "as |
|||
is" and any express or implied warranties, including, but not limited |
|||
to, the implied warranties of merchantability and fitness for a |
|||
particular purpose are disclaimed. In no event shall the copyright owner |
|||
or contributors be liable for any direct, indirect, incidental, special, |
|||
exemplary, or consequential damages (including, but not limited to, |
|||
procurement of substitute goods or services; loss of use, data, or |
|||
profits; or business interruption) however caused and on any theory of |
|||
liability, whether in contract, strict liability, or tort (including |
|||
negligence or otherwise) arising in any way out of the use of this |
|||
software, even if advised of the possibility of such damage. |
File diff suppressed because it is too large
Loading…
Reference in new issue