diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index abb0371..b9d0a73 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,7 +6,7 @@ name: Deploy To Site on: # Triggers the workflow on push or pull request events but only for the master branch push: - branches: [master] + branches: [master,next,test] # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: diff --git a/docs/api/overview/event_bus_methods_overview.md b/docs/api/overview/event_bus_methods_overview.md index 367bf7d..0e084d9 100644 --- a/docs/api/overview/event_bus_methods_overview.md +++ b/docs/api/overview/event_bus_methods_overview.md @@ -11,8 +11,8 @@ These methods are designed for advanced integrations and custom behavior based o | Name | Description | | ------------------------------------------------- | -------------------------------------------- | -| [](../internal/detach.md) | @getshort(../internal/detach.md) | -| [](../internal/exec.md) | @getshort(../internal/exec.md) | -| [](../internal/intercept.md) | @getshort(../internal/intercept.md) | -| [](../internal/on.md) | @getshort(../internal/on.md) | -| [](../internal/set-next.md) | @getshort(../internal/set-next.md) | +| [](api/internal/detach.md) | @getshort(api/internal/detach.md) | +| [](api/internal/exec.md) | @getshort(api/internal/exec.md) | +| [](api/internal/intercept.md) | @getshort(api/internal/intercept.md) | +| [](api/internal/on.md) | @getshort(api/internal/on.md) | +| [](api/internal/set-next.md) | @getshort(api/internal/set-next.md) | diff --git a/docs/api/overview/events_overview.md b/docs/api/overview/events_overview.md index 12e92be..957e228 100644 --- a/docs/api/overview/events_overview.md +++ b/docs/api/overview/events_overview.md @@ -11,35 +11,35 @@ You can use these events to extend functionality, track user interaction, or tri | Name | Description | | ------------------------------------------------------ | --------------------------------------------- | -| [](../events/align.md) | @getshort(../events/align.md) | -| [](../events/clear-text-format.md) | @getshort(../events/clear-text-format.md) | -| [](../events/copy.md) | @getshort(../events/copy.md) | -| [](../events/create-new.md) | @getshort(../events/create-new.md) | -| [](../events/cut.md) | @getshort(../events/cut.md) | -| [](../events/delete-link.md) | @getshort(../events/delete-link.md) | -| [](../events/export.md) | @getshort(../events/export.md) | -| [](../events/import.md) | @getshort(../events/import.md) | -| [](../events/indent.md) | @getshort(../events/indent.md) | -| [](../events/insert-image.md) | @getshort(../events/insert-image.md) | -| [](../events/insert-line.md) | @getshort(../events/insert-line.md) | -| [](../events/insert-link.md) | @getshort(../events/insert-link.md) | -| [](../events/insert-list.md) | @getshort(../events/insert-list.md) | -| [](../events/outdent.md) | @getshort(../events/outdent.md) | -| [](../events/paste.md) | @getshort(../events/paste.md) | -| [](../events/print.md) | @getshort(../events/print.md) | -| [](../events/redo.md) | @getshort(../events/redo.md) | -| [](../events/resize-image.md) | @getshort(../events/resize-image.md) | -| [](../events/set-font-family.md) | @getshort(../events/set-font-family.md) | -| [](../events/set-font-size.md) | @getshort(../events/set-font-size.md) | -| [](../events/set-line-height.md) | @getshort(../events/set-line-height.md) | -| [](../events/set-text-color.md) | @getshort(../events/set-text-color.md) | -| [](../events/set-text-format.md) | @getshort(../events/set-text-format.md) | -| [](../events/set-text-style.md) | @getshort(../events/set-text-style.md) | -| [](../events/show-popup.md) | @getshort(../events/show-popup.md) | -| [](../events/subscript.md) | @getshort(../events/subscript.md) | -| [](../events/superscript.md) | @getshort(../events/superscript.md) | -| [](../events/toggle-fullscreen-mode.md) | @getshort(../events/toggle-fullscreen-mode.md)| -| [](../events/toggle-layout-mode.md) | @getshort(../events/toggle-layout-mode.md) | -| [](../events/toggle-shortcut-info.md) | @getshort(../events/toggle-shortcut-info.md) | -| [](../events/undo.md) | @getshort(../events/undo.md) | -| [](../events/update-link.md) | @getshort(../events/update-link.md) | +| [](api/events/align.md) | @getshort(api/events/align.md) | +| [](api/events/clear-text-format.md) | @getshort(api/events/clear-text-format.md) | +| [](api/events/copy.md) | @getshort(api/events/copy.md) | +| [](api/events/create-new.md) | @getshort(api/events/create-new.md) | +| [](api/events/cut.md) | @getshort(api/events/cut.md) | +| [](api/events/delete-link.md) | @getshort(api/events/delete-link.md) | +| [](api/events/export.md) | @getshort(api/events/export.md) | +| [](api/events/import.md) | @getshort(api/events/import.md) | +| [](api/events/indent.md) | @getshort(api/events/indent.md) | +| [](api/events/insert-image.md) | @getshort(api/events/insert-image.md) | +| [](api/events/insert-line.md) | @getshort(api/events/insert-line.md) | +| [](api/events/insert-link.md) | @getshort(api/events/insert-link.md) | +| [](api/events/insert-list.md) | @getshort(api/events/insert-list.md) | +| [](api/events/outdent.md) | @getshort(api/events/outdent.md) | +| [](api/events/paste.md) | @getshort(api/events/paste.md) | +| [](api/events/print.md) | @getshort(api/events/print.md) | +| [](api/events/redo.md) | @getshort(api/events/redo.md) | +| [](api/events/resize-image.md) | @getshort(api/events/resize-image.md) | +| [](api/events/set-font-family.md) | @getshort(api/events/set-font-family.md) | +| [](api/events/set-font-size.md) | @getshort(api/events/set-font-size.md) | +| [](api/events/set-line-height.md) | @getshort(api/events/set-line-height.md) | +| [](api/events/set-text-color.md) | @getshort(api/events/set-text-color.md) | +| [](api/events/set-text-format.md) | @getshort(api/events/set-text-format.md) | +| [](api/events/set-text-style.md) | @getshort(api/events/set-text-style.md) | +| [](api/events/show-popup.md) | @getshort(api/events/show-popup.md) | +| [](api/events/subscript.md) | @getshort(api/events/subscript.md) | +| [](api/events/superscript.md) | @getshort(api/events/superscript.md) | +| [](api/events/toggle-fullscreen-mode.md) | @getshort(api/events/toggle-fullscreen-mode.md)| +| [](api/events/toggle-layout-mode.md) | @getshort(api/events/toggle-layout-mode.md) | +| [](api/events/toggle-shortcut-info.md) | @getshort(api/events/toggle-shortcut-info.md) | +| [](api/events/undo.md) | @getshort(api/events/undo.md) | +| [](api/events/update-link.md) | @getshort(api/events/update-link.md) | diff --git a/docs/api/overview/main_overview.md b/docs/api/overview/main_overview.md index e9e746f..c89b2fc 100644 --- a/docs/api/overview/main_overview.md +++ b/docs/api/overview/main_overview.md @@ -23,75 +23,75 @@ new richtext.RichText("#root", { | Name | Description | | ----------------------------------------------|-------------------------------------------| -| [](../methods/get-value.md) | @getshort(../methods/get-value.md) | -| [](../methods/set-value.md) | @getshort(../methods/set-value.md) | -| [](../methods/set-config.md) | @getshort(../methods/set-config.md) | -| [](../methods/set-locale.md) | @getshort(../methods/set-locale.md) | -| [](../methods/destructor.md) | @getshort(../methods/destructor.md) | +| [](api/methods/get-value.md) | @getshort(api/methods/get-value.md) | +| [](api/methods/set-value.md) | @getshort(api/methods/set-value.md) | +| [](api/methods/set-config.md) | @getshort(api/methods/set-config.md) | +| [](api/methods/set-locale.md) | @getshort(api/methods/set-locale.md) | +| [](api/methods/destructor.md) | @getshort(api/methods/destructor.md) | ## Event Bus methods | Name | Description | | ----------------------------------------------|-------------------------------------------| -| [](../internal/exec.md) | @getshort(../internal/exec.md) | -| [](../internal/intercept.md) | @getshort(../internal/intercept.md) | -| [](../internal/on.md) | @getshort(../internal/on.md) | -| [](../internal/detach.md) | @getshort(../internal/detach.md) | -| [](../internal/set-next.md) | @getshort(../internal/set-next.md) | +| [](api/internal/exec.md) | @getshort(api/internal/exec.md) | +| [](api/internal/intercept.md) | @getshort(api/internal/intercept.md) | +| [](api/internal/on.md) | @getshort(api/internal/on.md) | +| [](api/internal/detach.md) | @getshort(api/internal/detach.md) | +| [](api/internal/set-next.md) | @getshort(api/internal/set-next.md) | ## State methods | Name | Description | | ----------------------------------------------|-------------------------------------------| -| [](../internal/get-state.md) | @getshort(../internal/get-state.md) | -| [](../internal/get-reactive-state.md) | @getshort(../internal/get-reactive-state.md) | +| [](api/internal/get-state.md) | @getshort(api/internal/get-state.md) | +| [](api/internal/get-reactive-state.md) | @getshort(api/internal/get-reactive-state.md) | ## Events | Name | Description | | ----------------------------------------------|-------------------------------------------| -| [](../events/align.md) | @getshort(../events/align.md) | -| [](../events/clear-text-format.md) | @getshort(../events/clear-text-format.md) | -| [](../events/copy.md) | @getshort(../events/copy.md) | -| [](../events/create-new.md) | @getshort(../events/create-new.md) | -| [](../events/cut.md) | @getshort(../events/cut.md) | -| [](../events/delete-link.md) | @getshort(../events/delete-link.md) | -| [](../events/export.md) | @getshort(../events/export.md) | -| [](../events/import.md) | @getshort(../events/import.md) | -| [](../events/indent.md) | @getshort(../events/indent.md) | -| [](../events/insert-image.md) | @getshort(../events/insert-image.md) | -| [](../events/insert-line.md) | @getshort(../events/insert-line.md) | -| [](../events/insert-link.md) | @getshort(../events/insert-link.md) | -| [](../events/insert-list.md) | @getshort(../events/insert-list.md) | -| [](../events/outdent.md) | @getshort(../events/outdent.md) | -| [](../events/paste.md) | @getshort(../events/paste.md) | -| [](../events/print.md) | @getshort(../events/print.md) | -| [](../events/redo.md) | @getshort(../events/redo.md) | -| [](../events/resize-image.md) | @getshort(../events/resize-image.md) | -| [](../events/set-font-family.md) | @getshort(../events/set-font-family.md) | -| [](../events/set-font-size.md) | @getshort(../events/set-font-size.md) | -| [](../events/set-line-height.md) | @getshort(../events/set-line-height.md) | -| [](../events/set-text-color.md) | @getshort(../events/set-text-color.md) | -| [](../events/set-text-format.md) | @getshort(../events/set-text-format.md) | -| [](../events/set-text-style.md) | @getshort(../events/set-text-style.md) | -| [](../events/show-popup.md) | @getshort(../events/show-popup.md) | -| [](../events/subscript.md) | @getshort(../events/subscript.md) | -| [](../events/superscript.md) | @getshort(../events/superscript.md) | -| [](../events/toggle-fullscreen-mode.md) | @getshort(../events/toggle-fullscreen-mode.md) | -| [](../events/toggle-layout-mode.md) | @getshort(../events/toggle-layout-mode.md) | -| [](../events/toggle-shortcut-info.md) | @getshort(../events/toggle-shortcut-info.md) | -| [](../events/undo.md) | @getshort(../events/undo.md) | -| [](../events/update-link.md) | @getshort(../events/update-link.md) | +| [](api/events/align.md) | @getshort(api/events/align.md) | +| [](api/events/clear-text-format.md) | @getshort(api/events/clear-text-format.md) | +| [](api/events/copy.md) | @getshort(api/events/copy.md) | +| [](api/events/create-new.md) | @getshort(api/events/create-new.md) | +| [](api/events/cut.md) | @getshort(api/events/cut.md) | +| [](api/events/delete-link.md) | @getshort(api/events/delete-link.md) | +| [](api/events/export.md) | @getshort(api/events/export.md) | +| [](api/events/import.md) | @getshort(api/events/import.md) | +| [](api/events/indent.md) | @getshort(api/events/indent.md) | +| [](api/events/insert-image.md) | @getshort(api/events/insert-image.md) | +| [](api/events/insert-line.md) | @getshort(api/events/insert-line.md) | +| [](api/events/insert-link.md) | @getshort(api/events/insert-link.md) | +| [](api/events/insert-list.md) | @getshort(api/events/insert-list.md) | +| [](api/events/outdent.md) | @getshort(api/events/outdent.md) | +| [](api/events/paste.md) | @getshort(api/events/paste.md) | +| [](api/events/print.md) | @getshort(api/events/print.md) | +| [](api/events/redo.md) | @getshort(api/events/redo.md) | +| [](api/events/resize-image.md) | @getshort(api/events/resize-image.md) | +| [](api/events/set-font-family.md) | @getshort(api/events/set-font-family.md) | +| [](api/events/set-font-size.md) | @getshort(api/events/set-font-size.md) | +| [](api/events/set-line-height.md) | @getshort(api/events/set-line-height.md) | +| [](api/events/set-text-color.md) | @getshort(api/events/set-text-color.md) | +| [](api/events/set-text-format.md) | @getshort(api/events/set-text-format.md) | +| [](api/events/set-text-style.md) | @getshort(api/events/set-text-style.md) | +| [](api/events/show-popup.md) | @getshort(api/events/show-popup.md) | +| [](api/events/subscript.md) | @getshort(api/events/subscript.md) | +| [](api/events/superscript.md) | @getshort(api/events/superscript.md) | +| [](api/events/toggle-fullscreen-mode.md) | @getshort(api/events/toggle-fullscreen-mode.md) | +| [](api/events/toggle-layout-mode.md) | @getshort(api/events/toggle-layout-mode.md) | +| [](api/events/toggle-shortcut-info.md) | @getshort(api/events/toggle-shortcut-info.md) | +| [](api/events/undo.md) | @getshort(api/events/undo.md) | +| [](api/events/update-link.md) | @getshort(api/events/update-link.md) | ## Properties | Name | Description | | ----------------------------------------------|-------------------------------------------| -| [](../config/default-styles.md) | @getshort(../config/default-styles.md) | -| [](../config/fullscreen-mode.md) | @getshort(../config/fullscreen-mode.md) | -| [](../config/image-upload-url.md) | @getshort(../config/image-upload-url.md) | -| [](../config/layout-mode.md) | @getshort(../config/layout-mode.md) | -| [](../config/locale.md) | @getshort(../config/locale.md) | -| [](../config/menubar.md) | @getshort(../config/menubar.md) | -| [](../config/toolbar.md) | @getshort(../config/toolbar.md) | -| [](../config/value.md) | @getshort(../config/value.md) | +| [](api/config/default-styles.md) | @getshort(api/config/default-styles.md) | +| [](api/config/fullscreen-mode.md) | @getshort(api/config/fullscreen-mode.md) | +| [](api/config/image-upload-url.md) | @getshort(api/config/image-upload-url.md) | +| [](api/config/layout-mode.md) | @getshort(api/config/layout-mode.md) | +| [](api/config/locale.md) | @getshort(api/config/locale.md) | +| [](api/config/menubar.md) | @getshort(api/config/menubar.md) | +| [](api/config/toolbar.md) | @getshort(api/config/toolbar.md) | +| [](api/config/value.md) | @getshort(api/config/value.md) | diff --git a/docs/api/overview/methods_overview.md b/docs/api/overview/methods_overview.md index a1850f7..b6b8f67 100644 --- a/docs/api/overview/methods_overview.md +++ b/docs/api/overview/methods_overview.md @@ -11,8 +11,8 @@ Use this reference to quickly navigate to detailed descriptions of each method, | Name | Description | | ------------------------------------------------------ | ----------------------------------------- | -| [](../methods/destructor.md) | @getshort(../methods/destructor.md) | -| [](../methods/get-value.md) | @getshort(../methods/get-value.md) | -| [](../methods/set-value.md) | @getshort(../methods/set-value.md) | -| [](../methods/set-config.md) | @getshort(../methods/set-config.md) | -| [](../methods/set-locale.md) | @getshort(../methods/set-locale.md) | +| [](api/methods/destructor.md) | @getshort(api/methods/destructor.md) | +| [](api/methods/get-value.md) | @getshort(api/methods/get-value.md) | +| [](api/methods/set-value.md) | @getshort(api/methods/set-value.md) | +| [](api/methods/set-config.md) | @getshort(api/methods/set-config.md) | +| [](api/methods/set-locale.md) | @getshort(api/methods/set-locale.md) | diff --git a/docs/api/overview/properties_overview.md b/docs/api/overview/properties_overview.md index 1d89cf7..255a158 100644 --- a/docs/api/overview/properties_overview.md +++ b/docs/api/overview/properties_overview.md @@ -11,11 +11,11 @@ They help you control layout, toolbar, value, localization, and other aspects of | Name | Description | | --------------------------------------------------------|----------------------------------------------| -| [](../config/default-styles.md) | @getshort(../config/default-styles.md) | -| [](../config/fullscreen-mode.md) | @getshort(../config/fullscreen-mode.md) | -| [](../config/image-upload-url.md) | @getshort(../config/image-upload-url.md) | -| [](../config/layout-mode.md) | @getshort(../config/layout-mode.md) | -| [](../config/locale.md) | @getshort(../config/locale.md) | -| [](../config/menubar.md) | @getshort(../config/menubar.md) | -| [](../config/toolbar.md) | @getshort(../config/toolbar.md) | -| [](../config/value.md) | @getshort(../config/value.md) | +| [](api/config/default-styles.md) | @getshort(api/config/default-styles.md) | +| [](api/config/fullscreen-mode.md) | @getshort(api/config/fullscreen-mode.md) | +| [](api/config/image-upload-url.md) | @getshort(api/config/image-upload-url.md) | +| [](api/config/layout-mode.md) | @getshort(api/config/layout-mode.md) | +| [](api/config/locale.md) | @getshort(api/config/locale.md) | +| [](api/config/menubar.md) | @getshort(api/config/menubar.md) | +| [](api/config/toolbar.md) | @getshort(api/config/toolbar.md) | +| [](api/config/value.md) | @getshort(api/config/value.md) | diff --git a/docs/api/overview/state_methods_overview.md b/docs/api/overview/state_methods_overview.md index 79ffabb..8b828ee 100644 --- a/docs/api/overview/state_methods_overview.md +++ b/docs/api/overview/state_methods_overview.md @@ -11,5 +11,5 @@ These methods are useful for debugging, integrating with reactive systems, or im | Name | Description | | ----------------------------------------------------------- | ------------------------------------------------ | -| [](../internal/get-reactive-state.md) | @getshort(../internal/get-reactive-state.md) | -| [](../internal/get-state.md) | @getshort(../internal/get-state.md) | +| [](api/internal/get-reactive-state.md) | @getshort(api/internal/get-reactive-state.md) | +| [](api/internal/get-state.md) | @getshort(api/internal/get-state.md) | diff --git a/docusaurus.config.js b/docusaurus.config.js index 02e0169..28063b9 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -48,7 +48,7 @@ const onAtNotationMatch = (data, { key }) => { const onAtNotationFunctionMatch = (data, { key, fullMatch, dir }) => { if (data.indexOf('.md') !== -1 || data.indexOf('.mdx') !== -1 || data.indexOf('.') === -1) { - const result = readFile(dir, data); + const result = readFileFromPath(dir, data); return result ? /@short: (.*)/g.exec(result)[1] : fullMatch; } return fullMatch; @@ -88,11 +88,71 @@ const readFile = (workingDir, filePath) => { return fs.readFileSync(path.normalize(finalPath), 'utf8'); }; +const getContentRelativePath = (dir, filePath) => { + // Already a docs-root-relative path (no ./ or ../ prefix) — return as-is + if (!filePath.startsWith('.')) { + return filePath; + } + + const absolutePath = path.resolve(dir, filePath).replace(/\\/g, '/'); + const i18nDir = path.join(__dirname, 'i18n').replace(/\\/g, '/'); + const docsDir = path.join(__dirname, 'docs').replace(/\\/g, '/'); + + if (absolutePath.startsWith(i18nDir + '/')) { + const currentIndex = absolutePath.indexOf('/current/'); + if (currentIndex !== -1) { + return absolutePath.substring(currentIndex + '/current/'.length); + } + } + + if (absolutePath.startsWith(docsDir + '/')) { + return absolutePath.substring(docsDir.length + 1); + } + + return filePath; +}; + +// Returns the content root for i18n files (i18n/XX/.../current), or null for docs/ files. +const getLocaleContentRoot = (dir) => { + const normalizedDir = dir.replace(/\\/g, '/'); + const currentIndex = normalizedDir.indexOf('/current/'); + if (currentIndex !== -1 && normalizedDir.includes('/i18n/')) { + return normalizedDir.substring(0, currentIndex + '/current'.length); + } + return null; +}; + +// Reads a file by path, supporting both relative (../foo.md) and docs-root-relative (api/foo.md) formats. +// For i18n files, tries the localized version first before falling back to docs/. +const readFileFromPath = (dir, filePath) => { + const result = readFile(dir, filePath); + if (result) return result; + + // If path doesn't start with . it may be docs-root-relative + if (!filePath.startsWith('.')) { + // For i18n files: try the locale's content root first (localized version) + const localeRoot = getLocaleContentRoot(dir); + if (localeRoot) { + const localeResult = readFile(localeRoot, filePath); + if (localeResult) return localeResult; + } + + // Fall back to docs/ (English) + const docsDir = path.join(__dirname, 'docs').replace(/\\/g, '/'); + return readFile(docsDir, filePath); + } + + return false; +}; + const onEmptyLinkMatch = (data, { key, fullMatch, dir }) => { const filePath = fullMatch.substring(fullMatch.indexOf('(') + 1, fullMatch.length - 1); if (filePath.indexOf('.md') !== -1 || filePath.indexOf('.mdx') !== -1 || filePath.indexOf('.') === -1) { - const data = readFile(dir, filePath); - return data ? `[${/.*sidebar_label: (.+)/g.exec(data)[1]}]${fullMatch.match(/\(\D+\)/g)[0]}` : fullMatch; + const fileData = readFileFromPath(dir, filePath); + if (!fileData) return fullMatch; + const label = /.*sidebar_label: (.+)/g.exec(fileData)[1]; + const normalizedPath = getContentRelativePath(dir, filePath); + return `[${label}](${normalizedPath})`; } return fullMatch; };