Bläddra i källkod

Merge branch 'fix/110781-refactor-load-latest' of https://github.com/weseek/growi into fix/110781-refactor-load-latest

Yuken Tezuka 3 år sedan
förälder
incheckning
a417ddf5fd
81 ändrade filer med 136 tillägg och 145 borttagningar
  1. 1 1
      .github/workflows/ci-app.yml
  2. 0 0
      packages/app/_obsolete/src/client/legacy/crowi.js
  3. 2 2
      packages/app/docker/Dockerfile
  4. 3 2
      packages/app/package.json
  5. 2 5
      packages/app/src/components/Admin/PluginsExtension/PluginInstallerForm.tsx
  6. 1 4
      packages/app/src/components/BookmarkButtons.tsx
  7. 1 4
      packages/app/src/components/LikeButtons.tsx
  8. 0 5
      packages/app/src/components/Navbar/PageEditorModeManager.jsx
  9. 0 39
      packages/app/src/components/NotAvailableForGuest.jsx
  10. 31 0
      packages/app/src/components/NotAvailableForGuest.tsx
  11. 1 1
      packages/app/src/components/Page.tsx
  12. 14 15
      packages/app/src/components/Page/RenderTagLabels.tsx
  13. 1 1
      packages/app/src/components/PageComment/CommentEditor.tsx
  14. 1 1
      packages/app/src/components/PageEditor/DrawioCommunicationHelper.ts
  15. 1 1
      packages/app/src/components/ReactMarkdownComponents/DrawioViewerWithEditButton.tsx
  16. 1 1
      packages/app/src/components/Script/DrawioViewerScript.tsx
  17. 28 21
      packages/app/src/components/Sidebar/PageTree/Item.tsx
  18. 1 4
      packages/app/src/components/SubscribeButton.tsx
  19. 1 0
      packages/app/src/interfaces/plugin.ts
  20. 2 2
      packages/app/src/pages/_document.page.tsx
  21. 1 1
      packages/app/src/server/crowi/express-init.js
  22. 1 1
      packages/app/src/server/routes/apiv3/index.js
  23. 0 0
      packages/app/src/server/routes/apiv3/plugins.ts
  24. 3 3
      packages/app/src/services/renderer/renderer.tsx
  25. 4 1
      packages/app/test/cypress/integration/21-basic-features-for-guest/21-basic-features-for-guest--access-to-page.spec.ts
  26. 0 0
      packages/remark-drawio/.eslintignore
  27. 0 0
      packages/remark-drawio/.eslintrc.js
  28. 0 0
      packages/remark-drawio/.gitignore
  29. 1 1
      packages/remark-drawio/README.md
  30. 1 1
      packages/remark-drawio/package.json
  31. 0 0
      packages/remark-drawio/src/components/DrawioViewer.module.scss
  32. 0 0
      packages/remark-drawio/src/components/DrawioViewer.tsx
  33. 1 1
      packages/remark-drawio/src/index.ts
  34. 0 0
      packages/remark-drawio/src/interfaces/graph-viewer.ts
  35. 0 0
      packages/remark-drawio/src/services/renderer/remark-drawio.ts
  36. 0 0
      packages/remark-drawio/src/utils/embed.ts
  37. 0 0
      packages/remark-drawio/src/utils/global.ts
  38. 0 0
      packages/remark-drawio/tsconfig.base.json
  39. 0 0
      packages/remark-drawio/tsconfig.build.json
  40. 0 0
      packages/remark-drawio/tsconfig.json
  41. 0 0
      packages/remark-growi-directive/.eslintignore
  42. 0 0
      packages/remark-growi-directive/.eslintrc.cjs
  43. 0 0
      packages/remark-growi-directive/.gitignore
  44. 1 1
      packages/remark-growi-directive/package.json
  45. 0 0
      packages/remark-growi-directive/readme.md
  46. 6 0
      packages/remark-growi-directive/src/index.js
  47. 0 0
      packages/remark-growi-directive/src/mdast-util-growi-directive/complex-types.d.ts
  48. 0 0
      packages/remark-growi-directive/src/mdast-util-growi-directive/consts.js
  49. 0 0
      packages/remark-growi-directive/src/mdast-util-growi-directive/index.js
  50. 0 0
      packages/remark-growi-directive/src/mdast-util-growi-directive/readme.md
  51. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/index.js
  52. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/directive-leaf.js
  53. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/directive-text.js
  54. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/factory-attributes.js
  55. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/factory-label.js
  56. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/factory-name.js
  57. 1 1
      packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/html.js
  58. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/syntax.js
  59. 0 0
      packages/remark-growi-directive/src/micromark-extension-growi-directive/readme.md
  60. 0 0
      packages/remark-growi-directive/src/micromark-factory-attributes-devider/index.d.ts
  61. 0 0
      packages/remark-growi-directive/src/micromark-factory-attributes-devider/index.js
  62. 0 0
      packages/remark-growi-directive/src/micromark-factory-attributes-devider/readme.md
  63. 3 3
      packages/remark-growi-directive/src/remark-growi-directive.js
  64. 0 0
      packages/remark-growi-directive/test/fixtures/leaf/input.md
  65. 0 0
      packages/remark-growi-directive/test/fixtures/leaf/output.md
  66. 0 0
      packages/remark-growi-directive/test/fixtures/leaf/tree.json
  67. 0 0
      packages/remark-growi-directive/test/fixtures/text/input.md
  68. 0 0
      packages/remark-growi-directive/test/fixtures/text/output.md
  69. 0 0
      packages/remark-growi-directive/test/fixtures/text/tree.json
  70. 3 3
      packages/remark-growi-directive/test/mdast-util-growi-directive.test.js
  71. 4 4
      packages/remark-growi-directive/test/micromark-extension-growi-directive.test.js
  72. 4 4
      packages/remark-growi-directive/test/remark-growi-directive.test.js
  73. 0 0
      packages/remark-growi-directive/tsconfig.base.json
  74. 0 0
      packages/remark-growi-directive/tsconfig.build.json
  75. 0 0
      packages/remark-growi-directive/tsconfig.json
  76. 0 6
      packages/remark-growi-plugin/src/index.js
  77. 1 1
      packages/remark-lsx/package.json
  78. 1 1
      packages/remark-lsx/src/server/routes/index.js
  79. 2 2
      packages/remark-lsx/src/services/renderer/lsx.ts
  80. 1 1
      packages/remark-lsx/src/stores/lsx.tsx
  81. 5 0
      yarn.lock

+ 1 - 1
.github/workflows/ci-app.yml

