open-index/open-npm huggingface dataset:
npm package: @hanfengv/toolbox
Description: 项目常用工具
Author: hanfengv
Latest version: 2.0.6

# 项目常用工具

## 安装
`npm i -D @hanfengv/toolbox`

## develop

1. 创建模板: `nr tpl name=foo desc=功能描述`
2. 测试功能: `nr toolbox feature=help`

## features

_____TPL_FLAG_DOCUMENT_____
- 检测网络连接 `npx toolbox ping`
- 前端项目部署 `npx toolbox deploy`
- 随机生成端口 `npx toolbox port`
- 打印项目信息 `npx toolbox info`
- 帮助文档 `npx toolbox feature=help`
- 使用方法: `nr toolbox feature=help debug=true`
  - feature 功能; 必须为第一个参数; 可简写为: `npx toolbox help`
  - debug 调试; 可简写为: `npx toolbox debug`
## npm 发版

`nr release`

<!-- 1. 打补丁版本 `nr release` `nr release patch`
2. 小版本 `nr release minor`
3. 大版本 `nr release major`

```sh
npm login --scope=@hanfengv --registry=https://registry.npmjs.org
``` -->
npm package: @hanfy/plugin-alignment
Description: 对齐方式：左对齐、居中对齐、右对齐、两端对齐
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-alignment

对齐方式：左对齐、居中对齐、右对齐、两端对齐

## 安装

```bash
$ yarn add @hanfy/plugin-alignment
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Alignment from '@hanfy/plugin-alignment';

new Engine(...,{ plugins:[Alignment] })
```

## 可选项

```ts
//快捷键
hotkey?: {
    left?: string;//左对齐，默认 mod+shift+l
    center?: string;//居中对齐，默认 mod+shift+c
    right?: string;//右对齐，默认 mod+shift+r
    justify?: string;//两端对齐，默认 mod+shift+j
};
//使用配置
new Engine(...,{
    config:{
        "alignment":{
            //修改 左对齐 快捷键
            hotkey:{
                left:"快捷键"
            }
        }
    }
 })
```

## 命令

对齐插件可选参数，`left` | `center` | `right` | `justify`，分别表示 左对齐、居中对齐、右对齐、两端对齐

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('alignment', 'left' | 'center' | 'right' | 'justify');
//使用 command 执行查询当前状态，返回 string | undefined，光标所在处节点对齐样式 "left" | "center" | "right" | "justify"
engine.command.queryState('alignment');
```
npm package: @hanfy/plugin-backcolor
Description: 背景颜色插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-backcolor

背景颜色插件

## 安装

```bash
$ yarn add @hanfy/plugin-backcolor
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Backcolor from '@hanfy/plugin-backcolor';

new Engine(...,{ plugins:[Backcolor] })
```

## 可选项

### 快捷键

默认无快捷键

```ts
//快捷键，key 组合键，args，执行参数，[color,defaultColor?] ， color 必须，defaultColor 可选
hotkey?:{key:string,args:Array<string>};//默认无

//使用配置
new Engine(...,{
    config:{
        "backcolor":{
            //修改快捷键
            hotkey:{
                key:"mod+b",
                args:["#000000","#ffffff"]
            }
        }
    }
 })
```

## 命令

```ts
//color：更改的背景颜色，defaultColor：保持的默认背景色，在没有传入 defaultColor 或者 color 与 defaultColor 值不同时执行背景色修改
engine.command.execute('backcolor', color, defaultColor);
//使用 command 执行查询当前状态，返回 Array<string> | undefined，当前光标所在处背景色值集合
engine.command.queryState('backcolor');
```
npm package: @hanfy/plugin-bold
Description: 加粗样式插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-bold

加粗样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-bold
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Bold from '@hanfy/plugin-bold';

new Engine(...,{ plugins:[Bold] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+b`，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "bold":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('bold');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('bold');
```
npm package: @hanfy/plugin-code
Description: 行内代码样式插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-code

行内代码样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-code
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Code from '@hanfy/plugin-code';

new Engine(...,{ plugins:[Code] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+e`，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "code":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('code');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('code');
```
npm package: @hanfy/plugin-codeblock
Description: 代码块
Author: me@hanfy.com
Latest version: 2.10.6

# @hanfy/plugin-codeblock

代码块插件

## 安装

```bash
$ yarn add @hanfy/plugin-codeblock
```

`Vue` 使用

```bash
$ yarn add @hanfy/plugin-codeblock-vue
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import CodeBlock , { CodeBlockComponent } from '@hanfy/plugin-codeblock';

new Engine(...,{ plugins:[CodeBlock] , cards:[CodeBlockComponent]})
```

## 可选项

### 快捷键

默认无快捷键

```ts
//快捷键，key 组合键，args，执行参数，[mode?: string, value?: string] 语言模式：可选，代码文本：可选
hotkey?:string | {key:string,args:Array<string>};//默认无

//使用配置
new Engine(...,{
    config:{
        "codeblock":{
            //修改快捷键
            hotkey:{
                key:"mod+b",
                args:["javascript","const test = 123;"]
            }
        }
    }
 })
