You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
layui/docs/code/detail/options.md

396 lines
6.6 KiB

2 years ago
<table class="layui-table">
<colgroup>
<col width="150">
<col>
<col width="100">
<col width="100">
</colgroup>
<thead>
<tr>
<th>属性名</th>
<th>描述</th>
<th>类型</th>
<th>默认值</th>
</tr>
</thead>
<tbody>
<tr>
<td>elem</td>
<td>
绑定元素选择器或 DOM 对象
</td>
<td>string/DOM</td>
<td>-</td>
</tr>
<tr>
<td>code <sup>2.8.18+</sup></td>
<td>
设置原始 code 值,默认取目标元素中的内容
</td>
<td>string</td>
2 years ago
<td>-</td>
</tr>
<tr>
<td>preview <sup>2.8+</sup></td>
<td>
是否开启 Code 预览功能,可选值有:
- `true` 开启 Code 的普通预览
- `false` 关闭 Code 预览(默认)
- `"iframe"` 开启 Code 在 iframe 模式中预览
当开启该属性时,`elem` 指定的元素需要设置成以下结构:
```
<pre class="layui-code" lay-options="{}">
<textarea>
code content
</textarea>
</pre>
```
</td>
<td>boolean<br>string</td>
<td>
`false`
</td>
</tr>
<tr>
<td>layout <sup>2.8+</sup></td>
<td>
开启预览后的面板布局方式,值为一个数组,数组的可选成员有:
- `code` 代码区域
- `preview` 预览区域
面板将根据数组的排列顺序来显示,如:
```
layout: ['code', 'preview']
```
</td>
<td>array</td>
<td>-</td>
</tr>
<tr>
<td>style <sup>2.8+</sup></td>
<td>
设置 Code 和预览区域的公共样式
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>codeStyle <sup>2.8+</sup></td>
<td>
设置 Code 区域的局部样式,优先级高于 `style` 属性
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>previewStyle <sup>2.8+</sup></td>
<td>
设置预览区域的局部样式,优先级高于 `style` 属性
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>id <sup>2.8+</sup></td>
<td>
设置实例的唯一索引,以便用于其他操作
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>className <sup>2.8+</sup></td>
<td>
追加实例面板的 `className`,以便对其自定义样式
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>tools <sup>2.8+</sup></td>
<td>
用于开启 `preview` 属性后的面板头部右侧区域工具栏图标,值为一个数组,内置成员:
- `copy` <sup>2.8.2+</sup> : 代码复制
- `full` : 最大化显示
- `window` : 在新窗口预览。一般当 `layout: 'iframe'` 时开启,且 code 中须包含完整的 HTML 方可在新窗口正常预览。
2 years ago
工具图标将根据数组的排列顺序来显示,如:
```
tools: [
'full',
'window',
// 自定义扩展工具 --- 2.8.17+
{
title: ['切换高亮主题'],
type: 'theme',
event: function(obj) {
console.log(obj); // 当前实例相关信息
// do something
}
}
]
2 years ago
```
`type` 值对应[图标](../icon/) `className``layui-icon-` 后的名称。如图标:`layui-icon-theme`,那么 `type` 设置 `theme` 即可。
2 years ago
</td>
<td>array</td>
<td>-</td>
</tr>
<tr>
<td>toolsEvent <sup>2.8+</sup></td>
<td>
点击工具栏的回调函数,功能同 `tools` 中的 `event`,只是需通过 `type` 属性来区分是哪个工具菜单。
2 years ago
```
toolsEvent: function(obj){
console.log(obj); // 当前实例相关信息
console.log(obj.type); // 当前实例相关信息
2 years ago
}
```
通过该函数与 `tools` 属性的搭配,可实现对工具栏的扩展。
</td>
<td>function</td>
<td>-</td>
</tr>
<tr>
<td>copy <sup>2.8.2+</sup></td>
<td>
用于开启代码复制功能图标。若开启 `priview`,则自动放置在 `tools` 属性中,复制图标将显示在容器右上角工具栏;若未开启 `priview`,则显示在 code 区域右上角。
</td>
<td>boolean</td>
<td>
`true`
</td>
</tr>
<tr>
2 years ago
<td>text <sup>2.8+</sup></td>
<td>
自定义默认文本,值为一个对象,可选成员有:
```
text: {
code: '代码栏标题', // 默认: </>
preview: '预览栏标题' // 默认: Preview
}
```
</td>
<td>object</td>
<td>-</td>
</tr>
<tr>
<td>header <sup>2.8+</sup></td>
<td>
是否开启 Code 栏头部区域。
2 years ago
</td>
<td>boolean</td>
<td>
`false`
</td>
</tr>
<tr>
<td>ln</td>
<td>
是否显示 Code 区域的行号
</td>
<td>boolean</td>
<td>
`true`
</td>
</tr>
<tr>
<td>theme <sup>2.8.17+</sup></td>
2 years ago
<td>
Code 容器的主题风格,可选值有:
2 years ago
- `light` 浅色模式(默认)
- `dark` 深色模式
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>encode</td>
<td>
是否对 code 中的 html 进行编码(转义)。
2 years ago
</td>
<td>boolean</td>
<td>
`true`
2 years ago
</td>
</tr>
<tr>
<td>lang <sup>2.8.17+</sup></td>
<td>
指定语言类型。如:`lang: 'html'`
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>langMarker <sup>2.8.17+</sup></td>
<td>
是否在代码区域右上角显示语言类型
</td>
<td>boolean</td>
<td>
`false`
</td>
</tr>
<tr>
<td>wordWrap <sup>2.8.17+</sup></td>
<td>
Code 文字是否自动换行
</td>
<td>boolean</td>
<td>
`true`
</td>
</tr>
<tr>
<td>highlighter <sup>2.8.17+</sup></td>
<td>
设置语法高亮器,可选值:
- `hljs` : 指定 `highlight.js`
- `prism` : 指定 `prism.js`
- `shiki` : 指定 `shiki.js`
注:对应的语法高亮器 JS 库和相关主题 CSS 需自主引入,该属性仅用于内部适配。
</td>
<td>string</td>
<td>-</td>
</tr>
<tr>
<td>
[codeRender](#options.codeRender) <sup>2.8+</sup>
</td>
<td colspan="3">
<div id="options.codeRender" lay-pid="options" class="ws-anchor">
用于重新渲染 code譬如代码高亮处理。
</div>
```
codeRender: function(code, opts){
// 此处以 highlight.js 为例
return hljs.highlight(code, {language: opts.lang}).value;
}
```
code 组件语法高亮相关示例:
- <a href="https://stackblitz.com/edit/web-platform-hhftb4?file=index.html" rel="nofollow" target="_blank">highlight 和 prism 语法高亮示例</a>
- <a href="https://codepen.io/Sight-wcg/pen/GRPjQyG" rel="nofollow" target="_blank">shiki 语法高亮示例</a>
2 years ago
</td>
</tr>
<tr>
<td>
[done](#options.done) <sup>2.8+</sup>
</td>
<td colspan="3">
<div id="options.done" lay-pid="options" class="ws-anchor">
2 years ago
组件渲染完毕的回调函数,函数返回一个 object 类型参数
</div>
```
done: function(obj){
var container = obj.container; // 当前面板的容器对象
obj.render(); // 对预览中的 `element,form` 等组件进行渲染
}
```
</td>
</tr>
<tr>
<td>
[onCopy](#options.onCopy) <sup>2.8.2+</sup>
</td>
<td colspan="3">
<div id="options.onCopy" lay-pid="options" class="ws-anchor">
点击复制图标时的回调函数。
</div>
```
onCopy: function(code){
console.log(code); // 得到当前 code 内容
}
```
2 years ago
</td>
</tr>
</tbody>
</table>