1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HerbertHe-for-editor-herb

Клонировать/Скачать
README.CN.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 09:36 fd4427c

for-editor-herb

Версия Скачивание cnpmVersion cnpmDownload

Компонент редактора заметок на основе React с поддержкой отображения TeX

Версионность

Обозначение версий

x.x.x --> несовместимое обновление . обновление новых возможностей (включая исправление известных ошибок) . исправление ошибок

Базируется на ветке for-editor, поскольку автор слишком долго не обновлял проект, а PR также не были обработаны, некоторые пользователи считали, что модификация документации не очень удобна, поэтому был открыт этот проект. Поддерживаем открытое программное обеспечение, если вам нравится, пожалуйста, оставьте звезду для оригинального проекта.

Начиная с версии 0.3.5

Дополнительные возможности* [x] Инструментальная панель кнопок цитата/параграф/таблица/строка кода/скрытие/катекс/список

  • Поддержка отображения блочных и строчных выражений TeX

  • Ответственный дизайн

  • Поддержка прокрутки и перехода между закладками при просмотре

  • Генерация и вставка содержательной таблицы

  • Поддержка китайского, английского, традиционного китайского и японского языков

  • Поддержка локализации редактора (v2.3.3~)

  • Поддержка синтаксического оформления GitHub Diff (v1.5.0~)

  • Поддержка пользовательских типов языка для выделенного кода (v2.0.0~)

  • Поддержка отображения эмодзи по короткому имени (v2.2.0~), подробнее на Joypixels

  • Поддержка расширяемого синтаксиса

    • Поддержка синтаксиса ==Mark== для выделения текста внутри строки### Документация
  • Английская документация

Установка

# npm
npm install for-editor-herb -S
# yarn
yarn add for-editor-herb

Использование

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import Editor from 'for-editor-herb';
// Включение пакета выделения кода
const Hljs = require('highlight.js');

class App extends Component {
  constructor() {
    super();
    this.state = {
      value: '',
    };
  }

  componentDidMount() {
    // В компоненте componentDidMount регистрируются языки, которые вы хотите подсветить
    Hljs.registerLanguage('css', require('highlight.js/lib/languages/css'));
    Hljs.registerLanguage('json', require('highlight.js/lib/languages/json'));
    Hljs.registerLanguage('less', require('highlight.js/lib/languages/less'));
    Hljs.registerLanguage('scss', require('highlight.js/lib/languages/scss'));
    Hljs.registerLanguage('javascript', require('highlight.js/lib/languages/javascript'));
    Hljs.registerLanguage('typescript', require('highlight.js/lib/languages/typescript'));
    Hljs.registerLanguage('go', require('highlight.js/lib/languages/go'));
  }