```

### 别名

别名设置

```ts
//使用配置
new Engine(...,{
    config:{
        "alias":{
            text: 'plain',
            sh: 'bash',
            ts: 'typescript',
            js: 'javascript',
            py: 'python',
            puml: 'plantuml',
            uml: 'plantuml',
            vb: 'basic',
            md: 'markdown',
            'c++': 'cpp',
            'c#': 'csharp',
        }
    }
 })
```

## 命令

```ts
//可携带两个参数，语言类型，默认文本，都是可选的
engine.command.execute('codeblock', 'javascript', 'const test = 123;');
```
npm package: @hanfy/plugin-codeblock-vue
Description: 代码块 Vue
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-codeblock-vue

代码块插件

## 安装

```bash
$ yarn add @hanfy/plugin-codeblock-vue
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import CodeBlock , { CodeBlockComponent } from '@hanfy/plugin-codeblock';

new Engine(...,{ plugins:[CodeBlock] , cards:[CodeBlockComponent]})
```

## 可选项

### 快捷键

默认无快捷键

```ts
//快捷键，key 组合键，args，执行参数，[mode?: string, value?: string] 语言模式：可选，代码文本：可选
hotkey?:string | {key:string,args:Array<string>};//默认无

//使用配置
new Engine(...,{
    config:{
        "codeblock":{
            //修改快捷键
            hotkey:{
                key:"mod+b",
                args:["javascript","const test = 123;"]
            }
        }
    }
 })
```

## 命令

```ts
//可携带两个参数，语言类型，默认文本，都是可选的
engine.command.execute('codeblock', 'javascript', 'const test = 123;');
```
npm package: @hanfy/plugin-embed
Description: 嵌入网址
Author: me@hanfy.com
Latest version: 2.10.6

# @hanfy/plugin-embed

嵌入网址

通过继承此插件，可以实现嵌入特定网址实现预览功能。

## 安装

```bash
$ yarn add @hanfy/plugin-embed
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Embed , { EmbedComponent } from '@hanfy/plugin-embed';

new Engine(...,{ plugins:[ Embed ] , cards:[ EmbedComponent ]})
```

## `Embed` 可选项

```ts
//使用配置
new Engine(...,{
    config:{
        [Embed.pluginName]:{
            //...相关配置
        }
    }
 })
```

### 首次渲染前返回特定信息

`renderBefore`: 渲染前返回一些信息

```ts
renderBefore?:(url: string) => {url?: string
    height?: number
    collapsed?: boolean
    ico?: string
    title?: string
    isResize?: boolean}
```

如果需要对返回信息做更多扩展，可以继承 `EmbedComponent` 类，然后重写 `handleSubmit` 方法

## 命令

### 插入网址

参数 1：要加载的 url，可选，默认会展示当前输入 url 界面
参数 2: 图标，默认为一个网页图标
参数 3: 标题，默认为 url
参数 4: 是否折叠，默认为 false
参数 5: 是否可以改变大小，默认为 true

```ts
engine.command.execute(
	Math.pluginName,
	'https://editor.aomao.com', // 可选
	'ico 图标',
	'展示的标题',
	false,
	true,
);
```
npm package: @hanfy/plugin-file
Description: 文件插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-file

文件插件

## 安装

```bash
$ yarn add @hanfy/plugin-file
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import File , { FileComponent , FileUploader } from '@hanfy/plugin-file';

new Engine(...,{ plugins:[ File , FileUploader ] , cards:[ FileComponent ]})
```

`FileUploader` 插件主要功能：选择文件、上传文件

## `File` 可选项

`onBeforeRender` 预览附近或者下载附件时可对地址修改

```ts
onBeforeRender?: (action: 'download' | 'preview', url: string, editor: EditorInterface) => string;
```

## `FileUploader` 可选项

```ts
//使用配置
new Engine(...,{
    config:{
        [FileUploader.pluginName]:{
            //...相关配置
        }
    }
 })
```

### 文件上传

`action`: 上传地址，始终使用 `POST` 请求

`crossOrigin`: 是否跨域

`withCredentials`: https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials

`headers`: 请求头

`contentType`: 文件上传默认以 `multipart/form-data;` 类型上传

`accept`: 限制用户文件选择框选择的文件类型，默认 `*` 所有的

`limitSize`: 限制用户选择的文件大小，超过限制将不请求上传。默认：`1024 * 1024 * 5` 5M

`multiple`: `false` 一次只能上传一个文件，`true` 默认一次最多 100 个文件。可以指定具体数量，但是文件选择框无法限制，只能上传的时候限制上传最前面的张数

`data`: 文件上传时同时将这些数据一起`POST`到服务端

`name`: 文件上传请求时，请求参数在 `FormData` 中的名称，默认 `file`

```ts
/**
 * 文件上传地址
 */
action:string
/**
 * 是否跨域
 */
crossOrigin?: boolean;
/**
 * https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/withCredentials
 */
withCredentials?: boolean;
/**
* 请求头
*/
headers?: RequestHeaders;
/**
 * 数据返回类型，默认 json
 */
type?: '*' | 'json' | 'xml' | 'html' | 'text' | 'js';
/**
 * 文件上传时 FormData 的名称，默认 file
 */
name?: string
/**
 * 额外携带数据上传
 */
data?: RequestData;
/**
 * 请求类型，默认 multipart/form-data;
 */
contentType?:string
/**
 * 文件接收的格式，默认 "*" 所有的
 */