@@ -126,7 +126,7 @@ jobs:
           name: Coverage Report
           name: Coverage Report
           path: |
           path: |
             packages/app/coverage
             packages/app/coverage
-            packages/remark-growi-plugin/coverage
+            packages/remark-growi-directive/coverage
 
 
       - name: Slack Notification
       - name: Slack Notification
         uses: weseek/ghaction-slack-notification@master
         uses: weseek/ghaction-slack-notification@master

+ 0 - 0
packages/app/src/client/legacy/crowi.js → packages/app/_obsolete/src/client/legacy/crowi.js


+ 2 - 2
packages/app/docker/Dockerfile

@@ -107,8 +107,8 @@ COPY packages/core packages/core
 COPY packages/codemirror-textlint packages/codemirror-textlint
 COPY packages/codemirror-textlint packages/codemirror-textlint
 COPY packages/slack packages/slack
 COPY packages/slack packages/slack
 COPY packages/ui packages/ui
 COPY packages/ui packages/ui
-COPY packages/remark-drawio-plugin packages/remark-drawio-plugin
-COPY packages/remark-growi-plugin packages/remark-growi-plugin
+COPY packages/remark-drawio packages/remark-drawio
+COPY packages/remark-growi-directive packages/remark-growi-directive
 COPY packages/remark-lsx packages/remark-lsx
 COPY packages/remark-lsx packages/remark-lsx
 COPY packages/hackmd packages/hackmd
 COPY packages/hackmd packages/hackmd
 COPY packages/preset-themes packages/preset-themes
 COPY packages/preset-themes packages/preset-themes

+ 3 - 2
packages/app/package.json

@@ -68,8 +68,8 @@
     "@growi/core": "^6.0.0-RC.9",
     "@growi/core": "^6.0.0-RC.9",
     "@growi/hackmd": "^6.0.0-RC.9",
     "@growi/hackmd": "^6.0.0-RC.9",
     "@growi/preset-themes": "^6.0.0-RC.9",
     "@growi/preset-themes": "^6.0.0-RC.9",
-    "@growi/remark-drawio-plugin": "^6.0.0-RC.9",
-    "@growi/remark-growi-plugin": "^6.0.0-RC.9",
+    "@growi/remark-drawio": "^6.0.0-RC.9",
+    "@growi/remark-growi-directive": "^6.0.0-RC.9",
     "@growi/remark-lsx": "^6.0.0-RC.9",
     "@growi/remark-lsx": "^6.0.0-RC.9",
     "@growi/slack": "^6.0.0-RC.9",
     "@growi/slack": "^6.0.0-RC.9",
     "@promster/express": "^7.0.2",
     "@promster/express": "^7.0.2",
@@ -158,6 +158,7 @@
     "react-bootstrap-typeahead": "^5.2.2",
     "react-bootstrap-typeahead": "^5.2.2",
     "react-card-flip": "^1.0.10",
     "react-card-flip": "^1.0.10",
     "react-datepicker": "^4.7.0",
     "react-datepicker": "^4.7.0",
+    "react-disable": "^0.1.1",
     "react-dnd": "^14.0.5",
     "react-dnd": "^14.0.5",
     "react-dnd-html5-backend": "^14.1.0",
     "react-dnd-html5-backend": "^14.1.0",
     "react-dom": "^18.2.0",
     "react-dom": "^18.2.0",

+ 2 - 5
packages/app/src/components/Admin/PluginsExtension/PluginInstallerForm.tsx

@@ -1,9 +1,7 @@
 import React, { useCallback } from 'react';
 import React, { useCallback } from 'react';
 
 
-import { useTranslation } from 'react-i18next';
-
-import { toastSuccess, toastError } from '~/client/util/apiNotification';
 import { apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Post } from '~/client/util/apiv3-client';
+import { toastError, toastSuccess } from '~/client/util/toastr';
 
 
 import AdminInstallButtonRow from '../Common/AdminUpdateButtonRow';
 import AdminInstallButtonRow from '../Common/AdminUpdateButtonRow';
 // TODO: error notification (toast, loggerFactory)
 // TODO: error notification (toast, loggerFactory)
@@ -30,12 +28,11 @@ export const PluginInstallerForm = (): JSX.Element => {
     };
     };
 
 
     try {
     try {
-      await apiv3Post('/plugins-extension', { pluginInstallerForm });
+      await apiv3Post('/plugins', { pluginInstallerForm });
       toastSuccess('Plugin Install Successed!');
       toastSuccess('Plugin Install Successed!');
     }
     }
     catch (err) {
     catch (err) {
       toastError(err);
       toastError(err);
-      // logger.error(err);
     }
     }
   }, []);
   }, []);
 
 

+ 1 - 4
packages/app/src/components/BookmarkButtons.tsx

@@ -41,15 +41,12 @@ const BookmarkButtons: FC<Props> = (props: Props) => {
   };
   };
 
 
   const getTooltipMessage = useCallback(() => {
   const getTooltipMessage = useCallback(() => {
-    if (isGuestUser) {
-      return 'Not available for guest';
-    }
 
 
     if (isBookmarked) {
     if (isBookmarked) {
       return 'tooltip.cancel_bookmark';
       return 'tooltip.cancel_bookmark';
     }
     }
     return 'tooltip.bookmark';
     return 'tooltip.bookmark';
-  }, [isGuestUser, isBookmarked]);
+  }, [isBookmarked]);
 
 
   return (
   return (
     <div className={`btn-group btn-group-bookmark ${styles['btn-group-bookmark']}`} role="group" aria-label="Bookmark buttons">
     <div className={`btn-group btn-group-bookmark ${styles['btn-group-bookmark']}`} role="group" aria-label="Bookmark buttons">

+ 1 - 4
packages/app/src/components/LikeButtons.tsx

@@ -34,15 +34,12 @@ const LikeButtons: FC<LikeButtonsProps> = (props: LikeButtonsProps) => {
   } = props;
   } = props;
 
 
   const getTooltipMessage = useCallback(() => {
   const getTooltipMessage = useCallback(() => {
-    if (isGuestUser) {
-      return 'Not available for guest';
-    }
 
 
     if (isLiked) {
     if (isLiked) {
       return 'tooltip.cancel_like';
       return 'tooltip.cancel_like';
     }
     }
     return 'tooltip.like';
     return 'tooltip.like';
-  }, [isGuestUser, isLiked]);
+  }, [isLiked]);
 
 
   return (
   return (
     <div className={`btn-group btn-group-like ${styles['btn-group-like']}`} role="group" aria-label="Like buttons">
     <div className={`btn-group btn-group-like ${styles['btn-group-like']}`} role="group" aria-label="Like buttons">

+ 0 - 5
packages/app/src/components/Navbar/PageEditorModeManager.jsx

@@ -110,11 +110,6 @@ function PageEditorModeManager(props) {
           </>
           </>
         )}
         )}
       </div>
       </div>
