|
|
@@ -7,7 +7,7 @@ import type { Plugin } from 'unified';
|
|
|
import type { Node } from 'unist';
|
|
|
import { visit } from 'unist-util-visit';
|
|
|
|
|
|
-const SUPPORTED_ATTRIBUTES = ['hasMarpFlag', 'chidren'];
|
|
|
+const SUPPORTED_ATTRIBUTES = ['children', 'marp'];
|
|
|
|
|
|
const rewriteNode = (tree: Node, node: Node) => {
|
|
|
let slide = false;
|
|
|
@@ -26,29 +26,25 @@ const rewriteNode = (tree: Node, node: Node) => {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- const data = tree.data ?? (tree.data = {});
|
|
|
+ if (marp || slide) {
|
|
|
|
|
|
- if (marp) {
|
|
|
- // data.hName = 'slide';
|
|
|
- data.hProperties = {
|
|
|
- hasMarpFlag: true,
|
|
|
- children: toMarkdown(tree as Root, {
|
|
|
- extensions: [
|
|
|
- frontmatterToMarkdown(['yaml']),
|
|
|
- gfmToMarkdown(),
|
|
|
- // TODO: add new extension remark-growi-directive to markdown
|
|
|
- ],
|
|
|
- }),
|
|
|
+ const newNode: Node = {
|
|
|
+ type: 'root',
|
|
|
+ data: {},
|
|
|
+ position: tree.position,
|
|
|
+ children: tree.children,
|
|
|
};
|
|
|
- }
|
|
|
- else if (slide) {
|
|
|
- // data.hName = 'slide';
|
|
|
+
|
|
|
+ const data = newNode.data ?? (newNode.data = {});
|
|
|
+ tree.children = [newNode];
|
|
|
+ data.hName = 'slide';
|
|
|
data.hProperties = {
|
|
|
- hasMarpFlag: false,
|
|
|
+ marp: marp ? 'marp' : '',
|
|
|
children: toMarkdown(tree as Root, {
|
|
|
extensions: [
|
|
|
frontmatterToMarkdown(['yaml']),
|
|
|
gfmToMarkdown(),
|
|
|
+ // TODO: add new extension remark-growi-directive to markdown
|
|
|
],
|
|
|
}),
|
|
|
};
|
|
|
@@ -57,7 +53,6 @@ const rewriteNode = (tree: Node, node: Node) => {
|
|
|
|
|
|
export const remarkPlugin: Plugin = function() {
|
|
|
return (tree) => {
|
|
|
- console.log(tree);
|
|
|
visit(tree, (node) => {
|
|
|
if (node.type === 'yaml' && node.value != null) {
|
|
|
rewriteNode(tree, node);
|