diff --git a/build/generate-search-data.js b/build/generate-search-data.js
index 057c4f32..87fa9bb9 100644
--- a/build/generate-search-data.js
+++ b/build/generate-search-data.js
@@ -30,9 +30,8 @@ glob('./docs/**/*.md', {}, function (er, docs) {
.replace(/!?\[.*\]\(.*\)/g, '')
.replace(/\n/g, '')
.replace(/```.*```/g, '')
-
.toLowerCase(),
- path: doc.replace('.md', '')
+ path: doc.slice(1).replace('.md', '')
});
}
fs.writeFileSync('./examples/docs.json', JSON.stringify(resultData));
diff --git a/examples/components/DocSearch.jsx b/examples/components/DocSearch.jsx
index e9148255..c1c14c0e 100644
--- a/examples/components/DocSearch.jsx
+++ b/examples/components/DocSearch.jsx
@@ -5,6 +5,12 @@ import React from 'react';
import Axios from 'axios';
import SearchBox from '../../src/components/SearchBox';
+let ContextPath = '';
+
+if (process.env.NODE_ENV === 'production') {
+ ContextPath = '/amis';
+}
+
export default class DocSearch extends React.Component {
docs = [];
constructor(props) {
@@ -74,7 +80,7 @@ export default class DocSearch extends React.Component {
{searchResults.map(item => {
return (
-
+
{item.title}
diff --git a/examples/docs.json b/examples/docs.json
index e4279e67..e8f10baf 100644
--- a/examples/docs.json
+++ b/examples/docs.json
@@ -1 +1,584 @@
-{"docs":[{"title":"Action 行为按钮","body":"action 行为按钮,是触发页面行为的主要方法之一## 基本用法我们这里简单实现一个点击按钮弹框的交互。## 通用属性表所有`actiontype`都支持的通用配置项| 属性名 | 类型 | 默认值 | 说明 || ---------------- | ---------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- || type | `string` | `action` | 指定为 page 渲染器。 || actiontype | `string` | - | 【必填】这是 action 最核心的配置,来指定该 action 的作用类型,支持:`ajax`、`link`、`url`、`drawer`、`dialog`、`confirm`、`cancel`、`prev`、`next`、`copy`、`close`。 || label | `string` | - | 按钮文本。可用 `${xxx}` 取值。 || level | `string` | `default` | 按钮样式,支持:`link`、`primary`、`secondary`、`info`、`success`、`warning`、`danger`、`light`、`dark`、`default`。 || size | `string` | - | 按钮大小,支持:`xs`、`sm`、`md`、`lg`。 || icon | `string` | - | 设置图标,例如`fa fa-plus`。 || iconclassname | `string` | - | 给图标上添加类名。 || active | `boolean` | - | 按钮是否高亮。 || activelevel | `string` | - | 按钮高亮时的样式,配置支持同`level`。 || activeclassname | `string` | `is-active` | 给按钮高亮添加类名。 || block | `boolean` | - | 用`display:\"block\"`来显示按钮。 || confirmtext | | - | 当设置后,操作在开始前会询问用户。可用 `${xxx}` 取值。 || reload | `string` | - | 指定此次操作完后,需要刷新的目标组件名字(组件的`name`值,自己配置的),多个请用 `,` 号隔开。 || tooltip | `string` | - | 鼠标停留时弹出该段文字,也可以配置对象类型:字段为`title`和`content`。可用 `${xxx}` 取值。 || disabledtip | `string` | - | 被禁用后鼠标停留时弹出该段文字,也可以配置对象类型:字段为`title`和`content`。可用 `${xxx}` 取值。 || tooltipplacement | `string` | `top` | 如果配置了`tooltip`或者`disabledtip`,指定提示信息位置,可配置`top`、`bottom`、`left`、`right`。 || close | `boolean` | - | 当`action`配置在`dialog`或`drawer`的`actions`中时,配置为`true`指定此次操作完后关闭当前`dialog`或`drawer`。 || required | `array
` | - | 配置字符串数组,指定在`form`中进行操作之前,需要指定的字段名的表单项通过验证 |","path":"./docs/components/action"},{"title":"Alert 提示","body":"用来做文字特殊提示,分为四类:提示类、成功类、警告类和危险类。## 基本使用## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------------- | --------------------------------- | --------- | -------------------------------------------------------- || type | `string` | `\"alert\"` | 指定为 alert 渲染器 || classname | `string` | | 外层 dom 的类名 || level | `string` | `info` | 级别,可以是:`info`、`success`、`warning` 或者 `danger` || body | | | 显示内容 || showclosebutton | `boolean` | false | 是否显示关闭按钮 |","path":"./docs/components/alert"},{"title":"Audio 音频","body":"## 基本使用## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------- | --------- | ------------------------------------------------ | --------------------------------------- || type | `string` | `\"audio\"` | 指定为 audio 渲染器 || classname | `string` | | 外层 dom 的类名 || inline | `boolean` | true | 是否是内联模式 || src | `string` | | 音频地址 || loop | `boolean` | false | 是否循环播放 || autoplay | `boolean` | false | 是否自动播放 || rates | `array` | `[]` | 可配置音频播放倍速如:`[1.0, 1.5, 2.0]` || controls | `array` | `['rates', 'play', 'time', 'process', 'volume']` | 内部模块定制化 |","path":"./docs/components/audio"},{"title":"ButtonGroup 按钮组","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------- | ------------------------- | ---------------- | -------------------------- || type | `string` | `\"button-group\"` | 指定为 button-group 渲染器 || classname | `string` | | 外层 dom 的类名 || buttons | array<> | | 行为按钮组 || vertical | `string` | | 是否使用垂直模式 |","path":"./docs/components/button-group"},{"title":"Button 按钮","body":"## 基本用法button` 实际上是 `action` 的别名,更多用法见","path":"./docs/components/button"},{"title":"Card 卡片","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || ---------------------- | ---------------------------- | ----------------------------------- | -------------------------------------- || type | `string` | `\"card\"` | 指定为 card 渲染器 || classname | `string` | `\"panel-default\"` | 外层 dom 的类名 || header | `object` | | card 头部内容设置 || header.classname | `string` | | 头部类名 || header.title | | | 标题 || header.subtitle | | | 副标题 || header.desc | | | 描述 || header.avatar | | | 图片 || header.avatartext | | | 如果不配置图片,则会在图片处显示该文本 || header.highlight | `boolean` | | 是否显示激活样式 || header.avatarclassname | `string` | `\"pull-left thumb avatar b-3x m-r\"` | 图片类名 || body | `array` | | 内容容器,主要用来放置非表单项组件 || bodyclassname | `string` | `\"padder m-t-sm m-b-sm\"` | 内容区域类名 || actions | array<> | | 配置按钮集合 |","path":"./docs/components/card"},{"title":"Cards 卡片组","body":"卡片展示,不支持配置初始化接口初始化数据域,所以需要搭配类似像`service`这样的,具有配置接口初始化数据域功能的组件,或者手动进行数据域初始化,然后通过`source`属性,获取数据链中的数据,完成数据展示。## 基本用法这里我们使用手动初始数据域的方式,即配置`data`属性,进行数据域的初始化。或者你也可以使用 crud 的 ## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------------- | ------------------------------------ | ------------------- | ------------------------------ || type | `string` | | `\"cards\"` 指定为卡片组。 || title | | | 标题 || source | | `${items}` | 数据源, 获取当前数据域中的变量 || placeholder | | ‘暂无数据’ | 当没数据的时候的文字提示 || classname | `string` | | 外层 css 类名 || headerclassname | `string` | `amis-grid-header` | 顶部外层 css 类名 || footerclassname | `string` | `amis-grid-footer` | 底部外层 css 类名 || itemclassname | `string` | `col-sm-4 col-md-3` | 卡片 css 类名 || card | | | 配置卡片信息 |","path":"./docs/components/cards"},{"title":"Carousel 轮播图","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || ---------------------------- | --------- | -------------------- | ------------------------------------------------------- || type | `string` | `\"carousel\"` | 指定为 carousel 渲染器 || classname | `string` | `\"panel-default\"` | 外层 dom 的类名 || options | `array` | `[]` | 轮播面板数据 || options.image | `string` | | 图片链接 || options.imageclassname | `string` | | 图片类名 || options.title | `string` | | 图片标题 || options.titleclassname | `string` | | 图片标题类名 || options.description | `string` | | 图片描述 || options.descriptionclassname | `string` | | 图片描述类名 || options.html | `string` | | html 自定义,同一致 || itemschema | `object` | | 自定义`schema`来展示数据 || auto | `boolean` | `true` | 是否自动轮播 || interval | `string` | `5s` | 切换动画间隔 || duration | `string` | `0.5s` | 切换动画时长 || width | `string` | `auto` | 宽度 || height | `string` | `200px` | 高度 || controls | `array` | `['dots', 'arrows']` | 显示左右箭头、底部圆点索引 || controlstheme | `string` | `light` | 左右箭头、底部圆点索引颜色,默认`light`,另有`dark`模式 || animation | `string` | fade | 切换动画效果,默认`fade`,另有`slide`模式 |- `type` 请设置成 `carousel`- `classname` 外层 dom 的类名- `options` 轮播面板数据,默认`[]`,支持以下模式 - 图片 - `image` 图片链接 - `imageclassname` 图片类名 - `title` 图片标题 - `titleclassname` 图片标题类名 - `description` 图片描述 - `descriptionclassname` 图片描述类名 - `html` html 自定义,同一致- `itemschema` 自定义`schema`来展示数据- `auto` 是否自动轮播,默认`true`- `interval` 切换动画间隔,默认`5s`- `duration` 切换动画时长,默认`0.5s`- `width` 宽度,默认`auto`- `height` 高度,默认`200px`- `controls` 显示左右箭头、底部圆点索引,默认`['dots', 'arrows']`- `controlstheme` 左右箭头、底部圆点索引颜色,默认`light`,另有`dark`模式- `animation` 切换动画效果,默认`fade`,另有`slide`模式","path":"./docs/components/carousel"},{"title":"Chart 图表","body":"图表渲染器,采用 echarts 渲染,配置格式跟 echarts 相同,## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || ------------------ | ------------------------------------ | --------- | ------------------------------------------------------------------ || type | `string` | `\"chart\"` | 指定为 chart 渲染器 || classname | `string` | | 外层 dom 的类名 || body | | | 内容容器 || api | | | 配置项接口地址 || source | | | 通过数据映射获取数据链中变量值作为配置 || initfetch | `boolean` | | 组件初始化时,是否请求接口 || interval | `number` | | 刷新时间(最低 3000) || config | `object` 或 `string` | | 设置 eschars 的配置项,当为`string`的时候可以设置 function 等配置项 || style | `object` | | 设置根元素的 style || width | `string` | | 设置根元素的宽度 || height | `string` | | 设置根元素的高度 || replacechartoption | `boolean` | `false` | 每次更新是完全覆盖配置项还是追加? |","path":"./docs/components/chart"},{"title":"Collapse 折叠器","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || ---------------- | --------------------------------- | -------------------------------------- | ---------------------- || type | `string` | `\"collapse\"` | 指定为 collapse 渲染器 || title | | | 标题 || body | | | 内容 || classname | `string` | `bg-white wrapper` | css 类名 || headingclassname | `string` | `font-thin b-b b-light text-lg p-b-xs` | 标题 css 类名 || bodyclassname | `string` | | 内容 css 类名。 || collapsed | `boolean` | `false` | 默认是否要收起。 |","path":"./docs/components/collapse"},{"title":"Color 颜色","body":"用于展示颜色## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || ------------ | --------- | ------ | -------------------------------------------------------------------------------------- || type | `string` | | 如果在 table、card 和 list 中,为`\"color\"`;在 form 中用作静态展示,为`\"static-color\"` || classname | `string` | | 外层 css 类名 || value | `string` | | 显示的颜色值 || name | `string` | | 在其他组件中,时,用作变量映射 || defaultcolor | `string` | `#ccc` | 默认颜色值 || showvalue | `boolean` | `true` | 是否显示右边的颜色值 |","path":"./docs/components/color"},{"title":"组件介绍","body":"从这个章节开始,我们将会介绍 amis 中内置的所有组件的使用方法","path":"./docs/components/component"},{"title":"Container 容器","body":"container 是一种容器组件,它可以渲染其他 amis 组件## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || ------------- | --------------------------------- | --------- | ------------------- || type | `string` | `\"alert\"` | 指定为 alert 渲染器 || classname | `string` | | 外层 dom 的类名 || bodyclassname | `string` | | 容器内容区的类名 || body | | | 容器内容 |","path":"./docs/components/container"},{"title":"CRUD 增删改查","body":"crud,即增删改查组件,主要用来展现数据列表,并支持各类【增】【删】【改】【查】等操作。## 基本用法最基本的用法是配置 **数据源接口(api)** 以及 **展示列(columns)**上例使用了数据映射中的`filter`过滤器,在前端实现了`engine`列的搜索功能。> **注意:**如果你的数据量较大,请务必使用服务端分页的方案,过多的前端数据展示,会显著影响前端页面的性能## 属性表| 属性名 | 类型 | 默认值 | 说明 || ------------------------------------- | ------------------------- | ------------------------------- | --------------------------------------------------------------------------------------------------------------------- || type | `string` | | `type` 指定为 crud 渲染器 || mode | `string` | `\"table\"` | `\"table\" 、 \"cards\" 或者 \"list\"` || title | `string` | `\"\"` | 可设置成空,当设置成空时,没有标题栏 || classname | `string` | | 表格外层 dom 的类名 || api | | | crud 用来获取列表数据的 api。 || loaddataonce | `boolean` | | 是否一次性加载所有数据(前端分页) || loaddataoncefetchonfilter | `boolean` | `true` | 在开启 loaddataonce 时,filter 时是否去重新请求 api || source | `string` | | 数据映射接口返回某字段的值,不设置会默认把接口返回的`items`或者`rows`填充进`mode`区域 || filter | | | 设置过滤器,当该表单提交后,会把数据带给当前 `mode` 刷新列表。 || filtertogglable | `boolean` | `false` | 是否可显隐过滤器 || filterdefaultvisible | `boolean` | `true` | 设置过滤器默认是否可见。 || initfetch | `boolean` | `true` | 是否初始化的时候拉取数据, 只针对有 filter 的情况, 没有 filter 初始都会拉取数据 || interval | `number` | `3000` | 刷新时间(最低 3000) || silentpolling | `boolean` | `false` | 配置刷新时是否隐藏加载动画 || stopautorefreshwhen | `string` | `\"\"` | 通过来配置停止刷新的条件 || stopautorefreshwhenmodalisopen | `boolean` | `false` | 当有弹框时关闭自动刷新,关闭弹框又恢复 || synclocation | `boolean` | `true` | 是否将过滤条件的参数同步到地址栏 || draggable | `boolean` | `false` | 是否可通过拖拽排序 || itemdraggableon | `boolean` | | 用来配置是否可拖拽排序 || | | 保存排序的 api。 || | | 快速编辑后用来批量保存的 api。 || | | 快速编辑配置成及时保存时使用的 api。 || bulkactions | array<> | | 批量操作列表,配置后,表格可进行选中操作。 || defaultchecked | `boolean` | `false` | 当可批量操作时,默认是否全部勾选。 || messages | `object` | | 覆盖消息提示,如果不指定,将采用 api 返回的 message || messages.fetchfailed | `string` | | 获取失败时提示 || messages.saveorderfailed | `string` | | 保存顺序失败提示 || messages.saveordersuccess | `string` | | 保存顺序成功提示 || messages.quicksavefailed | `string` | | 快速保存失败提示 || messages.quicksavesuccess | `string` | | 快速保存成功提示 || primaryfield | `string` | `\"id\"` | 设置 id 字段名。 || defaultparams | `object` | | 设置默认 filter 默认参数,会在查询的时候一起发给后端 || pagefield | `string` | `\"page\"` | 设置分页页码字段名。 || perpagefield | `string` | `\"perpage\"` | 设置分页一页显示的多少条数据的字段名。注意:最好与 defaultparams 一起使用,请看下面例子。 || perpageavailable | `array` | `[5, 10, 20, 50, 100]` | 设置一页显示多少条数据下拉框可选条数。 || orderfield | `string` | | 设置用来确定位置的字段名,设置后新的顺序将被赋值到该字段中。 || hidequicksavebtn | `boolean` | `false` | 隐藏顶部快速保存提示 || autojumptotoponpagerchange | `boolean` | `false` | 当切分页的时候,是否自动跳顶部。 || syncresponse2query | `boolean` | `true` | 将返回数据同步到过滤器上。 || keepitemselectiononpagechange | `boolean` | `true` | 保留条目选择,默认分页、搜素后,用户选择条目会被清空,开启此选项后会保留用户选择,可以实现跨页面批量操作。 || labeltpl | `string` | | 单条描述模板,`keepitemselectiononpagechange`设置为`true`后会把所有已选择条目列出来,此选项可以用来定制条目展示文案。 || headertoolbar | array | `['bulkactions', 'pagination']` | 顶部工具栏配置 || footertoolbar | array | `['statistics', 'pagination']` | 底部工具栏配置 |","path":"./docs/components/crud"},{"title":"Date 日期时间","body":"用于展示日期## 基本使用## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------------- | --------- | ------------ | ------------------------------------------------------------------------------------ || type | `string` | | 如果在 table、card 和 list 中,为`\"date\"`;在 form 中用作静态展示,为`\"static-date\"` || classname | `string` | | 外层 css 类名 || value | `string` | | 显示的颜色值 || name | `string` | | 在其他组件中,时,用作变量映射 || placeholder | `string` | `-` | 占位内容 || format | `string` | `yyyy-mm-dd` | 展示格式 || valueformat | `string` | `x` | 数据格式,默认为时间戳 || fromnow | `boolean` | `false` | fromnow || updatefrequency | `boolean` | `false` | updatefrequency |","path":"./docs/components/date"},{"title":"Dialog 对话框","body":"dialog 弹框 主要由 触发,主要展示一个对话框以供用户操作。## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------------- | --------------------------------- | ------------------ | ---------------------------------------------------------------------------------------- || type | `string` | | `\"dialog\"` 指定为 dialog 渲染器 || title | | | 弹出层标题 || body | | | 往 dialog 内容区加内容 || size | `string` | | 指定 dialog 大小,支持: `xs`、`sm`、`md`、`lg` || bodyclassname | `string` | `modal-body` | dialog body 区域的样式类名 || closeonesc | `boolean` | `false` | 是否支持按 `esc` 关闭 dialog || showclosebutton | `boolean` | `true` | 是否显示右上角的关闭按钮 || showerrormsg | `boolean` | `true` | 是否在弹框左下角显示报错信息 || disabled | `boolean` | `false` | 如果设置此属性,则该 dialog 只读没有提交操作。 || actions | array<> | 【确认】和【取消】 | 如果想不显示底部按钮,可以配置:`[]` || data | `object` | | 支持,如果不设定将默认将触发按钮的上下文中继承数据。 |","path":"./docs/components/dialog"},{"title":"Divider 分割线","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------- | -------- | ---------- | ----------------------------------- || type | `string` | | `\"dialog\"` 指定为 dialog 渲染器 || classname | `string` | | 外层 dom 的类名 || linestyle | `string` | `\"dashed\"` | 分割线的样式,支持`dashed`和`solid` |","path":"./docs/components/divider"},{"title":"Drawer 抽屉","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || -------------- | --------------------------------- | ------------------ | ----------------------------------------------------------------------------------------- || type | `string` | | `\"drawer\"` 指定为 drawer 渲染器 || title | | | 弹出层标题 || body | | | 往 drawer 内容区加内容 || size | `string` | | 指定 drawer 大小,支持: `xs`、`sm`、`md`、`lg` || bodyclassname | `string` | `modal-body` | drawer body 区域的样式类名 || closeonesc | `boolean` | `false` | 是否支持按 `esc` 关闭 drawer || closeonoutside | `boolean` | `false` | 点击内容区外是否关闭 drawer || overlay | `boolean` | `true` | 是否显示蒙层 || resizable | `boolean` | `false` | 是否可通过拖拽改变 drawer 大小 || actions | array<> | 【确认】和【取消】 | 可以不设置,默认只有两个按钮。 || data | `object` | | 支持 ,如果不设定将默认将触发按钮的上下文中继承数据。 |","path":"./docs/components/drawer"},{"title":"DropDownButton","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || --------------- | --------------- | ----------------- | ----------------------------------------- || type | `string` | `dropdown-button` | 类型 || label | `string` | | 按钮文本 || classname | `string` | | 外层 css 类名 || block | `boolean` | | 块状样式 || size | `string` | | 尺寸,支持`'xs'`、`'sm'`、`'md'` 、`'lg'` || align | `string` | | 位置,可选`'left'`或`'right'` || buttons | `array` | | 配置下拉按钮 || careticon | `string` | | careticon || icononly | `boolean` | | 只显示icon || defaultisopened | `boolean` | | 默认是否打开 || closeonoutside | `boolean` | | 点击外侧区域是否收起 |","path":"./docs/components/dropdown-button"},{"title":"Each 循环渲染器","body":"## 基本用法## 属性表| 属性名 | 类型 | 默认值 | 说明 || ------ | -------- | -------- | ----------------------------------------------------------- || type | `string` | `\"each\"` | 指定为 each 组件 || value | `array` | `[]` | 用于循环的值 || name | `string` | | 获取数据域中变量,支持 || items | `object` | | 使用`value`中的数据,循环输出渲染器。 |","path":"./docs/components/each"},{"title":"Array 数组输入框","body":" 的一个 flat 用法。## 基本用法## 属性表除了支持 中的配置以外,还支持下面一些配置| 属性名 | 类型 | 默认值 | 说明 || ------------- | --------------------------------- | --------- | ------------------------------------------------------------------------ || type | `string` | `\"array\"` | 指明为`array`组件 || items | `string`或 | | 配置单项表单类型 || addable | `boolean` | | 是否可新增。 || removable | `boolean` | | 是否可删除 || draggable | `boolean` | `false` | 是否可以拖动排序, 需要注意的是当启用拖动排序的时候,会多一个\\$id 字段 || draggabletip | `string` | | 可拖拽的提示文字,默认为:`\"可通过拖动每行中的【交换】按钮进行顺序调整\"` || addbuttontext | `string` | `\"新增\"` | 新增按钮文字 || minlength | `number` | | 限制最小长度 || maxlength | `number` | | 限制最大长度 |","path":"./docs/components/form/array"},{"title":"Button-Group 按钮集合","body":"## 基本用法可以用作按钮组,进行按钮的合并展示。更多属性查看 。## 属性表当做选择器表单项使用时,除了支持 中的配置以外,还支持下面一些配置| 属性名 | 类型 | 默认值 | 说明 || ------------ | --------------------------------- | --------- | ------------------------------------------------------------------------------------------- || options | `array