结构
:::readFile
/xx/xx.vue
:::
将/xx/xx.vue
进行替换出来
const extractContentAll = (str, prefix, suffix) => {const pattern = new RegExp(`${prefix}(.*?)${suffix}`, "sg");const match = str.match(pattern);return match ? match : null;};const extractContentSingle = (str, prefix, suffix) => {const pattern = new RegExp(`${prefix}(.*?)${suffix}`, "s");const match = str.match(pattern);return match ? (match[1] + "").replace(/^\s+|\s+$/g, "") : null;};let pp = extractContentAll(res, ":::readFile", ":::");for (let item of pp) {item = item + "";let tempFilePath = extractContentSingle(item, ":::readFile", ":::");let fileContent = await getFileContent(tempFilePath);res = res.replace(new RegExp(`${item}`),item.replace(new RegExp(`${tempFilePath}`), fileContent));}
读取文件的方案(按照实际情况兼容替换即可)
方式一
//index.html中的头部添加<!--md路径失败-->锚定,判断是否读取了
const getFileContent = async (filePath) => {const response = await fetch(new URL(filePath, import.meta.url));const content = await response.text();if (/<!--\s+md路径失败\s+-->/.test(content)) {return "请检验md的路径是否正确【" + filePath + "】";}return content;
};
方式二(uniapp)
uni.request({url: "/src/static/index/index.txt", // 本地文件的路径success: (res) => {console.log("读取本地文件成功", res.data);},fail: (err) => {console.log("读取本地文件失败", err);},});