622 lines
35 KiB
JavaScript
622 lines
35 KiB
JavaScript
let JsonCssCode = [];//储存所有的JSON类编译数据
|
||
let JSON3_All_Title = [];//存储所有的标签名称,不带<>的标签
|
||
function CssCodeAllStyle(htmlStr) {
|
||
let reg = RegExp("(<style[^]*?</style>)", "g");
|
||
let htmlStrAll = htmlStr.match(reg);
|
||
if (htmlStrAll == null || htmlStrAll == undefined) {
|
||
htmlStrAll = [];
|
||
}
|
||
let htmlStrAllReturn = [];
|
||
if (htmlStrAll.length >= 1) {
|
||
for (let index = 0; index < htmlStrAll.length; index++) {
|
||
htmlStrAllReturn[htmlStrAllReturn.length] = htmlStrAll[index];
|
||
}
|
||
}
|
||
reg = RegExp("(<样式[^]*?</样式>)", "g");
|
||
htmlStrAll = htmlStr.match(reg);
|
||
if (htmlStrAll == null || htmlStrAll == undefined) {
|
||
htmlStrAll = [];
|
||
}
|
||
if (htmlStrAll.length >= 1) {
|
||
for (let index = 0; index < htmlStrAll.length; index++) {
|
||
htmlStrAllReturn[htmlStrAllReturn.length] = htmlStrAll[index];
|
||
}
|
||
}
|
||
return htmlStrAllReturn;
|
||
}
|
||
//初始化JS编译JSON信息
|
||
function JsonCssCodeMain(JSON_C) {
|
||
JsonCssCode = JSON_C;
|
||
}
|
||
//编译Css命令
|
||
//参数1要编译的Css代码,参数2编译的类型
|
||
//1代表编译成本地语言,2代表编译成英文
|
||
//【注意:本地语言,例如中文、柬埔寨或者其他国家语言以正则为主,目前暂时支持中文】
|
||
function CssCodeCompiler(CssCode, CodeType) {
|
||
let CssCodeJSonCompilerStr = [];//储存所有编译时产生的临时数据!
|
||
let RetCode = NoStrCssCompiler(CssCodeJSonCompilerStr, CssCode, 1);
|
||
CssCode = RetCode["code"];
|
||
CssCodeJSonCompilerStr = RetCode["CssCodeJSonCompilerStr"];
|
||
let TypeInt = -1;
|
||
if (CodeType == 1) {
|
||
TypeInt = 0
|
||
} else {
|
||
TypeInt = 1
|
||
}
|
||
for (let index = 0; index < JsonCssCode.length; index++) {
|
||
let regCompilerCode = "";//需要编译替换为的值
|
||
if (JsonCssCode[index].length >= 3) {
|
||
if (CssCode.indexOf(JsonCssCode[index][TypeInt]) != -1)//代表有需要进行处理的关键字
|
||
{
|
||
if (TypeInt == 0) {
|
||
regCompilerCode = JsonCssCode[index][1];
|
||
} else {
|
||
regCompilerCode = JsonCssCode[index][0];
|
||
}
|
||
CssCode = CssCodeReplace(CssCode, JsonCssCode[index][TypeInt], regCompilerCode, JsonCssCode[index][2]);
|
||
}
|
||
}
|
||
}
|
||
//三方库class编译
|
||
for (let index = 0; index < HTMLTripartiteClass.length; index++) {
|
||
let title = HTMLTripartiteClass[index]["T_title"];
|
||
let title_en = HTMLTripartiteClass[index]["T_title_en"];
|
||
if (CssCode.indexOf("." + title) != -1 || CssCode.indexOf("." + title_en) != -1)//代表有需要进行处理的关键字
|
||
{
|
||
if (CodeType == 1) {
|
||
CssCode = CssCodeReplace(CssCode, title_en, title, 5);
|
||
}
|
||
if (CodeType == 2) {
|
||
CssCode = CssCodeReplace(CssCode, title, title_en, 5);
|
||
}
|
||
}
|
||
}
|
||
//三方模块的class编译
|
||
try {
|
||
for (let index = 0; index < window.RenderingJsonArr.length; index++) {
|
||
if (window.RenderingJsonArr[index]["class"].length >= 1) {
|
||
for (let index1 = 0; index1 < window.RenderingJsonArr[index]["class"].length; index1++) {
|
||
let title = window.RenderingJsonArr[index]["class"][index1]["nameZh"];
|
||
let title_en = window.RenderingJsonArr[index]["class"][index1]["nameEn"];
|
||
if (CssCode.indexOf("." + title) != -1 || CssCode.indexOf("." + title_en) != -1)//代表有需要进行处理的关键字
|
||
{
|
||
if (CodeType == 1) {
|
||
CssCode = CssCodeReplace(CssCode, title_en, title, 5);
|
||
}
|
||
if (CodeType == 2) {
|
||
CssCode = CssCodeReplace(CssCode, title, title_en, 5);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} catch (error) {
|
||
|
||
}
|
||
for (let index = 0; index < JSON3_All.length; index++) {
|
||
let title = JSON3_All[index]["title"];
|
||
title = title.replaceHack("<", "")
|
||
title = title.replaceHack(">", "")
|
||
let title_en = JSON3_All[index]["title_en"];
|
||
title_en = title_en.replaceHack("<", "")
|
||
title_en = title_en.replaceHack(">", "")
|
||
if (CssCode.indexOf(title) != -1 || CssCode.indexOf(title_en) != -1)//代表有需要进行处理的关键字
|
||
{
|
||
if (CodeType == 1) {
|
||
CssCode = CssCodeReplace(CssCode, title_en, title, 4);
|
||
}
|
||
if (CodeType == 2) {
|
||
CssCode = CssCodeReplace(CssCode, title, title_en, 4);
|
||
}
|
||
|
||
}
|
||
}
|
||
RetCode = NoStrCssCompiler(CssCodeJSonCompilerStr, CssCode, 2);
|
||
CssCode = RetCode["code"]
|
||
CssCode = CssSpecialTreatmentFun(CssCode, CodeType);//CSS特殊翻译,一些不在支持库中的命令等
|
||
return CssCode;
|
||
}
|
||
//用来进行CSS命令的替换编译,本方法不能独立使用,通常用来配合CssCodeCompiler命令
|
||
//参数1为整体的JS代码
|
||
//参数2为需要编译的关键字
|
||
//参数3为需要替换编译为的内容
|
||
//参数4代表编CSS类型【1CSS命令,2CSS值,3CSS全局都需要编译,4代表html名称,5代表三方库class】
|
||
function CssCodeReplace(CssCode, CssCodeKeyword, regCompilerCode, CssType) {
|
||
let CssCodeStr = CssCode;
|
||
if (CssCodeStr == regCompilerCode) {//判断是否是直接一样的内容,一样就直接匹配替换
|
||
CssCodeStr = regCompilerCode;
|
||
return CssCodeStr;
|
||
}
|
||
if (CssType == 3) {
|
||
CssCodeStr = CssCodeStr.replaceAll(CssCodeKeyword, regCompilerCode)
|
||
return CssCodeStr;
|
||
}
|
||
if (CssType == 1 || CssType == 2) {
|
||
if (CssCodeStr.indexOf("{") != -1 && CssCodeStr.indexOf("}") != -1) {
|
||
let CssCodeAll = TakeTheMiddleOfTheTextAll(CssCodeStr, "{", "}");
|
||
for (let index = 0; index < CssCodeAll.length; index++) {
|
||
let CssCodeLS = CssCodeReplace_Code(CssCodeAll[index], CssCodeKeyword, regCompilerCode);
|
||
if (CssCodeLS != CssCodeAll[index]) {
|
||
CssCodeStr = CssCodeStr.replaceAll(CssCodeAll[index], CssCodeLS)
|
||
}
|
||
}
|
||
} else {
|
||
CssCodeStr = CssCodeReplace_Code(CssCodeStr, CssCodeKeyword, regCompilerCode);
|
||
}
|
||
CssCodeStr = CssTranslateToPseudoClass(CssCodeStr, CssCodeKeyword, regCompilerCode);
|
||
return CssCodeStr;
|
||
}
|
||
if (CssType == 4 || CssType == 5) {
|
||
CssCodeStr = CssCodeReplace_Code(CssCodeStr, CssCodeKeyword, regCompilerCode);
|
||
return CssCodeStr;
|
||
}
|
||
}
|
||
//用来进行CSS-Html命令的替换编译
|
||
//参数1为整体的JS代码
|
||
//参数2为需要编译的关键字
|
||
//参数3为需要替换编译为的内容
|
||
function CssCodeReplace_Code(CssCode, CssCodeKeyword, regCompilerCode) {
|
||
if (CssCode.indexOf(CssCodeKeyword) == -1 && CssCode.indexOf(regCompilerCode) == -1) {
|
||
return CssCode;
|
||
}
|
||
let CssCodeStr = CssCode;
|
||
if (CssCodeStr == regCompilerCode) {//判断是否是直接一样的内容,一样就直接匹配替换
|
||
CssCodeStr = regCompilerCode;
|
||
return CssCodeStr;
|
||
}
|
||
CssCodeStr = "fofservercssbegin " + CssCodeStr;
|
||
CssCodeStr = CssCodeStr + " fofservercssbegin";
|
||
CssCodeStr = CssCodeStr.replaceAll("\r\n", " fofservercssbegin\r\nfofservercssbegin ");
|
||
let CssCodeStrOriginal = CssCodeStr;
|
||
let regCompilerCodeArr = [StrCodeUuid(regCompilerCode), regCompilerCode];
|
||
let reg = new RegExp("[^0-9a-zA-Z\u4e00-\u9fa5_-]" + CssCodeKeyword + "(?=[^0-9a-zA-Z\u4e00-\u9fa5_-])", "g");
|
||
if (CssCodeStrOriginal.indexOf(CssCodeKeyword) != -1) {
|
||
let CssCodeStrArr = CssCodeStrOriginal.match(reg);
|
||
if (CssCodeStrArr != undefined && CssCodeStrArr != null) {
|
||
if (CssCodeStrArr.length >= 1) {
|
||
CssCodeStr = CssCodeStr.replaceHack(reg, regCompilerCodeArr[0]);
|
||
for (let index = 0; index < CssCodeStrArr.length; index++) {
|
||
let FirstText = CssCodeStrArr[index].substring(0, 1);
|
||
CssCodeStr = CssCodeStr.replaceHack(regCompilerCodeArr[0], FirstText + regCompilerCodeArr[1]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
CssCodeStr = CssCodeStr.replaceAll(" fofservercssbegin\r\nfofservercssbegin ", "\r\n");
|
||
CssCodeStr = CssCodeStr.replaceAll("fofservercssbegin ", "");
|
||
CssCodeStr = CssCodeStr.replaceAll(" fofservercssbegin", "");
|
||
return CssCodeStr;
|
||
}
|
||
//编译Html文件下所有Style中的CSS代码
|
||
//编译JS命令
|
||
//参数1要编译的页面代码
|
||
//参数2编译的类型-1代表编译成本地语言,2代表编译成英文
|
||
//【注意:本地语言,例如中文、柬埔寨或者其他国家语言以正则为主,目前暂时支持中文】
|
||
function CssCodeCompilerAll(str, CodeType) {
|
||
let CssCodeAll = CssCodeAllStyle(str);
|
||
for (let index = 0; index < CssCodeAll.length; index++) {
|
||
let CssCodeAr = [CssCodeAll[index], CssCodeAll[index]];
|
||
CssCodeAr[1] = CssCodeCompiler(CssCodeAr[1], CodeType);
|
||
str = str.replaceHack(CssCodeAr[0], CssCodeAr[1])
|
||
}
|
||
return str;
|
||
}
|
||
//不参与编译的JS相关数据
|
||
//1代表编译的代码,2代表类型【1是开头,2是结束】
|
||
function NoStrCssCompiler(CssCodeJSonCompilerStr, CssCode, IfType) {
|
||
if (IfType == 1) {
|
||
if (CssCode.indexOf("<style") != -1) {
|
||
CssCode = CssCode.replaceAll("<style", "NoCompilerCssCode1" + CompilerStart)
|
||
}
|
||
if (CssCode.indexOf("</style") != -1) {
|
||
CssCode = CssCode.replaceAll("</style", "NoCompilerCssCode2" + CompilerStart)
|
||
}
|
||
if (CssCode.indexOf("<样式") != -1) {
|
||
CssCode = CssCode.replaceAll("<样式", "NoCompilerCssCode3" + CompilerStart)
|
||
}
|
||
if (CssCode.indexOf("</样式") != -1) {
|
||
CssCode = CssCode.replaceAll("</样式", "NoCompilerCssCode4" + CompilerStart)
|
||
}
|
||
if (CssCode.indexOf("/*") != -1) {
|
||
CssCode = CssCode.replaceAll("/*", "kkcosxinghaojstihuan" + CompilerStart)
|
||
}
|
||
if (CssCode.indexOf("*/") != -1) {
|
||
CssCode = CssCode.replaceAll("*/", "fanxinghaokkcosjstihuan" + CompilerStart)
|
||
}
|
||
if (CssCode.indexOf("$") != -1) {
|
||
CssCode = CssCode.replaceAll("$", ComSymbolCssFOFStuDio + CompilerStart)
|
||
}
|
||
//开始处理字符串、屏蔽符等数据
|
||
let StringObj = [];
|
||
if (CssCode.indexOf("kkcosxinghaojstihuan") != -1 && CssCode.indexOf("fanxinghaokkcosjstihuan") != -1) {
|
||
StringObj = TakeTheMiddleOfTheTextAll(CssCode, "kkcosxinghaojstihuan", "fanxinghaokkcosjstihuan");
|
||
if (StringObj != undefined && StringObj != null) {
|
||
if (StringObj.length >= 1) {
|
||
for (let index = 0; index < StringObj.length; index++) {
|
||
let StrCodeLs = [StrCodeUuid(StringObj[index]), StringObj[index]]
|
||
CssCode = CssCode.replaceAll(StringObj[index], StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (CssCode.indexOf("\"") != -1 && CssCode.indexOf("\"") != -1) {
|
||
StringObj = TakeTheMiddleOfTheTextAll(CssCode, "\"", "\"");
|
||
if (StringObj != undefined && StringObj != null) {
|
||
if (StringObj.length >= 1) {
|
||
for (let index = 0; index < StringObj.length; index++) {
|
||
let StrCodeLs = [StrCodeUuid(StringObj[index]), StringObj[index]]
|
||
CssCode = CssCode.replaceAll(StringObj[index], StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (CssCode.indexOf("'") != -1) {
|
||
StringObj = TakeTheMiddleOfTheTextAll(CssCode, "'", "'");
|
||
if (StringObj != undefined && StringObj != null) {
|
||
if (StringObj.length >= 1) {
|
||
for (let index = 0; index < StringObj.length; index++) {
|
||
let StrCodeLs = [StrCodeUuid(StringObj[index]), StringObj[index]]
|
||
CssCode = CssCode.replaceAll(StringObj[index], StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (CssCode.indexOf("`") != -1) {
|
||
StringObj = TakeTheMiddleOfTheTextAll(CssCode, "`", "`");
|
||
if (StringObj != undefined && StringObj != null) {
|
||
if (StringObj.length >= 1) {
|
||
for (let index = 0; index < StringObj.length; index++) {
|
||
let StrCodeLs = [StrCodeUuid(StringObj[index]), StringObj[index]]
|
||
CssCode = CssCode.replaceAll(StringObj[index], StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (JSON3_All_Title.length <= 0) {
|
||
for (let index = 0; index < JSON3_All.length; index++) {
|
||
let title = JSON3_All[index]["title"];
|
||
title = title.replaceHack("<", "")
|
||
title = title.replaceHack(">", "")
|
||
let title_en = JSON3_All[index]["title_en"];
|
||
title_en = title_en.replaceHack("<", "")
|
||
title_en = title_en.replaceHack(">", "")
|
||
JSON3_All_Title[JSON3_All_Title.length] = {
|
||
"title": title,
|
||
"title_en": title_en
|
||
}
|
||
}
|
||
}
|
||
//html重名.标签操作
|
||
for (let index = 0; index < JSON3_All_Title.length; index++) {
|
||
let title = JSON3_All_Title[index]["title"];
|
||
let title_en = JSON3_All_Title[index]["title_en"];
|
||
if (CssCode.indexOf("." + title) != -1 || CssCode.indexOf("." + title_en) != -1 || CssCode.indexOf("#" + title) != -1 || CssCode.indexOf("#" + title_en) != -1)//代表有需要进行处理的关键字
|
||
{
|
||
if (CssCode.indexOf("." + title + " ") != -1 || CssCode.indexOf("." + title + "{") != -1 || CssCode.indexOf("." + title + ".") != -1 || CssCode.indexOf("." + title_en + " ") != -1 || CssCode.indexOf("." + title_en + "{") != -1 || CssCode.indexOf("." + title_en + ".") != -1 || CssCode.indexOf("." + title_en + ":") != -1 || CssCode.indexOf("." + title + ":") != -1) {
|
||
if (CssCode.indexOf("." + title + " ") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title + " ") + " ", "." + title + " "]
|
||
CssCode = CssCode.replaceAll("." + title + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("." + title + "{") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title + "{") + "{", "." + title + "{"]
|
||
CssCode = CssCode.replaceAll("." + title + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("." + title + ".") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title + ".") + ".", "." + title + "."]
|
||
CssCode = CssCode.replaceAll("." + title + ".", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("." + title + ":") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title + ":") + ":", "." + title + ":"]
|
||
CssCode = CssCode.replaceAll("." + title + ":", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
|
||
if (CssCode.indexOf("." + title_en + " ") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title_en + " ") + " ", "." + title_en + " "]
|
||
CssCode = CssCode.replaceAll("." + title_en + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("." + title_en + "{") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title_en + "{") + "{", "." + title_en + "{"]
|
||
CssCode = CssCode.replaceAll("." + title_en + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("." + title_en + ".") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title_en + ".") + ".", "." + title_en + "."]
|
||
CssCode = CssCode.replaceAll("." + title_en + ".", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("." + title_en + ":") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + title_en + ":") + ":", "." + title_en + ":"]
|
||
CssCode = CssCode.replaceAll("." + title_en + ":", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
|
||
if (CssCode.indexOf("#" + title + " ") != -1 || CssCode.indexOf("#" + title + "{") != -1 || CssCode.indexOf("#" + title + "#") != -1 || CssCode.indexOf("#" + title_en + " ") != -1 || CssCode.indexOf("#" + title_en + "{") != -1 || CssCode.indexOf("#" + title_en + "#") != -1 || CssCode.indexOf("#" + title_en + ":") != -1 || CssCode.indexOf("#" + title + ":") != -1) {
|
||
if (CssCode.indexOf("#" + title + " ") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title + " ") + " ", "#" + title + " "]
|
||
CssCode = CssCode.replaceAll("#" + title + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("#" + title + "{") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title + "{") + "{", "#" + title + "{"]
|
||
CssCode = CssCode.replaceAll("#" + title + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("#" + title + "#") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title + "#") + "#", "#" + title + "#"]
|
||
CssCode = CssCode.replaceAll("#" + title + "#", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("#" + title + ":") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title + ":") + ":", "#" + title + ":"]
|
||
CssCode = CssCode.replaceAll("#" + title + ":", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
|
||
if (CssCode.indexOf("#" + title_en + " ") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title_en + " ") + " ", "#" + title_en + " "]
|
||
CssCode = CssCode.replaceAll("#" + title_en + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("#" + title_en + "{") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title_en + "{") + "{", "#" + title_en + "{"]
|
||
CssCode = CssCode.replaceAll("#" + title_en + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("#" + title_en + "#") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title_en + "#") + "#", "#" + title_en + "#"]
|
||
CssCode = CssCode.replaceAll("#" + title_en + "#", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
if (CssCode.indexOf("#" + title_en + ":") != -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + title_en + ":") + ":", "#" + title_en + ":"]
|
||
CssCode = CssCode.replaceAll("#" + title_en + ":", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//.css名 重名操作
|
||
for (let index = 0; index < JsonCssCode.length; index++) {
|
||
if (JsonCssCode[index].length >= 3) {
|
||
if (CssCode.indexOf(JsonCssCode[index][0]) != -1 || CssCode.indexOf(JsonCssCode[index][1]) != -1 || CssCode.indexOf(JsonCssCode[index][1]) != -1 || CssCode.indexOf(JsonCssCode[index][0]) != -1)//代表有需要进行处理的关键字
|
||
{
|
||
if (JsonCssCode[index][0].indexOf("_") == -1 && JsonCssCode[index][0].indexOf("-") == -1) {
|
||
if (CssCode.indexOf("." + JsonCssCode[index][0] + " ") != -1 || CssCode.indexOf("." + JsonCssCode[index][0] + "{") != -1 || CssCode.indexOf("." + JsonCssCode[index][0] + "\r\n") != -1) {
|
||
if (HTMLTripartiteClassStr.indexOf(`"T_title":"` + JsonCssCode[index][0] + `"`) == -1 && HTMLTripartiteClassStr.indexOf(`"T_title_en":"` + JsonCssCode[index][0] + `"`) == -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + JsonCssCode[index][0]) + " ", "." + JsonCssCode[index][0] + " "]
|
||
CssCode = CssCode.replaceAll("." + JsonCssCode[index][0] + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("." + JsonCssCode[index][0] + "{") + "{", "." + JsonCssCode[index][0] + "{"]
|
||
CssCode = CssCode.replaceAll("." + JsonCssCode[index][0] + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("." + JsonCssCode[index][0] + "\r\n"), "." + JsonCssCode[index][0] + "\r\n"]
|
||
CssCode = CssCode.replaceAll("." + JsonCssCode[index][0] + "\r\n", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
if (JsonCssCode[index][1].indexOf("_") == -1 && JsonCssCode[index][1].indexOf("-") == -1) {
|
||
if (CssCode.indexOf("." + JsonCssCode[index][1] + " ") != -1 || CssCode.indexOf("." + JsonCssCode[index][1] + "{") != -1 || CssCode.indexOf("." + JsonCssCode[index][1] + "\r\n") != -1) {
|
||
if (HTMLTripartiteClassStr.indexOf(`"T_title":"` + JsonCssCode[index][1] + `"`) == -1 && HTMLTripartiteClassStr.indexOf(`"T_title_en":"` + JsonCssCode[index][1] + `"`) == -1) {
|
||
let StrCodeLs = [StrCodeUuid("." + JsonCssCode[index][1]) + " ", "." + JsonCssCode[index][1] + " "]
|
||
CssCode = CssCode.replaceAll("." + JsonCssCode[index][1] + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("." + JsonCssCode[index][1] + "{") + "{", "." + JsonCssCode[index][1] + "{"]
|
||
CssCode = CssCode.replaceAll("." + JsonCssCode[index][1] + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("." + JsonCssCode[index][1] + "\r\n"), "." + JsonCssCode[index][1] + "\r\n"]
|
||
CssCode = CssCode.replaceAll("." + JsonCssCode[index][1] + "\r\n", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
if (CssCode.indexOf("#") != -1) {
|
||
if (CssCode.indexOf("#" + JsonCssCode[index][0] + " ") != -1 || CssCode.indexOf("#" + JsonCssCode[index][0] + "{") != -1 || CssCode.indexOf("#" + JsonCssCode[index][0] + "\r\n") != -1) {
|
||
if (HTMLTripartiteClassStr.indexOf(`"T_title":"` + JsonCssCode[index][0] + `"`) == -1 && HTMLTripartiteClassStr.indexOf(`"T_title_en":"` + JsonCssCode[index][0] + `"`) == -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + JsonCssCode[index][0]) + " ", "#" + JsonCssCode[index][0] + " "]
|
||
CssCode = CssCode.replaceAll("#" + JsonCssCode[index][0] + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("#" + JsonCssCode[index][0] + "{") + "{", "#" + JsonCssCode[index][0] + "{"]
|
||
CssCode = CssCode.replaceAll("#" + JsonCssCode[index][0] + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("#" + JsonCssCode[index][0] + "\r\n"), "#" + JsonCssCode[index][0] + "\r\n"]
|
||
CssCode = CssCode.replaceAll("#" + JsonCssCode[index][0] + "\r\n", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
if (CssCode.indexOf("#" + JsonCssCode[index][1] + " ") != -1 || CssCode.indexOf("#" + JsonCssCode[index][1] + "{") != -1 || CssCode.indexOf("#" + JsonCssCode[index][1] + "\r\n") != -1) {
|
||
if (HTMLTripartiteClassStr.indexOf(`"T_title":"` + JsonCssCode[index][1] + `"`) == -1 && HTMLTripartiteClassStr.indexOf(`"T_title_en":"` + JsonCssCode[index][1] + `"`) == -1) {
|
||
let StrCodeLs = [StrCodeUuid("#" + JsonCssCode[index][1]) + " ", "#" + JsonCssCode[index][1] + " "]
|
||
CssCode = CssCode.replaceAll("#" + JsonCssCode[index][1] + " ", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("#" + JsonCssCode[index][1] + "{") + "{", "#" + JsonCssCode[index][1] + "{"]
|
||
CssCode = CssCode.replaceAll("#" + JsonCssCode[index][1] + "{", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
|
||
StrCodeLs = [StrCodeUuid("#" + JsonCssCode[index][1] + "\r\n"), "#" + JsonCssCode[index][1] + "\r\n"]
|
||
CssCode = CssCode.replaceAll("#" + JsonCssCode[index][1] + "\r\n", StrCodeLs[0])
|
||
CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length] = StrCodeLs;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (IfType == 2) {
|
||
for (let index = 0; index < CssCodeJSonCompilerStr.length; index++) {
|
||
let StrCodeLs = CssCodeJSonCompilerStr[CssCodeJSonCompilerStr.length - index - 1]
|
||
if (CssCode.indexOf(StrCodeLs[0]) != -1) {
|
||
CssCode = CssCode.replaceAll(StrCodeLs[0], StrCodeLs[1])
|
||
}
|
||
}
|
||
if (CssCode.indexOf("NoCompilerCssCode1" + CompilerStart) != -1) {
|
||
CssCode = CssCode.replaceAll("NoCompilerCssCode1" + CompilerStart, "<style")
|
||
}
|
||
if (CssCode.indexOf("NoCompilerCssCode2" + CompilerStart) != -1) {
|
||
CssCode = CssCode.replaceAll("NoCompilerCssCode2" + CompilerStart, "</style")
|
||
}
|
||
if (CssCode.indexOf("NoCompilerCssCode3" + CompilerStart) != -1) {
|
||
CssCode = CssCode.replaceAll("NoCompilerCssCode3" + CompilerStart, "<样式")
|
||
}
|
||
if (CssCode.indexOf("NoCompilerCssCode4" + CompilerStart) != -1) {
|
||
CssCode = CssCode.replaceAll("NoCompilerCssCode4" + CompilerStart, "</样式")
|
||
}
|
||
if (CssCode.indexOf("kkcosxinghaojstihuan" + CompilerStart) != -1) {
|
||
CssCode = CssCode.replaceAll("kkcosxinghaojstihuan" + CompilerStart, "/*")
|
||
}
|
||
if (CssCode.indexOf("fanxinghaokkcosjstihuan" + CompilerStart) != -1) {
|
||
CssCode = CssCode.replaceAll("fanxinghaokkcosjstihuan" + CompilerStart, "*/")
|
||
}
|
||
if (CssCode.indexOf(ComSymbolCssFOFStuDio + CompilerStart) != -1) {
|
||
CssCode = CssCode.replaceAll(ComSymbolCssFOFStuDio + CompilerStart, "$")
|
||
}
|
||
}
|
||
return { "CssCodeJSonCompilerStr": CssCodeJSonCompilerStr, "code": CssCode };
|
||
}
|
||
//键名转JSON,注意:要确保.号已经被处理成Comendfofdianhaobenin
|
||
function KeyNameToJSON(CssCode) {
|
||
for (let index = 0; index < JsonCssCode.length; index++) {
|
||
if (JsonCssCode[index].length >= 3) {
|
||
if (JsonCssCode[index][2] == 1) {
|
||
|
||
if (CssCode.indexOf(JsonCssCode[index][0]) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, JsonCssCode[index][0]);
|
||
}
|
||
if (CssCode.indexOf(JsonCssCode[index][1]) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, JsonCssCode[index][1]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
for (let index = 0; index < JSON3_All.length; index++) {
|
||
let title = JSON3_All[index]["title"];
|
||
title = title.replaceHack("<", "")
|
||
title = title.replaceHack(">", "")
|
||
let title_en = JSON3_All[index]["title_en"];
|
||
title_en = title_en.replaceHack("<", "")
|
||
title_en = title_en.replaceHack(">", "")
|
||
if (CssCode.indexOf(title) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, title);
|
||
}
|
||
if (CssCode.indexOf(title_en) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, title_en);
|
||
}
|
||
}
|
||
//三方库class编译-建议后期加上IDE分库编译
|
||
for (let index = 0; index < HTMLTripartiteClass.length; index++) {
|
||
let title = HTMLTripartiteClass[index]["T_title"];
|
||
let title_en = HTMLTripartiteClass[index]["T_title_en"];
|
||
if (CssCode.indexOf(Comendfofdianhaobenin + title) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, Comendfofdianhaobenin + title);
|
||
}
|
||
if (CssCode.indexOf(Comendfofdianhaobenin + title_en) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, Comendfofdianhaobenin + title_en);
|
||
}
|
||
}
|
||
return CssCode;
|
||
}
|
||
//键名转JSON,注意:要确保.号已经被处理成Comendfofdianhaobenin
|
||
//IfHump-是否转换为驼峰对象
|
||
function KeyNameToJSON(CssCode, IfHump = false) {
|
||
for (let index = 0; index < JsonCssCode.length; index++) {
|
||
if (JsonCssCode[index].length >= 3) {
|
||
if (JsonCssCode[index][2] == 1) {
|
||
|
||
if (CssCode.indexOf(JsonCssCode[index][0]) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, JsonCssCode[index][0], IfHump);
|
||
}
|
||
if (CssCode.indexOf(JsonCssCode[index][1]) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, JsonCssCode[index][1], IfHump);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
for (let index = 0; index < JSON3_All.length; index++) {
|
||
let title = JSON3_All[index]["title"];
|
||
title = title.replaceHack("<", "")
|
||
title = title.replaceHack(">", "")
|
||
let title_en = JSON3_All[index]["title_en"];
|
||
title_en = title_en.replaceHack("<", "")
|
||
title_en = title_en.replaceHack(">", "")
|
||
if (CssCode.indexOf(title) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, title, IfHump);
|
||
}
|
||
if (CssCode.indexOf(title_en) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, title_en, IfHump);
|
||
}
|
||
}
|
||
//三方库class编译-建议后期加上IDE分库编译
|
||
for (let index = 0; index < HTMLTripartiteClass.length; index++) {
|
||
let title = HTMLTripartiteClass[index]["T_title"];
|
||
let title_en = HTMLTripartiteClass[index]["T_title_en"];
|
||
if (CssCode.indexOf(Comendfofdianhaobenin + title) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, Comendfofdianhaobenin + title, IfHump);
|
||
}
|
||
if (CssCode.indexOf(Comendfofdianhaobenin + title_en) != -1) {
|
||
CssCode = CssCodeReplaceKeyNameToJSON(CssCode, Comendfofdianhaobenin + title_en, IfHump);
|
||
}
|
||
}
|
||
return CssCode;
|
||
}
|
||
//键名命令转JSON替换方法
|
||
//参数1为整体的JS代码
|
||
//参数2为需要编译的关键字
|
||
//IfHump-是否转换为驼峰对象
|
||
function CssCodeReplaceKeyNameToJSON(CssCode, CssCodeKeyword, IfHump = false) {
|
||
let RcCssCodeKeyword = CssCodeKeyword;
|
||
if (IfHump == true) {
|
||
let HumpArr = RcCssCodeKeyword.split("-");
|
||
if (HumpArr) {
|
||
if (HumpArr.length >= 2) {
|
||
let LsHump = HumpArr[1];
|
||
let LsHump1 = LsHump.substring(0, 1);
|
||
LsHump1 = LsHump1.toUpperCase();
|
||
if (LsHump.length >= 2) {
|
||
LsHump = LsHump1 + LsHump.substring(1, LsHump.length);
|
||
} else {
|
||
LsHump = LsHump1;
|
||
}
|
||
RcCssCodeKeyword = HumpArr[0] + LsHump;
|
||
}
|
||
}
|
||
}
|
||
let CssCodeStr = CssCode;
|
||
CssCodeStr = "fofservercssbegin " + CssCodeStr;
|
||
CssCodeStr = CssCodeStr + " fofservercssbegin";
|
||
CssCodeStr = CssCodeStr.replaceAll("\r\n", " fofservercssbegin\r\nfofservercssbegin ");
|
||
let CssCodeStrOriginal = CssCodeStr;
|
||
let regCompilerCodeArr = [StrCodeUuid("\"" + RcCssCodeKeyword + "\""), "\"" + RcCssCodeKeyword + "\""];
|
||
let reg = new RegExp("[^0-9a-zA-Z\u4e00-\u9fa5_-]" + CssCodeKeyword + "(?=[^0-9a-zA-Z\u4e00-\u9fa5_-])", "g");
|
||
CssCodeStr = CssCodeStr.replaceHack(reg, regCompilerCodeArr[0]);
|
||
let CssCodeStrArr = CssCodeStrOriginal.match(reg);
|
||
if (CssCodeStrArr != undefined && CssCodeStrArr != null) {
|
||
if (CssCodeStrArr.length >= 1) {
|
||
for (let index = 0; index < CssCodeStrArr.length; index++) {
|
||
let FirstText = CssCodeStrArr[index].substring(0, 1);
|
||
CssCodeStr = CssCodeStr.replaceHack(regCompilerCodeArr[0], FirstText + regCompilerCodeArr[1]);
|
||
}
|
||
}
|
||
}
|
||
CssCodeStr = CssCodeStr.replaceAll(" fofservercssbegin\r\nfofservercssbegin ", "\r\n");
|
||
CssCodeStr = CssCodeStr.replaceAll("fofservercssbegin ", "");
|
||
CssCodeStr = CssCodeStr.replaceAll(" fofservercssbegin", "");
|
||
return CssCodeStr;
|
||
} |