61 lines
1.9 KiB
JavaScript
61 lines
1.9 KiB
JavaScript
/**
|
||
|
||
@Name:layui.code 代码修饰器
|
||
@Author:贤心
|
||
@License:MIT
|
||
|
||
*/
|
||
|
||
layui.define('jquery', function(exports){
|
||
"use strict";
|
||
|
||
var $ = layui.$;
|
||
var about = 'http://www.layui.com/doc/modules/code.html'; //关于信息
|
||
|
||
exports('code', function(options){
|
||
var elems = [];
|
||
options = options || {};
|
||
options.elem = $(options.elem||'.layui-code');
|
||
options.about = 'about' in options ? options.about : true;
|
||
|
||
options.elem.each(function(){
|
||
elems.push(this);
|
||
});
|
||
|
||
layui.each(elems.reverse(), function(index, item){
|
||
var othis = $(item), html = othis.html();
|
||
|
||
//转义HTML标签
|
||
if(othis.attr('lay-encode') || options.encode){
|
||
html = html.replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&')
|
||
.replace(/</g, '<').replace(/>/g, '>').replace(/'/g, ''').replace(/"/g, '"')
|
||
}
|
||
|
||
othis.html('<ol class="layui-code-ol"><li>' + html.replace(/[\r\t\n]+/g, '</li><li>') + '</li></ol>')
|
||
|
||
if(!othis.find('>.layui-code-h3')[0]){
|
||
othis.prepend('<h3 class="layui-code-h3">'+ (othis.attr('lay-title')||options.title||'code') + (options.about ? '<a href="'+ about +'" target="_blank">layui.code</a>' : '') + '</h3>');
|
||
}
|
||
|
||
var ol = othis.find('>.layui-code-ol');
|
||
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);
|
||
}
|
||
|
||
});
|
||
|
||
});
|
||
}).addcss('modules/code.css', 'skincodecss'); |