From b4995d75b85154a5c861d4ff68c29ae865125418 Mon Sep 17 00:00:00 2001 From: Matt Gorle Date: Tue, 16 Jul 2013 09:17:20 +0100 Subject: [PATCH] Implemented some of Enhanced Ordered Lists: numerically ordered lists now start with the first number given. For example, if you start your list in Markdown as follows: 2. second list item 3. third list item then Markdown will produce this:
  1. second list item
  2. third list item
--- Michelf/Markdown.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Michelf/Markdown.php b/Michelf/Markdown.php index 094b0ee..1f5b223 100644 --- a/Michelf/Markdown.php +++ b/Michelf/Markdown.php @@ -851,16 +851,27 @@ class Markdown { $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 ); + # Get the start number for ordered list. + $ol_start = 1; + 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]; + } + } + $list .= "\n"; $result = $this->processListItems($list, $marker_any_re); - $result = $this->hashBlock("<$list_type>\n" . $result . ""); + $result = $this->hashBlock("<$list_type start=\"$ol_start\">\n" . $result . ""); return "\n". $result ."\n\n"; }