-      {isBtnDisabled && (
-        <UncontrolledTooltip placement="top" target="grw-page-editor-mode-manager" fade={false}>
-          {t('Not available for guest')}
-        </UncontrolledTooltip>
-      )}
     </>
     </>
   );
   );
 
 

+ 0 - 39
packages/app/src/components/NotAvailableForGuest.jsx

@@ -1,39 +0,0 @@
-import React from 'react';
-
-import PropTypes from 'prop-types';
-import { UncontrolledTooltip } from 'reactstrap';
-
-import { useIsGuestUser } from '~/stores/context';
-
-const NotAvailableForGuest = (props) => {
-  const { children } = props;
-
-  const { data: isGuestUser } = useIsGuestUser();
-
-  if (!isGuestUser) {
-    return props.children;
-  }
-
-  const id = children.props.id || `grw-not-available-for-guest-${Math.random().toString(32).substring(2)}`;
-
-  // clone and add className
-  const clonedChild = React.cloneElement(children, {
-    id,
-    className: `${children.props.className} grw-not-available-for-guest`,
-    onClick: () => { /* do nothing */ },
-  });
-
-  return (
-    <>
-      { clonedChild }
-      <UncontrolledTooltip placement="top" target={id}>Not available for guest</UncontrolledTooltip>
-    </>
-  );
-
-};
-
-NotAvailableForGuest.propTypes = {
-  children: PropTypes.node.isRequired,
-};
-
-export default NotAvailableForGuest;

+ 31 - 0
packages/app/src/components/NotAvailableForGuest.tsx

@@ -0,0 +1,31 @@
+import React from 'react';
+
+import { useTranslation } from 'next-i18next';
+import { Disable } from 'react-disable';
+import { UncontrolledTooltip } from 'reactstrap';
+
+import { useIsGuestUser } from '~/stores/context';
+
+type NotAvailableForGuestProps = {
+  children: JSX.Element
+}
+
+export const NotAvailableForGuest = ({ children }: NotAvailableForGuestProps): JSX.Element => {
+  const { t } = useTranslation();
+
+  const { data: isGuestUser } = useIsGuestUser();
+  const isDisabled = !!isGuestUser;
+
+  const id = `grw-not-available-for-guest-${Math.random().toString(32).substring(2)}`;
+
+  return (
+    <>
+      <div id={id}>
+        <Disable disabled={isDisabled}>
+          { children }
+        </Disable>
+      </div>
+      <UncontrolledTooltip placement="top" target={id}>{t('Not available for guest')}</UncontrolledTooltip>
+    </>
+  );
+};

+ 1 - 1
packages/app/src/components/Page.tsx

@@ -5,7 +5,7 @@ import React, {
 
 
 import EventEmitter from 'events';
 import EventEmitter from 'events';
 
 
-import { DrawioEditByViewerProps } from '@growi/remark-drawio-plugin';
+import { DrawioEditByViewerProps } from '@growi/remark-drawio';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 import dynamic from 'next/dynamic';
 import dynamic from 'next/dynamic';
 import { HtmlElementNode } from 'rehype-toc';
 import { HtmlElementNode } from 'rehype-toc';

+ 14 - 15
packages/app/src/components/Page/RenderTagLabels.tsx

@@ -1,7 +1,8 @@
 import React from 'react';
 import React from 'react';
 
 
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
-import { UncontrolledTooltip } from 'reactstrap';
+
+import { NotAvailableForGuest } from '../NotAvailableForGuest';
 
 
 type RenderTagLabelsProps = {
 type RenderTagLabelsProps = {
   tags: string[],
   tags: string[],
@@ -31,21 +32,19 @@ const RenderTagLabels = React.memo((props: RenderTagLabelsProps) => {
           </a>
           </a>
         );
         );
       })}
       })}
-      <div id="edit-tags-btn-wrapper-for-tooltip">
-        <a
-          className={`btn btn-link btn-edit-tags text-muted p-0 d-flex align-items-center ${isTagsEmpty && 'no-tags'} ${isGuestUser && 'disabled'}`}
-          onClick={openEditorHandler}
-        >
-          { isTagsEmpty && <>{ t('Add tags for this page') }</>}
-          <i className={`icon-plus ${isTagsEmpty && 'ml-1'}`}/>
-        </a>
-      </div>
-      {isGuestUser && (
-        <UncontrolledTooltip placement="top" target="edit-tags-btn-wrapper-for-tooltip" fade={false}>
-          {t('Not available for guest')}
-        </UncontrolledTooltip>
-      )}
+      <NotAvailableForGuest>
+        <div id="edit-tags-btn-wrapper-for-tooltip">
+          <a
+            className={`btn btn-link btn-edit-tags text-muted p-0 d-flex align-items-center ${isTagsEmpty && 'no-tags'} ${isGuestUser && 'disabled'}`}
+            onClick={openEditorHandler}
+          >
+            { isTagsEmpty && <>{ t('Add tags for this page') }</>}
+            <i className={`icon-plus ${isTagsEmpty && 'ml-1'}`}/>
+          </a>
+        </div>
+      </NotAvailableForGuest>
     </>
     </>
+
   );
   );
 
 
 });
 });

+ 1 - 1
packages/app/src/components/PageComment/CommentEditor.tsx

@@ -20,7 +20,7 @@ import { useSWRxSlackChannels, useIsSlackEnabled } from '~/stores/editor';
 import { useCurrentPagePath } from '~/stores/page';
 import { useCurrentPagePath } from '~/stores/page';
 
 
 import { CustomNavTab } from '../CustomNavigation/CustomNav';
 import { CustomNavTab } from '../CustomNavigation/CustomNav';
-import NotAvailableForGuest from '../NotAvailableForGuest';
+import { NotAvailableForGuest } from '../NotAvailableForGuest';
 import Editor from '../PageEditor/Editor';
 import Editor from '../PageEditor/Editor';
 
 
 
 

+ 1 - 1
packages/app/src/components/PageEditor/DrawioCommunicationHelper.ts

@@ -1,4 +1,4 @@
-import { extractCodeFromMxfile } from '@growi/remark-drawio-plugin';
+import { extractCodeFromMxfile } from '@growi/remark-drawio';
 
 
 import loggerFactory from '~/utils/logger';
 import loggerFactory from '~/utils/logger';
 
 

