tagHandler - Handle list and listitems

This commit is contained in:
2019-12-21 15:16:48 +05:30
parent 16a593184d
commit 13cf92ffff
2 changed files with 38 additions and 1 deletions
+24
View File
@@ -75,3 +75,27 @@ test('should render H1 with mixed strong and em text', () => {
) as string).trim()
).toBe('# This is **Hello** _World_');
});
test('should render plain unordered list with text', () => {
expect(
(render(
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
) as string).trim()
).toBe('- a\n- b\n- c');
});
test('should render plain ordered list with text', () => {
expect(
(render(
<ol>
<li>a</li>
<li>b</li>
<li>c</li>
</ol>
) as string).trim()
).toBe('1. a\n2. b\n3. c');
});
+14 -1
View File
@@ -1,4 +1,4 @@
import { emphasis, heading, strong } from 'mdast-builder';
import { emphasis, heading, strong, list, listItem } from 'mdast-builder';
// tslint:disable-next-line: no-implicit-dependencies
import { Node as MDASTNode, Parent as MDASTParent } from 'unist';
import { IReactElementSubset } from './helpers';
@@ -40,6 +40,19 @@ export default function handleTag(
break;
// END - Handle strong and em
// START - Handle lists - ul, ol, li
case 'ul':
newParentASTNode = childASTNode = list('unordered', []);
break;
case 'ol':
newParentASTNode = childASTNode = list('ordered', []);
break;
case 'li':
newParentASTNode = childASTNode = listItem([]);
break;
// END - Handle lists - ul, ol, li
default:
newParentASTNode = parentASTNode;
break;