accept?: string | Array<string>;
/**
 * 文件选择限制数量
 */
multiple?: boolean | number;
/**
 * 上传大小限制，默认 1024 * 1024 * 5 就是5M
 */
limitSize?: number;

```

### 解析服务端响应数据

默认会查找

文件地址：response.url || response.data && response.data.url
预览地址：response.preview || response.data && response.data.preview 后端转换后可以预览一些复杂的文件，如果有可以返回地址
下载地址：response.download || response.data && response.data.download 文件的下载地址，可以加权限、时间限制等等，如果有可以返回地址

`result`: true 上传成功，data 为文件地址。false 上传失败，data 为错误消息

```ts
/**
 * 解析上传后的Respone，返回 result:是否成功，data:成功：文件地址，失败：错误信息
 */
parse?: (
    response: any,
) => {
    result: boolean;
    data: string;
};
```

## 命令

### `File` 插件命令

插入一个文件

参数 1：文件状态`uploading` | `done` | `error` 上传中、上传完成、上传错误

参数 2：在状态非 `error` 下，为展示文件，否则展示错误消息

```ts
//'uploading' | 'done' | 'error'
engine.command.execute(
	File.pluginName,
	'done',
	'文件地址',
	'文件名称', //可选、默认为url地址
	'文件大小', //可选
	'预览地址', //可选
	'下载地址', //可选
);
```

### `FileUploader` 插件命令

弹出文件选择框，并执行上传

可选参数 1：传入文件列表，将上传这些文件。否则弹出文件选择框并，选择文件后执行上传

```ts
//方法签名
async execute(files?: Array<File> | MouseEvent):void
//执行命令
engine.command.execute(FileUploader.pluginName);
```
npm package: @hanfy/plugin-fontcolor
Description: 前景色插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-fontcolor

前景色插件

## 安装

```bash
$ yarn add @hanfy/plugin-fontcolor
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Fontcolor from '@hanfy/plugin-fontcolor';

new Engine(...,{ plugins:[Fontcolor] })
```

## 可选项

### 快捷键

默认无快捷键

```ts
//快捷键，key 组合键，args，执行参数，[color,defaultColor?] ， color 必须，defaultColor 可选
hotkey?:{key:string,args:Array<string>};//默认无

//使用配置
new Engine(...,{
    config:{
        "fontcolor":{
            //修改快捷键
            hotkey:{
                key:"mod+b",
                args:["#000000","#ffffff"]
            }
        }
    }
 })
```

## 命令

```ts
//color：更改的前景颜色，defaultColor：保持的默认前景色，在没有传入 defaultColor 或者 color 与 defaultColor 值不同时执行前景色修改
engine.command.execute('fontcolor', color, defaultColor);
//使用 command 执行查询当前状态，返回 Array<string> | undefined，当前光标所在处前景色值集合
engine.command.queryState('fontcolor');
```
npm package: @hanfy/plugin-fontsize
Description: 字体大小插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-fontsize

字体大小插件

## 安装

```bash
$ yarn add @hanfy/plugin-fontsize
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Fontsize from '@hanfy/plugin-fontsize';

new Engine(...,{ plugins:[Fontsize] })
```

## 可选项

### 粘贴过滤自定义字体大小

支持过滤不符合自定义的字体大小

```ts
/**
 * @param fontSize 当前字体大小
 * @returns 返回 string 修改当前值，false 移除，true 保留
 * */