+ 1 - 1
packages/app/src/components/ReactMarkdownComponents/DrawioViewerWithEditButton.tsx

@@ -5,7 +5,7 @@ import EventEmitter from 'events';
 import {
 import {
   DrawioEditByViewerProps,
   DrawioEditByViewerProps,
   DrawioViewer, DrawioViewerProps, extractCodeFromMxfile,
   DrawioViewer, DrawioViewerProps, extractCodeFromMxfile,
-} from '@growi/remark-drawio-plugin';
+} from '@growi/remark-drawio';
 import { useTranslation } from 'next-i18next';
 import { useTranslation } from 'next-i18next';
 
 
 import { useIsGuestUser, useIsSharedUser, useShareLinkId } from '~/stores/context';
 import { useIsGuestUser, useIsSharedUser, useShareLinkId } from '~/stores/context';

+ 1 - 1
packages/app/src/components/Script/DrawioViewerScript.tsx

@@ -1,6 +1,6 @@
 import { useCallback } from 'react';
 import { useCallback } from 'react';
 
 
-import type { IGraphViewerGlobal } from '@growi/remark-drawio-plugin';
+import type { IGraphViewerGlobal } from '@growi/remark-drawio';
 import Script from 'next/script';
 import Script from 'next/script';
 
 
 declare global {
 declare global {

+ 28 - 21
packages/app/src/components/Sidebar/PageTree/Item.tsx

@@ -14,6 +14,7 @@ import { bookmark, unbookmark, resumeRenameOperation } from '~/client/services/p
 import { toastWarning, toastError, toastSuccess } from '~/client/util/apiNotification';
 import { toastWarning, toastError, toastSuccess } from '~/client/util/apiNotification';
 import { apiv3Put, apiv3Post } from '~/client/util/apiv3-client';
 import { apiv3Put, apiv3Post } from '~/client/util/apiv3-client';
 import TriangleIcon from '~/components/Icons/TriangleIcon';
 import TriangleIcon from '~/components/Icons/TriangleIcon';
+import { NotAvailableForGuest } from '~/components/NotAvailableForGuest';
 import {
 import {
   IPageHasId, IPageInfoAll, IPageToDeleteWithMeta,
   IPageHasId, IPageInfoAll, IPageToDeleteWithMeta,
 } from '~/interfaces/page';
 } from '~/interfaces/page';
@@ -481,34 +482,40 @@ const Item: FC<ItemProps> = (props: ItemProps) => {
             <CountBadge count={descendantCount} />
             <CountBadge count={descendantCount} />
           </div>
           </div>
         )}
         )}
