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

OSCHINA-MIRROR/HerbertHe-for-editor-herb

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

for-editor-herb

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

Markdown редактор для React, поддерживающий отображение TeX!

О версиях

Об номерах версий

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

Ветка for-editor! Из-за долгого времени без обновлений и без обработчика PR. Ура открытому исходному коду! Если вам понравилось это, пожалуйста, поставьте звезду проекту for-editor.

На основе 0.3.5

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

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

  • Откликчивый макет

  • Поддержка предварительного просмотра контента для перехода к указанной метке

  • Генерация содержания

  • Поддержка упрощённого китайского, традиционного китайского, английского, японского

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

  • Поддержка синтаксиса GitHub Diff (v1.5.0~)

  • Поддержка выделения программного языка по вашему выбору (v2.0.0~)

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

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

    • используйте ==Mark== для выделения (маркировки) встроенного текста (v2.3.0~)### Документация
  • Китайский язык

Установка

# 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';

// требуется пакет `highlight.js`
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(значение) {
    this.setState({
      значение,
    });
  }
}
```  render() {
    const { значение } = this.state;
    // Поддержка основного языка ('en', 'zh-CN', 'zh-TW', 'jp') и локализация
    const customLang: any = {
      placeholder: "Начните редактирование...",
      undo: "Отменить",
      redo: "Повторить",
      h1: "Заголовок  Yöntem 1",
      h2: "Заголовок 2",
      h3: "Заголовок 3",
      h4: "Заголовок 4",
      h5: "Заголовок 5",
      h6: "Заголовок 6",
      img: "Ссылка на изображение",
      para: "Абзац",
      italic: "Курсив",
      bold: "Жирный шрифт",
      bolditalic: "Жирный курсив",
      delline: "Вычеркнутый текст",
      underline: "Подчеркнутый текст",
      keytext: "Текст клавиатуры",
      superscript: "Верхний индекс",
      subscript: "Нижний индекс",
      marktag: "Маркер",
      table: "Таблица",
      quote: "Цитата",
      link: "Ссылка",
      list: "Список",
      orderlist: "Упорядоченный список",
      disorderlist: "Неупорядоченный список",
      checklist: "Чеклист",
      inlinecode: "Встроенный код",
      code: "Код",
      collapse: "Свернуть",
      katex: "KaTeX",
      save: "Сохранить",
      preview: "Просмотреть",
      singleColumn: "Одна колонка",
      doubleColumn: "Две колонки",
      fullscreenOn: "Полноэкранный режим ВКЛ",
      fullscreenOff: "Полноэкранный режим ВЫКЛ",
      addImgLink: "Добавить ссылку на изображение",
      addImg: "Загрузить изображение",
      toc: "Сгенерировать оглавление"
    };    }
    // Passing the function `Hljs.highlightAuto` to the editor
    return (
      <Editor
        value={значение}
        onChange={() => this.handleChange()}
        highlight={Hljs.highlightAuto}
      />
    )
  }
}

ReactDOM.render(<App />, document.getElementById('document-root'))

API### Пропсы| имя | тип | значение по умолчанию | описание |

| ----------- | -------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------- | | значение | String | - | значение | | язык | String / IWords | en | Язык по умолчанию (zh-CN: упрощенный китайский, en: английский, zh-TW: традиционный китайский, jp: японский). Поддерживает локализацию в соответствии с интерфейсом IWords | | placeholder | String | Начните редактирование... | Текст по умолчанию при отсутствии данных в поле <textarea> | | lineNum | Boolean | true | Отображение номеров строк | | стиль | Объект | - | стили редактора | | высота | String | 600px | высота редактора | | предпросмотр | Boolean | false | переключатель предпросмотра | | расширенный режим | Boolean | false | переключатель полноэкранного режима || подполе | Boolean | false | true: Двойной столбец — редактирование и предпросмотр на одном экране (при условии, что предпросмотр установлен как true), одиночный столбец — иначе нет | | панель инструментов | Объект | Как в следующем примере | панели инструментов | | outline | Boolean | true | Отображение списка оглавлений для markdown | | highlight | Функция | Hljs.highlightAuto | Функция Hljs(highlight.js) — highlightAuto | | anchor | Boolean | true | Управление отображением закладок в режиме предпросмотра |

/*
  По умолчанию все свойства панели инструментов установлены как true,
  Вы можете настроить объект, чтобы он включал эти свойства.
  Например: {
    h1: true,
    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,
    preview: true,
    expand: true,
    undo: true,
    redo: true,
    save: true,
    subfield: true,
    toc: true         // генерирует оглавление
}

#### Локализация

> IWords

```js
interface IWords {
  placeholder: string
  h1: string
  h2: string
  h3: string
  h4: string
  h5: string
  h6: string
  undo: string
  redo: string
  list: string
  orderlist: string
  disorderlist: string
  checklist: string
  para: string
  italic: string
  bold: string
  bolditalic: string
  delline: string
  underline: string
  keytext: string
  superscript: string
  subscript: string
  marktag: string
  quote: string
  table: string
  img: string
  link: string
  inlinecode: string
  code: string
  collapse: string
  katex: string
  save: string
  preview: string
  singleColumn: string
  doubleColumn: string
  fullscreenOn: string
  fullscreenOff: string
  addImgLink: string
  addImg: string
  toc: string
}

события

имя параметры значение по умолчанию описание
onChange String: value - Callback событие изменения области редактирования
onSave String: value - Callback событие нажатия клавиш Ctrl+S или кнопки "сохранить"
addImg File: file - Callback событие загрузки изображения

загрузка изображения```js

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

 handleChange(значение) {
    this.setState({
      значение,
    });
  }

  addImg($файл) {
    this.$vm.current.$img2Url($файл.name, 'file_url');
    console.log($файл);
  }

  render() {
    const { value } = this.state;

    return (
      <Editor
        ref={this.$vm}
        value={value}
        addImg={($файл) => this.addImg($файл)}
        onChange={(значение) => this.handleChange(значение)}
      />
    );
  }
}
```

### Горячие клавиши

| имя   | описание          |
|------ | ------------------|
| tab   | два пробела       |
| ctrl+s | сохранить        |
| ctrl+z | отменить         |
| ctrl+y | повторить        |

## Обновление

* [Журнал обновлений](./doc/UPDATELOG.md)

## Лицензия

for-editor использует лицензию [MIT License](./LICENSE).
```

Комментарии ( 0 )

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

Введение

Редакционный компонент React Markdown для разработчиков на React, поддерживающий рендеринг Tex. Развернуть Свернуть
MIT
Отмена

Обновления (2)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
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