novelws 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +161 -0
- package/LICENSE +22 -0
- package/README.md +372 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +50 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/check.d.ts +6 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +32 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/init.d.ts +6 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +160 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/plugin.d.ts +6 -0
- package/dist/commands/plugin.d.ts.map +1 -0
- package/dist/commands/plugin.js +135 -0
- package/dist/commands/plugin.js.map +1 -0
- package/dist/commands/upgrade.d.ts +6 -0
- package/dist/commands/upgrade.d.ts.map +1 -0
- package/dist/commands/upgrade.js +92 -0
- package/dist/commands/upgrade.js.map +1 -0
- package/dist/core/config.d.ts +72 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +136 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/errors.d.ts +59 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +125 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/platform.d.ts +27 -0
- package/dist/core/platform.d.ts.map +1 -0
- package/dist/core/platform.js +75 -0
- package/dist/core/platform.js.map +1 -0
- package/dist/core/template.d.ts +35 -0
- package/dist/core/template.d.ts.map +1 -0
- package/dist/core/template.js +94 -0
- package/dist/core/template.js.map +1 -0
- package/dist/plugins/identifier.d.ts +13 -0
- package/dist/plugins/identifier.d.ts.map +1 -0
- package/dist/plugins/identifier.js +72 -0
- package/dist/plugins/identifier.js.map +1 -0
- package/dist/plugins/installers/base.d.ts +27 -0
- package/dist/plugins/installers/base.d.ts.map +1 -0
- package/dist/plugins/installers/base.js +30 -0
- package/dist/plugins/installers/base.js.map +1 -0
- package/dist/plugins/installers/github.d.ts +22 -0
- package/dist/plugins/installers/github.d.ts.map +1 -0
- package/dist/plugins/installers/github.js +133 -0
- package/dist/plugins/installers/github.js.map +1 -0
- package/dist/plugins/installers/local.d.ts +16 -0
- package/dist/plugins/installers/local.d.ts.map +1 -0
- package/dist/plugins/installers/local.js +69 -0
- package/dist/plugins/installers/local.js.map +1 -0
- package/dist/plugins/installers/npm.d.ts +20 -0
- package/dist/plugins/installers/npm.d.ts.map +1 -0
- package/dist/plugins/installers/npm.js +99 -0
- package/dist/plugins/installers/npm.js.map +1 -0
- package/dist/plugins/manager.d.ts +77 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +349 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/registry.d.ts +48 -0
- package/dist/plugins/registry.d.ts.map +1 -0
- package/dist/plugins/registry.js +111 -0
- package/dist/plugins/registry.js.map +1 -0
- package/dist/plugins/types.d.ts +66 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/plugins/validator.d.ts +19 -0
- package/dist/plugins/validator.d.ts.map +1 -0
- package/dist/plugins/validator.js +164 -0
- package/dist/plugins/validator.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +48 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/project.d.ts +24 -0
- package/dist/utils/project.d.ts.map +1 -0
- package/dist/utils/project.js +61 -0
- package/dist/utils/project.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +21 -0
- package/dist/version.js.map +1 -0
- package/package.json +76 -0
- package/plugins/authentic-voice/README.md +31 -0
- package/plugins/authentic-voice/commands/authentic-voice.md +73 -0
- package/plugins/authentic-voice/commands/authenticity-audit.md +37 -0
- package/plugins/authentic-voice/config.yaml +30 -0
- package/plugins/authentic-voice/experts/authentic-editor.md +27 -0
- package/plugins/export/README.md +319 -0
- package/plugins/export/commands/export.md +460 -0
- package/plugins/export/commands/generate-cover.md +256 -0
- package/plugins/export/commands/metadata.md +309 -0
- package/plugins/export/config.yaml +47 -0
- package/plugins/export/experts/publishing-expert.md +171 -0
- package/plugins/export/templates/epub/chapter-template.html +13 -0
- package/plugins/export/templates/epub/cover-template.html +14 -0
- package/plugins/export/templates/epub/stylesheet.css +200 -0
- package/plugins/export/templates/pdf/ebook-style.css +137 -0
- package/plugins/export/templates/pdf/print-style.css +179 -0
- package/plugins/export/templates/platforms/jinjiang-format.md +101 -0
- package/plugins/export/templates/platforms/qidian-format.md +108 -0
- package/plugins/export/templates/platforms/tomato-format.md +95 -0
- package/plugins/translate/README.md +265 -0
- package/plugins/translate/commands/glossary.md +731 -0
- package/plugins/translate/commands/translate-preview.md +543 -0
- package/plugins/translate/commands/translate.md +649 -0
- package/plugins/translate/config.yaml +43 -0
- package/plugins/translate/experts/literary-translator.md +605 -0
- package/templates/commands/analyze.md +1485 -0
- package/templates/commands/checklist.md +434 -0
- package/templates/commands/clarify.md +257 -0
- package/templates/commands/constitution.md +257 -0
- package/templates/commands/expert.md +136 -0
- package/templates/commands/plan.md +749 -0
- package/templates/commands/recap.md +613 -0
- package/templates/commands/relations.md +96 -0
- package/templates/commands/revise.md +341 -0
- package/templates/commands/specify.md +682 -0
- package/templates/commands/tasks.md +142 -0
- package/templates/commands/timeline.md +73 -0
- package/templates/commands/track-init.md +137 -0
- package/templates/commands/track.md +463 -0
- package/templates/commands/write.md +1264 -0
- package/templates/config/keyword-mappings.json +106 -0
- package/templates/knowledge/audit-config.json +26 -0
- package/templates/knowledge/character-profiles.md +152 -0
- package/templates/knowledge/character-voices.md +137 -0
- package/templates/knowledge/locations.md +184 -0
- package/templates/knowledge/world-setting.md +121 -0
- package/templates/knowledge-base/README.md +285 -0
- package/templates/knowledge-base/character-archetypes/01-hero.md +233 -0
- package/templates/knowledge-base/character-archetypes/02-mentor.md +177 -0
- package/templates/knowledge-base/character-archetypes/03-shadow.md +221 -0
- package/templates/knowledge-base/character-archetypes/04-ally.md +178 -0
- package/templates/knowledge-base/character-archetypes/05-shapeshifter.md +177 -0
- package/templates/knowledge-base/character-archetypes/06-trickster.md +181 -0
- package/templates/knowledge-base/character-archetypes/07-threshold-guardian.md +177 -0
- package/templates/knowledge-base/character-archetypes/08-herald.md +180 -0
- package/templates/knowledge-base/character-archetypes/09-father.md +249 -0
- package/templates/knowledge-base/character-archetypes/10-mother.md +202 -0
- package/templates/knowledge-base/character-archetypes/11-child.md +183 -0
- package/templates/knowledge-base/character-archetypes/12-sage.md +202 -0
- package/templates/knowledge-base/character-archetypes/README.md +60 -0
- package/templates/knowledge-base/character-archetypes/application-guide.md +222 -0
- package/templates/knowledge-base/character-archetypes/archetype-combinations.md +242 -0
- package/templates/knowledge-base/character-archetypes/config.yaml +28 -0
- package/templates/knowledge-base/character-archetypes/examples-analysis.md +223 -0
- package/templates/knowledge-base/craft/character-arc.md +1153 -0
- package/templates/knowledge-base/craft/dialogue.md +1170 -0
- package/templates/knowledge-base/craft/pacing.md +1200 -0
- package/templates/knowledge-base/craft/scene-structure.md +1136 -0
- package/templates/knowledge-base/craft/show-not-tell.md +1012 -0
- package/templates/knowledge-base/emotional-beats/01-first-meeting.md +145 -0
- package/templates/knowledge-base/emotional-beats/02-bonding-moment.md +226 -0
- package/templates/knowledge-base/emotional-beats/03-declaration.md +284 -0
- package/templates/knowledge-base/emotional-beats/04-triumph.md +240 -0
- package/templates/knowledge-base/emotional-beats/05-reunion.md +396 -0
- package/templates/knowledge-base/emotional-beats/06-forgiveness.md +204 -0
- package/templates/knowledge-base/emotional-beats/07-betrayal.md +204 -0
- package/templates/knowledge-base/emotional-beats/08-loss.md +214 -0
- package/templates/knowledge-base/emotional-beats/09-rejection.md +254 -0
- package/templates/knowledge-base/emotional-beats/10-failure.md +244 -0
- package/templates/knowledge-base/emotional-beats/11-misunderstanding.md +205 -0
- package/templates/knowledge-base/emotional-beats/12-farewell.md +283 -0
- package/templates/knowledge-base/emotional-beats/13-revelation.md +242 -0
- package/templates/knowledge-base/emotional-beats/14-point-of-no-return.md +215 -0
- package/templates/knowledge-base/emotional-beats/15-dark-night.md +244 -0
- package/templates/knowledge-base/emotional-beats/16-sacrifice.md +246 -0
- package/templates/knowledge-base/emotional-beats/17-awakening.md +246 -0
- package/templates/knowledge-base/emotional-beats/18-confrontation.md +217 -0
- package/templates/knowledge-base/emotional-beats/19-bittersweet-goodbye.md +368 -0
- package/templates/knowledge-base/emotional-beats/20-moral-dilemma.md +248 -0
- package/templates/knowledge-base/emotional-beats/21-temptation.md +240 -0
- package/templates/knowledge-base/emotional-beats/22-redemption.md +210 -0
- package/templates/knowledge-base/emotional-beats/README.md +104 -0
- package/templates/knowledge-base/emotional-beats/beat-sequences.md +276 -0
- package/templates/knowledge-base/emotional-beats/config.yaml +30 -0
- package/templates/knowledge-base/emotional-beats/pacing-guide.md +390 -0
- package/templates/knowledge-base/genres/historical.md +1127 -0
- package/templates/knowledge-base/genres/mystery.md +1123 -0
- package/templates/knowledge-base/genres/revenge.md +846 -0
- package/templates/knowledge-base/genres/romance.md +948 -0
- package/templates/knowledge-base/genres/sci-fi.md +156 -0
- package/templates/knowledge-base/genres/thriller.md +166 -0
- package/templates/knowledge-base/genres/wuxia.md +143 -0
- package/templates/knowledge-base/references/README.md +96 -0
- package/templates/knowledge-base/references/china-1920s/culture.md +423 -0
- package/templates/knowledge-base/references/china-1920s/daily-life.md +616 -0
- package/templates/knowledge-base/references/china-1920s/overview.md +298 -0
- package/templates/knowledge-base/references/china-1920s/society.md +703 -0
- package/templates/knowledge-base/references/china-1920s/warlords.md +427 -0
- package/templates/knowledge-base/references/cultivation-world/daily-life.md +108 -0
- package/templates/knowledge-base/references/cultivation-world/overview.md +64 -0
- package/templates/knowledge-base/references/cultivation-world/power-system.md +108 -0
- package/templates/knowledge-base/references/cultivation-world/sects.md +104 -0
- package/templates/knowledge-base/references/cultivation-world/world-setting.md +108 -0
- package/templates/knowledge-base/references/modern-workplace/corporate.md +115 -0
- package/templates/knowledge-base/references/modern-workplace/daily-life.md +129 -0
- package/templates/knowledge-base/references/modern-workplace/overview.md +73 -0
- package/templates/knowledge-base/references/modern-workplace/relationships.md +107 -0
- package/templates/knowledge-base/references/modern-workplace/tech-industry.md +131 -0
- package/templates/knowledge-base/references/tang-dynasty/culture.md +135 -0
- package/templates/knowledge-base/references/tang-dynasty/daily-life.md +139 -0
- package/templates/knowledge-base/references/tang-dynasty/overview.md +76 -0
- package/templates/knowledge-base/references/tang-dynasty/politics.md +121 -0
- package/templates/knowledge-base/references/tang-dynasty/society.md +126 -0
- package/templates/knowledge-base/requirements/README.md +240 -0
- package/templates/knowledge-base/requirements/anti-ai-v3.md +46 -0
- package/templates/knowledge-base/requirements/anti-ai-v4.md +430 -0
- package/templates/knowledge-base/requirements/fast-paced.md +552 -0
- package/templates/knowledge-base/requirements/no-poison.md +60 -0
- package/templates/knowledge-base/requirements/romance-angst.md +102 -0
- package/templates/knowledge-base/requirements/romance-sweet.md +63 -0
- package/templates/knowledge-base/requirements/serious-literature.md +45 -0
- package/templates/knowledge-base/requirements/strong-emotion.md +60 -0
- package/templates/knowledge-base/styles/README.md +302 -0
- package/templates/knowledge-base/styles/ancient-style.md +579 -0
- package/templates/knowledge-base/styles/literary.md +439 -0
- package/templates/knowledge-base/styles/minimal.md +472 -0
- package/templates/knowledge-base/styles/natural-voice.md +930 -0
- package/templates/knowledge-base/styles/web-novel.md +525 -0
- package/templates/memory/constitution.md +140 -0
- package/templates/memory/personal-voice.md +113 -0
- package/templates/scripts/README.md +187 -0
- package/templates/scripts/bash/analyze-story.sh +170 -0
- package/templates/scripts/bash/check-consistency.sh +463 -0
- package/templates/scripts/bash/check-plot.sh +374 -0
- package/templates/scripts/bash/check-timeline.sh +346 -0
- package/templates/scripts/bash/check-world.sh +395 -0
- package/templates/scripts/bash/check-writing-state.sh +854 -0
- package/templates/scripts/bash/clarify-story.sh +117 -0
- package/templates/scripts/bash/common.sh +151 -0
- package/templates/scripts/bash/constitution.sh +114 -0
- package/templates/scripts/bash/generate-tasks.sh +65 -0
- package/templates/scripts/bash/init-tracking.sh +183 -0
- package/templates/scripts/bash/manage-relations.sh +174 -0
- package/templates/scripts/bash/plan-story.sh +100 -0
- package/templates/scripts/bash/specify-story.sh +93 -0
- package/templates/scripts/bash/tasks-story.sh +96 -0
- package/templates/scripts/bash/test-word-count.sh +182 -0
- package/templates/scripts/bash/tests/bench-preload-cache.sh +100 -0
- package/templates/scripts/bash/tests/run-all-benchmarks.sh +16 -0
- package/templates/scripts/bash/tests/test-cache-semantics.sh +199 -0
- package/templates/scripts/bash/tests/test-cross-platform.sh +35 -0
- package/templates/scripts/bash/tests/test-edge-cases-bash.sh +60 -0
- package/templates/scripts/bash/tests/test-phase1-bash.sh +28 -0
- package/templates/scripts/bash/tests/test-preload-cache.sh +123 -0
- package/templates/scripts/bash/tests/test-regex-precompile.sh +89 -0
- package/templates/scripts/bash/tests/test-regression-bash.sh +42 -0
- package/templates/scripts/bash/tests/test-task6-verification.sh +200 -0
- package/templates/scripts/bash/text-audit.sh +144 -0
- package/templates/scripts/bash/track-progress.sh +194 -0
- package/templates/scripts/powershell/analyze-story.ps1 +171 -0
- package/templates/scripts/powershell/check-analyze-stage.ps1 +110 -0
- package/templates/scripts/powershell/check-consistency.ps1 +138 -0
- package/templates/scripts/powershell/check-plot.ps1 +139 -0
- package/templates/scripts/powershell/check-timeline.ps1 +112 -0
- package/templates/scripts/powershell/check-writing-state.ps1 +490 -0
- package/templates/scripts/powershell/check-writing-state.ps1.backup +135 -0
- package/templates/scripts/powershell/clarify-story.ps1 +107 -0
- package/templates/scripts/powershell/common.ps1 +36 -0
- package/templates/scripts/powershell/constitution.ps1 +142 -0
- package/templates/scripts/powershell/generate-tasks.ps1 +75 -0
- package/templates/scripts/powershell/init-tracking.ps1 +98 -0
- package/templates/scripts/powershell/manage-relations.ps1 +134 -0
- package/templates/scripts/powershell/plan-story.ps1 +96 -0
- package/templates/scripts/powershell/specify-story.ps1 +82 -0
- package/templates/scripts/powershell/tests/bench-ps-cache.ps1 +80 -0
- package/templates/scripts/powershell/tests/test-cross-platform.ps1 +27 -0
- package/templates/scripts/powershell/tests/test-edge-cases-ps.ps1 +29 -0
- package/templates/scripts/powershell/tests/test-phase1-ps.ps1 +28 -0
- package/templates/scripts/powershell/tests/test-ps-cache.ps1 +73 -0
- package/templates/scripts/powershell/tests/test-regression-ps.ps1 +40 -0
- package/templates/scripts/powershell/text-audit.ps1 +100 -0
- package/templates/scripts/powershell/track-progress.ps1 +105 -0
- package/templates/skills/genre-knowledge/fantasy/SKILL.md +355 -0
- package/templates/skills/genre-knowledge/mystery/SKILL.md +337 -0
- package/templates/skills/genre-knowledge/romance/SKILL.md +228 -0
- package/templates/skills/genre-knowledge/sci-fi/SKILL.md +65 -0
- package/templates/skills/genre-knowledge/thriller/SKILL.md +95 -0
- package/templates/skills/quality-assurance/consistency-checker/SKILL.md +341 -0
- package/templates/skills/quality-assurance/continuity-tracker/SKILL.md +157 -0
- package/templates/skills/quality-assurance/forgotten-elements/SKILL.md +147 -0
- package/templates/skills/quality-assurance/getting-started/SKILL.md +224 -0
- package/templates/skills/quality-assurance/pacing-monitor/SKILL.md +143 -0
- package/templates/skills/quality-assurance/pov-validator/SKILL.md +135 -0
- package/templates/skills/quality-assurance/pre-write-checklist/SKILL.md +583 -0
- package/templates/skills/quality-assurance/requirement-detector/CONFLICT_RESOLUTION.md +119 -0
- package/templates/skills/quality-assurance/requirement-detector/EXAMPLES.md +146 -0
- package/templates/skills/quality-assurance/requirement-detector/KEYWORDS.md +160 -0
- package/templates/skills/quality-assurance/requirement-detector/SKILL.md +149 -0
- package/templates/skills/quality-assurance/setting-detector/SKILL.md +611 -0
- package/templates/skills/quality-assurance/style-detector/CONFLICT_RESOLUTION.md +126 -0
- package/templates/skills/quality-assurance/style-detector/EXAMPLES.md +206 -0
- package/templates/skills/quality-assurance/style-detector/KEYWORDS.md +207 -0
- package/templates/skills/quality-assurance/style-detector/SKILL.md +126 -0
- package/templates/skills/quality-assurance/workflow-guide/SKILL.md +381 -0
- package/templates/skills/writing-techniques/character-arc/SKILL.md +267 -0
- package/templates/skills/writing-techniques/dialogue-techniques/SKILL.md +366 -0
- package/templates/skills/writing-techniques/multi-thread-narrative/SKILL.md +553 -0
- package/templates/skills/writing-techniques/multi-thread-narrative/experts/thread-analyst.md +226 -0
- package/templates/skills/writing-techniques/pacing-control/SKILL.md +377 -0
- package/templates/skills/writing-techniques/reader-expectation/SKILL.md +578 -0
- package/templates/skills/writing-techniques/reader-expectation/experts/expectation-analyst.md +209 -0
- package/templates/skills/writing-techniques/revision-polish/SKILL.md +496 -0
- package/templates/skills/writing-techniques/revision-polish/experts/revision-editor.md +221 -0
- package/templates/skills/writing-techniques/scene-structure/SKILL.md +361 -0
- package/templates/skills/writing-techniques/style-learning/SKILL.md +436 -0
- package/templates/specification-example.md +146 -0
- package/templates/tracking/character-state.json +78 -0
- package/templates/tracking/plot-tracker.json +62 -0
- package/templates/tracking/relationships.json +70 -0
- package/templates/tracking/timeline.json +49 -0
- package/templates/tracking/tracking-log.md +110 -0
- package/templates/tracking/validation-rules.json +128 -0
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 元数据管理 - /metadata
|
|
3
|
+
description: 编辑小说元数据(书名、作者、简介等),用于导出和发布
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 元数据管理
|
|
7
|
+
|
|
8
|
+
## 使用方法
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
/metadata [子命令] [选项]
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
### 基本用法
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
/metadata init # 从 specification.md 自动提取元数据
|
|
18
|
+
/metadata show # 查看当前元数据
|
|
19
|
+
/metadata edit # 交互式编辑
|
|
20
|
+
/metadata set title "新书名" # 设置单个字段
|
|
21
|
+
/metadata validate # 验证元数据完整性
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 子命令
|
|
27
|
+
|
|
28
|
+
### /metadata init
|
|
29
|
+
|
|
30
|
+
从 `stories/[name]/specification.md` 自动提取元数据,生成 `metadata.json`。
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
/metadata init
|
|
34
|
+
|
|
|
35
|
+
读取 specification.md:
|
|
36
|
+
- 提取书名(标题)
|
|
37
|
+
- 提取简介(description 部分)
|
|
38
|
+
- 提取类型标签
|
|
39
|
+
|
|
|
40
|
+
自动填充:
|
|
41
|
+
- language: zh-CN(自动检测)
|
|
42
|
+
- identifier: UUID 自动生成
|
|
43
|
+
- date: 当前日期
|
|
44
|
+
- publisher: 自出版
|
|
45
|
+
- rights: 自动生成版权声明
|
|
46
|
+
|
|
|
47
|
+
保存到 stories/[name]/metadata.json
|
|
48
|
+
|
|
|
49
|
+
提示用户补充:
|
|
50
|
+
- 作者名(必需)
|
|
51
|
+
- 副标题(可选)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**示例:**
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
/metadata init
|
|
58
|
+
|
|
59
|
+
从 specification.md 提取元数据:
|
|
60
|
+
书名:青云志
|
|
61
|
+
简介:一个少年从山村走向修仙世界的故事...
|
|
62
|
+
类型:玄幻、修仙
|
|
63
|
+
|
|
64
|
+
自动填充:
|
|
65
|
+
语言:zh-CN
|
|
66
|
+
标识:urn:uuid:550e8400-e29b-41d4-a716-446655440000
|
|
67
|
+
日期:2025-02-09
|
|
68
|
+
|
|
69
|
+
请补充以下信息:
|
|
70
|
+
作者名:___
|
|
71
|
+
副标题(可选):___
|
|
72
|
+
|
|
73
|
+
已保存到:stories/my-novel/metadata.json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
### /metadata show
|
|
79
|
+
|
|
80
|
+
显示当前元数据。
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
/metadata show
|
|
84
|
+
|
|
85
|
+
书名:青云志
|
|
86
|
+
副标题:修仙之路
|
|
87
|
+
作者:张三
|
|
88
|
+
语言:中文(zh-CN)
|
|
89
|
+
简介:一个少年从山村走向修仙世界的故事...
|
|
90
|
+
分类:玄幻、修仙
|
|
91
|
+
出版者:自出版
|
|
92
|
+
日期:2025-02-09
|
|
93
|
+
版权:Copyright 2025 张三. All rights reserved.
|
|
94
|
+
字数:256,000
|
|
95
|
+
章节:30 章
|
|
96
|
+
|
|
97
|
+
状态:元数据完整
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### /metadata edit
|
|
103
|
+
|
|
104
|
+
交互式引导编辑各字段。逐项显示当前值,用户可修改或回车跳过。
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
/metadata edit
|
|
108
|
+
|
|
109
|
+
编辑元数据(回车跳过不修改):
|
|
110
|
+
|
|
111
|
+
书名 [青云志]:___
|
|
112
|
+
副标题 [修仙之路]:___
|
|
113
|
+
作者 [张三]:___
|
|
114
|
+
简介 [一个少年从山村走向修仙世界的故事...]:___
|
|
115
|
+
分类标签 [玄幻, 修仙]:___
|
|
116
|
+
出版者 [自出版]:___
|
|
117
|
+
版权声明 [Copyright 2025 张三...]:___
|
|
118
|
+
|
|
119
|
+
已保存更新。
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### /metadata set
|
|
125
|
+
|
|
126
|
+
设置单个字段。
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
/metadata set title "新书名"
|
|
130
|
+
/metadata set author "新作者名"
|
|
131
|
+
/metadata set description "新简介"
|
|
132
|
+
/metadata set subjects "玄幻,修仙,热血"
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**支持的字段:**
|
|
136
|
+
|
|
137
|
+
| 字段名 | 说明 | 示例 |
|
|
138
|
+
|--------|------|------|
|
|
139
|
+
| `title` | 书名 | `"青云志"` |
|
|
140
|
+
| `subtitle` | 副标题 | `"修仙之路"` |
|
|
141
|
+
| `author` | 作者 | `"张三"` |
|
|
142
|
+
| `description` | 简介 | `"一个少年..."` |
|
|
143
|
+
| `subjects` | 分类标签(逗号分隔) | `"玄幻,修仙"` |
|
|
144
|
+
| `publisher` | 出版者 | `"自出版"` |
|
|
145
|
+
| `rights` | 版权声明 | `"Copyright 2025..."` |
|
|
146
|
+
| `language` | 语言代码 | `"zh-CN"` |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### /metadata validate
|
|
151
|
+
|
|
152
|
+
验证元数据完整性,检查导出所需的必填字段。
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
/metadata validate
|
|
156
|
+
|
|
157
|
+
元数据验证:
|
|
158
|
+
title:青云志
|
|
159
|
+
author:张三
|
|
160
|
+
language:zh-CN
|
|
161
|
+
identifier:urn:uuid:550e8400...
|
|
162
|
+
description:一个少年从山村走向修仙世界的故事...
|
|
163
|
+
subjects:玄幻, 修仙
|
|
164
|
+
|
|
165
|
+
必填字段:4/4
|
|
166
|
+
推荐字段:2/2
|
|
167
|
+
可选字段:3/5
|
|
168
|
+
|
|
169
|
+
状态:可以导出
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**验证规则:**
|
|
173
|
+
|
|
174
|
+
| 字段 | 级别 | 缺失处理 |
|
|
175
|
+
|------|------|---------|
|
|
176
|
+
| title | 必填 | 错误:无法导出 |
|
|
177
|
+
| author | 必填 | 错误:无法导出 |
|
|
178
|
+
| language | 必填 | 自动填充 zh-CN |
|
|
179
|
+
| identifier | 必填 | 自动生成 UUID |
|
|
180
|
+
| description | 推荐 | 警告:建议填写 |
|
|
181
|
+
| subjects | 推荐 | 警告:建议填写 |
|
|
182
|
+
| publisher | 可选 | 默认"自出版" |
|
|
183
|
+
| date | 可选 | 默认当前日期 |
|
|
184
|
+
| rights | 可选 | 自动生成 |
|
|
185
|
+
| subtitle | 可选 | 留空 |
|
|
186
|
+
| series | 可选 | 留空 |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 元数据 JSON 格式
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"title": "青云志",
|
|
195
|
+
"subtitle": "修仙之路",
|
|
196
|
+
"author": "张三",
|
|
197
|
+
"language": "zh-CN",
|
|
198
|
+
"identifier": "urn:uuid:550e8400-e29b-41d4-a716-446655440000",
|
|
199
|
+
"publisher": "自出版",
|
|
200
|
+
"date": "2025-02-09",
|
|
201
|
+
"description": "一个少年从山村走向修仙世界的故事...",
|
|
202
|
+
"subjects": ["玄幻", "修仙", "热血"],
|
|
203
|
+
"rights": "Copyright 2025 张三. All rights reserved.",
|
|
204
|
+
"series": {
|
|
205
|
+
"name": "",
|
|
206
|
+
"position": 1
|
|
207
|
+
},
|
|
208
|
+
"cover": {
|
|
209
|
+
"file": "cover.jpg",
|
|
210
|
+
"width": 1600,
|
|
211
|
+
"height": 2400
|
|
212
|
+
},
|
|
213
|
+
"stats": {
|
|
214
|
+
"chapters": 30,
|
|
215
|
+
"total_words": 256000,
|
|
216
|
+
"last_updated": "2025-02-09"
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
**字段说明:**
|
|
222
|
+
|
|
223
|
+
| 字段 | 类型 | 说明 |
|
|
224
|
+
|------|------|------|
|
|
225
|
+
| `title` | string | 书名 |
|
|
226
|
+
| `subtitle` | string | 副标题 |
|
|
227
|
+
| `author` | string | 作者名 |
|
|
228
|
+
| `language` | string | BCP 47 语言代码(zh-CN, en, ja) |
|
|
229
|
+
| `identifier` | string | 唯一标识(UUID 格式) |
|
|
230
|
+
| `publisher` | string | 出版者 |
|
|
231
|
+
| `date` | string | 出版日期(ISO 8601) |
|
|
232
|
+
| `description` | string | 简介 |
|
|
233
|
+
| `subjects` | string[] | 分类标签 |
|
|
234
|
+
| `rights` | string | 版权声明 |
|
|
235
|
+
| `series.name` | string | 系列名称 |
|
|
236
|
+
| `series.position` | number | 系列中的位置 |
|
|
237
|
+
| `cover.file` | string | 封面文件名 |
|
|
238
|
+
| `cover.width` | number | 封面宽度(像素) |
|
|
239
|
+
| `cover.height` | number | 封面高度(像素) |
|
|
240
|
+
| `stats.chapters` | number | 章节数(自动统计) |
|
|
241
|
+
| `stats.total_words` | number | 总字数(自动统计) |
|
|
242
|
+
| `stats.last_updated` | string | 最后更新日期 |
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## 元数据与导出格式的关系
|
|
247
|
+
|
|
248
|
+
| 字段 | EPUB | PDF | 网文平台 | Markdown |
|
|
249
|
+
|------|------|-----|---------|----------|
|
|
250
|
+
| title | dc:title | 封面/页眉 | 文件名 | 标题 |
|
|
251
|
+
| author | dc:creator | 封面 | - | 作者行 |
|
|
252
|
+
| language | dc:language | - | - | - |
|
|
253
|
+
| identifier | dc:identifier | - | - | - |
|
|
254
|
+
| description | dc:description | - | - | - |
|
|
255
|
+
| subjects | dc:subject | - | - | - |
|
|
256
|
+
| cover | 嵌入封面 | 第一页 | - | - |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 与其他命令集成
|
|
261
|
+
|
|
262
|
+
### 与 /export 集成
|
|
263
|
+
|
|
264
|
+
```
|
|
265
|
+
/export --format epub
|
|
266
|
+
-> 自动读取 metadata.json
|
|
267
|
+
-> 如果不存在:提示先运行 /metadata init
|
|
268
|
+
-> 如果缺少必填字段:提示补充
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 与 /specify 集成
|
|
272
|
+
|
|
273
|
+
```
|
|
274
|
+
/specify 完成后 ->
|
|
275
|
+
自动提示:"是否从 specification.md 初始化元数据?"
|
|
276
|
+
用户确认 -> /metadata init
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### 与 /generate-cover 集成
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
/generate-cover ->
|
|
283
|
+
读取 metadata.json 中的 title 和 author
|
|
284
|
+
用于封面文字生成
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## 常见陷阱
|
|
290
|
+
|
|
291
|
+
### 1. 忘记设置作者名
|
|
292
|
+
|
|
293
|
+
**症状**:导出的 EPUB 作者显示为空
|
|
294
|
+
**解决**:`/metadata set author "你的名字"`
|
|
295
|
+
|
|
296
|
+
### 2. 简介过长
|
|
297
|
+
|
|
298
|
+
**症状**:某些阅读器截断简介
|
|
299
|
+
**解决**:控制在 200 字以内,突出核心卖点
|
|
300
|
+
|
|
301
|
+
### 3. 分类标签不准确
|
|
302
|
+
|
|
303
|
+
**症状**:电子书商店分类错误
|
|
304
|
+
**解决**:使用标准分类(玄幻、言情、悬疑等),避免自创标签
|
|
305
|
+
|
|
306
|
+
### 4. 语言代码错误
|
|
307
|
+
|
|
308
|
+
**症状**:阅读器排版异常(如中文用了英文排版规则)
|
|
309
|
+
**解决**:中文用 `zh-CN`,英文用 `en`,日文用 `ja`
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: export
|
|
2
|
+
version: 1.0.0
|
|
3
|
+
description: 小说导出插件 - 支持 EPUB/PDF/网文平台格式,自动目录和封面
|
|
4
|
+
type: feature
|
|
5
|
+
author: Novel Writer Community
|
|
6
|
+
|
|
7
|
+
commands:
|
|
8
|
+
- id: export
|
|
9
|
+
file: commands/export.md
|
|
10
|
+
description: 导出小说为可发布格式(EPUB/PDF/网文平台)
|
|
11
|
+
- id: generate-cover
|
|
12
|
+
file: commands/generate-cover.md
|
|
13
|
+
description: 生成或上传封面图片
|
|
14
|
+
- id: metadata
|
|
15
|
+
file: commands/metadata.md
|
|
16
|
+
description: 编辑小说元数据(书名、作者、简介等)
|
|
17
|
+
|
|
18
|
+
experts:
|
|
19
|
+
- id: publishing-expert
|
|
20
|
+
file: experts/publishing-expert.md
|
|
21
|
+
title: 出版格式专家
|
|
22
|
+
description: 精通 EPUB/PDF 格式规范与网文平台要求
|
|
23
|
+
|
|
24
|
+
dependencies:
|
|
25
|
+
core: ">=1.0.0"
|
|
26
|
+
external:
|
|
27
|
+
pandoc: ">=2.0 (可选,用于高级 PDF 导出)"
|
|
28
|
+
|
|
29
|
+
installation:
|
|
30
|
+
message: |
|
|
31
|
+
export 导出插件安装成功!
|
|
32
|
+
|
|
33
|
+
支持格式:
|
|
34
|
+
- EPUB 3.0(Kindle, Apple Books, Google Play Books)
|
|
35
|
+
- PDF(打印 / 阅读)
|
|
36
|
+
- 网文平台(起点、番茄、晋江)
|
|
37
|
+
- Markdown 合集(单文件备份)
|
|
38
|
+
|
|
39
|
+
快速开始:
|
|
40
|
+
1. /metadata edit 编辑元数据(书名、作者、简介)
|
|
41
|
+
2. /generate-cover 生成或上传封面
|
|
42
|
+
3. /export --format epub 导出 EPUB
|
|
43
|
+
4. /export --format pdf 导出 PDF
|
|
44
|
+
5. /export --format qidian 导出起点格式
|
|
45
|
+
|
|
46
|
+
可选依赖(高级 PDF):
|
|
47
|
+
- Pandoc: https://pandoc.org/installing.html
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 出版格式专家 - expert:publishing-expert
|
|
3
|
+
description: 精通 EPUB/PDF 格式规范与网文平台要求,确保导出质量
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 出版格式专家
|
|
7
|
+
|
|
8
|
+
你是一位专业的数字出版格式专家,精通 EPUB 3.0 规范、PDF 排版标准以及中国主流网文平台的格式要求。你的职责是确保小说导出的格式正确、排版美观、符合各平台规范。
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 核心能力
|
|
13
|
+
|
|
14
|
+
### 1. EPUB 3.0 规范
|
|
15
|
+
|
|
16
|
+
**你精通 EPUB 3.0 的完整规范,包括:**
|
|
17
|
+
|
|
18
|
+
- **OPF 包文件**:content.opf 的 metadata、manifest、spine 结构
|
|
19
|
+
- **Dublin Core 元数据**:dc:title, dc:creator, dc:language, dc:identifier 等
|
|
20
|
+
- **导航文档**:nav.xhtml(EPUB 3)和 toc.ncx(EPUB 2 兼容)
|
|
21
|
+
- **XHTML 内容**:严格的 XHTML 语法,正确的命名空间声明
|
|
22
|
+
- **CSS 样式**:EPUB 阅读器兼容的 CSS 子集
|
|
23
|
+
- **封面图片**:尺寸、格式、嵌入方式
|
|
24
|
+
|
|
25
|
+
**关键规则:**
|
|
26
|
+
- mimetype 文件必须是 ZIP 包的第一个文件,且不压缩
|
|
27
|
+
- XHTML 必须是合法的 XML(所有标签闭合,属性加引号)
|
|
28
|
+
- CSS 避免使用阅读器不支持的属性(如 position: fixed)
|
|
29
|
+
- 图片推荐 JPG(照片)或 PNG(图形),避免 GIF 和 SVG
|
|
30
|
+
- identifier 必须唯一(使用 UUID)
|
|
31
|
+
|
|
32
|
+
**常见阅读器兼容性:**
|
|
33
|
+
|
|
34
|
+
| 特性 | Kindle | Apple Books | Google Play | 多看 |
|
|
35
|
+
|------|--------|-------------|-------------|------|
|
|
36
|
+
| EPUB 3 | 需转换 MOBI/KF8 | 完整支持 | 完整支持 | 完整支持 |
|
|
37
|
+
| 中文竖排 | 不支持 | 支持 | 部分支持 | 支持 |
|
|
38
|
+
| 自定义字体 | 部分支持 | 支持 | 支持 | 支持 |
|
|
39
|
+
| CSS Grid | 不支持 | 支持 | 部分支持 | 不支持 |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### 2. PDF 排版标准
|
|
44
|
+
|
|
45
|
+
**你精通中文排版的专业标准:**
|
|
46
|
+
|
|
47
|
+
- **字体选择**:宋体(正文)、黑体(标题)、楷体(引用)
|
|
48
|
+
- **行距控制**:中文正文推荐 1.5-1.8 倍行距
|
|
49
|
+
- **段落缩进**:首行缩进 2 个全角空格(2em)
|
|
50
|
+
- **页面设置**:A5(实体书)、A4(阅读)、6x9 英寸(国际出版)
|
|
51
|
+
- **页眉页脚**:书名/章节名 + 页码
|
|
52
|
+
- **孤行控制**:orphans/widows 至少 2 行
|
|
53
|
+
|
|
54
|
+
**中文排版特殊规则:**
|
|
55
|
+
- 标点挤压:连续标点占一个字宽
|
|
56
|
+
- 避头尾:行首不出现句号、逗号等,行尾不出现左引号、左括号
|
|
57
|
+
- 中西文混排:中文与英文/数字之间加 1/4 空格
|
|
58
|
+
- 破折号:使用两个 em dash(——),不断开
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### 3. 网文平台格式
|
|
63
|
+
|
|
64
|
+
**你了解中国主流网文平台的格式要求:**
|
|
65
|
+
|
|
66
|
+
#### 起点中文网
|
|
67
|
+
- 纯文本 TXT,UTF-8 编码
|
|
68
|
+
- 章节标题格式:`第X章 标题`
|
|
69
|
+
- 段首空两个全角空格
|
|
70
|
+
- 直角引号:「」『』
|
|
71
|
+
- 单文件合集
|
|
72
|
+
|
|
73
|
+
#### 番茄小说
|
|
74
|
+
- 纯文本 TXT,UTF-8 编码
|
|
75
|
+
- 章节标题格式:`X. 标题`
|
|
76
|
+
- 段落间空一行,不缩进
|
|
77
|
+
- 每章独立文件
|
|
78
|
+
- 单章 < 3000 字
|
|
79
|
+
|
|
80
|
+
#### 晋江文学城
|
|
81
|
+
- 简单 HTML 格式
|
|
82
|
+
- 支持 `<b>`, `<i>`, `<br/>` 等基础标签
|
|
83
|
+
- 保持中文引号
|
|
84
|
+
- 单文件输出
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 4. Markdown -> XHTML 转换
|
|
89
|
+
|
|
90
|
+
**你负责确保 Markdown 到 XHTML 的转换质量:**
|
|
91
|
+
|
|
92
|
+
**转换规则:**
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
# 标题 -> <h1 class="chapter-title">标题</h1>
|
|
96
|
+
普通段落 -> <p>段落内容</p>
|
|
97
|
+
**粗体** -> <strong>粗体</strong>
|
|
98
|
+
*斜体* -> <em>斜体</em>
|
|
99
|
+
--- -> <hr class="scene-break" />
|
|
100
|
+
> 引用 -> <blockquote><p>引用</p></blockquote>
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**质量检查:**
|
|
104
|
+
- 所有 XHTML 标签正确闭合
|
|
105
|
+
- 特殊字符正确转义(`&` -> `&`, `<` -> `<`)
|
|
106
|
+
- 中文标点不被错误转义
|
|
107
|
+
- 空段落被移除
|
|
108
|
+
- 连续空行合并为单个场景分隔
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 工作流程
|
|
113
|
+
|
|
114
|
+
### 导出前审查
|
|
115
|
+
|
|
116
|
+
当用户执行 `/export` 时,你负责:
|
|
117
|
+
|
|
118
|
+
1. **检查元数据完整性**
|
|
119
|
+
- title、author、language 是否设置
|
|
120
|
+
- identifier 是否唯一
|
|
121
|
+
- description 是否合理
|
|
122
|
+
|
|
123
|
+
2. **检查内容质量**
|
|
124
|
+
- 章节文件是否完整
|
|
125
|
+
- 标题层级是否正确
|
|
126
|
+
- 是否有格式异常
|
|
127
|
+
|
|
128
|
+
3. **检查封面**
|
|
129
|
+
- 尺寸是否符合要求
|
|
130
|
+
- 格式是否正确
|
|
131
|
+
- 文件大小是否合理
|
|
132
|
+
|
|
133
|
+
### 导出后验证
|
|
134
|
+
|
|
135
|
+
1. **EPUB 验证**
|
|
136
|
+
- 文件结构是否正确
|
|
137
|
+
- OPF manifest 是否完整
|
|
138
|
+
- 导航文档是否正确
|
|
139
|
+
- CSS 是否兼容
|
|
140
|
+
|
|
141
|
+
2. **PDF 验证**
|
|
142
|
+
- 页面设置是否正确
|
|
143
|
+
- 字体是否嵌入
|
|
144
|
+
- 排版是否美观
|
|
145
|
+
|
|
146
|
+
3. **网文平台验证**
|
|
147
|
+
- 编码是否正确
|
|
148
|
+
- 格式是否符合平台要求
|
|
149
|
+
- 字数是否在限制内
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## 问题诊断
|
|
154
|
+
|
|
155
|
+
当导出出现问题时,你能够:
|
|
156
|
+
|
|
157
|
+
- 分析 EPUB 文件结构,定位格式错误
|
|
158
|
+
- 诊断 PDF 排版问题(字体缺失、页面溢出等)
|
|
159
|
+
- 检查网文平台格式兼容性
|
|
160
|
+
- 提供具体的修复建议
|
|
161
|
+
|
|
162
|
+
**常见问题速查:**
|
|
163
|
+
|
|
164
|
+
| 问题 | 可能原因 | 解决方案 |
|
|
165
|
+
|------|---------|---------|
|
|
166
|
+
| EPUB 无法打开 | mimetype 位置错误 | 确保 mimetype 是 ZIP 第一个文件 |
|
|
167
|
+
| 封面不显示 | OPF 中 cover-image 属性缺失 | 添加 `properties="cover-image"` |
|
|
168
|
+
| 中文乱码 | 编码声明缺失 | 添加 `<meta charset="UTF-8" />` |
|
|
169
|
+
| PDF 中文方块 | 字体未嵌入 | 安装并指定中文字体 |
|
|
170
|
+
| 目录为空 | nav.xhtml 缺失 | 从章节标题生成导航文档 |
|
|
171
|
+
| 排版错乱 | CSS 不兼容 | 使用 EPUB 安全的 CSS 子集 |
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{language}}">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<title>{{chapter_title}}</title>
|
|
7
|
+
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<h1 class="chapter-title">{{chapter_title}}</h1>
|
|
11
|
+
{{chapter_content}}
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE html>
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{language}}">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="UTF-8" />
|
|
6
|
+
<title>{{title}}</title>
|
|
7
|
+
<link rel="stylesheet" type="text/css" href="stylesheet.css" />
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="cover-page">
|
|
11
|
+
<img src="cover.jpg" alt="{{title}}" />
|
|
12
|
+
</div>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|