DocumentionUmo Editor NextPage Aside

Page Aside

The page aside (or sidebar) is a configurable slot that allows you to add custom content for personalized display. It can also be linked with the toolbar; see Toolbar extensions for details.

AI Chat Assistant is implemented through the page aside, see AI Chat Assistant for details.

Use Cases

  • Host high-value business panels (custom workflows, dashboards, etc.)
  • Provide navigation and structure panels (TOC, chapter list, templates, versions)
  • Run approval/publish/archive workflows (forms + progress + actions)
  • Expose cross-document tools (full-text search, references, glossary, knowledge Q&A)
  • Compose multiple plugins by injecting multiple sidebar groups via extensions

Works Well With

  • Toolbar: the toolbar triggers actions, the aside hosts complex UI and state
  • AI: long-running interactions like Chat/Assistant fit naturally in the aside: AI
  • Comments and Track Changes: unify review streams in a single panel: Comments, Track Changes
  • Version History: host version lists, preview, and compare entry points: Version History

Demo Video

Page Aside Configuration

const defaultOptions = {
  // Page aside related configuration
  page: {
    aside: {
      show: [],
      extensions: [],
    },
  },
}

Configuration Description

page.aside.show

Description:Page aside display configuration. You can use openAside and closeAside methods to dynamically display or hide the page aside.

TypeArray

Configuration Example

aside: {
  show: ['office', 'plugins'], // display the side panel collection in order
},

page.aside.extensions

Description:Page aside extension configuration that allows for dynamic injection of personalized page asides.

TypeArray

Configuration Items

  • titleString,display name for the custom extension page aside.
  • keyString,is the unique identifier for the custom extension page aside, serving as the basis for slot injection. It must be unique and not duplicate default group identifiers (e.g., chatPage cannot be set).

Configuration Example

aside: {
  extensions: [
    // Each item in the array represents a new group
    { title: 'Office Assistant', key: 'office' },
    { title: 'Extension Plugins', key: 'plugins' },
  ],
},

Slot Configuration

The slot setting is the same as the standard toolbar slot format, the identifier is #page_aside_{key} and is processed based on the key value in the extension configuration item.

Slot Example

<template #page_aside_office="props">
  <span>page_aside_office slot:{{ props }}</span>
</template>
<template #page_aside_plugins="props">
  <span>page_aside_plugins slot:{{ props }}</span>
</template>

Page Aside Slot

Through named slots, insert custom content into the page aside.

<template>
  <umo-editor v-bind="options">
    <template #page_aside_office="props">
      <span>page_aside_office slot:{{ props }}</span>
    </template>
    <template #page_aside_plugins="props">
      <span>page_aside_plugins slot:{{ props }}</span>
    </template>
  </umo-editor>
</template>
 
<script setup>
import { ref } from 'vue'
import { UmoEditor } from '@umoteam/editor'
 
const options = ref({
  // Configuration items
  // ...
  page: {
    aside: {
      show: ['office', 'plugins'],
      extensions: [
        { title: '办公助手', key: 'office' },
        { title: '扩展插件', key: 'plugins' },
      ],
    },
  },
})
</script>

Method List

openAside

Description:Opens the page aside panel using the provided identifier.

Parametersextensions[].key,String,the unique identifier for the page aside.

Return Value:None

closeAside

Description:Closes the page aside panel using the provided identifier.

Parametersextensions[].key,String,the unique identifier for the page aside.

Return Value:None