# miniapp-os **Repository Path**: alamhubb/miniapp-os ## Basic Information - **Project Name**: miniapp-os - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-27 - **Last Updated**: 2025-12-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MiniAppOS > 自定义小程序运行平台 - 用于学习和研究小程序运行原理 ## 项目目标 创建一个简化的小程序运行环境,不追求完全兼容微信小程序,而是通过实现核心功能来理解小程序的工作原理。 ## 编译架构 ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ WXML 源码 │ → │ WXML AST │ → │ Slime AST │ → │ TS 代码 │ │ (.wxml) │ │ (XML结构) │ │ (JS AST) │ │ (OVS运行时) │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ slime-wxml-parser wxml-to-slime-ast slime-generator ``` ### 编译示例 **输入 (index.wxml)** ```xml Hello World ``` **中间产物 (WXML AST)** ```json { "type": "Element", "name": "view", "children": [{ "type": "Text", "value": "Hello World" }] } ``` **中间产物 (Slime AST)** ```json { "type": "CallExpression", "callee": { "type": "Identifier", "name": "div" }, "arguments": [...] } ``` **输出 (index.ts) - 使用 OVS 运行时** ```typescript import { div } from 'ovs' export default div({}, ["Hello World"]) ``` ## 项目结构 ``` miniapp-os/ ├── wxml-compiler/ # WXML 编译器 │ ├── src/ │ │ ├── transform/ # WXML AST → Slime AST 转换 │ │ └── index.ts # 编译器入口 │ └── package.json └── playground/ # 测试项目 ├── src/ │ ├── App.ovs # 主界面(OVS + CssTs) │ └── main.ts ├── pages/ # 测试小程序页面 │ └── index/ │ └── index.wxml ├── vite.config.ts └── package.json ``` ## 技术栈 - **UI 开发**: OVS + CssTs(.ovs 文件) - **WXML 解析**: slime-wxml-parser(基于 slime-xml-parser) - **AST 转换**: wxml-to-slime-ast(WXML AST → Slime AST) - **代码生成**: slime-generator(Slime AST → TS 代码) - **渲染运行时**: OVS(div, span 等函数) - **构建工具**: Vite + vite-plugin-ovs ## V1.0 功能 - [x] 项目结构搭建 - [ ] WXML 解析器(只支持 `view` 标签) - [ ] 代码生成器(view → div) - [ ] Playground 预览 ## 开发计划 ### V1.0 - MVP - 支持标签: `view`(映射为 div) - 无数据绑定 - 无 JS 逻辑 - 无 WXSS 样式 - 静态渲染 `Hello World` ### V2.0 - 基础功能(未来) - 更多标签: text, image, button - 数据绑定: `{{}}` - JS 文件: Page() ### V3.0 - 完整功能(未来) - WXSS 样式支持 - 双引擎架构 - 更多 API ## 快速开始 ```bash # 进入 playground cd playground # 安装依赖 npm install # 启动开发服务器 npm run dev ``` ## License MIT