From 5591cf4587b6e44aab90a9bb7e64112ee126a160 Mon Sep 17 00:00:00 2001 From: David Anson Date: Sat, 7 Mar 2015 22:46:45 -0800 Subject: [PATCH] Add MD029 with tests. --- lib/rules.js | 24 ++++++++++++++++++++++ test/lists_without_blank_lines.json | 3 ++- test/ordered_list_item_prefix.md | 13 ++++++++++++ test/ordered_list_item_prefix_ordered.json | 6 ++++++ test/ordered_list_item_prefix_ordered.md | 13 ++++++++++++ 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 test/ordered_list_item_prefix.md create mode 100644 test/ordered_list_item_prefix_ordered.json create mode 100644 test/ordered_list_item_prefix_ordered.md diff --git a/lib/rules.js b/lib/rules.js index efb64898..2495df83 100644 --- a/lib/rules.js +++ b/lib/rules.js @@ -333,6 +333,30 @@ module.exports = [ } }, + { + "name": "MD029", + "desc": "Ordered list item prefix", + "func": function MD029(params, errors) { + var style = params.options.style || "one"; + var number = 0; + params.tokens.forEach(function forToken(token) { + if (token.type === "ordered_list_open") { + number = 1; + } else if (token.type === "ordered_list_close") { + number = 0; + } else if ((token.type === "list_item_open") && number) { + var regex = new RegExp("^\\s*" + String(number) + "\\. "); + if (!regex.test(token.line)) { + errors.push(token.lineNumber); + } + if (style === "ordered") { + number++; + } + } + }); + } + }, + { "name": "MD031", "desc": "Fenced code blocks should be surrounded by blank lines", diff --git a/test/lists_without_blank_lines.json b/test/lists_without_blank_lines.json index d74a3913..4e41d1f6 100644 --- a/test/lists_without_blank_lines.json +++ b/test/lists_without_blank_lines.json @@ -1,4 +1,5 @@ { "default": true, - "MD004": false + "MD004": false, + "MD029": false } diff --git a/test/ordered_list_item_prefix.md b/test/ordered_list_item_prefix.md new file mode 100644 index 00000000..f5ab9564 --- /dev/null +++ b/test/ordered_list_item_prefix.md @@ -0,0 +1,13 @@ +Good list: + +1. Do this. +1. Do that. +1. ??? +1. Profit! + +Bad list: + +1. Do this. +2. Do nothing. {MD029} +3. ??? {MD029} +4. Failed! {MD029} diff --git a/test/ordered_list_item_prefix_ordered.json b/test/ordered_list_item_prefix_ordered.json new file mode 100644 index 00000000..02b6e8d2 --- /dev/null +++ b/test/ordered_list_item_prefix_ordered.json @@ -0,0 +1,6 @@ +{ + "default": true, + "MD029": { + "style": "ordered" + } +} diff --git a/test/ordered_list_item_prefix_ordered.md b/test/ordered_list_item_prefix_ordered.md new file mode 100644 index 00000000..1d9895d3 --- /dev/null +++ b/test/ordered_list_item_prefix_ordered.md @@ -0,0 +1,13 @@ +Good list: + +1. Do this. +2. Do that. +3. ??? +4. Profit! + +Bad list: + +1. Do this. +1. Do nothing. {MD029} +1. ??? {MD029} +1. Failed! {MD029}