diff --git a/Michelf/Markdown.php b/Michelf/Markdown.php
index a52255c..a161da8 100644
--- a/Michelf/Markdown.php
+++ b/Michelf/Markdown.php
@@ -59,6 +59,18 @@ class Markdown {
public $predef_urls = array();
public $predef_titles = array();
+ # Class attribute to toggle "enhanced ordered list" behaviour
+ # setting this to true will allow ordered lists to start from the index
+ # number that is defined first. For example:
+ # 2. List item two
+ # 3. List item three
+ #
+ # becomes
+ #
+ # - List item two
+ # - List item three
+ #
+ public $enhanced_ordered_list = false;
### Parser Implementation ###
@@ -847,10 +859,11 @@ class Markdown {
return $text;
}
protected function _doLists_callback($matches) {
- # Re-usable patterns to match list item bullets and number markers:
- $marker_ul_re = '[*+-]';
- $marker_ol_re = '\d+[\.]';
+ # Re-usable patterns to match list item bullets and number markers:
+ $marker_ul_re = '[*+-]';
+ $marker_ol_re = '\d+[\.]';
$marker_any_re = "(?:$marker_ul_re|$marker_ol_re)";
+ $marker_ol_start_re = '[0-9]+';
$list = $matches[1];
$list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol";
@@ -860,7 +873,23 @@ class Markdown {
$list .= "\n";
$result = $this->processListItems($list, $marker_any_re);
- $result = $this->hashBlock("<$list_type>\n" . $result . "$list_type>");
+ $ol_start = 1;
+ if ($this->enhanced_ordered_list) {
+ # Get the start number for ordered list.
+ if ($list_type == 'ol') {
+ $ol_start_array = array();
+ $ol_start_check = preg_match("/$marker_ol_start_re/", $matches[4], $ol_start_array);
+ if ($ol_start_check){
+ $ol_start = $ol_start_array[0];
+ }
+ }
+ }
+
+ if ($ol_start > 1 && $list_type == 'ol'){
+ $result = $this->hashBlock("<$list_type start=\"$ol_start\">\n" . $result . "$list_type>");
+ } else {
+ $result = $this->hashBlock("<$list_type>\n" . $result . "$list_type>");
+ }
return "\n". $result ."\n\n";
}
@@ -1553,19 +1582,6 @@ class _MarkdownExtra_TmpImpl extends \Michelf\Markdown {
# Predefined abbreviations.
public $predef_abbr = array();
- # Class attribute to toggle "enhanced ordered list" behaviour
- # setting this to true will allow ordered lists to start from the index
- # number that is defined first. For example:
- # 2. List item two
- # 3. List item three
- #
- # becomes
- #
- # - List item two
- # - List item three
- #
- public $enhanced_ordered_list = false;
-
### Parser Implementation ###
public function __construct() {
@@ -1594,6 +1610,7 @@ class _MarkdownExtra_TmpImpl extends \Michelf\Markdown {
"doAbbreviations" => 70,
);
+ $this->enhanced_ordered_list = true;
parent::__construct();
}
@@ -3101,42 +3118,6 @@ class _MarkdownExtra_TmpImpl extends \Michelf\Markdown {
return $matches[0];
}
}
-
- protected function _doLists_callback($matches) {
- # Re-usable patterns to match list item bullets and number markers:
- $marker_ul_re = '[*+-]';
- $marker_ol_re = '\d+[\.]';
- $marker_any_re = "(?:$marker_ul_re|$marker_ol_re)";
- $marker_ol_start_re = '[0-9]+';
-
- $list = $matches[1];
- $list_type = preg_match("/$marker_ul_re/", $matches[4]) ? "ul" : "ol";
-
- $marker_any_re = ( $list_type == "ul" ? $marker_ul_re : $marker_ol_re );
-
- $list .= "\n";
- $result = $this->processListItems($list, $marker_any_re);
-
- $ol_start = 1;
- if ($this->enhanced_ordered_list) {
- # Get the start number for ordered list.
- if ($list_type == 'ol') {
- $ol_start_array = array();
- $ol_start_check = preg_match("/$marker_ol_start_re/", $matches[4], $ol_start_array);
- if ($ol_start_check){
- $ol_start = $ol_start_array[0];
- }
- }
- }
-
- if ($ol_start > 1 && $list_type == 'ol'){
- $result = $this->hashBlock("<$list_type start=\"$ol_start\">\n" . $result . "$list_type>");
- } else {
- $result = $this->hashBlock("<$list_type>\n" . $result . "$list_type>");
- }
- return "\n". $result ."\n\n";
- }
-
}