-        <div className="grw-pagetree-control d-flex">
-          <PageItemControl
-            pageId={page._id}
-            isEnableActions={isEnableActions}
-            onClickBookmarkMenuItem={bookmarkMenuItemClickHandler}
-            onClickDuplicateMenuItem={duplicateMenuItemClickHandler}
-            onClickRenameMenuItem={renameMenuItemClickHandler}
-            onClickDeleteMenuItem={deleteMenuItemClickHandler}
-            onClickPathRecoveryMenuItem={pathRecoveryMenuItemClickHandler}
-            isInstantRename
-            // Todo: It is wanted to find a better way to pass operationProcessData to PageItemControl
-            operationProcessData={page.processData}
-          >
-            {/* pass the color property to reactstrap dropdownToggle props. https://6-4-0--reactstrap.netlify.app/components/dropdowns/  */}
-            <DropdownToggle color="transparent" className="border-0 rounded btn-page-item-control p-0 grw-visible-on-hover mr-1">
-              <i className="icon-options fa fa-rotate-90 p-1"></i>
-            </DropdownToggle>
-          </PageItemControl>
-          {!pagePathUtils.isUsersTopPage(page.path ?? '') && (
+        <NotAvailableForGuest>
+          <div className="grw-pagetree-control d-flex">
+            <PageItemControl
+              pageId={page._id}
+              isEnableActions={isEnableActions}
+              onClickBookmarkMenuItem={bookmarkMenuItemClickHandler}
+              onClickDuplicateMenuItem={duplicateMenuItemClickHandler}
+              onClickRenameMenuItem={renameMenuItemClickHandler}
+              onClickDeleteMenuItem={deleteMenuItemClickHandler}
+              onClickPathRecoveryMenuItem={pathRecoveryMenuItemClickHandler}
+              isInstantRename
+              // Todo: It is wanted to find a better way to pass operationProcessData to PageItemControl
+              operationProcessData={page.processData}
+            >
+              {/* pass the color property to reactstrap dropdownToggle props. https://6-4-0--reactstrap.netlify.app/components/dropdowns/  */}
+              <DropdownToggle color="transparent" className="border-0 rounded btn-page-item-control p-0 grw-visible-on-hover mr-1">
+                <i id='option-button-in-page-tree' className="icon-options fa fa-rotate-90 p-1"></i>
+              </DropdownToggle>
+            </PageItemControl>
+          </div>
+        </NotAvailableForGuest>
+
+        {!pagePathUtils.isUsersTopPage(page.path ?? '') && (
+          <NotAvailableForGuest>
             <button
             <button
+              id='page-create-button-in-page-tree'
               type="button"
               type="button"
               className="border-0 rounded btn btn-page-item-control p-0 grw-visible-on-hover"
               className="border-0 rounded btn btn-page-item-control p-0 grw-visible-on-hover"
               onClick={onClickPlusButton}
               onClick={onClickPlusButton}
             >
             >
               <i className="icon-plus d-block p-0" />
               <i className="icon-plus d-block p-0" />
             </button>
             </button>
-          )}
-        </div>
+          </NotAvailableForGuest>
+        )}
       </li>
       </li>
 
 
       {isEnableActions && isNewPageInputShown && (
       {isEnableActions && isNewPageInputShown && (

+ 1 - 4
packages/app/src/components/SubscribeButton.tsx

@@ -20,15 +20,12 @@ const SubscribeButton: FC<Props> = (props: Props) => {
   const isSubscribing = status === SubscriptionStatusType.SUBSCRIBE;
   const isSubscribing = status === SubscriptionStatusType.SUBSCRIBE;
 
 
   const getTooltipMessage = useCallback(() => {
   const getTooltipMessage = useCallback(() => {
-    if (isGuestUser) {
-      return 'Not available for guest';
-    }
 
 
     if (isSubscribing) {
     if (isSubscribing) {
       return 'tooltip.stop_notification';
       return 'tooltip.stop_notification';
     }
     }
     return 'tooltip.receive_notifications';
     return 'tooltip.receive_notifications';
-  }, [isGuestUser, isSubscribing]);
+  }, [isSubscribing]);
 
 
   return (
   return (
     <>
     <>

+ 1 - 0
packages/app/src/interfaces/plugin.ts

@@ -1,6 +1,7 @@
 export const GrowiPluginResourceType = {
 export const GrowiPluginResourceType = {
   Template: 'template',
   Template: 'template',
   Style: 'style',
   Style: 'style',
+  Theme: 'theme',
   Script: 'script',
   Script: 'script',
 } as const;
 } as const;
 export type GrowiPluginResourceType = typeof GrowiPluginResourceType[keyof typeof GrowiPluginResourceType];
 export type GrowiPluginResourceType = typeof GrowiPluginResourceType[keyof typeof GrowiPluginResourceType];

+ 2 - 2
packages/app/src/pages/_document.page.tsx

@@ -58,14 +58,14 @@ const HeadersForGrowiPlugin = (props: HeadersForGrowiPluginProps): JSX.Element =
           elements.push(<>
           elements.push(<>
             {/* eslint-disable-next-line @next/next/no-sync-scripts */ }
             {/* eslint-disable-next-line @next/next/no-sync-scripts */ }
             <script type="module" key={`script_${growiPlugin.installedPath}`}
             <script type="module" key={`script_${growiPlugin.installedPath}`}
-              src={`/plugins/${growiPlugin.installedPath}/dist/${manifest['client-entry.tsx'].file}`} />
+              src={`/static/plugins/${growiPlugin.installedPath}/dist/${manifest['client-entry.tsx'].file}`} />
           </>);
           </>);
         }
         }
         // add link
         // add link
         if (types.includes(GrowiPluginResourceType.Script) || types.includes(GrowiPluginResourceType.Style)) {
         if (types.includes(GrowiPluginResourceType.Script) || types.includes(GrowiPluginResourceType.Style)) {
           elements.push(<>
           elements.push(<>
             <link rel="stylesheet" key={`link_${growiPlugin.installedPath}`}
             <link rel="stylesheet" key={`link_${growiPlugin.installedPath}`}
-              href={`/plugins/${growiPlugin.installedPath}/dist/${manifest['client-entry.tsx'].css}`} />
+              href={`/static/plugins/${growiPlugin.installedPath}/dist/${manifest['client-entry.tsx'].css}`} />
           </>);
           </>);
         }
         }
 
 

+ 1 - 1
packages/app/src/server/crowi/express-init.js

@@ -120,7 +120,7 @@ module.exports = function(crowi, app) {
   app.use('/static/preset-themes', express.static(
   app.use('/static/preset-themes', express.static(
     resolveFromRoot(`../../node_modules/@growi/preset-themes/${path.dirname(presetThemesManifestPath)}`),
     resolveFromRoot(`../../node_modules/@growi/preset-themes/${path.dirname(presetThemesManifestPath)}`),
   ));
   ));
-  app.use('/plugins', express.static(path.resolve(__dirname, '../../../tmp/plugins')));
+  app.use('/static/plugins', express.static(path.resolve(__dirname, '../../../tmp/plugins')));
 
 
   app.engine('html', swig.renderFile);
   app.engine('html', swig.renderFile);
   // app.set('view cache', false);  // Default: true in production, otherwise undefined. -- 2017.07.04 Yuki Takei
   // app.set('view cache', false);  // Default: true in production, otherwise undefined. -- 2017.07.04 Yuki Takei

+ 1 - 1
packages/app/src/server/routes/apiv3/index.js

@@ -104,7 +104,7 @@ module.exports = (crowi, app) => {
     userActivation.validateCompleteRegistration,
     userActivation.validateCompleteRegistration,
     userActivation.completeRegistrationAction(crowi));
     userActivation.completeRegistrationAction(crowi));
 
 
-  router.use('/plugins-extension', require('./plugins-extension')(crowi));
+  router.use('/plugins', require('./plugins')(crowi));
 
 
   router.use('/user-ui-settings', require('./user-ui-settings')(crowi));
   router.use('/user-ui-settings', require('./user-ui-settings')(crowi));
 
 

+ 0 - 0
packages/app/src/server/routes/apiv3/plugins-extension.ts → packages/app/src/server/routes/apiv3/plugins.ts


+ 3 - 3
packages/app/src/services/renderer/renderer.tsx

@@ -2,8 +2,8 @@
 import { ComponentType } from 'react';
 import { ComponentType } from 'react';
 
 
 import { isClient } from '@growi/core';
 import { isClient } from '@growi/core';
-import * as drawioPlugin from '@growi/remark-drawio-plugin';
-import growiPlugin from '@growi/remark-growi-plugin';
+import * as drawioPlugin from '@growi/remark-drawio';
+import growiDirective from '@growi/remark-growi-directive';
 import { Lsx, LsxImmutable } from '@growi/remark-lsx/components';
 import { Lsx, LsxImmutable } from '@growi/remark-lsx/components';
 import * as lsxGrowiPlugin from '@growi/remark-lsx/services/renderer';
 import * as lsxGrowiPlugin from '@growi/remark-lsx/services/renderer';
 import { Schema as SanitizeOption } from 'hast-util-sanitize';
 import { Schema as SanitizeOption } from 'hast-util-sanitize';
@@ -296,7 +296,7 @@ const generateCommonOptions = (pagePath: string|undefined, config: RendererConfi
       gfm,
       gfm,
       emoji,
       emoji,
       pukiwikiLikeLinker,
       pukiwikiLikeLinker,
-      growiPlugin,
+      growiDirective,
     ],
     ],
     rehypePlugins: [
     rehypePlugins: [
       [relativeLinksByPukiwikiLikeLinker, { pagePath }],
       [relativeLinksByPukiwikiLikeLinker, { pagePath }],

+ 4 - 1
packages/app/test/cypress/integration/21-basic-features-for-guest/21-basic-features-for-guest--access-to-page.spec.ts

@@ -29,7 +29,10 @@ context('Access to page by guest', () => {
     cy.collapseSidebar(true, true);
     cy.collapseSidebar(true, true);
 
 
     cy.get('.math').should('be.visible');
     cy.get('.math').should('be.visible');
-    cy.screenshot(`${ssPrefix}-sandbox-math`);
+
+    cy.screenshot(`${ssPrefix}-sandbox-math`, {
+      blackout: ['.revision-toc', '[data-hide-in-vrt=true]']
+    });
   });
   });
 
 
   it('/Sandbox with edit is successfully loaded', () => {
   it('/Sandbox with edit is successfully loaded', () => {

+ 0 - 0
packages/remark-drawio-plugin/.eslintignore → packages/remark-drawio/.eslintignore


+ 0 - 0
packages/remark-drawio-plugin/.eslintrc.js → packages/remark-drawio/.eslintrc.js


+ 0 - 0
packages/remark-drawio-plugin/.gitignore → packages/remark-drawio/.gitignore


+ 1 - 1
packages/remark-drawio-plugin/README.md → packages/remark-drawio/README.md

@@ -1,4 +1,4 @@
-# remark-drawio-plugin
+# remark-drawio
 
 
 [GROWI][growi] remark plugin to draw diagrams with [draw.io (diagrams.net)](https://www.diagrams.net/)
 [GROWI][growi] remark plugin to draw diagrams with [draw.io (diagrams.net)](https://www.diagrams.net/)
 
 

+ 1 - 1
packages/remark-drawio-plugin/package.json → packages/remark-drawio/package.json

@@ -1,5 +1,5 @@
 {
 {
-  "name": "@growi/remark-drawio-plugin",
+  "name": "@growi/remark-drawio",
   "version": "6.0.0-RC.9",
   "version": "6.0.0-RC.9",
   "description": "remark plugin to draw diagrams with draw.io (diagrams.net)",
   "description": "remark plugin to draw diagrams with draw.io (diagrams.net)",
   "license": "MIT",
   "license": "MIT",

+ 0 - 0
packages/remark-drawio-plugin/src/components/DrawioViewer.module.scss → packages/remark-drawio/src/components/DrawioViewer.module.scss


+ 0 - 0
packages/remark-drawio-plugin/src/components/DrawioViewer.tsx → packages/remark-drawio/src/components/DrawioViewer.tsx


+ 1 - 1
packages/remark-drawio-plugin/src/index.ts → packages/remark-drawio/src/index.ts

@@ -1,5 +1,5 @@
 export * from './interfaces/graph-viewer';
 export * from './interfaces/graph-viewer';
 export * from './components/DrawioViewer';
 export * from './components/DrawioViewer';
-export * from './services/renderer/remark-drawio-plugin';
+export * from './services/renderer/remark-drawio';
 export * from './utils/embed';
 export * from './utils/embed';
 export * from './utils/global';
 export * from './utils/global';

+ 0 - 0
packages/remark-drawio-plugin/src/interfaces/graph-viewer.ts → packages/remark-drawio/src/interfaces/graph-viewer.ts


+ 0 - 0
packages/remark-drawio-plugin/src/services/renderer/remark-drawio-plugin.ts → packages/remark-drawio/src/services/renderer/remark-drawio.ts


+ 0 - 0
packages/remark-drawio-plugin/src/utils/embed.ts → packages/remark-drawio/src/utils/embed.ts


+ 0 - 0
packages/remark-drawio-plugin/src/utils/global.ts → packages/remark-drawio/src/utils/global.ts


+ 0 - 0
packages/remark-drawio-plugin/tsconfig.base.json → packages/remark-drawio/tsconfig.base.json


+ 0 - 0
packages/remark-drawio-plugin/tsconfig.build.json → packages/remark-drawio/tsconfig.build.json


+ 0 - 0
packages/remark-drawio-plugin/tsconfig.json → packages/remark-drawio/tsconfig.json


+ 0 - 0
packages/remark-growi-plugin/.eslintignore → packages/remark-growi-directive/.eslintignore


+ 0 - 0
packages/remark-growi-plugin/.eslintrc.cjs → packages/remark-growi-directive/.eslintrc.cjs


+ 0 - 0
packages/remark-growi-plugin/.gitignore → packages/remark-growi-directive/.gitignore


+ 1 - 1
packages/remark-growi-plugin/package.json → packages/remark-growi-directive/package.json

@@ -1,5 +1,5 @@
 {
 {
-  "name": "@growi/remark-growi-plugin",
+  "name": "@growi/remark-growi-directive",
   "version": "6.0.0-RC.9",
   "version": "6.0.0-RC.9",
   "description": "remark plugin to support GROWI plugin (forked from remark-directive@2.0.1)",
   "description": "remark plugin to support GROWI plugin (forked from remark-directive@2.0.1)",
   "license": "MIT",
   "license": "MIT",

+ 0 - 0
packages/remark-growi-plugin/readme.md → packages/remark-growi-directive/readme.md


+ 6 - 0
packages/remark-growi-directive/src/index.js

@@ -0,0 +1,6 @@
+import { DirectiveType } from './mdast-util-growi-directive/consts.js';
+import { remarkGrowiDirectivePlugin } from './remark-growi-directive.js';
+
+export { DirectiveType as remarkGrowiDirectivePluginType };
+
+export default remarkGrowiDirectivePlugin;

+ 0 - 0
packages/remark-growi-plugin/src/mdast-util-growi-plugin/complex-types.d.ts → packages/remark-growi-directive/src/mdast-util-growi-directive/complex-types.d.ts


+ 0 - 0
packages/remark-growi-plugin/src/mdast-util-growi-plugin/consts.js → packages/remark-growi-directive/src/mdast-util-growi-directive/consts.js


+ 0 - 0
packages/remark-growi-plugin/src/mdast-util-growi-plugin/index.js → packages/remark-growi-directive/src/mdast-util-growi-directive/index.js


+ 0 - 0
packages/remark-growi-plugin/src/mdast-util-growi-plugin/readme.md → packages/remark-growi-directive/src/mdast-util-growi-directive/readme.md


+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/index.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/index.js


+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/lib/directive-leaf.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/directive-leaf.js


+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/lib/directive-text.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/directive-text.js


+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/lib/factory-attributes.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/factory-attributes.js


+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/lib/factory-label.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/factory-label.js


+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/lib/factory-name.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/factory-name.js


+ 1 - 1
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/lib/html.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/html.js

@@ -23,7 +23,7 @@
 import { parseEntities } from 'parse-entities';
 import { parseEntities } from 'parse-entities';
 import { ok as assert } from 'uvu/assert';
 import { ok as assert } from 'uvu/assert';
 
 
-import { DirectiveType } from '../../mdast-util-growi-plugin/consts.js';
+import { DirectiveType } from '../../mdast-util-growi-directive/consts.js';
 
 
 const own = {}.hasOwnProperty;
 const own = {}.hasOwnProperty;
 
 

+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/lib/syntax.js → packages/remark-growi-directive/src/micromark-extension-growi-directive/lib/syntax.js


+ 0 - 0
packages/remark-growi-plugin/src/micromark-extension-growi-plugin/readme.md → packages/remark-growi-directive/src/micromark-extension-growi-directive/readme.md


+ 0 - 0
packages/remark-growi-plugin/src/micromark-factory-attributes-devider/index.d.ts → packages/remark-growi-directive/src/micromark-factory-attributes-devider/index.d.ts


+ 0 - 0
packages/remark-growi-plugin/src/micromark-factory-attributes-devider/index.js → packages/remark-growi-directive/src/micromark-factory-attributes-devider/index.js


+ 0 - 0
packages/remark-growi-plugin/src/micromark-factory-attributes-devider/readme.md → packages/remark-growi-directive/src/micromark-factory-attributes-devider/readme.md


+ 3 - 3
packages/remark-growi-plugin/src/remark-growi-plugin.js → packages/remark-growi-directive/src/remark-growi-directive.js

@@ -4,15 +4,15 @@
  * @typedef {import('mdast-util-directive')} DoNotTouchAsThisImportIncludesDirectivesInTree
  * @typedef {import('mdast-util-directive')} DoNotTouchAsThisImportIncludesDirectivesInTree
  */
  */
 
 
-import { directiveFromMarkdown, directiveToMarkdown } from './mdast-util-growi-plugin/index.js';
-import { directive } from './micromark-extension-growi-plugin/index.js';
+import { directiveFromMarkdown, directiveToMarkdown } from './mdast-util-growi-directive/index.js';
+import { directive } from './micromark-extension-growi-directive/index.js';
 
 
 /**
 /**
     * Plugin to support GROWI plugin (`$lsx(/path, depth=2)`).
     * Plugin to support GROWI plugin (`$lsx(/path, depth=2)`).
     *
     *
     * @type {import('unified').Plugin<void[], Root>}
     * @type {import('unified').Plugin<void[], Root>}
     */
     */
-export function remarkGrowiPlugin() {
+export function remarkGrowiDirectivePlugin() {
   const data = this.data();
   const data = this.data();
 
 
   add('micromarkExtensions', directive());
   add('micromarkExtensions', directive());

+ 0 - 0
packages/remark-growi-plugin/test/fixtures/leaf/input.md → packages/remark-growi-directive/test/fixtures/leaf/input.md


+ 0 - 0
packages/remark-growi-plugin/test/fixtures/leaf/output.md → packages/remark-growi-directive/test/fixtures/leaf/output.md


+ 0 - 0
packages/remark-growi-plugin/test/fixtures/leaf/tree.json → packages/remark-growi-directive/test/fixtures/leaf/tree.json


+ 0 - 0
packages/remark-growi-plugin/test/fixtures/text/input.md → packages/remark-growi-directive/test/fixtures/text/input.md


+ 0 - 0
packages/remark-growi-plugin/test/fixtures/text/output.md → packages/remark-growi-directive/test/fixtures/text/output.md


+ 0 - 0
packages/remark-growi-plugin/test/fixtures/text/tree.json → packages/remark-growi-directive/test/fixtures/text/tree.json


+ 3 - 3
packages/remark-growi-plugin/test/mdast-util-growi-plugin.test.js → packages/remark-growi-directive/test/mdast-util-growi-directive.test.js

@@ -3,9 +3,9 @@ import { toMarkdown } from 'mdast-util-to-markdown';
 import test from 'tape';
 import test from 'tape';
 import { removePosition } from 'unist-util-remove-position';
 import { removePosition } from 'unist-util-remove-position';
 
 
-import { DirectiveType } from '../src/mdast-util-growi-plugin/consts.js';
-import { directiveFromMarkdown, directiveToMarkdown } from '../src/mdast-util-growi-plugin/index.js';
-import { directive } from '../src/micromark-extension-growi-plugin/index.js';
+import { DirectiveType } from '../src/mdast-util-growi-directive/consts.js';
+import { directiveFromMarkdown, directiveToMarkdown } from '../src/mdast-util-growi-directive/index.js';
+import { directive } from '../src/micromark-extension-growi-directive/index.js';
 
 
 test('markdown -> mdast', (t) => {
 test('markdown -> mdast', (t) => {
   t.deepEqual(
   t.deepEqual(

+ 4 - 4
packages/remark-growi-plugin/test/micromark-extension-growi-plugin.test.js → packages/remark-growi-directive/test/micromark-extension-growi-directive.test.js

@@ -1,14 +1,14 @@
 /**
 /**
- * @typedef {import('../src/micromark-extension-growi-plugin/index.js').HtmlOptions} HtmlOptions
- * @typedef {import('../src/micromark-extension-growi-plugin/index.js').Handle} Handle
+ * @typedef {import('../src/micromark-extension-growi-directive/index.js').HtmlOptions} HtmlOptions
+ * @typedef {import('../src/micromark-extension-growi-directive/index.js').Handle} Handle
  */
  */
 
 
 import { htmlVoidElements } from 'html-void-elements';
 import { htmlVoidElements } from 'html-void-elements';
 import { micromark } from 'micromark';
 import { micromark } from 'micromark';
 import test from 'tape';
 import test from 'tape';
 
 
-import { DirectiveType } from '../src/mdast-util-growi-plugin/consts.js';
-import { directive as syntax, directiveHtml as html } from '../src/micromark-extension-growi-plugin/index.js';
+import { DirectiveType } from '../src/mdast-util-growi-directive/consts.js';
+import { directive as syntax, directiveHtml as html } from '../src/micromark-extension-growi-directive/index.js';
 
 
 const own = {}.hasOwnProperty;
 const own = {}.hasOwnProperty;
 
 

+ 4 - 4
packages/remark-growi-plugin/test/remark-growi-plugin.test.js → packages/remark-growi-directive/test/remark-growi-directive.test.js

@@ -11,15 +11,15 @@ import test from 'tape';
 import { readSync } from 'to-vfile';
 import { readSync } from 'to-vfile';
 import { unified } from 'unified';
 import { unified } from 'unified';
 
 
-import { remarkGrowiPlugin } from '../src/remark-growi-plugin.js';
+import { remarkGrowiDirectivePlugin } from '../src/remark-growi-directive.js';
 
 
 test('directive()', (t) => {
 test('directive()', (t) => {
   t.doesNotThrow(() => {
   t.doesNotThrow(() => {
-    remark().use(remarkGrowiPlugin).freeze();
+    remark().use(remarkGrowiDirectivePlugin).freeze();
   }, 'should not throw if not passed options');
   }, 'should not throw if not passed options');
 
 
   t.doesNotThrow(() => {
   t.doesNotThrow(() => {
-    unified().use(remarkGrowiPlugin).freeze();
+    unified().use(remarkGrowiDirectivePlugin).freeze();
   }, 'should not throw if without parser or compiler');
   }, 'should not throw if without parser or compiler');
 
 
   t.end();
   t.end();
@@ -39,7 +39,7 @@ test('fixtures', (t) => {
       const input = String(file);
       const input = String(file);
       const outputPath = path.join(base, fixture, 'output.md');
       const outputPath = path.join(base, fixture, 'output.md');
       const treePath = path.join(base, fixture, 'tree.json');
       const treePath = path.join(base, fixture, 'tree.json');
-      const proc = remark().use(remarkGrowiPlugin).freeze();
+      const proc = remark().use(remarkGrowiDirectivePlugin).freeze();
       const actual = proc.parse(file);
       const actual = proc.parse(file);
       /** @type {string} */
       /** @type {string} */
       let output;
       let output;

+ 0 - 0
packages/remark-growi-plugin/tsconfig.base.json → packages/remark-growi-directive/tsconfig.base.json


+ 0 - 0
packages/remark-growi-plugin/tsconfig.build.json → packages/remark-growi-directive/tsconfig.build.json


+ 0 - 0
packages/remark-growi-plugin/tsconfig.json → packages/remark-growi-directive/tsconfig.json


+ 0 - 6
packages/remark-growi-plugin/src/index.js

@@ -1,6 +0,0 @@
-import { DirectiveType } from './mdast-util-growi-plugin/consts.js';
-import { remarkGrowiPlugin } from './remark-growi-plugin.js';
-
-export { DirectiveType as RemarkGrowiPluginType };
-
-export default remarkGrowiPlugin;

+ 1 - 1
packages/remark-lsx/package.json

@@ -24,7 +24,7 @@
   },
   },
   "dependencies": {
   "dependencies": {
     "@growi/core": "^6.0.0-RC.9",
     "@growi/core": "^6.0.0-RC.9",
-    "@growi/remark-growi-plugin": "^6.0.0-RC.9",
+    "@growi/remark-growi-directive": "^6.0.0-RC.9",
     "@growi/ui": "^6.0.0-RC.9",
     "@growi/ui": "^6.0.0-RC.9",
     "swr": "^1.3.0"
     "swr": "^1.3.0"
   },
   },

+ 1 - 1
packages/remark-lsx/src/server/routes/index.js

@@ -9,5 +9,5 @@ module.exports = (crowi, app) => {
   const loginRequired = crowi.require('../middlewares/login-required')(crowi, true, loginRequiredFallback);
   const loginRequired = crowi.require('../middlewares/login-required')(crowi, true, loginRequiredFallback);
   const accessTokenParser = crowi.require('../middlewares/access-token-parser')(crowi);
   const accessTokenParser = crowi.require('../middlewares/access-token-parser')(crowi);
 
 
-  app.get('/_api/plugins/lsx', accessTokenParser, loginRequired, lsx.listPages);
+  app.get('/_api/lsx', accessTokenParser, loginRequired, lsx.listPages);
 };
 };

+ 2 - 2
packages/remark-lsx/src/services/renderer/lsx.ts

@@ -1,7 +1,7 @@
 import assert from 'assert';
 import assert from 'assert';
 
 
 import { pathUtils } from '@growi/core';
 import { pathUtils } from '@growi/core';
-import { RemarkGrowiPluginType } from '@growi/remark-growi-plugin';
+import { remarkGrowiDirectivePluginType } from '@growi/remark-growi-directive';
 import { Schema as SanitizeOption } from 'hast-util-sanitize';
 import { Schema as SanitizeOption } from 'hast-util-sanitize';
 import { selectAll, HastNode } from 'hast-util-select';
 import { selectAll, HastNode } from 'hast-util-select';
 import { Plugin } from 'unified';
 import { Plugin } from 'unified';
@@ -18,7 +18,7 @@ type DirectiveAttributes = Record<string, string>
 export const remarkPlugin: Plugin = function() {
 export const remarkPlugin: Plugin = function() {
   return (tree) => {
   return (tree) => {
     visit(tree, (node) => {
     visit(tree, (node) => {
-      if (node.type === RemarkGrowiPluginType.Text || node.type === RemarkGrowiPluginType.Leaf) {
+      if (node.type === remarkGrowiDirectivePluginType.Text || node.type === remarkGrowiDirectivePluginType.Leaf) {
         if (typeof node.name !== 'string') {
         if (typeof node.name !== 'string') {
           return;
           return;
         }
         }

+ 1 - 1
packages/remark-lsx/src/stores/lsx.tsx

@@ -99,7 +99,7 @@ const useSWRxLsxResponse = (
     pagePath: string, options?: Record<string, string | undefined>, isImmutable?: boolean,
     pagePath: string, options?: Record<string, string | undefined>, isImmutable?: boolean,
 ): SWRResponse<LsxResponse, Error> => {
 ): SWRResponse<LsxResponse, Error> => {
   return useSWR(
   return useSWR(
-    ['/_api/plugins/lsx', pagePath, options, isImmutable],
+    ['/_api/lsx', pagePath, options, isImmutable],
     (endpoint, pagePath, options) => {
     (endpoint, pagePath, options) => {
       return axios.get(endpoint, {
       return axios.get(endpoint, {
         params: {
         params: {

+ 5 - 0
yarn.lock

@@ -18479,6 +18479,11 @@ react-datepicker@^4.7.0:
     react-onclickoutside "^6.12.0"
     react-onclickoutside "^6.12.0"
     react-popper "^2.2.5"
     react-popper "^2.2.5"
 
 
+react-disable@^0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/react-disable/-/react-disable-0.1.1.tgz#86d2d0932259f626a70fa46f63d6d61cbe7dd066"
+  integrity sha512-KKEDYJUnF8hIPlmGYJu38HG8BlBB4EElCFY1zfA9W46/MF76DSGvgcduWl1eVT/CAw3ahb2sWTSfhon+kPSiKw==
+
 react-dnd-html5-backend@^14.1.0:
 react-dnd-html5-backend@^14.1.0:
   version "14.1.0"
   version "14.1.0"
   resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-14.1.0.tgz#b35a3a0c16dd3a2bfb5eb7ec62cf0c2cace8b62f"
   resolved "https://registry.yarnpkg.com/react-dnd-html5-backend/-/react-dnd-html5-backend-14.1.0.tgz#b35a3a0c16dd3a2bfb5eb7ec62cf0c2cace8b62f"