wxml 去掉对oak:value和oak:path 的编译支持 对i8n node_modules lib/src 都支持
This commit is contained in:
parent
e529019f48
commit
f3dbe2572d
|
|
@ -85,12 +85,9 @@ const isSrc = (name) => name === 'src';
|
||||||
const isDynamicSrc = (src) => /\{\{/.test(src);
|
const isDynamicSrc = (src) => /\{\{/.test(src);
|
||||||
const oakMessage = 'oak-message';
|
const oakMessage = 'oak-message';
|
||||||
const oakDebugPanel = 'oak-debugPanel';
|
const oakDebugPanel = 'oak-debugPanel';
|
||||||
const oakRegex = /(\/*[a-zA-Z0-9_-])*\/lib\/|(\\*[a-zA-Z0-9_-])*\\lib\\/;
|
const oakRegex = /(\/*[a-zA-Z0-9_-])*\/(lib|src)\/|(\\*[a-zA-Z0-9_-])*\\(lib|src)\\/;
|
||||||
const localRegex = /(\/*[a-zA-Z0-9_-])*\/src+\/|(\\*[a-zA-Z0-9_-])*\\src+\\/;
|
|
||||||
const oakPagesOrComponentsRegex =
|
const oakPagesOrComponentsRegex =
|
||||||
/(\/*[a-zA-Z0-9_-])*\/lib\/(pages|components)\/|(\\*[a-zA-Z0-9_-])*\\lib\\(pages|components)\\/;
|
/(\/*[a-zA-Z0-9_-])*\/(lib|src)\/(pages|components)\/|(\\*[a-zA-Z0-9_-])*\\(lib|src)\\(pages|components)\\/;
|
||||||
const localPagesOrComponentsRegex =
|
|
||||||
/(\/*[a-zA-Z0-9_-])*\/src\/(pages|components)+\/|(\\*[a-zA-Z0-9_-])*\\src\/(pages|components)+\\/;
|
|
||||||
|
|
||||||
const TranslationFunction = 't';
|
const TranslationFunction = 't';
|
||||||
const I18nModuleName = 'i18n';
|
const I18nModuleName = 'i18n';
|
||||||
|
|
@ -178,12 +175,6 @@ module.exports = async function (content) {
|
||||||
projectContext + '/' + p,
|
projectContext + '/' + p,
|
||||||
projectContext + '/' + WXS_PATH
|
projectContext + '/' + WXS_PATH
|
||||||
).replace(/\\/g, '/');
|
).replace(/\\/g, '/');
|
||||||
} else if (localRegex.test(context)) {
|
|
||||||
const p2 = context.replace(localRegex, '');
|
|
||||||
wxsRelativePath = relative(
|
|
||||||
projectContext + '/' + p2,
|
|
||||||
projectContext + '/' + WXS_PATH
|
|
||||||
).replace(/\\/g, '/');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -230,7 +221,7 @@ module.exports = async function (content) {
|
||||||
traverse(doc, (node) => {
|
traverse(doc, (node) => {
|
||||||
if (node.nodeType === node.ATTRIBUTE_NODE) {
|
if (node.nodeType === node.ATTRIBUTE_NODE) {
|
||||||
if (existsT(node.value)) {
|
if (existsT(node.value)) {
|
||||||
const newVal = formatT(node.value, resourcePath);
|
const newVal = formatI18nT(node.value, resourcePath);
|
||||||
node.value = newVal;
|
node.value = newVal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -257,79 +248,10 @@ module.exports = async function (content) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (node.hasAttribute('oak:value')) {
|
|
||||||
// oak:value声明的属性加上value、focus和data-attr
|
|
||||||
const oakValue = node.getAttribute('oak:value');
|
|
||||||
node.removeAttribute('oak:value');
|
|
||||||
node.setAttribute(
|
|
||||||
'value',
|
|
||||||
`{{${oakValue} !== undefined && ${oakValue} !== null ? ${oakValue} : ''}}`
|
|
||||||
);
|
|
||||||
node.setAttribute('data-attr', oakValue);
|
|
||||||
if (node.hasAttribute('oak:forbidFocus')) {
|
|
||||||
node.removeAttribute('oak:forbidFocus');
|
|
||||||
} else {
|
|
||||||
node.setAttribute('focus', `{{!!oakFocused.${oakValue}}}`);
|
|
||||||
}
|
|
||||||
} else if (node.hasAttribute('oak:path')) {
|
|
||||||
// oak:path声明的属性加上oakPath和oakParent
|
|
||||||
const oakValue = node.getAttribute('oak:path');
|
|
||||||
node.removeAttribute('oak:path');
|
|
||||||
node.setAttribute('oakPath', oakValue);
|
|
||||||
node.setAttribute('oakParent', `{{oakFullpath}}`);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (node.nodeType === node.TEXT_NODE) {
|
if (node.nodeType === node.TEXT_NODE) {
|
||||||
if (existsT(node.nodeValue)) {
|
if (existsT(node.nodeValue)) {
|
||||||
// const p = replaceDoubleSlash(resourcePath)
|
const newVal = formatI18nT(node.nodeValue, resourcePath);
|
||||||
// .replace(oakPagesOrComponentsRegex, '')
|
|
||||||
// .replace(localPagesOrComponentsRegex, '');
|
|
||||||
// const eP = p.substring(0, p.lastIndexOf('/'));
|
|
||||||
// const ns = eP
|
|
||||||
// .split('/')
|
|
||||||
// .filter((ele) => !!ele)
|
|
||||||
// .join('-');
|
|
||||||
// const val = replaceT(node.nodeValue); // {{i18n.t()}}
|
|
||||||
// const valArr = val.split('}}');
|
|
||||||
// let newVal = '';
|
|
||||||
// valArr.forEach((ele, index) => {
|
|
||||||
// if (existsT(ele)) {
|
|
||||||
// const head = ele.substring(
|
|
||||||
// 0,
|
|
||||||
// ele.indexOf('i18n.t(') + 7
|
|
||||||
// );
|
|
||||||
// let argsStr = ele.substring(ele.indexOf('i18n.t(') + 7);
|
|
||||||
// argsStr = argsStr.substring(0, argsStr.indexOf(')'));
|
|
||||||
// const end = ele.substring(ele.indexOf(')'));
|
|
||||||
// const arguments = argsStr
|
|
||||||
// .split(',')
|
|
||||||
// .filter((ele2) => !!ele2);
|
|
||||||
// arguments &&
|
|
||||||
// arguments.forEach((nodeVal, index) => {
|
|
||||||
// if (
|
|
||||||
// index === 0 &&
|
|
||||||
// nodeVal.indexOf(':') === -1
|
|
||||||
// ) {
|
|
||||||
// arguments.splice(
|
|
||||||
// index,
|
|
||||||
// 1,
|
|
||||||
// `'${ns}:' + ` + nodeVal
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
// newVal +=
|
|
||||||
// head +
|
|
||||||
// arguments.join(',') +
|
|
||||||
// `,${CURRENT_LOCALE_KEY},${CURRENT_LOCALE_DATA} || ''` +
|
|
||||||
// end +
|
|
||||||
// '}}';
|
|
||||||
// } else if (ele && ele.indexOf('{{') !== -1) {
|
|
||||||
// newVal += ele + '}}';
|
|
||||||
// } else {
|
|
||||||
// newVal += ele;
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
const newVal = formatT(node.nodeValue, resourcePath);
|
|
||||||
node.deleteData(0, node.nodeValue.length);
|
node.deleteData(0, node.nodeValue.length);
|
||||||
node.insertData(0, newVal);
|
node.insertData(0, newVal);
|
||||||
}
|
}
|
||||||
|
|
@ -363,11 +285,12 @@ module.exports = async function (content) {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
function formatT(value, resourcePath) {
|
function formatI18nT(value, resourcePath) {
|
||||||
// 处理i18n 把t()转成i18n.t()
|
// 处理i18n 把t()转成i18n.t()
|
||||||
const p = replaceDoubleSlash(resourcePath)
|
const p = replaceDoubleSlash(resourcePath).replace(
|
||||||
.replace(oakPagesOrComponentsRegex, '')
|
oakPagesOrComponentsRegex,
|
||||||
.replace(localPagesOrComponentsRegex, '');
|
''
|
||||||
|
);
|
||||||
const eP = p.substring(0, p.lastIndexOf('/'));
|
const eP = p.substring(0, p.lastIndexOf('/'));
|
||||||
const ns = eP
|
const ns = eP
|
||||||
.split('/')
|
.split('/')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue