Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15369905
D10742.id25787.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Referenced Files
None
Subscribers
None
D10742.id25787.diff
View Options
diff --git a/src/markup/engine/__tests__/remarkup/ordered-list-with-numbers.txt b/src/markup/engine/__tests__/remarkup/ordered-list-with-numbers.txt
--- a/src/markup/engine/__tests__/remarkup/ordered-list-with-numbers.txt
+++ b/src/markup/engine/__tests__/remarkup/ordered-list-with-numbers.txt
@@ -10,6 +10,10 @@
1. asd
234) asd
+10. ten
+11. eleven
+12. twelve
+
1/ This explicitly should not be formatted as a list.
~~~~~~~~~~
<ol class="remarkup-list">
@@ -24,13 +28,21 @@
<li class="remarkup-list-item">asdf</li>
</ol>
-<p>234) asd</p>
+<ol class="remarkup-list" start="234">
+<li class="remarkup-list-item">asd</li>
+</ol>
<ol class="remarkup-list">
<li class="remarkup-list-item">asd</li>
<li class="remarkup-list-item">asd</li>
</ol>
+<ol class="remarkup-list" start="10">
+<li class="remarkup-list-item">ten</li>
+<li class="remarkup-list-item">eleven</li>
+<li class="remarkup-list-item">twelve</li>
+</ol>
+
<p>1/ This explicitly should not be formatted as a list.</p>
~~~~~~~~~~
1. aasdx
@@ -40,9 +52,13 @@
1. asdf
2. asdf
-234) asd
+234. asd
1. asd
2. asd
+10. ten
+11. eleven
+12. twelve
+
1/ This explicitly should not be formatted as a list.
diff --git a/src/markup/engine/remarkup/blockrule/PhutilRemarkupListBlockRule.php b/src/markup/engine/remarkup/blockrule/PhutilRemarkupListBlockRule.php
--- a/src/markup/engine/remarkup/blockrule/PhutilRemarkupListBlockRule.php
+++ b/src/markup/engine/remarkup/blockrule/PhutilRemarkupListBlockRule.php
@@ -81,7 +81,7 @@
* the stack.
*/
const MAXIMUM_LIST_NESTING_DEPTH = 12;
- const START_BLOCK_PATTERN = '@^\s*(?:[-*#]+|1[.)]|\[.?\])\s+@';
+ const START_BLOCK_PATTERN = '@^\s*(?:[-*#]+|([1-9][0-9]*)[.)]|\[.?\])\s+@';
const CONT_BLOCK_PATTERN = '@^\s*(?:[-*#]+|[0-9]+[.)]|\[.?\])\s+@';
const STRIP_BLOCK_PATTERN = '@^\s*(?:[-*#]+|[0-9]+[.)])\s*@';
@@ -151,9 +151,14 @@
// );
$item = array();
+ $starts_at = null;
$regex = self::START_BLOCK_PATTERN;
foreach ($lines as $line) {
- if (preg_match($regex, $line)) {
+ $match = null;
+ if (preg_match($regex, $line, $match)) {
+ if (!$starts_at && !empty($match[1])) {
+ $starts_at = $match[1];
+ }
$regex = self::CONT_BLOCK_PATTERN;
if ($item) {
$items[] = $item;
@@ -165,6 +170,9 @@
if ($item) {
$items[] = $item;
}
+ if (!$starts_at) {
+ $starts_at = 1;
+ }
// Process each item to normalize the text, remove line wrapping, and
@@ -314,7 +322,7 @@
// Finally, we have enough information to render the tree.
- $out = $this->renderTree($tree, 0, $has_marks);
+ $out = $this->renderTree($tree, 0, $has_marks, $starts_at);
if ($this->getEngine()->isTextMode()) {
$out = implode('', $out);
@@ -416,7 +424,12 @@
/**
* See additional notes in @{method:markupText}.
*/
- private function renderTree(array $tree, $level, $has_marks) {
+ private function renderTree(
+ array $tree,
+ $level,
+ $has_marks,
+ $starts_at = 1) {
+
$style = idx(head($tree), 'style');
$out = array();
@@ -431,20 +444,27 @@
break;
}
+ $start_attr = null;
+ if (ctype_digit($starts_at) && $starts_at > 1) {
+ $start_attr = hsprintf(' start="%d"', $starts_at);
+ }
+
if ($has_marks) {
$out[] = hsprintf(
- '<%s class="remarkup-list remarkup-list-with-checkmarks">',
- $tag);
+ '<%s class="remarkup-list remarkup-list-with-checkmarks"%s>',
+ $tag,
+ $start_attr);
} else {
$out[] = hsprintf(
- '<%s class="remarkup-list">',
- $tag);
+ '<%s class="remarkup-list"%s>',
+ $tag,
+ $start_attr);
}
$out[] = "\n";
}
- $number = 1;
+ $number = $starts_at;
foreach ($tree as $item) {
if ($this->getEngine()->isTextMode()) {
if ($item['text'] === null) {
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Mar 13, 8:38 AM (9 h, 2 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7613226
Default Alt Text
D10742.id25787.diff (3 KB)
Attached To
Mode
D10742: Support arbitrary start numbers for ordered lists in remarkup
Attached
Detach File
Event Timeline
Log In to Comment