2021-05-07 22:31:19 +00:00
|
|
|
/**
|
2022-06-24 02:16:50 +00:00
|
|
|
* code
|
|
|
|
* 代码区简易修饰
|
2017-08-21 00:51:13 +00:00
|
|
|
*/
|
|
|
|
|
2022-06-24 02:16:50 +00:00
|
|
|
layui.define(['util'], function(exports){
|
2017-08-21 00:51:13 +00:00
|
|
|
"use strict";
|
|
|
|
|
|
|
|
var $ = layui.$;
|
2022-06-24 02:16:50 +00:00
|
|
|
var util = layui.util;
|
2017-08-21 00:51:13 +00:00
|
|
|
|
|
|
|
exports('code', function(options){
|
|
|
|
var elems = [];
|
2022-06-24 02:16:50 +00:00
|
|
|
var trim = function(str){
|
|
|
|
return $.trim(str).replace(/^\n|\n$/, '');
|
|
|
|
}
|
|
|
|
|
2017-08-21 00:51:13 +00:00
|
|
|
options = options || {};
|
|
|
|
options.elem = $(options.elem||'.layui-code');
|
2022-06-29 08:33:15 +00:00
|
|
|
|
2017-08-21 00:51:13 +00:00
|
|
|
options.elem.each(function(){
|
|
|
|
elems.push(this);
|
|
|
|
});
|
|
|
|
|
|
|
|
layui.each(elems.reverse(), function(index, item){
|
2022-06-24 02:16:50 +00:00
|
|
|
var othis = $(item);
|
|
|
|
var html = trim(othis.html());
|
2022-06-29 08:33:15 +00:00
|
|
|
var about = othis.attr('lay-about') || options.about || othis.attr('lay-lang') || options.lang || '';
|
|
|
|
|
|
|
|
//是否显示行号
|
|
|
|
var lineNo;
|
|
|
|
if(othis.attr('lay-line-no'))
|
|
|
|
{
|
|
|
|
lineNo = othis.attr('lay-line-no').toLowerCase() === 'true';
|
|
|
|
}
|
|
|
|
lineNo = options.lineNo === undefined ? lineNo === undefined ? false : lineNo : options.lineNo;
|
|
|
|
|
2022-06-24 02:16:50 +00:00
|
|
|
// 转义 HTML 标签
|
2017-08-21 00:51:13 +00:00
|
|
|
if(othis.attr('lay-encode') || options.encode){
|
2022-06-24 02:16:50 +00:00
|
|
|
html = util.escape(html);
|
2017-08-21 00:51:13 +00:00
|
|
|
}
|
|
|
|
|
2022-06-29 08:33:15 +00:00
|
|
|
var list = lineNo ? 'ol' : 'ul';
|
|
|
|
othis.html('<' + list + ' class="layui-code-' + list + '"><li>' + html.replace(/[\r\t\n]+/g, '</li><li>') + '</li></' + list + '>');
|
2017-08-21 00:51:13 +00:00
|
|
|
|
2022-06-29 08:33:15 +00:00
|
|
|
if(!othis.find('>.layui-code-title')[0]){
|
|
|
|
var aboutWrapper = about === '' ? '' : '<div class="layui-code-about">' + about + '</div>';
|
|
|
|
othis.prepend('<div class="layui-code-title">' + (othis.attr('lay-title') || options.title || '</>') + aboutWrapper + '</div>');
|
2017-08-21 00:51:13 +00:00
|
|
|
}
|
|
|
|
|
2022-06-29 08:33:15 +00:00
|
|
|
var ol = othis.find('>.layui-code-' + list);
|
2017-08-21 00:51:13 +00:00
|
|
|
othis.addClass('layui-box layui-code-view');
|
|
|
|
|
|
|
|
//识别皮肤
|
|
|
|
if(othis.attr('lay-skin') || options.skin){
|
|
|
|
othis.addClass('layui-code-' +(othis.attr('lay-skin') || options.skin));
|
|
|
|
}
|
|
|
|
|
|
|
|
//按行数适配左边距
|
|
|
|
if((ol.find('li').length/100|0) > 0){
|
|
|
|
ol.css('margin-left', (ol.find('li').length/100|0) + 'px');
|
|
|
|
}
|
|
|
|
|
|
|
|
//设置最大高度
|
|
|
|
if(othis.attr('lay-height') || options.height){
|
|
|
|
ol.css('max-height', othis.attr('lay-height') || options.height);
|
|
|
|
}
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
2021-04-22 02:22:45 +00:00
|
|
|
}).addcss('modules/code.css?v=2', 'skincodecss');
|
2021-03-31 09:36:19 +00:00
|
|
|
|