Permalink
Browse files

PHP Markdown 1.0.1g

  • Loading branch information...
1 parent bd6948f commit 89dafd4a13f05262de9900c9fc2f77c0f7c85049 @michelf committed Aug 14, 2007
Showing with 107 additions and 112 deletions.
  1. +52 −1 PHP Markdown Readme.text
  2. +55 −111 markdown.php
View
53 PHP Markdown Readme.text
@@ -1,7 +1,7 @@
PHP Markdown
============
-Version 1.0.2b8 - Mon 21 May 2007
+Version 1.0.1g - Tue 3 Jul 2007
by Michel Fortin
<http://www.michelf.com/>
@@ -203,6 +203,57 @@ expected; (3) the output PHP Markdown actually produced.
Version History
---------------
+1.0.1g (3 Jul 2007):
+
+* Fix for PHP 5 compiled without the mbstring module. Previous fix to
+ calculate the length of UTF-8 strings in `detab` when `mb_strlen` is
+ not available was only working with PHP 4.
+
+* Fixed a problem with WordPress 2.x where full-content posts in RSS feeds
+ were not processed correctly by Markdown.
+
+* Now supports URLs containing literal parentheses for inline links
+ and images, such as:
+
+ [WIMP](http://en.wikipedia.org/wiki/WIMP_(computing))
+
+ Such parentheses may be arbitrarily nested, but must be
+ balanced. Unbalenced parentheses are allowed however when the URL
+ when escaped or when the URL is enclosed in angle brakets `<>`.
+
+* Fixed a performance problem where the regular expression for strong
+ emphasis introduced in version 1.0.1d could sometime be long to process,
+ give slightly wrong results, and in some circumstances could remove
+ entirely the content for a whole paragraph.
+
+* Some change in version 1.0.1d made possible the incorrect nesting of
+ anchors within each other. This is now fixed.
+
+* Fixed a rare issue where certain MD5 hashes in the content could
+ be changed to their corresponding text. For instance, this:
+
+ The MD5 value for "+" is "26b17225b626fb9238849fd60eabdf60".
+
+ was incorrectly changed to this in previous versions of PHP Markdown:
+
+ <p>The MD5 value for "+" is "+".</p>
+
+* Now convert escaped characters to their numeric character
+ references equivalent.
+
+ This fix an integration issue with SmartyPants and backslash escapes.
+ Since Markdown and SmartyPants have some escapable characters in common,
+ it was sometime necessary to escape them twice. Previously, two
+ backslashes were sometime required to prevent Markdown from "eating" the
+ backslash before SmartyPants sees it:
+
+ Here are two hyphens: \\--
+
+ Now, only one backslash will do:
+
+ Here are two hyphens: \--
+
+
1.0.1f (7 Feb 2007):
* Fixed an issue with WordPress where manually-entered excerpts, but
View
166 markdown.php
@@ -12,7 +12,7 @@
#
-define( 'MARKDOWN_VERSION', "1.0.2b8" ); # Mon 21 May 2007
+define( 'MARKDOWN_VERSION', "1.0.1g" ); # Tue 3 Jul 2007
#
@@ -62,7 +62,7 @@ function Markdown($text) {
Plugin Name: Markdown
Plugin URI: http://www.michelf.com/projects/php-markdown/
Description: <a href="http://daringfireball.net/projects/markdown/syntax">Markdown syntax</a> allows you to write using an easy-to-read, easy-to-write plain text format. Based on the original Perl version by <a href="http://daringfireball.net/">John Gruber</a>. <a href="http://www.michelf.com/projects/php-markdown/">More...</a>
-Version: 1.0.2b8
+Version: 1.0.1g
Author: Michel Fortin
Author URI: http://www.michelf.com/
*/
@@ -110,7 +110,7 @@ function Markdown($text) {
global $wp_markdown_hidden;
$wp_markdown_hidden[1] =
'<p> </p> <pre> </pre> <ol> </ol> <ul> </ul> <li> </li>';
- $wp_markdown_hidden[2] = explode(str_rot13(
+ $wp_markdown_hidden[2] = explode(' ', str_rot13(
'pEj07ZbbBZ U1kqgh4w4p pre2zmeN6K QTi31t9pre ol0MP1jzJR '.
'ML5IjmbRol ulANi1NsGY J7zRLJqPul liA8ctl16T K9nhooUHli'));
}
@@ -410,7 +410,7 @@ function hashHTMLBlocks($text) {
[ ]* # trailing spaces/tabs
(?=\n+|\Z) # followed by a newline or end of document
)
- }xm',
+ }xmi',
array(&$this, '_hashHTMLBlocks_callback'),
$text);
@@ -427,7 +427,7 @@ function hashHTMLBlocks($text) {
[ ]* # trailing spaces/tabs
(?=\n+|\Z) # followed by a newline or end of document
)
- }xm',
+ }xmi',
array(&$this, '_hashHTMLBlocks_callback'),
$text);
@@ -448,7 +448,7 @@ function hashHTMLBlocks($text) {
[ ]*
(?=\n{2,}|\Z) # followed by a blank line or end of document
)
- }x',
+ }xi',
array(&$this, '_hashHTMLBlocks_callback'),
$text);
@@ -719,14 +719,14 @@ function doAnchors($text) {
# These must come last in case you've also got [link test][1]
# or [link test](/foo)
#
- $text = preg_replace_callback('{
- ( # wrap whole match in $1
- \[
- ([^\[\]]+) # link text = $2; can\'t contain [ or ]
- \]
- )
- }xs',
- array(&$this, '_doAnchors_reference_callback'), $text);
+// $text = preg_replace_callback('{
+// ( # wrap whole match in $1
+// \[
+// ([^\[\]]+) # link text = $2; can\'t contain [ or ]
+// \]
+// )
+// }xs',
+// array(&$this, '_doAnchors_reference_callback'), $text);
$this->in_anchor = false;
return $text;
@@ -1285,41 +1285,41 @@ function formParagraphs($text) {
if (isset($this->html_blocks[$graf])) {
$block = $this->html_blocks[$graf];
$graf = $block;
- if (preg_match('{
- \A
- ( # $1 = <div> tag
- <div \s+
- [^>]*
- \b
- markdown\s*=\s* ([\'"]) # $2 = attr quote char
- 1
- \2
- [^>]*
- >
- )
- ( # $3 = contents
- .*
- )
- (</div>) # $4 = closing tag
- \z
- }xs', $block, $matches))
- {
- list(, $div_open, , $div_content, $div_close) = $matches;
-
- # We can't call Markdown(), because that resets the hash;
- # that initialization code should be pulled into its own sub, though.
- $div_content = $this->hashHTMLBlocks($div_content);
-
- # Run document gamut methods on the content.
- foreach ($this->document_gamut as $method => $priority) {
- $div_content = $this->$method($div_content);
- }
-
- $div_open = preg_replace(
- '{\smarkdown\s*=\s*([\'"]).+?\1}', '', $div_open);
-
- $graf = $div_open . "\n" . $div_content . "\n" . $div_close;
- }
+// if (preg_match('{
+// \A
+// ( # $1 = <div> tag
+// <div \s+
+// [^>]*
+// \b
+// markdown\s*=\s* ([\'"]) # $2 = attr quote char
+// 1
+// \2
+// [^>]*
+// >
+// )
+// ( # $3 = contents
+// .*
+// )
+// (</div>) # $4 = closing tag
+// \z
+// }xs', $block, $matches))
+// {
+// list(, $div_open, , $div_content, $div_close) = $matches;
+//
+// # We can't call Markdown(), because that resets the hash;
+// # that initialization code should be pulled into its own sub, though.
+// $div_content = $this->hashHTMLBlocks($div_content);
+//
+// # Run document gamut methods on the content.
+// foreach ($this->document_gamut as $method => $priority) {
+// $div_content = $this->$method($div_content);
+// }
+//
+// $div_open = preg_replace(
+// '{\smarkdown\s*=\s*([\'"]).+?\1}', '', $div_open);
+//
+// $graf = $div_open . "\n" . $div_content . "\n" . $div_close;
+// }
$grafs[$key] = $graf;
}
}
@@ -1517,7 +1517,7 @@ function detab($text) {
# tab characters. Then we reconstruct every line by adding the
# appropriate number of space between each blocks.
- $strlen = $this->utf8_strlen; # best strlen function for UTF-8.
+ $strlen = $this->utf8_strlen; # strlen function for UTF-8.
$lines = explode("\n", $text);
$text = "";
@@ -1540,18 +1540,14 @@ function detab($text) {
function _initDetab() {
#
# Check for the availability of the function in the `utf8_strlen` property
- # (probably `mb_strlen`). If the function is not available, create a
+ # (initially `mb_strlen`). If the function is not available, create a
# function that will loosely count the number of UTF-8 characters with a
# regular expression.
#
if (function_exists($this->utf8_strlen)) return;
- $this->utf8_strlen = 'Markdown_UTF8_strlen';
-
- if (function_exists($this->utf8_strlen)) return;
- function Markdown_UTF8_strlen($text) {
- return preg_match_all('/[\x00-\xBF]|[\xC0-\xFF][\x80-\xBF]*/',
- $text, $m);
- }
+ $this->utf8_strlen = create_function('$text', 'return preg_match_all(
+ "/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/",
+ $text, $m);');
}
@@ -1608,66 +1604,14 @@ function unhash($text) {
See the readme file for detailed release notes for this version.
-1.0.2b8 (21 May 2007):
-
-* Fixed a problem with WordPress 2.x where full-content posts in RSS feeds
- were not processed correctly by Markdown.
-
-* Now supports URLs containing literal parentheses for inline links
- and images, such as:
-
- [WIMP](http://en.wikipedia.org/wiki/WIMP_(computing))
-
- Such parentheses may be arbitrarily nested, but must be
- balanced. Unbalenced parentheses are allowed however when the URL
- when escaped or when the URL is enclosed in angle brakets `<>`.
-
-* Fixed a performance problem with the regular expression for strong
- emphasis introduced in version 1.0.1d could sometime be long to process,
- give slightly wrong results, and in some circumstances could remove
- entirely the content for a whole paragraph.
-
-* Some change in version 1.0.1d made possible the incorrect nesting of
- anchors within each other. This is now fixed.
-
-* Fixed a rare issue where certain MD5 hashes in the content could
- be changed to their corresponding text. For instance, this:
-
- The MD5 value for "+" is "26b17225b626fb9238849fd60eabdf60".
-
- was incorrectly changed to this in previous versions of PHP Markdown:
-
- <p>The MD5 value for "+" is "+".</p>
-
-* Now convert the escaped characters to their numeric character
- references equivalent.
-
- This fix an integration issue with SmartyPants and backslash escapes.
- Since Markdown and SmartyPants have some escapable characters in common,
- it was sometime necessary to escape them twice. Previously, two
- backslashes were sometime required to prevent Markdown from "eating" the
- backslash before SmartyPants sees it:
-
- Here are two hyphens: \\--
-
- Now, only one backslash will do:
-
- Here are two hyphens: \--
-
+1.0.1g (3 Jul 2007)
1.0.1f (7 Feb 2007)
1.0.1e (28 Dec 2006)
1.0.1d (1 Dec 2006)
-1.0.1b7 (16 Sep 2006):
-
-* Filthy hack to support markdown='1' in div tags.
-
-* Experimental support for [this] as a synonym for [this][].
-
-
1.0.1c (9 Dec 2005)
1.0.1b (6 Jun 2005)

0 comments on commit 89dafd4

Please sign in to comment.