tagHandler - Handle separator, brk and strike tags + test

This commit is contained in:
2019-12-22 19:51:25 +05:30
parent 046f561671
commit 2730df919a
2 changed files with 60 additions and 0 deletions
+34
View File
@@ -207,3 +207,37 @@ test('should render pre.code tag without text', () => {
) as string).trim()
).toBe('```js\n\n```');
});
test('should render hr (line separator)', () => {
expect(
(render(
<>
<p>para 1</p>
<hr />
<p>para 2</p>
</>
) as string).trim()
).toBe('para 1\n\n---\n\npara 2');
});
test('should render break (br)', () => {
expect(
(render(
<p>
text 1
<br />
text 2
</p>
) as string).trim()
).toBe('text 1 \ntext 2');
});
test('should render strike (strike, s, del)', () => {
expect(
(render(
<p>
This <s>is</s> some <del>text</del>
</p>
) as string).trim()
).toBe('This ~~is~~ some ~~text~~');
});
+26
View File
@@ -1,5 +1,6 @@
import {
blockquote,
brk,
code,
emphasis,
heading,
@@ -9,6 +10,8 @@ import {
list,
listItem,
paragraph,
separator,
strike,
strong,
} from 'mdast-builder';
import {
@@ -34,6 +37,7 @@ export default function handleTag(
let childASTNode: MDASTNode | undefined;
let newParentASTNode: MDASTParent | undefined;
let isHandled = true;
switch (tagType) {
// START - Handle paragraph
@@ -73,6 +77,14 @@ export default function handleTag(
break;
// END - Handle strong and em
// START - Handle strike (tags - strike, del, s)
case 'strike':
case 'del':
case 's':
newParentASTNode = childASTNode = strike();
break;
// END - Handle strike (tags - strike, del, s)
// START - Handle lists - ul, ol, li
case 'ul':
newParentASTNode = childASTNode = list('unordered', []);
@@ -116,6 +128,20 @@ export default function handleTag(
}
// END - Handle blockquote
// START - Handle horizontal separator (hr)
case 'hr': {
childASTNode = separator;
break;
}
// END - Handle horizontal separator (hr)
// START - Handle line break (br)
case 'br': {
childASTNode = brk;
break;
}
// END - Handle line break (br)
// START - Handle code
case 'code': {
// tslint:disable-next-line: no-object-literal-type-assertion