feat: 初始化 ConfTemplate 云原生配置文件生成器

- Vue 3 + Element Plus + Monaco Editor 技术栈
- 支持 NGINX、Redis、MySQL、K8s Deployment、K8s Service 五个组件
- 侧边栏搜索过滤、动态表单联动、实时代码预览
- 一键复制/下载/重置,localStorage 状态持久化
- 纯前端静态页面,零后端依赖
This commit is contained in:
cnbugs
2026-07-18 19:19:14 +08:00
commit 5070664593
17 changed files with 5084 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
import { nginxSchema, generateNginxConf } from './nginx'
import { redisSchema, generateRedisConf } from './redis'
import { mysqlSchema, generateMysqlConf } from './mysql'
import { k8sDeploymentSchema, generateK8sDeploymentYaml } from './k8s-deployment'
import { k8sServiceSchema, generateK8sServiceYaml } from './k8s-service'
export const schemas = {
nginx: nginxSchema,
redis: redisSchema,
mysql: mysqlSchema,
'k8s-deployment': k8sDeploymentSchema,
'k8s-service': k8sServiceSchema,
}
export const generators = {
nginx: generateNginxConf,
redis: generateRedisConf,
mysql: generateMysqlConf,
'k8s-deployment': generateK8sDeploymentYaml,
'k8s-service': generateK8sServiceYaml,
}
export const categories = [
{
name: '代理与Web',
icon: 'Monitor',
items: ['nginx'],
},
{
name: '缓存',
icon: 'Coin',
items: ['redis'],
},
{
name: '数据库',
icon: 'Coin',
items: ['mysql'],
},
{
name: '云原生',
icon: 'Box',
items: ['k8s-deployment', 'k8s-service'],
},
]
export function getDefaultValues(schema) {
const defaults = {}
for (const group of schema.groups) {
for (const field of group.fields) {
defaults[field.key] = field.default
}
}
return defaults
}
export function getLanguage(format) {
const map = {
conf: 'ini',
cnf: 'ini',
yaml: 'yaml',
json: 'json',
toml: 'toml',
}
return map[format] || 'plaintext'
}