mirror of
https://wget.la/https://github.com/Wxw-Gu/WechatExplorer
synced 2026-10-03 18:33:14 +08:00
feat: 日报新增模板市场,支持社区模板安装与使用
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
# TraceMemo 日报模板示例
|
||||
|
||||
此目录是可安装的最小日报模板源文件,使用全部虚构数据进行预览。运行 `node scripts/build-report-template-example.cjs` 会生成 `examples/report-template-basic.zip`。
|
||||
|
||||
模板只能调整已有日报模块的 HTML/CSS 排版。作者不能加入 JavaScript、事件属性、外部网络资源、嵌套页面、数据库访问、AI Prompt 或新的业务分析。
|
||||
|
||||
占位符分为三类:普通文本(会被 HTML 转义)、应用生成的 HTML 片段(只能作为元素内容使用)、受限样式类(只能放进 `class` 属性,并由应用输出合法 token)。`*_MORE_NOTE` 是 HTML 片段,不是样式类。
|
||||
|
||||
允许的标签和属性由 `src/shared/report-template-package.ts` 统一定义;图片资源只能是包内 `assets/` 下的 PNG/JPEG/WebP。缺少可选模块时应用输出空字符串和 `*_EMPTY_CLASS`,模板应允许该模块隐藏。
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"protocolVersion": "1.0",
|
||||
"kind": "daily-report",
|
||||
"id": "community.github.example.basic-feed",
|
||||
"name": "基础信息流",
|
||||
"author": { "name": "example" },
|
||||
"templateVersion": "1.0.0",
|
||||
"interfaceVersion": "1",
|
||||
"entry": "template.html",
|
||||
"preview": "preview.png",
|
||||
"capture": { "width": 430, "maxWidth": 430, "maxHeight": 20000 },
|
||||
"license": { "spdx": "MIT" },
|
||||
"platform": "mobile"
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
<!doctype html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||
<title>{{REPORT_TITLE}}</title>
|
||||
<style>
|
||||
* { box-sizing: border-box; }
|
||||
html, body { margin: 0; width: 430px; background: #f3f5f7; color: #18202a; font-family: -apple-system, BlinkMacSystemFont, sans-serif; }
|
||||
.report { padding: 18px 14px 32px; }
|
||||
.hero, .section { margin-top: 10px; padding: 16px; border-radius: 14px; background: #fff; }
|
||||
.hero { margin-top: 0; border-top: 4px solid #1769aa; }
|
||||
h1 { margin: 0 0 8px; font-size: 23px; }
|
||||
.meta, .muted { color: #64748b; font-size: 12px; line-height: 1.5; }
|
||||
.section-title { margin: 0 0 8px; font-size: 14px; }
|
||||
.topics-grid, .important-list { display: grid; gap: 8px; }
|
||||
.topic-card, .important-card { padding: 10px; border: 1px solid #dbe4ee; border-radius: 10px; }
|
||||
.empty-section { display: none !important; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main class="report {{REPORT_MODE_CLASS}}">
|
||||
<section class="hero {{REPORT_MODE_CLASS}}">
|
||||
<h1>{{REPORT_TITLE}}</h1>
|
||||
<div class="meta">{{REPORT_DATE}} · {{DATE_RANGE}}</div>
|
||||
<p>{{HERO_SUMMARY}}</p>
|
||||
<div class="muted">{{HERO_STATUS_LINE}}</div>
|
||||
</section>
|
||||
<section class="section {{TOPICS_EMPTY_CLASS}}">
|
||||
<h2 class="section-title">今日话题</h2>
|
||||
<div class="topics-grid">{{TOPIC_CARDS}}</div>
|
||||
{{TOPICS_MORE_NOTE}}
|
||||
</section>
|
||||
<section class="section {{MESSAGES_EMPTY_CLASS}}">
|
||||
<h2 class="section-title">重要消息</h2>
|
||||
<div class="important-list">{{IMPORTANT_MESSAGES}}</div>
|
||||
</section>
|
||||
<footer class="muted">{{FOOTER_NOTE}}</footer>
|
||||
</main>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user