Emeditor CSS代码着色宏文档初稿
本帖最后由 马黑黑 于 2022-3-26 10:23 编辑暂时这样:
/* 文件名 : css2color.jsee作用 : CSS代码着色
马黑编写于 2022年3月26日
*/
document.selection.SelectAll();
var str = document.selection.Text;
var regAr = [
//[/(["'])([^"']{1,})(["'])/gm, "<span style='color: magenta;'>$1$2$3</span>"], //引号 待完善
[/(^.*?)(:)/gm, "<span style='color: blue;'>$1</span>$2"], //属性名称
[/(^[\.#@].*?)([\s\{])/gm, "<span style='color: red;'>$1</span>$2"], //选择器+@keyframes
[/(\/\*)(.*)(\*\/)/gm, "<span style='color: green;'>$1$2$3</span>"], //注释
[/\t/gm, " "], //制表符
[/<([/]{0,1}style.*)>/gm, "<$1>"], //转义
[/\r\n/gm, "<br>"] //换行符
];
for(i=0; i<regAr.length; i++) {
str = str.replace(regAr, regAr);
}
document.selection.Text = str;以上宏文档代码目前仅能针对规范编写的CSS代码进行有效着色,将来有精力的话可以陆续将之完善,以便增强其适应各类风格的代码。
上述代码,由于论坛 code 标签对某些字符的转义机制,可能不完整,我在下楼再给一份。
本帖最后由 马黑黑 于 2022-3-26 10:23 编辑
原始代码:
/* 文件名 : css2color.jsee作用 : CSS代码着色
马黑编写于 2022年3月26日
*/
document.selection.SelectAll();
var str = document.selection.Text;
var regAr = [
//[/(["'])([^"']{1,})(["'])/gm, "<span style='color: magenta;'>$1$2$3</span>"], //引号 待完善
[/(^.*?)(:)/gm, "<span style='color: blue;'>$1</span>$2"], //属性名称
[/(^[\.#@].*?)([\s\{])/gm, "<span style='color: red;'>$1</span>$2"], //选择器+@keyframes
[/(\/\*)(.*)(\*\/)/gm, "<span style='color: green;'>$1$2$3</span>"], //注释
[/\t/gm, " "], //制表符
[/<([/]{0,1}style.*)>/gm, "<$1>"], //转义
[/\r\n/gm, "<br>"] //换行符
];
for(i=0; i<regAr.length; i++) {
str = str.replace(regAr, regAr);
}
document.selection.Text = str;
本帖最后由 马黑黑 于 2022-3-26 10:23 编辑 <br /><br /><style type="text/css"><br><span style='color: #8b0000;'>#paBox</span> {<br><span style='color: blue;'> width</span>: 100%;<br><span style='color: blue;'> min-height</span>: 500px;<br><span style='color: blue;'> display</span>: flex;<br><span style='color: blue;'> justify-content</span>: center;<br><span style='color: blue;'> align-items</span>: center;<br><span style='color: blue;'> background-color</span>: rgba(0, 0, 0, .8);<br><span style='color: blue;'> filter</span>: contrast(30);<br>}<br><br><span style='color: #8b0000;'>#ball</span> {<br><span style='color: blue;'> position</span>: absolute;<br><span style='color: blue;'> width</span>: 150px;<br><span style='color: blue;'> height</span>: 150px;<br><span style='color: blue;'> border-radius</span>: 50%;<br><span style='color: blue;'> background</span>: blue;<br><span style='color: blue;'> transition</span>: transform .8s;<br><span style='color: blue;'> filter</span>: blur(15px);<br>}<br><br><span style='color: blue;'>.ball-1 { animation</span>: mvL 4s linear infinitealternate; }<br><span style='color: blue;'>.ball-2 { animation</span>:wave linear 1s infinite alternate; }<br><span style='color: blue;'>.ball-3 { animation</span>: mvR 4s linear infinite alternate; }<br><br><span style='color: blue;'>@keyframes wave { to { transform</span>: scale(1.5) rotate(180deg); } }<br><span style='color: blue;'>@keyframes mvL { to { transform</span>: translateX(-165px); } }<br><span style='color: blue;'>@keyframes mvR { to { transform</span>: translateX(165px); } }<br></style> 三楼是宏生成的CSS代码样式,还达不到要求 马黑黑 发表于 2022-3-26 09:44
本帖最后由 马黑黑 于 2022-3-26 10:23 编辑 <style type="text/css">#paBox { &nbs ...
这个和三位一体的代码很像呢{:4_187:} 宏的名称有点陌生,好像word里见过。字符转义机制也觉得很陌生。 红影 发表于 2022-3-26 12:20
这个和三位一体的代码很像呢
嗯,随便抓个代码测试。CSS的弄得有点吃力,HTML的比较好:<div><br></div><div><br></div>
<<span style="color:darkred">div</span> <span style="color: red">id</span><span style="color: blue">=</span><span style="color: magenta">"okey"</span> <span style="color: red">class</span><span style="color: blue">=</span><span style="color: magenta">"upDiv"</span> <span style="color: red">style</span><span style="color: blue">=</span><span style="color: magenta">"color:red"</span>><br> <<span style="color:darkred">div</span> <span style="color: red">id</span><span style="color: blue">=</span><span style="color: magenta">"txt"</span>><br> 纯CSS走马灯 - 自右向左<br> <<span style="color: darkred">/div</span>><br><<span style="color: darkred">/div</span>> 红影 发表于 2022-3-26 12:40
宏的名称有点陌生,好像word里见过。字符转义机制也觉得很陌生。
字符转义是最麻烦的。我在用PHP是,它对转义还是有好的,比如,它支持直接在双引号里转义:
$myStr = "Mary told her son, \"you can get that car. \"";
JS这方面差一些,所以要经常双引号和单引号套用。至于正则,转义后就根本看不出那个是转义的:
/<(\/{1,})>/gm
而且看起来一头雾水是常事。
所谓转义,指编程中需要用到的系统语法保留的元字符,如小角引号,斜杠,等等,需转义,系统才识别你用的这个元字符不是元字符。
红影 发表于 2022-3-26 12:40
宏的名称有点陌生,好像word里见过。字符转义机制也觉得很陌生。
Emeditor里的宏其实是JavaScript在它内部的应用,它的宏和word一样,除了支持JS,还支持VBScript 马黑黑 发表于 2022-3-26 13:52
字符转义是最麻烦的。我在用PHP是,它对转义还是有好的,比如,它支持直接在双引号里转义:
$myStr =...
嗯,这些个需要一个个打开来弄明白含义,然后再组合起来才有可能弄明白{:4_204:} 马黑黑 发表于 2022-3-26 13:54
Emeditor里的宏其实是JavaScript在它内部的应用,它的宏和word一样,除了支持JS,还支持VBScript
实际上word的宏只是知道有这个名字,基本没使用过呢。 马黑黑 发表于 2022-3-26 13:41
嗯,随便抓个代码测试。CSS的弄得有点吃力,HTML的比较好:
<div id="okey" class="upDiv" style="c ...
黑黑辛苦了{:4_187:} 红影 发表于 2022-3-26 15:25
黑黑辛苦了
其实这类工具挺多的,好多是在线的,只是好看实用的的都依赖CSS和JS库,论坛又不支持 红影 发表于 2022-3-26 15:24
实际上word的宏只是知道有这个名字,基本没使用过呢。
Word的宏本身就与病毒联系在一起,多数人都会关闭宏 红影 发表于 2022-3-26 15:23
嗯,这些个需要一个个打开来弄明白含义,然后再组合起来才有可能弄明白
很多人都说正则表达式就像天数。据我了解,程序员中畏惧正则的大有人在,很多人就是不太跟去碰正则。不过正则的确太厉害,掌握一二就可以让查找替换工作简洁高效 马黑黑 发表于 2022-3-26 16:32
其实这类工具挺多的,好多是在线的,只是好看实用的的都依赖CSS和JS库,论坛又不支持
嗯嗯,你上次就说过,论坛无法调用。 马黑黑 发表于 2022-3-26 16:33
Word的宏本身就与病毒联系在一起,多数人都会关闭宏
是的,也听到过这个和病毒有点关联的。 马黑黑 发表于 2022-3-26 16:35
很多人都说正则表达式就像天数。据我了解,程序员中畏惧正则的大有人在,很多人就是不太跟去碰正则。不过 ...
若是能掌握也是一项利器呢。 红影 发表于 2022-3-26 20:58
若是能掌握也是一项利器呢。
绝对是。我可能理解了0/10000 红影 发表于 2022-3-26 20:58
是的,也听到过这个和病毒有点关联的。
主要是微软的VBScript用得不好,不考虑安全问题或考虑不周。安全一直是微软的弱项。