  handleChange(value) {
    this.setState({
      value,
    });
  }
}
```  render() {
    const { значение } = this.state;
    // Поддерживает язык по умолчанию ('en', 'zh-CN', 'zh-TW', 'jp'), а также локализацию
    const customLang: any = {
      placeholder: 'Начните вводить...',
      undo: 'Отменить',
      redo: 'Повторить',
      h1: 'Заголовок первого уровня',
      h2: 'Заголовок второго уровня',
      h3: 'Заголовок третьего уровня',
      h4: 'Заголовок четвертого уровня',
      h5: 'Заголовок пятого уровня',
      h6: 'Заголовок шестого уровня',
      para: 'Параграф',
      italic: 'Курсив',
      bold: 'Жирный',
      bolditalic: 'Жирный курсив',
      delline: 'Зачеркнутый',
      underline: 'Подчеркнутый',
      keytext: 'Клавишный текст',
      superscript: 'Сверхстрочный',
      subscript: 'Нижнестрочный',
      marktag: 'Выделенный тег',
      table: 'Таблица',
      quote: 'Цитата',
      img: 'Добавить ссылку на изображение',
      link: 'Ссылка',
      list: 'Список',
      orderlist: 'Упорядоченный список',
      disorderlist: 'Неупорядоченный список',
      checklist: 'Список с флажками',
      inlinecode: 'Встроенный код',
      code: 'Блок кода',
      collapse: 'Разделённый блок',
      katex: 'KaTeX',
      save: 'Сохранить',
      preview: 'Просмотреть',
      singleColumn: 'Одна колонка',
      doubleColumn:: 'Две колонки',
      fullscreenOn: 'Перейти в полноэкранный режим',
      fullscreenOff: 'Выйти из полноэкранного режима',
      addImgLink: 'Добавить ссылку на изображение',
      addImg: 'Загрузить изображение',
      toc: 'Сгенерировать содержание'
    };
    // Передать Hljs.highlightAuto функцию
    return (
      <Editor
        language={customLang}
        value={значение}
        onChange={() => this.handleChange()}
        highlight={Hljs.highlightAuto}
      />
    );
  }
}ReactDOM.render(<App />, document.getElementById('root'))

## API### Атрибуты| name        | type    | default     | description                                                   |
 | ----------- | ------- | ----------- | ------------------------------------------------------------- |
 | value       | String  | -           | Введенное значение                                             |
 | placeholder | String  | Начните редактирование...  | Место заполнителя                                          |
 | lineNum     | Boolean | true        | Отображение номеров строк                                      |
 | style       | Object  | -           | Стили редактора                                                |
 | height      | String  | 600px       | Высота редактора                                               |
 | preview     | Boolean | false       | Предварительный просмотр                                       |
 | expand      | Boolean | false       | Полноэкранный режим                                            |
 | subfield    | Boolean | false       | Двойной столбец (активен при включенном предварительном просмотре) |
 | language    | String / IWords | en       | По умолчанию язык (поддерживает zh-CN: китайский упрощённый, en: английский, zh-TW: традиционный китайский, jp: японский), поддержка локализации по интерфейсу IWords |
 | toolbar     | Object  | как указано ниже | Пользовательская панель инструментов                        |
 | outline     | Boolean | true        | Отображение提纲(outline)应翻译为“提纲”或“概要”,此处选择更常用的“提纲”。  | 显示Markdown的提纲                                              |
 | highlight   | Function | Hljs.highlightAuto | Функция Hljs.highlightAuto библиотеки Hljs               |
 | anchor      | Boolean  | true       | Отображение закрепленных заголовков в режиме предварительного просмотра |```js
 /*По умолчанию все кнопки в панели инструментов активированы, передайте объект с настройками
например:
{
     h1: true, // заголовок H1
     code: true, // кодовый блок
     preview: true, // предварительный просмотр
}
в этом случае будут отображены только три указанных функционала
Примечание: если передать пустой объект, то панель инструментов не будет отображаться

toolbar: { h1: true, h2: true, h3: true, h4: true, h5: true, h6: true, img: true, list: true, para: { paragraph: true, // управление отображением всего абзаца italic: true, bold: true, bolditalic: true, delline: true, underline: true, keytext: true, superscript: true, subscript: true, marktag: true }, table: true, // таблица quote: true, // цитата link: true, // ссылка inlinecode: true, // внутренний код code: true, // кодовый блок collapse: true, // сворачивание katex: true, // katex preview: true, // предварительный просмотр expand: true, // полноэкранный режим undo: true, redo: true, save: true, subfield: true, // переключение между одиночной и двойной колоннами toc: true // создание содержания }


> Интерфейсы

```js
interface IWords {
  placeholder: string
  h1: string
  h2: string
  h3: string
  h4: string
  h5: string
  h6: string
  undo: string
  redo: string
  list: string
  orderedList: string
  unorderedList: string
  checkedList: string
  paragraph: string
  italicText: string
  boldText: string
  boldItalicText: string
  deleteLine: string
  underlineText: string
  keyText: string
  superscriptText: string
  subscriptText: string
  markedTag: string
  quoteText: string
  tableText: string
  image: string
  linkText: string
  inlineCode: string
  codeBlock: string
  collapseSection: string
  katexFormula: string
  saveButton: string
  previewMode: string
  singleColumnLayout: string
  doubleColumnLayout: string
  fullScreenOn: string
  fullScreenOff: string
  addImageLink: string
  addImage: string
  tableOfContents: string
}

События

имя параметры значение по умолчанию описание
onChange String: value - Изменение содержимого
onSave String: value - Сохранение
addImage File: file - Добавление изображения

Загрузка изображений

class App extends Component {
  constructor() {
    super()
    this.state = {
      value: ''
    }
    this.$vm = React.createRef()
  }

Быстрые клавиши

имя описание
Tab Два пробела отступ
Ctrl+S Сохранение
Ctrl+Z Отмена
Ctrl+Y Восстановление

Журнал обновлений

Лицензия

for-editor-herb использует лицензию MIT

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/HerbertHe-for-editor-herb.git
git@api.gitlife.ru:oschina-mirror/HerbertHe-for-editor-herb.git
oschina-mirror
HerbertHe-for-editor-herb
HerbertHe-for-editor-herb
master