Просмотр исходного кода

wip cannot store isEnabledMarp check

reiji-h 2 лет назад
Родитель
Сommit
d0cf76f374

+ 2 - 2
apps/app/src/client/services/renderer/renderer.tsx

@@ -65,9 +65,9 @@ export const generateViewOptions = (
     mermaid.remarkPlugin,
     xsvToTable.remarkPlugin,
     attachment.remarkPlugin,
-    slides.remarkPlugin,
     lsxGrowiDirective.remarkPlugin,
     refsGrowiDirective.remarkPlugin,
+    [slides.remarkPlugin, { isEnabledMarp: config.isEnabledMarp }],
   );
   if (config.isEnabledLinebreaks) {
     remarkPlugins.push(breaks);
@@ -259,7 +259,7 @@ export const generatePreviewOptions = (config: RendererConfig, pagePath: string)
     attachment.remarkPlugin,
     lsxGrowiDirective.remarkPlugin,
     refsGrowiDirective.remarkPlugin,
-    slides.remarkPlugin,
+    [slides.remarkPlugin, { isEnabledMarp: config.isEnabledMarp }],
   );
   if (config.isEnabledLinebreaks) {
     remarkPlugins.push(breaks);

+ 11 - 3
apps/app/src/services/renderer/remark-plugins/slides.ts

@@ -9,7 +9,7 @@ import { visit } from 'unist-util-visit';
 
 const SUPPORTED_ATTRIBUTES = ['children', 'marp'];
 
-const rewriteNode = (tree: Node, node: Node) => {
+const rewriteNode = (tree: Node, node: Node, isEnabledMarp: boolean) => {
   let slide = false;
   let marp = false;
 
@@ -26,6 +26,10 @@ const rewriteNode = (tree: Node, node: Node) => {
     }
   });
 
+  if (isEnabledMarp === false) {
+    marp = false;
+  }
+
   if (marp || slide) {
 
     const newNode: Node = {
@@ -52,11 +56,15 @@ const rewriteNode = (tree: Node, node: Node) => {
   }
 };
 
-export const remarkPlugin: Plugin = function() {
+type SlidePluginParams = {
+  isEnabledMarp: boolean,
+}
+
+export const remarkPlugin: Plugin<[SlidePluginParams]> = (options) => {
   return (tree) => {
     visit(tree, (node) => {
       if (node.type === 'yaml' && node.value != null) {
-        rewriteNode(tree, node);
+        rewriteNode(tree, node, options.isEnabledMarp);
       }
     });
   };