脚本
生成 rich tabel 表头
- 此脚本用于普通表格改造为漏斗表格
- 将查询条件 转换为 漏斗的查询条件
js
import fs from 'fs'
// const fs = require('fs')
/**
* 此脚本用于普通表格改造为漏斗表格
* 将查询条件 转换为 漏斗的查询条件
*/
try {
const data = await fs.promises.readFile(
'D:/WorkSpace/****/index.vue',
'utf8'
)
const reg = /<([\w-]+)\n?\s*[\w"'=]*\n?\s*v-model=["']\w*[Ff]orm\.(\w+)/g
const types = [
{ condition: 'include', value: ['input'], valueType: 'string' },
{ condition: 'eq', value: ['select', 'TrDict'], valueType: 'string' },
{ condition: 'between', value: ['date'], valueType: 'datetime' },
]
// console.log([...data.matchAll(reg)].length)
const filtersArr = [...data.matchAll(reg)].map((item) => {
const type = item[1]
console.log(type)
const filed = item[2]
console.log(filed)
const { condition, valueType } = types.find((typeItem) => {
return typeItem.value.find((valueItem) =>
type.toLowerCase().includes(valueItem.toLowerCase())
)
}) ?? {
condition: 'noKey',
valueType: 'noValue',
}
return [filed, { condition, valueType }]
})
const filters = Object.fromEntries(filtersArr)
console.log({ filters })
} catch (err) {
console.error('Error:', err)
}
生成 markdown include 路径
js
export default {
// 相对路径
// watch: ['../../../../../front-end/DesignPatterns/md/*.md'],
// 根目录路径
// watch: ['docs/front-end/javaScript/ES6/md/*.md'],
watch: ['docs/front-end/DesignPatterns/md/*.md'],
// watch: ['docs/back-end/Lang/NodeJs/Book/note/**/*.md'],
load(watchedFiles) {
const files = watchedFiles.sort((pre,next)=>{
const preNum = pre.match(/(\d+)[、-]?/)
const nextNum = next.match(/(\d+)[、-]?/)
if(preNum === null || nextNum===null)return 0
return preNum[1] - nextNum[1]
})
// .map(item => {
// // 相对路径 => ./md/${文件名}
// const path = item.match(/\/([^\/]+)$/)[1]
// return `<!--@include: ./md/${path}-->`.replaceAll(/\\/g,'/')
// })
.map(item => {
// 根路径 => ./md/${文件名}
const path = item.replace("docs","@")
return `<!--@include: ${path}-->`.replaceAll(/\\/g,'/')
})
return files
},
}
md
<script setup>
/**
* ./include/index.data.js
* 这里多添加./include
* 是因为include/index.md被Script./index.md引入
* index.data.js是相对Script./index.md 而言的
*/
import { data } from '@/back-end/Lang/NodeJs/Script/include/index.data.js'
</script>
<div v-for="i in data">
{{i}}
</div>
<!--@include: @/front-end/DesignPatterns/md/1、单例模式.md-->
<!--@include: @/front-end/DesignPatterns/md/2、策略模式.md-->
<!--@include: @/front-end/DesignPatterns/md/3、代理模式.md-->
<!--@include: @/front-end/DesignPatterns/md/4、迭代器模式.md-->
<!--@include: @/front-end/DesignPatterns/md/5、订阅发布者模式.md-->
<!--@include: @/front-end/DesignPatterns/md/6、命令模式.md-->
<!--@include: @/front-end/DesignPatterns/md/7、组合模式.md-->
<!--@include: @/front-end/DesignPatterns/md/8、模板方法模式.md-->
<!--@include: @/front-end/DesignPatterns/md/9、享元模式.md-->
<!--@include: @/front-end/DesignPatterns/md/10、职责链模式.md-->
<!--@include: @/front-end/DesignPatterns/md/11、中介者模式.md-->
<!--@include: @/front-end/DesignPatterns/md/12、装饰者模式.md-->
<!--@include: @/front-end/DesignPatterns/md/13、状态模式.md-->
<!--@include: @/front-end/DesignPatterns/md/14、适配器模式.md-->