Skip to content

Lists

This is the List extension. It allows you to create various types of lists including bullet lists, numbered lists, and task lists.

Bullet Lists

Create unordered lists with different bullet styles: disc (default), circle, or square.

Vue
html
<template>
  <HLTextEditor :editor="editor">
    <template #header>
      <RTEControlList :editor="editor" listType="bulletList" />
      <RTEControlList :editor="editor" listType="circleList" />
      <RTEControlList :editor="editor" listType="squareList" />
    </template>
    <template #footer>
      <div>Footer</div>
    </template>
  </HLTextEditor>
</template>
<script setup lang="ts">
  import { ref } from 'vue'
  import {
    RequiredExtensions,
    Editor,
    HLTextEditor,
    RTEControlList,
    OrderedList,
    BulletList,
    ListItem,
  } from '@platform-ui/rte'

  const content = ref()
  const HTML = ref()

  const editor = new Editor({
    content: '<p>Click any list button to create a list</p>',
    extensions: [
      OrderedList,
      BulletList,
      ListItem,
      RequiredExtensions.configure({}),
    ],
    onUpdate({ editor }) {
      content.value = editor.getText()
      HTML.value = editor.getHTML()
    },
  })
</script>

Ordered Lists

Create numbered lists with different numbering styles.

Vue
html
<template>
  <HLTextEditor :editor="editor">
    <template #header>
      <RTEControlList :editor="editor" listType="orderedList" />
      <RTEControlList :editor="editor" listType="lowerAlphaList" />
      <RTEControlList :editor="editor" listType="upperAlphaList" />
      <RTEControlList :editor="editor" listType="lowerRomanList" />
      <RTEControlList :editor="editor" listType="upperRomanList" />
      <RTEControlList :editor="editor" listType="lowerGreekList" />
    </template>
  </HLTextEditor>
</template>
<script setup lang="ts">
  import { ref } from 'vue'
  import {
    RequiredExtensions,
    Editor,
    HLTextEditor,
    RTEControlList,
    OrderedList,
    BulletList,
    ListItem,
  } from '@platform-ui/rte'

  const editor = new Editor({
    content: '<p>Create ordered lists with different numbering styles</p>',
    extensions: [
      OrderedList,
      BulletList,
      ListItem,
      RequiredExtensions.configure({}),
    ],
    onUpdate({ editor }) {
      content.value = editor.getText()
      HTML.value = editor.getHTML()
    },
  })
</script>

Task Lists

Create checkbox lists for tasks and to-do items.

Vue
html
<template>
  <HLTextEditor :editor="editor">
    <template #header>
      <RTEControlList :editor="editor" listType="taskList" />
    </template>
  </HLTextEditor>
</template>
<script setup lang="ts">
  import { ref } from 'vue'
  import {
    RequiredExtensions,
    Editor,
    HLTextEditor,
    RTEControlList,
    TaskList,
    TaskItem,
  } from '@platform-ui/rte'

  const editor = new Editor({
    content: '<p>Create task lists with checkboxes</p>',
    extensions: [
      RequiredExtensions.configure({}),
      TaskList,
      TaskItem.configure({ nested: true }),
    ],
    onUpdate({ editor }) {
      content.value = editor.getText()
      HTML.value = editor.getHTML()
    },
  })
</script>

Commands

js
// Bullet Lists
editor?.chain().focus().toggleCustomBulletList({ type: 'disc' }).run()
editor?.chain().focus().toggleCustomBulletList({ type: 'circle' }).run()
editor?.chain().focus().toggleCustomBulletList({ type: 'square' }).run()

// Ordered Lists
editor?.chain().focus().toggleCustomOrderedList({ type: 'decimal' }).run()
editor?.chain().focus().toggleCustomOrderedList({ type: 'lower-alpha' }).run()
editor?.chain().focus().toggleCustomOrderedList({ type: 'upper-alpha' }).run()
editor?.chain().focus().toggleCustomOrderedList({ type: 'lower-roman' }).run()
editor?.chain().focus().toggleCustomOrderedList({ type: 'upper-roman' }).run()
editor?.chain().focus().toggleCustomOrderedList({ type: 'lower-greek' }).run()

// Task List
editor?.chain().focus().toggleTaskList().run()

Imports

ts
import {
  RequiredExtensions,
  Editor,
  HLTextEditor,
  RTEControlList,
  OrderedList,
  BulletList,
  ListItem,
  TaskList,
  TaskItem,
} from '@platform-ui/rte'

Props

PropTypeDefaultDescription
editor *Editor-The editor instance
listTypeListType'bulletList'The type of list
tooltipLabelstring-The tooltip label
tooltipPositionPlacement'top'The tooltip position
languageLanguage'en-US'The language for localization

List Types

The listType prop accepts the following values:

Bullet Lists

  • bulletList - Standard bullet (disc) - •
  • circleList - Circle bullets - ○
  • squareList - Square bullets - ▪

Ordered Lists

  • orderedList - Decimal numbers - 1, 2, 3
  • lowerAlphaList - Lowercase letters - a, b, c
  • upperAlphaList - Uppercase letters - A, B, C
  • lowerRomanList - Lowercase Roman numerals - i, ii, iii
  • upperRomanList - Uppercase Roman numerals - I, II, III
  • lowerGreekList - Lowercase Greek letters - α, β, γ

Task Lists

  • taskList - Checkbox list for tasks (Requires TaskList and TaskItem extensions)

Slots

SlotDescriptionDefault
iconThe icon to displayMaterialFormatListBulletedFillIcon depends on the listType