From bce5336fccd83cb190ecf7543714000a26a3899d Mon Sep 17 00:00:00 2001 From: Ze Yu Date: Wed, 5 Feb 2020 02:00:00 +0800 Subject: [PATCH] Implement box markdown header attributes parsing --- docs/userGuide/syntax/boxes.mbdf | 12 ++++---- .../markbind/src/parsers/componentParser.js | 6 ++++ .../test_default/expected/index.html | 15 +++++----- test/unit/parsers/componentParser.test.js | 4 +++ test/unit/utils/componentParserData.js | 28 +++++++++++++++++++ 5 files changed, 51 insertions(+), 14 deletions(-) diff --git a/docs/userGuide/syntax/boxes.mbdf b/docs/userGuide/syntax/boxes.mbdf index d82c66033e..6b18935742 100644 --- a/docs/userGuide/syntax/boxes.mbdf +++ b/docs/userGuide/syntax/boxes.mbdf @@ -33,9 +33,9 @@ dismissible info - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. @@ -70,9 +70,9 @@ dismissible info - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. @@ -259,8 +259,8 @@ border-left-color | `String` | `null` | Overrides border-color for the left bord color | `String` | `null` | Color of the text. dismissible | `Boolean` | `false` | Adds a button to close the box to the top right corner. icon | `String` | `null` | Inline MarkDown text of the icon displayed on the left. -icon-size | `String` | `null` | Resizes the icon. Supports integer-scaling of the icon dimensions e.g. `2x`, `3x`, `4x`, etc. -header
heading
(deprecated)
| `String` | `null` | Plain text of the header on the top right corner. +icon-size | `String` | `null` | Resizes the icon. Supports integer-scaling of the icon dimensions e.g. `2x`, `3x`, `4x`, etc. +header
heading
(deprecated)
| `String` | `null` | Markdown text of the box header. type | `String` | `'none'` | Supports: `info`, `warning`, `success`, `important`, `wrong`, `tip`, `definition`, or empty for default. light | `Boolean` | `false` | Uses a light color scheme for the box. seamless | `Boolean` | `false` | Uses a seamless style for the box. If `light` is specified, this style will not be activated. diff --git a/src/lib/markbind/src/parsers/componentParser.js b/src/lib/markbind/src/parsers/componentParser.js index 3bbc235cc6..51227275ba 100644 --- a/src/lib/markbind/src/parsers/componentParser.js +++ b/src/lib/markbind/src/parsers/componentParser.js @@ -179,6 +179,12 @@ function _parseTabAttributes(element) { function _parseBoxAttributes(element) { _parseAttributeWithoutOverride(element, 'icon', true, '_icon'); + _parseAttributeWithoutOverride(element, 'header', false, '_header'); + + // TODO deprecate heading attribute for box + _parseAttributeWithoutOverride(element, 'heading', false, '_header'); + + // TODO warn when light and seamless attributes are both present } /* diff --git a/test/functional/test_site_templates/test_default/expected/index.html b/test/functional/test_site_templates/test_default/expected/index.html index b36efcd6e8..281cc77f97 100644 --- a/test/functional/test_site_templates/test_default/expected/index.html +++ b/test/functional/test_site_templates/test_default/expected/index.html @@ -155,16 +155,15 @@

Heading 2

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
- - tip + tip - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor - in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id + est laborum. - - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor - in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris + nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id + est laborum.

Heading 3

diff --git a/test/unit/parsers/componentParser.test.js b/test/unit/parsers/componentParser.test.js index 8ba8473357..a302918ecc 100644 --- a/test/unit/parsers/componentParser.test.js +++ b/test/unit/parsers/componentParser.test.js @@ -83,6 +83,10 @@ test('parseComponent parses tab & tab-group attributes and inserts into dom as s test('parseComponent parses box attributes and inserts into dom as slots correctly', () => { parseAndVerifyTemplate(testData.PARSE_BOX_ICON, testData.PARSE_BOX_ICON_EXPECTED); + parseAndVerifyTemplate(testData.PARSE_BOX_HEADER, + testData.PARSE_BOX_HEADER_EXPECTED); + parseAndVerifyTemplate(testData.PARSE_BOX_HEADING, + testData.PARSE_BOX_HEADING_EXPECTED); }); test('postParseComponent assigns the correct header id to panels', () => { diff --git a/test/unit/utils/componentParserData.js b/test/unit/utils/componentParserData.js index b17eb7912f..ea905b81d1 100644 --- a/test/unit/utils/componentParserData.js +++ b/test/unit/utils/componentParserData.js @@ -251,4 +251,32 @@ module.exports.PARSE_BOX_ICON_EXPECTED = `
`; +module.exports.PARSE_BOX_HEADER = ` + + Header attribute should be inserted as internal _header slot and deleted. + +`; + +module.exports.PARSE_BOX_HEADER_EXPECTED = ` + + Header attribute should be inserted as internal _header slot and deleted. + +`; + +// todo remove this test once 'heading' attribute is fully deprecated for boxes + +module.exports.PARSE_BOX_HEADING = ` + + Heading attribute should be inserted as internal _header slot and deleted. + +`; + +module.exports.PARSE_BOX_HEADING_EXPECTED = ` + + Heading attribute should be inserted as internal _header slot and deleted. + +`; + /* eslint-enable max-len */