Developer a9bc4edc3f feat: 完善预览功能和测试数据支持
- 修复 Mustache.js 加载问题(内联到 HTML)
- 添加所有 block 类型的渲染支持(list, table, barcode, image)
- 为每个模板添加测试数据(daily-todo, food-order, fancy-receipt, ticket-list, long-text)
- 选择模板时自动加载对应测试数据
- 添加 Schema 页面显示功能
- 添加服务器启动和监控脚本
- 更新样式支持斜体、下划线等文本样式
2026-02-16 18:33:08 +00:00

Receipt Printer - 80mm 小票打印系统

基于 WiFi ESC/POS 的 80mm 小票打印系统,支持可视化模板配置和 REST API 调用。

核心特性

  • 🎨 可视化模板配置 - Web 界面实时编辑和预览
  • 📝 YAML/JSON 模板 - 声明式排版配置
  • 🔌 REST API - 通过 HTTP 调用打印
  • 📐 自动 Schema 提取 - 从模板变量自动生成数据契约
  • 🖨️ WiFi ESC/POS - 支持主流 80mm 热敏打印机

技术栈

  • 后端: Bun + Hono (轻量高性能)
  • 模板引擎: 自研 YAML → ESC/POS 转换器
  • 前端: 原生 HTML/JS (轻量化)
  • 打印机协议: ESC/POS over TCP

项目结构

├── docs/              # 设计文档
├── templates/         # 模板文件
├── src/               # 源码
│   ├── server.ts      # HTTP 服务
│   ├── printer.ts     # 打印机驱动
│   ├── template.ts    # 模板引擎
│   └── static/        # Web 界面
└── README.md

快速开始

# 安装依赖
bun install

# 配置打印机
bun run config

# 启动服务
bun run start

# 打开配置页面
open http://localhost:3000

API 示例

# 打印模板
curl -X POST http://localhost:3000/api/print/daily-todo \
  -H "Content-Type: application/json" \
  -d '{
    "data": {
      "date": "2025-02-12",
      "tasks": [
        {"status": "☐", "title": "修复 Bug #123"}
      ]
    }
  }'

许可证

MIT

Description
80mm 小票打印系统 - 支持可视化模板配置和 REST API
Readme 100 KiB
Languages
TypeScript 37.4%
HTML 27.8%
JavaScript 24.6%
CSS 7.8%
Shell 2.4%