diff --git a/packages/markdown-common/lib/tocommonmarkrules.js b/packages/markdown-common/lib/tocommonmarkrules.js
index b56a2334..c9f8fac2 100644
--- a/packages/markdown-common/lib/tocommonmarkrules.js
+++ b/packages/markdown-common/lib/tocommonmarkrules.js
@@ -243,6 +243,23 @@ const listItemCloseRule = {
close: true,
};
+const romanListOpenRule = {
+ tag: `${CommonMarkModel.NAMESPACE}.List`,
+ leaf: false,
+ open: true,
+ close: false,
+ enter: (node,token,callback) => {
+ node.type = 'roman';
+ node.tight = 'true'; // XXX Default but can be overridden when closing the list tag
+ },
+};
+const romanListCloseRule = {
+ tag: `${CommonMarkModel.NAMESPACE}.List`,
+ leaf: false,
+ open: false,
+ close: true,
+};
+
const tableOpenRule = {
tag: `${CommonMarkModel.NAMESPACE}.Table`,
leaf: false,
@@ -361,6 +378,9 @@ rules.blocks.bullet_list_open = bulletListOpenRule;
rules.blocks.bullet_list_close = bulletListCloseRule;
rules.blocks.ordered_list_open = orderedListOpenRule;
rules.blocks.ordered_list_close = orderedListCloseRule;
+rules.blocks.roman_list_open = romanListOpenRule;
+rules.blocks.roman_list_close = romanListCloseRule;
+rules.blocks.roma_list = romanListOpenRule;
rules.blocks.list_item_open = listItemOpenRule;
rules.blocks.list_item_close = listItemCloseRule;
rules.blocks.table_open = tableOpenRule;
diff --git a/packages/markdown-html/src/ToHtmlStringVisitor.js b/packages/markdown-html/src/ToHtmlStringVisitor.js
index b05dc143..7ae40115 100644
--- a/packages/markdown-html/src/ToHtmlStringVisitor.js
+++ b/packages/markdown-html/src/ToHtmlStringVisitor.js
@@ -185,6 +185,8 @@ class ToHtmlStringVisitor {
const { delimiter, start, tight} = thing;
if(thing.type === 'ordered') {
parameters.result += `
`;
+ }else if(this.type === 'roman'){
+ parameters.result += ``;
}
else {
parameters.result += ``;
diff --git a/packages/markdown-it-template/lib/index.js b/packages/markdown-it-template/lib/index.js
index 6802864e..602e5652 100644
--- a/packages/markdown-it-template/lib/index.js
+++ b/packages/markdown-it-template/lib/index.js
@@ -84,6 +84,8 @@ function template_plugin(md) {
md.renderer.rules['block_ulist_close'] = template_block_render('ulist');
md.renderer.rules['block_olist_open'] = template_block_render('olist');
md.renderer.rules['block_olist_close'] = template_block_render('olist');
+ md.renderer.rules['block_rlist_open'] = template_block_render('rlist');
+ md.renderer.rules['block_rlist_close'] = template_block_render('rlist');
}
module.exports = template_plugin;
diff --git a/packages/markdown-it-template/lib/names.json b/packages/markdown-it-template/lib/names.json
index d0e68a0d..99231625 100644
--- a/packages/markdown-it-template/lib/names.json
+++ b/packages/markdown-it-template/lib/names.json
@@ -1,2 +1,2 @@
-{ "blocks": [ "clause", "ulist", "olist" ],
+{ "blocks": [ "clause", "ulist", "olist","rlist" ],
"inlines": [ "if", "optional", "with", "join" ] }
\ No newline at end of file
diff --git a/packages/markdown-template/lib/templaterules.js b/packages/markdown-template/lib/templaterules.js
index f08103a8..0c651401 100644
--- a/packages/markdown-template/lib/templaterules.js
+++ b/packages/markdown-template/lib/templaterules.js
@@ -254,6 +254,26 @@ var olistCloseRule = {
open: false,
close: true
};
+
+var rlistOpenRule = {
+ tag: "".concat(TemplateMarkModel.NAMESPACE, ".ListBlockDefinition"),
+ leaf: false,
+ open: true,
+ close: false,
+ enter: (node, token, callback) => {
+ node.name = getAttr(token.attrs, 'name', null);
+ node.type = 'roman';
+ node.tight = 'true';
+ node.start = 'i';
+ node.delimiter = 'period';
+ }
+};
+var rlistCloseRule = {
+ tag: "".concat(TemplateMarkModel.NAMESPACE, ".ListBlockDefinition"),
+ leaf: false,
+ open: false,
+ close: true
+};
var rules = {
inlines: {},
blocks: {}
@@ -276,4 +296,6 @@ rules.blocks.block_ulist_open = ulistOpenRule;
rules.blocks.block_ulist_close = ulistCloseRule;
rules.blocks.block_olist_open = olistOpenRule;
rules.blocks.block_olist_close = olistCloseRule;
+rules.blocks.block_rlist_open = rlistOpenRule;
+rules.blocks.block_rlist_close = rlistCloseRule;
module.exports = rules;
\ No newline at end of file
diff --git a/packages/markdown-template/src/fromtemplatemarkrules.js b/packages/markdown-template/src/fromtemplatemarkrules.js
index 768c006c..25c77650 100644
--- a/packages/markdown-template/src/fromtemplatemarkrules.js
+++ b/packages/markdown-template/src/fromtemplatemarkrules.js
@@ -81,7 +81,14 @@ rules.JoinDefinition = (visitor,thing,children,parameters,resultString,resultSeq
};
// Container blocks
rules.ListBlockDefinition = (visitor,thing,children,parameters,resultString,resultSeq) => {
- const listKind = thing.type === 'bullet' ? 'ulist' : 'olist';
+ let listKind;
+ if(this.type === 'bullete'){
+ listKind = 'ulist';
+ }else if(this.type === 'roman'){
+ listKind = 'rlist';
+ }else{
+ listKind = 'olist';
+ }
const prefix = CommonMarkUtils.mkPrefix(parameters,1);
const next1 = prefix;
const next2 = `{{#${listKind} ${thing.name}}}\n`;