From 68a659642373037b204cce91c11d7e6756d5b77a Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Thu, 14 Mar 2024 19:46:35 +0530 Subject: [PATCH 1/4] Added roman list feature Signed-off-by: Subhajit Ghosh --- packages/markdown-html/src/ToHtmlStringVisitor.js | 2 ++ 1 file changed, 2 insertions(+) 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 += `
        `; From a609f9d7f3001b102a14eac03dbc0211714fda0c Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 15 Mar 2024 15:09:00 +0530 Subject: [PATCH 2/4] Added roman list feature Signed-off-by: Subhajit Ghosh --- .../markdown-common/lib/tocommonmarkrules.js | 12 ++++++++++ packages/markdown-it-template/lib/index.js | 2 ++ packages/markdown-it-template/lib/names.json | 2 +- .../markdown-template/lib/templaterules.js | 22 +++++++++++++++++++ .../src/fromtemplatemarkrules.js | 9 +++++++- 5 files changed, 45 insertions(+), 2 deletions(-) diff --git a/packages/markdown-common/lib/tocommonmarkrules.js b/packages/markdown-common/lib/tocommonmarkrules.js index b56a2334..717a91bf 100644 --- a/packages/markdown-common/lib/tocommonmarkrules.js +++ b/packages/markdown-common/lib/tocommonmarkrules.js @@ -243,6 +243,17 @@ 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 tableOpenRule = { tag: `${CommonMarkModel.NAMESPACE}.Table`, leaf: false, @@ -361,6 +372,7 @@ 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.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-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..8a98d283 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`; From 710948e0b65bbc9aa32d2d0977b8ea6056d79746 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 15 Mar 2024 15:14:36 +0530 Subject: [PATCH 3/4] Added roman list feature Signed-off-by: Subhajit Ghosh --- packages/markdown-common/lib/tocommonmarkrules.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/markdown-common/lib/tocommonmarkrules.js b/packages/markdown-common/lib/tocommonmarkrules.js index 717a91bf..c9f8fac2 100644 --- a/packages/markdown-common/lib/tocommonmarkrules.js +++ b/packages/markdown-common/lib/tocommonmarkrules.js @@ -253,6 +253,12 @@ const romanListOpenRule = { 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`, @@ -372,6 +378,8 @@ 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; From 232d98ccbffda0a5375ec5f5cd922d8d359b2533 Mon Sep 17 00:00:00 2001 From: Subhajit Ghosh Date: Fri, 5 Apr 2024 10:23:05 +0530 Subject: [PATCH 4/4] Added a minor change Signed-off-by: Subhajit Ghosh --- packages/markdown-template/src/fromtemplatemarkrules.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/markdown-template/src/fromtemplatemarkrules.js b/packages/markdown-template/src/fromtemplatemarkrules.js index 8a98d283..25c77650 100644 --- a/packages/markdown-template/src/fromtemplatemarkrules.js +++ b/packages/markdown-template/src/fromtemplatemarkrules.js @@ -84,7 +84,7 @@ rules.ListBlockDefinition = (visitor,thing,children,parameters,resultString,resu let listKind; if(this.type === 'bullete'){ listKind = 'ulist'; - }else if(this.type == 'roman'){ + }else if(this.type === 'roman'){ listKind = 'rlist'; }else{ listKind = 'olist';