filter?: (fontSize: string) => string | boolean
//配置
new Engine(...,{
    config:{
        [Fontsize.pluginName]: {
            //配置粘贴后需要过滤的字体大小
            filter: (fontSize: string) => {
                return ["12px","13px","14px","15px","16px","19px","22px","24px","29px","32px","40px","48px"].indexOf(fontSize) > -1
            }
        }
    }
}
```

### 默认字体大小

```ts
defaultSize?:string //默认为14px
```

### 快捷键

默认无快捷键

```ts
//快捷键，key 组合键，args，执行参数，[size,defaultSize?] ， size 必须，defaultSize 可选
hotkey?:{key:string,args:Array<string>};//默认无

//使用配置
new Engine(...,{
    config:{
        "fontsize":{
            //修改快捷键
            hotkey:{
                key:"mod+b",
                args:["12px","14px"]
            }
        }
    }
 })
```

## 命令

```ts
//size：更改的字体大小，defaultSize：保持的默认字体大小，在没有传入 defaultSize 或者 size 与 defaultSize 值不同时执行前景色修改
engine.command.execute('fontsize', size, defaultSize);
//使用 command 执行查询当前状态，返回 Array<string> | undefined，当前光标所在处字体大小值集合
engine.command.queryState('fontsize');
```
npm package: @hanfy/plugin-heading
Description: 标题样式插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-heading

标题样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-heading
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Heading from '@hanfy/plugin-heading';

new Engine(...,{ plugins:[Heading] })
```

## 可选项

### 锚点

开启后在标题左边出现可复制锚点按钮

```ts
showAnchor?: boolean;
```

当点击复制锚点的时候触发，传入当前标题的 id 值，返回的内容将写入到用户的粘贴板上，默认将返回当前 url+id

```ts
anchorCopy?:(id:string) => string
```

### 快捷键

```ts
//快捷键
hotkey?: {
    h1?: string;//标题1，默认 mod+opt+1
    h2?: string;//标题2，默认 mod+opt+2
    h3?: string;//标题3，默认 mod+opt+3
    h4?: string;//标题4，默认 mod+opt+4
    h5?: string;//标题5，默认 mod+opt+5
    h6?: string;//标题6，默认 mod+opt+6
};
//使用配置
new Engine(...,{
    config:{
        "heading":{
            //修改快捷键
            hotkey:{
                h1:"快捷键"
            }
        }
    }
 })
```

### 禁用 mark 插件样式效果

可以在标题下禁用 mark 插件效果，默认禁用 ['fontsize', 'bold'] ，在分割、粘贴等情况下过滤掉这些插件样式

```ts
disableMark?: Array<string> //mark插件名称集合
```

### 要启用的类型（h1 h2 h3 h4 h5 h6）

可以定义 h1 - h6 所需要的节点类型，如果不定义则支持全部

```ts
enableTypes?: Array<string>
```

另外可能还需要配置 toolbar 中 items 属性的 heading 插件

```ts
{
    type: 'dropdown',
    name: 'heading',
    items: [
        {
            key: "p",
            className: 'heading-item-p',
            content: "正文"
        },
        {
            key: "h1",
            className: 'heading-item-h1',
            content: "标题1"
        }
    ]
    }
```

## 命令

传入 `p` 或当前标题样式与当前传入值一致 时将取消标题

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute(
	'heading',
	'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p',
);
//使用 command 执行查询当前状态，返回 string | undefined，返回 "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p"
engine.command.queryState('heading');
```
npm package: @hanfy/plugin-hr
Description: 分割线插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-hr

分割线插件

## 安装

```bash
$ yarn add @hanfy/plugin-hr
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Hr , { HrComponent } from '@hanfy/plugin-hr';

new Engine(...,{ plugins:[Hr] , cards:[HrComponent]})
```

## 可选项

### 快捷键

默认快捷键 `mod+shift+e`

```ts
hotkey?:string;//默认mod+shift+e

//使用配置
new Engine(...,{
    config:{
        "hr":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('hr');
```
npm package: @hanfy/plugin-indent
Description: 缩进插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-indent

缩进插件

## 安装

```bash
$ yarn add @hanfy/plugin-indent
```

添加到引擎

此插件建议放在第一个增加，以免其它插件拦截了事件，使其无法生效

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Indent from '@hanfy/plugin-indent';

new Engine(...,{ plugins:[Indent] })
```

## 可选项

### 快捷键

默认缩进快捷键 `mod+]`

默认删除缩进快捷键 `mod+[`

```ts
//快捷键，
hotkey?: {
    in?:string //缩进快捷键，默认 mod+]
    out?:string //删除缩进快捷键，默认 mod+[
};

//使用配置
new Engine(...,{
    config:{
        "indent":{
            //修改快捷键
            hotkey:{
                "in":"快捷键",
                "out":"快捷键"
            }
        }
    }
 })
```

### 最大 padding

最大 padding，每次缩进为 2

```ts
maxPadding?:number
```

## 命令

有一个参数 默认为 `in` ,可选值为 `in` 增加缩进，`out` 减少缩进

```ts
engine.command.execute('indent');
//使用 command 执行查询当前状态，返回 numbber，当前缩进值
engine.command.queryState('indent');
```
npm package: @hanfy/plugin-italic
Description: 斜体样式插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-italic

斜体样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-italic
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Italic from '@hanfy/plugin-italic';

new Engine(...,{ plugins:[Italic] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+i`，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "italic":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('italic');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('italic');
```
npm package: @hanfy/plugin-lightblock
Description: 高亮块、提示框插件(React)
Author: hemingming.byte@bytedance.com
Latest version: 1.1.5

# @hanfy/plugin-lightblock

高亮块、提示框插件(React)

## 安装

```bash
$ yarn add @hanfy/plugin-lightblock
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import lightblock from '@hanfy/plugin-lightblock';

new Engine(...,{ plugins:[lightblock] })
```

## 命令

```ts
//使用 command 执行插件
engine.command.execute('lightblock');
```
npm package: @hanfy/plugin-line-height
Description: 行高插件
Author: me@hanfy.com
Latest version: 2.10.6

# @hanfy/plugin-line-height

行高插件

## 安装

```bash
$ yarn add @hanfy/plugin-line-height
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Lineheight from '@hanfy/plugin-line-height';

new Engine(...,{ plugins:[Lineheight] })
```

## 可选项

### 粘贴过滤自定义行高

支持过滤不符合自定义的行高

```ts
/**
 * @param lineHeight 当前行高
 * @returns 返回 string 修改当前值，false 移除，true 保留
 * */
filter?: (lineHeight: string) => string | boolean
//配置
new Engine(...,{
    config:{
        [LineHeihgt.pluginName]: {
            //配置粘贴后需要过滤的行高
            filter: (lineHeight: string) => {
                if(lineHeight === "14px") return "1"
                if(lineHeight === "16px") return "1.15"
                if(lineHeight === "21px") return "1.5"
                if(lineHeight === "28px") return "2"
                if(lineHeight === "35px") return "2.5"
                if(lineHeight === "42px") return "3"
                return ["1","1.15","1.5","2","2.5","3"].indexOf(lineHeight) > -1
            }
        }
    }
}
```

### 快捷键

默认无快捷键

```ts
//快捷键，key 组合键，args，执行参数，[lineHeight] ， lineHeight 可选，不传值删除当前光标位置的行高
hotkey?:{key:string,args:Array<string>};//默认无

//使用配置
new Engine(...,{
    config:{
        "line-height":{
            //修改快捷键
            hotkey:{
                key:"mod+b",
                args:["2"]
            }
        }
    }
 })
```

## 命令

```ts
//lineHeight：更改的行高
engine.command.execute('line-height', lineHeight);
//使用 command 执行查询当前状态，返回 Array<string> | undefined，当前光标所在处行高值集合
engine.command.queryState('line-height');
```
npm package: @hanfy/plugin-link
Description: > TODO: description
Author: me@hanfy.com
Latest version: 2.10.6

# @hanfy/plugin-link

链接插件

## 安装

```bash
$ yarn add @hanfy/plugin-link
```

`Vue` 使用

```bash
$ yarn add @hanfy/plugin-link-vue
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Link from '@hanfy/plugin-link';

new Engine(...,{ plugins:[Link] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+k`，默认参数为 ["_blank"]

```ts
//快捷键，key 组合键，args，执行参数，[target?:string,href?:string,text?:string] 打开模式：可选，默认链接：可选，默认文本：可选
hotkey?:string | {key:string,args:Array<string>};

//使用配置
new Engine(...,{
    config:{
        "link":{
            //修改快捷键
            hotkey:{
                key:"mod+k",
                args:["_balnk_","https://www.aomao.com","ITELLYOU"]
            }
        }
    }
 })
```

## 命令

可传入三个参数[target?:string,href?:string,text?:string] 打开模式：可选，默认链接：可选，默认文本：可选

```ts
//target:'_blank', '_parent', '_top', '_self'，href:链接，text:文字
engine.command.execute('link', '_blank', 'https://www.aomao.com', 'ITELLYOU');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('link');
```
npm package: @hanfy/plugin-link-vue
Description: > TODO: description
Author: me@hanfy.com
Latest version: 2.10.6

# @hanfy/plugin-link-vue

链接插件

## 安装

```bash
$ yarn add @hanfy/plugin-link-vue
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Link from '@hanfy/plugin-link';

new Engine(...,{ plugins:[Link] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+k`，默认参数为 ["_blank"]

```ts
//快捷键，key 组合键，args，执行参数，[target?:string,href?:string,text?:string] 打开模式：可选，默认链接：可选，默认文本：可选
hotkey?:string | {key:string,args:Array<string>};

//使用配置
new Engine(...,{
    config:{
        "link":{
            //修改快捷键
            hotkey:{
                key:"mod+k",
                args:["_balnk_","https://www.aomao.com","ITELLYOU"]
            }
        }
    }
 })
```

## 命令

可传入三个参数[target?:string,href?:string,text?:string] 打开模式：可选，默认链接：可选，默认文本：可选

```ts
//target:'_blank', '_parent', '_top', '_self'，href:链接，text:文字
engine.command.execute('link', '_blank', 'https://www.aomao.com', 'ITELLYOU');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('link');
```
npm package: @hanfy/plugin-mark
Description: 标记样式插件
Author: me@hanfy.com
Latest version: 2.10.5

# @hanfy/plugin-mark

标记样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-mark
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Mark from '@hanfy/plugin-mark';

new Engine(...,{ plugins:[Mark] })
```

## 可选项

### 快捷键

默认快捷键无，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "mark":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('mark');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('orderedlist');
```
npm package: @hanfy/plugin-math
Description: Math（数学公式）
Latest version: 2.10.12

# @hanfy/plugin-math

数学公式

## 安装

```bash
$ yarn add @hanfy/plugin-math
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Math , { MathComponent } from '@hanfy/plugin-math';

new Engine(...,{ plugins:[ Math ] , cards:[ MathComponent ]})
```

## `Math` 可选项

```ts
//使用配置
new Engine(...,{
    config:{
        [Math.pluginName]:{
            //...相关配置
        }
    }
 })
```

### 请求生成公式代码为图片或 SVG

`action`: 请求地址，始终使用 `POST` 请求

`type`: 默认为 `json`

`contentType`: 默认以 `application/json` 类型发起请求

`data`: 请求时将这些数据一起`POST`到服务端

```ts
/**
 * 请求生成公式svg地址
 */
action: string;
/**
 * 数据返回类型，默认 json
 */
type?: '*' | 'json' | 'xml' | 'html' | 'text' | 'js';
/**
 * 额外携带数据上传
 */
data?: Record<string, RequestDataValue> | FormData | (() => Promise<Record<string, RequestDataValue> | FormData>)
/**
 * 请求类型，默认 application/json;
 */
contentType?: string;
```

配置后，插件会使用 `content` 字段 POST 到指定的 `action` 地址，里面包含了公式代码

### 解析服务端响应数据

默认会查找

公式对应图片地址或`SVG`代码：response.url || response.data && response.data.url

`result`: true 生成成功，data 为公式对应图片地址或`SVG`代码。false 生成失败，data 为错误消息

```ts
/**
 * 解析生成后的Respone，返回 result:是否成功，data:成功：公式对应图片地址或`SVG`代码，失败：错误信息
 */
parse?: (
    response: any,
) => {
    result: boolean;
    data: string;
};
```

### 画图接口

可以使用 `https://g.aomao.com/latex` 地址生成公式对应的 `SVG` 代码。该项目使用[mathjax](https://www.mathjax.org/) 生成 `SVG` 代码

演示站点：[https://drawing.aomao.com/](https://drawing.aomao.com/)

配置：

```ts
[Math.pluginName]: {
    action: `https://g.aomao.com/latex`,
    parse: (res: any) => {
        if(res.success) return { result: true, data: res.svg}
        return { result: false}
    }
}
```

## 命令

### 插入公式代码

参数 1：公式代码

参数 2：公式对应图片地址或`SVG`代码

```ts
engine.command.execute(
	Math.pluginName,
	'公式代码', //可选
	'公式对应图片地址或`SVG`代码', //可选
);
```

### 请求生成公式代码图片或 SVG

参数 1：固定为 `query`
参数 2：成功后的回调
参数 3：失败后的回调。可选

```ts
engine.command.execute(Math.pluginName, "query", success:(url: string) => void, failed: (message: string) => void);
```
npm package: @hanfy/plugin-mermaid
Description: mermaid
Author: 18576648902@163.com
Latest version: 2.10.12

# @hanfy/plugin-mermaid

mermaid 插件 (支持 markdown 语法生成 mermaid 图表)

## 安装

```bash
$ yarn add @hanfy/plugin-mermaid
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Mermaid , { MermaidComponent } from '@hanfy/plugin-mermaid';

new Engine(...,{ plugins:[Mermaid] , cards:[MermaidComponent]})
```

## 语法

```mermaid
	mermaid 语法（目前支持流程图、时序图、饼图、甘特图、gitGraph、erDiagram、journey、stateDiagram）
```

ps:
语法参考：
1、https://mermaid-js.github.io/mermaid-live-editor/edit#pako:eNptjzsOwjAQRK-ybEtyARdBSBSEljbNypmQSP6AYwtFiLtjB-jSjWbfW2lerH0PVtw5ohmPBKdxmuQWxJaK6Ggmjbpp9hc_OkVnGOOp5IpG_yQJoMWnwyb8xbS4gtAICWTxQ8utzmi9Ovnx9LUraldjpbO228ZbGgBDtwCJO67YIliZ-rzkVYSO4wiLjlWOPQZJJnZ55DujkqK_Lk6ziiGh4nTvJf5HsxrEzHh_AOMAWgk

2、https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference

```mermaid
	sequenceDiagram
		participant Alice
		participant Bob
		Alice->>John: Hello John, how are you?
		loop Healthcheck
			John->>John: Fight against hypochondria
		end
		Note right of John: Rational thoughts <br/>prevail!
		John-->>Alice: Great!
		John->>Bob: How about you?
		Bob-->>John: Jolly good!
```

## 命令

```ts
// 可携带参数，第二个mermaid语法
engine.command.execute(
	'mermaid',
	`sequenceDiagram
		participant Alice
		participant Bob
		Alice->>John: Hello John, how are you?
		loop Healthcheck
			John->>John: Fight against hypochondria
		end
		Note right of John: Rational thoughts <br/>prevail!
		John-->>Alice: Great!
		John->>Bob: How about you?
		Bob-->>John: Jolly good!`,
);
```
npm package: @hanfy/plugin-mulit-codeblock
Description: 多功能代码块
Author: hemingming.byte@bytedance.com
Latest version: 2.10.12

# @hanfy/plugin-mulit-codeblock

多功能代码块组件(React)

## 安装

```bash
$ yarn add @hanfy/plugin-mulit-codeblock
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import mulit_codeblock from '@hanfy/plugin-mulit-codeblock';

new Engine(...,{ plugins:{
	[mulit_codeblock]: {
		/* 支持的语言 查看 https://codemirror.net/5/mode/index.html */
		language: [] // 配置语言
	}
}})
```

## 命令

```ts
//使用 command 执行插件
engine.command.execute('mulit_codeblock');

/*
	::: code 
	::: code(javascript,html,css) 可以实现快捷插入
*/
```
npm package: @hanfy/plugin-orderedlist
Description: 有序列表插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-orderedlist

有序列表插件

## 安装

```bash
$ yarn add @hanfy/plugin-orderedlist
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Orderedlist from '@hanfy/plugin-orderedlist';

new Engine(...,{ plugins:[Orderedlist] })
```

## 可选项

### 快捷键

默认快捷键`mod+shift+7`

```ts
//快捷键
hotkey?: string | Array<string>;//默认mod+shift+7
//使用配置
new Engine(...,{
    config:{
        "orderedlist":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

有一个参数 `start:number` 默认为 1，表示列表开始序号

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('orderedlist', 1);
//使用 command 执行查询当前状态，返回 false 或者当前列表插件名称 orderedlist tasklist unorderedlist
engine.command.queryState('orderedlist');
```
npm package: @hanfy/plugin-paintformat
Description: 格式刷插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-paintformat

格式刷插件

支持所有 mark 标签插件

block 支持以下插件：`@hanfy/plugin-heading` `@hanfy/plugin-orderlist` `@hanfy/plugin-unorderedlist`

## 安装

```bash
$ yarn add @hanfy/plugin-paintformat
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Paintformat from '@hanfy/plugin-paintformat';

new Engine(...,{ plugins:[Paintformat] })
```

## 可选项

### 移除

移除样式命令，或提供方法。默认为 removeformat ，需要添加 `@hanfy/plugin-removeformat` 插件

```ts
removeCommand?:string | ((range:RangeInterface) => void);
```

### 绘制

如何绘制 block 节点，返回 false，不执行内置绘制，包括不复制 block 节点的 css 样式

```ts
/**
 * @param currentBlock 当前需要绘制的节点
 * @param block 需要被复制格式的节点
 * */
paintBlock?:(currentBlock:NodeInterface,block:NodeInterface) => boolean | void
```

## 命令

```ts
//使用 command 执行插件
engine.command.execute('paintformat');
//使用 command 执行查询当前状态，返回 boolean
engine.command.queryState('paintformat');
```
npm package: @hanfy/plugin-quote
Description: 引用样式插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-quote

引用样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-quote
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Quote from '@hanfy/plugin-quote';

new Engine(...,{ plugins:[Quote] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+shift+u`

```ts
//快捷键
hotkey?: string | Array<string>;
//使用配置
new Engine(...,{
    config:{
        "quote":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('quote');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('quote');
```
npm package: @hanfy/plugin-redo
Description: 重做历史插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-redo

重做历史插件

## 安装

```bash
$ yarn add @hanfy/plugin-redo
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Redo from '@hanfy/plugin-redo';

new Engine(...,{ plugins:[Redo] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+y` `shift+mod+y`

```ts
//快捷键
hotkey?: string | Array<string>;
//使用配置
new Engine(...,{
    config:{
        "redo":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('redo');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('redo');
```
npm package: @hanfy/plugin-removeformat
Description: 移除样式插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-removeformat

移除样式插件

移除所有 mark 标签插件

移除所有 block 样式

## 安装

```bash
$ yarn add @hanfy/plugin-removeformat
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Removeformat from '@hanfy/plugin-removeformat';

new Engine(...,{ plugins:[Removeformat] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+\`

```ts
//快捷键
hotkey?: string | Array<string>;
//使用配置
new Engine(...,{
    config:{
        "redo":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
//使用 command 执行插件
engine.command.execute('removeformat');
```
npm package: @hanfy/plugin-selectall
Description: 全选插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-selectall

全选插件

## 安装

```bash
$ yarn add @hanfy/plugin-selectall
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Selectall from '@hanfy/plugin-selectall';

new Engine(...,{ plugins:[Selectall] })
```

## 快捷键

快捷键为 `mod+a`，不可修改

## 命令

```ts
//使用 command 执行插件
engine.command.execute('selectall');
```
npm package: @hanfy/plugin-status
Description: 状态插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-status

状态插件

## 安装

```bash
$ yarn add @hanfy/plugin-status
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Status , { StatusComponent } from '@hanfy/plugin-status';

new Engine(...,{ plugins:[Status] , cards:[StatusComponent]})
```

## 可选项

### 快捷键

默认无快捷键

```ts
hotkey?:string;

//使用配置
new Engine(...,{
    config:{
        "status":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

### 自定义颜色

可以通过 `StatusComponent.colors` 修改或增加到默认颜色列表中

```ts
new Engine(...,{
    config:{
        "status":{
            colors: Array<{
								background: string,
								color: string
						}>
        }
    }
})
```

-   `background` 背景颜色
-   `color` 字体颜色

```ts
//默认颜色列表
[
	{
		background: '#FFE8E6',
		color: '#820014',
	},
	{
		background: '#FCFCCA',
		color: '#614700',
	},
	{
		background: '#E4F7D2',
		color: '#135200',
	},
	{
		background: '#E9E9E9',
		color: '#595959',
	},
	{
		background: '#D4EEFC',
		color: '#003A8C',
	},
	{
		background: '#DEE8FC',
		color: '#061178',
	},
];
```

## 命令

```ts
engine.command.execute('status');
```
npm package: @hanfy/plugin-strikethrough
Description: 删除线样式插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-strikethrough

删除线样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-strikethrough
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Strikethrough from '@hanfy/plugin-strikethrough';

new Engine(...,{ plugins:[Strikethrough] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+shift+x`，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "strikethrough":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('strikethrough');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('strikethrough');
```
npm package: @hanfy/plugin-sub
Description: 下标样式插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-sub

下标样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-sub
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Sub from '@hanfy/plugin-sub';

new Engine(...,{ plugins:[Sub] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+,`，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "sub":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('sub');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('sub');
```
npm package: @hanfy/plugin-sup
Description: 上标样式插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-sup

上标样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-sup
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Sup from '@hanfy/plugin-sup';

new Engine(...,{ plugins:[Sup] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+.`，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "sup":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('sup');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('sup');
```
npm package: @hanfy/plugin-table
Description: table plugin
Author: AoMao
Latest version: 2.10.12

# @hanfy/plugin-table

表格插件

## 安装

```bash
$ yarn add @hanfy/plugin-table
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Table, { TableComponent } from '@hanfy/plugin-table';

new Engine(...,{ plugins:[Table] , cards:[TableComponent]})
```

## 可选项

### 快捷键

默认无快捷键

```ts
//快捷键，key 组合键，args，执行参数，[rows?: string, cols?: string] 行数：默认3行，列数：默认3列
hotkey?:string | {key:string,args:Array<string>};//默认无

//使用配置
new Engine(...,{
    config:{
        "table":{
            //修改快捷键
            hotkey:{
                key:"mod+t",
                args:[5,5]
            }
        }
    }
 })
```

### 溢出展示，需要开启 `enableScroll` 才能生效

```ts
overflow?: {
    // 相对编辑器左侧最大能展示的宽度
    maxLeftWidth?: () => number;
    // 相对于编辑器右侧最大能展示的宽度
    maxRightWidth?: () => number;
};
```

### 最小列宽

```ts
colMinWidth: number; //默认40
```

### 最小行高

```ts
rowMinHeight: number; //默认30
```

### 一次最大插入的行/列

```ts
maxInsertNum: number; //默认50
```

### 是否启用滚动条

```ts
enableScroll: boolean; //默认true
```

## 命令

```ts
//可携带两个参数，行数，列数，都是可选的
engine.command.execute('table', 5, 5);
```
npm package: @hanfy/plugin-tag
Description: 任务列表插件
Author: hemingming.byte@bytedance.com
Latest version: 2.10.12

# @hanfy/plugin-tag

任务列表插件

## 安装

```bash
$ yarn add @hanfy/plugin-tag
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Tag , { TagComponent } from '@hanfy/plugin-tag';

new Engine(...,{ plugins:[Tag] , cards:[TagComponent] })
```

## 可选项

```ts
//快捷键
hotkey?: string | Array<string>;//默认mod+shift+9
//使用配置
new Engine(...,{
    config:{
        "tasklist":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('tag');
//使用 command 执行查询当前状态，返回 false 或者当前列表插件名称 tasklist tasklist unorderedlist
engine.command.queryState('tag');
```
npm package: @hanfy/plugin-tasklist
Description: 任务列表插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-tasklist

任务列表插件

## 安装

```bash
$ yarn add @hanfy/plugin-tasklist
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Tasklist , { CheckboxComponent } from '@hanfy/plugin-tasklist';

new Engine(...,{ plugins:[Tasklist] , cards:[CheckboxComponent] })
```

## 可选项

### 快捷键

默认快捷键`mod+shift+9`

```ts
//快捷键
hotkey?: string | Array<string>;//默认mod+shift+9
//使用配置
new Engine(...,{
    config:{
        "tasklist":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

可传入 { checked:true } 表示选中，可选参数

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('tasklist', { checked: boolean });
//使用 command 执行查询当前状态，返回 false 或者当前列表插件名称 tasklist tasklist unorderedlist
engine.command.queryState('tasklist');
```
npm package: @hanfy/plugin-underline
Description: 下划线样式插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-underline

下划线样式插件

## 安装

```bash
$ yarn add @hanfy/plugin-underline
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Underline from '@hanfy/plugin-underline';

new Engine(...,{ plugins:[Underline] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+u`，以数组形式传入多个快捷键

```ts
//快捷键，
hotkey?: string | Array<string>;

//使用配置
new Engine(...,{
    config:{
        "underline":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
engine.command.execute('underline');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('underline');
```
npm package: @hanfy/plugin-undo
Description: 撤销历史插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-undo

撤销历史插件

## 安装

```bash
$ yarn add @hanfy/plugin-undo
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Undo from '@hanfy/plugin-undo';

new Engine(...,{ plugins:[Undo] })
```

## 可选项

### 快捷键

默认快捷键为 `mod+z` `shift+mod+z`

```ts
//快捷键
hotkey?: string | Array<string>;
//使用配置
new Engine(...,{
    config:{
        "undo":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('undo');
//使用 command 执行查询当前状态，返回 boolean | undefined
engine.command.queryState('undo');
```
npm package: @hanfy/plugin-unorderedlist
Description: 无序列表插件
Author: me@hanfy.com
Latest version: 2.10.12

# @hanfy/plugin-unorderedlist

无序列表插件

## 安装

```bash
$ yarn add @hanfy/plugin-unorderedlist
```

添加到引擎

```ts
import Engine, { EngineInterface } from '@hanfy/engine';
import Unorderedlist from '@hanfy/plugin-unorderedlist';

new Engine(...,{ plugins:[Unorderedlist] })
```

## 可选项

### 快捷键

默认快捷键`mod+shift+8`

```ts
//快捷键
hotkey?: string | Array<string>;//默认mod+shift+8
//使用配置
new Engine(...,{
    config:{
        "unorderedlist":{
            //修改快捷键
            hotkey:"快捷键"
        }
    }
 })
```

## 命令

```ts
//使用 command 执行插件、并传入所需参数
engine.command.execute('unorderedlist');
//使用 command 执行查询当前状态，返回 false 或者当前列表插件名称 unorderedlist tasklist unorderedlist
engine.command.queryState('unorderedlist');
```
npm package: @hang-gliding-dinosaur/generate-sitemap
Description: Generates a site map from a repository
Author: Iestyn Gage
Latest version: 1.0.1

# Generate sitemap

This project scans a directory and creates a `sitemap.xml` with all the html files.

**sitemap** - A xml file that lists all the html files. This is used by web crawls to index every file on a website.