# 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