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,200 @@
|
|
|
1
|
+
/* EPUB 3.0 样式表 - Novel Writer Skills Export Plugin */
|
|
2
|
+
|
|
3
|
+
@charset "UTF-8";
|
|
4
|
+
|
|
5
|
+
/* ========== 基础排版 ========== */
|
|
6
|
+
|
|
7
|
+
body {
|
|
8
|
+
font-family: "Source Han Serif SC", "Noto Serif CJK SC",
|
|
9
|
+
"Songti SC", "SimSun", serif;
|
|
10
|
+
font-size: 1em;
|
|
11
|
+
line-height: 1.8;
|
|
12
|
+
margin: 1em 1.5em;
|
|
13
|
+
text-align: justify;
|
|
14
|
+
color: #1a1a1a;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* ========== 章节标题 ========== */
|
|
18
|
+
|
|
19
|
+
h1.chapter-title {
|
|
20
|
+
text-align: center;
|
|
21
|
+
font-size: 1.5em;
|
|
22
|
+
font-weight: bold;
|
|
23
|
+
margin-top: 3em;
|
|
24
|
+
margin-bottom: 2em;
|
|
25
|
+
page-break-before: always;
|
|
26
|
+
line-height: 1.4;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
h2 {
|
|
30
|
+
font-size: 1.2em;
|
|
31
|
+
font-weight: bold;
|
|
32
|
+
margin-top: 2em;
|
|
33
|
+
margin-bottom: 1em;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* ========== 正文段落 ========== */
|
|
37
|
+
|
|
38
|
+
p {
|
|
39
|
+
text-indent: 2em;
|
|
40
|
+
margin: 0.3em 0;
|
|
41
|
+
orphans: 2;
|
|
42
|
+
widows: 2;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* 首段不缩进(章节标题后第一段) */
|
|
46
|
+
h1 + p {
|
|
47
|
+
text-indent: 2em;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* ========== 对话段落 ========== */
|
|
51
|
+
|
|
52
|
+
p.dialogue {
|
|
53
|
+
text-indent: 2em;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ========== 场景分隔 ========== */
|
|
57
|
+
|
|
58
|
+
hr.scene-break {
|
|
59
|
+
border: none;
|
|
60
|
+
text-align: center;
|
|
61
|
+
margin: 2em 0;
|
|
62
|
+
page-break-after: avoid;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
hr.scene-break::after {
|
|
66
|
+
content: "\2217\2003\2217\2003\2217";
|
|
67
|
+
color: #666;
|
|
68
|
+
font-size: 1.2em;
|
|
69
|
+
letter-spacing: 0.5em;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* ========== 封面页 ========== */
|
|
73
|
+
|
|
74
|
+
.cover-page {
|
|
75
|
+
text-align: center;
|
|
76
|
+
padding: 0;
|
|
77
|
+
margin: 0;
|
|
78
|
+
page-break-after: always;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.cover-page img {
|
|
82
|
+
max-width: 100%;
|
|
83
|
+
max-height: 100%;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* ========== 标题页 ========== */
|
|
87
|
+
|
|
88
|
+
.title-page {
|
|
89
|
+
text-align: center;
|
|
90
|
+
padding-top: 30%;
|
|
91
|
+
page-break-after: always;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.title-page .title {
|
|
95
|
+
font-size: 2em;
|
|
96
|
+
font-weight: bold;
|
|
97
|
+
margin-bottom: 0.5em;
|
|
98
|
+
line-height: 1.3;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.title-page .subtitle {
|
|
102
|
+
font-size: 1.2em;
|
|
103
|
+
color: #666;
|
|
104
|
+
margin-bottom: 2em;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.title-page .author {
|
|
108
|
+
font-size: 1.2em;
|
|
109
|
+
color: #333;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.title-page .separator {
|
|
113
|
+
display: block;
|
|
114
|
+
width: 3em;
|
|
115
|
+
height: 1px;
|
|
116
|
+
background: #999;
|
|
117
|
+
margin: 1.5em auto;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* ========== 目录页 ========== */
|
|
121
|
+
|
|
122
|
+
nav#toc ol {
|
|
123
|
+
list-style: none;
|
|
124
|
+
padding: 0;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
nav#toc ol li {
|
|
128
|
+
margin: 0.5em 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
nav#toc ol li a {
|
|
132
|
+
text-decoration: none;
|
|
133
|
+
color: #1a1a1a;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* ========== 附录 ========== */
|
|
137
|
+
|
|
138
|
+
.appendix {
|
|
139
|
+
page-break-before: always;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.appendix h1 {
|
|
143
|
+
text-align: center;
|
|
144
|
+
font-size: 1.3em;
|
|
145
|
+
margin-top: 2em;
|
|
146
|
+
margin-bottom: 1.5em;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.appendix table {
|
|
150
|
+
width: 100%;
|
|
151
|
+
border-collapse: collapse;
|
|
152
|
+
margin: 1em 0;
|
|
153
|
+
font-size: 0.9em;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.appendix table th,
|
|
157
|
+
.appendix table td {
|
|
158
|
+
border: 1px solid #ddd;
|
|
159
|
+
padding: 0.5em;
|
|
160
|
+
text-align: left;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.appendix table th {
|
|
164
|
+
background: #f5f5f5;
|
|
165
|
+
font-weight: bold;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* ========== 强调 ========== */
|
|
169
|
+
|
|
170
|
+
strong {
|
|
171
|
+
font-weight: bold;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
em {
|
|
175
|
+
font-style: italic;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* ========== 引用 ========== */
|
|
179
|
+
|
|
180
|
+
blockquote {
|
|
181
|
+
margin: 1em 2em;
|
|
182
|
+
padding-left: 1em;
|
|
183
|
+
border-left: 3px solid #ddd;
|
|
184
|
+
color: #555;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* ========== 版权页 ========== */
|
|
188
|
+
|
|
189
|
+
.copyright-page {
|
|
190
|
+
page-break-before: always;
|
|
191
|
+
font-size: 0.85em;
|
|
192
|
+
color: #666;
|
|
193
|
+
text-align: center;
|
|
194
|
+
padding-top: 60%;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.copyright-page p {
|
|
198
|
+
text-indent: 0;
|
|
199
|
+
margin: 0.3em 0;
|
|
200
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/* PDF 电子阅读样式 - A4 屏幕阅读 */
|
|
2
|
+
|
|
3
|
+
@charset "UTF-8";
|
|
4
|
+
|
|
5
|
+
/* ========== 页面设置 ========== */
|
|
6
|
+
|
|
7
|
+
@page {
|
|
8
|
+
size: A4;
|
|
9
|
+
margin: 2.5cm 3cm;
|
|
10
|
+
|
|
11
|
+
@bottom-center {
|
|
12
|
+
content: counter(page);
|
|
13
|
+
font-size: 10pt;
|
|
14
|
+
color: #999;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@page :first {
|
|
19
|
+
@bottom-center { content: none; }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/* ========== 基础排版 ========== */
|
|
23
|
+
|
|
24
|
+
body {
|
|
25
|
+
font-family: "Source Han Sans SC", "Noto Sans CJK SC",
|
|
26
|
+
"PingFang SC", "Microsoft YaHei", sans-serif;
|
|
27
|
+
font-size: 12pt;
|
|
28
|
+
line-height: 1.6;
|
|
29
|
+
color: #333;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* ========== 章节标题 ========== */
|
|
33
|
+
|
|
34
|
+
h1.chapter-title {
|
|
35
|
+
page-break-before: always;
|
|
36
|
+
text-align: center;
|
|
37
|
+
font-size: 18pt;
|
|
38
|
+
font-weight: bold;
|
|
39
|
+
margin-top: 4cm;
|
|
40
|
+
margin-bottom: 2cm;
|
|
41
|
+
color: #1a1a1a;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* ========== 正文段落 ========== */
|
|
45
|
+
|
|
46
|
+
p {
|
|
47
|
+
text-indent: 2em;
|
|
48
|
+
margin: 0.2em 0;
|
|
49
|
+
orphans: 2;
|
|
50
|
+
widows: 2;
|
|
51
|
+
text-align: justify;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* ========== 场景分隔 ========== */
|
|
55
|
+
|
|
56
|
+
hr.scene-break {
|
|
57
|
+
border: none;
|
|
58
|
+
text-align: center;
|
|
59
|
+
margin: 2em 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
hr.scene-break::after {
|
|
63
|
+
content: "\2217\2003\2217\2003\2217";
|
|
64
|
+
color: #999;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/* ========== 封面页 ========== */
|
|
68
|
+
|
|
69
|
+
.cover-page {
|
|
70
|
+
page-break-after: always;
|
|
71
|
+
text-align: center;
|
|
72
|
+
padding-top: 20%;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.cover-page .title {
|
|
76
|
+
font-size: 28pt;
|
|
77
|
+
font-weight: bold;
|
|
78
|
+
margin-bottom: 0.5em;
|
|
79
|
+
color: #1a1a1a;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.cover-page .subtitle {
|
|
83
|
+
font-size: 16pt;
|
|
84
|
+
color: #666;
|
|
85
|
+
margin-bottom: 2em;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.cover-page .author {
|
|
89
|
+
font-size: 16pt;
|
|
90
|
+
color: #444;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.cover-page .separator {
|
|
94
|
+
display: block;
|
|
95
|
+
width: 5cm;
|
|
96
|
+
height: 0.5pt;
|
|
97
|
+
background: #ccc;
|
|
98
|
+
margin: 1.5em auto;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/* ========== 目录页 ========== */
|
|
102
|
+
|
|
103
|
+
.toc-page {
|
|
104
|
+
page-break-before: always;
|
|
105
|
+
page-break-after: always;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.toc-page h1 {
|
|
109
|
+
text-align: center;
|
|
110
|
+
font-size: 18pt;
|
|
111
|
+
margin-bottom: 2cm;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.toc-page ul {
|
|
115
|
+
list-style: none;
|
|
116
|
+
padding: 0;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.toc-page li {
|
|
120
|
+
margin: 0.6em 0;
|
|
121
|
+
font-size: 11pt;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* ========== 版权页 ========== */
|
|
125
|
+
|
|
126
|
+
.copyright-page {
|
|
127
|
+
page-break-before: always;
|
|
128
|
+
font-size: 10pt;
|
|
129
|
+
color: #999;
|
|
130
|
+
text-align: center;
|
|
131
|
+
padding-top: 50%;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.copyright-page p {
|
|
135
|
+
text-indent: 0;
|
|
136
|
+
margin: 0.3em 0;
|
|
137
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/* PDF 打印样式 - A5 实体书 */
|
|
2
|
+
|
|
3
|
+
@charset "UTF-8";
|
|
4
|
+
|
|
5
|
+
/* ========== 页面设置 ========== */
|
|
6
|
+
|
|
7
|
+
@page {
|
|
8
|
+
size: A5;
|
|
9
|
+
margin: 2cm 1.5cm;
|
|
10
|
+
|
|
11
|
+
@top-center {
|
|
12
|
+
content: "{{book_title}}";
|
|
13
|
+
font-size: 9pt;
|
|
14
|
+
color: #999;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@bottom-center {
|
|
18
|
+
content: counter(page);
|
|
19
|
+
font-size: 10pt;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* 首页无页眉页脚 */
|
|
24
|
+
@page :first {
|
|
25
|
+
@top-center { content: none; }
|
|
26
|
+
@bottom-center { content: none; }
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* 章节首页无页眉 */
|
|
30
|
+
@page chapter-first {
|
|
31
|
+
@top-center { content: none; }
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* ========== 基础排版 ========== */
|
|
35
|
+
|
|
36
|
+
body {
|
|
37
|
+
font-family: "Source Han Serif SC", "Noto Serif CJK SC",
|
|
38
|
+
"Songti SC", "SimSun", serif;
|
|
39
|
+
font-size: 11pt;
|
|
40
|
+
line-height: 1.5;
|
|
41
|
+
color: #000;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* ========== 章节标题 ========== */
|
|
45
|
+
|
|
46
|
+
h1.chapter-title {
|
|
47
|
+
page-break-before: always;
|
|
48
|
+
page: chapter-first;
|
|
49
|
+
text-align: center;
|
|
50
|
+
font-size: 16pt;
|
|
51
|
+
font-weight: bold;
|
|
52
|
+
margin-top: 3cm;
|
|
53
|
+
margin-bottom: 2cm;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* ========== 正文段落 ========== */
|
|
57
|
+
|
|
58
|
+
p {
|
|
59
|
+
text-indent: 2em;
|
|
60
|
+
margin: 0;
|
|
61
|
+
orphans: 2;
|
|
62
|
+
widows: 2;
|
|
63
|
+
text-align: justify;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* ========== 场景分隔 ========== */
|
|
67
|
+
|
|
68
|
+
hr.scene-break {
|
|
69
|
+
border: none;
|
|
70
|
+
text-align: center;
|
|
71
|
+
margin: 1.5em 0;
|
|
72
|
+
page-break-after: avoid;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
hr.scene-break::after {
|
|
76
|
+
content: "\2217\2003\2217\2003\2217";
|
|
77
|
+
color: #666;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* ========== 封面页 ========== */
|
|
81
|
+
|
|
82
|
+
.cover-page {
|
|
83
|
+
page-break-after: always;
|
|
84
|
+
text-align: center;
|
|
85
|
+
padding-top: 25%;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.cover-page .title {
|
|
89
|
+
font-size: 24pt;
|
|
90
|
+
font-weight: bold;
|
|
91
|
+
margin-bottom: 0.5em;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.cover-page .subtitle {
|
|
95
|
+
font-size: 14pt;
|
|
96
|
+
color: #666;
|
|
97
|
+
margin-bottom: 2em;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.cover-page .author {
|
|
101
|
+
font-size: 14pt;
|
|
102
|
+
color: #333;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.cover-page .separator {
|
|
106
|
+
display: block;
|
|
107
|
+
width: 4cm;
|
|
108
|
+
height: 0.5pt;
|
|
109
|
+
background: #999;
|
|
110
|
+
margin: 1.5em auto;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* ========== 目录页 ========== */
|
|
114
|
+
|
|
115
|
+
.toc-page {
|
|
116
|
+
page-break-before: always;
|
|
117
|
+
page-break-after: always;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.toc-page h1 {
|
|
121
|
+
text-align: center;
|
|
122
|
+
font-size: 16pt;
|
|
123
|
+
margin-bottom: 2cm;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.toc-page ul {
|
|
127
|
+
list-style: none;
|
|
128
|
+
padding: 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.toc-page li {
|
|
132
|
+
margin: 0.5em 0;
|
|
133
|
+
display: flex;
|
|
134
|
+
justify-content: space-between;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.toc-page li .dots {
|
|
138
|
+
flex: 1;
|
|
139
|
+
border-bottom: 1px dotted #ccc;
|
|
140
|
+
margin: 0 0.5em;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* ========== 版权页 ========== */
|
|
144
|
+
|
|
145
|
+
.copyright-page {
|
|
146
|
+
page-break-before: always;
|
|
147
|
+
font-size: 9pt;
|
|
148
|
+
color: #666;
|
|
149
|
+
text-align: center;
|
|
150
|
+
padding-top: 60%;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.copyright-page p {
|
|
154
|
+
text-indent: 0;
|
|
155
|
+
margin: 0.3em 0;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* ========== 附录 ========== */
|
|
159
|
+
|
|
160
|
+
.appendix {
|
|
161
|
+
page-break-before: always;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.appendix table {
|
|
165
|
+
width: 100%;
|
|
166
|
+
border-collapse: collapse;
|
|
167
|
+
font-size: 10pt;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.appendix table th,
|
|
171
|
+
.appendix table td {
|
|
172
|
+
border: 0.5pt solid #999;
|
|
173
|
+
padding: 4pt 6pt;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.appendix table th {
|
|
177
|
+
background: #f0f0f0;
|
|
178
|
+
font-weight: bold;
|
|
179
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# 晋江文学城格式规范
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
晋江文学城(JJWXC)是中国知名的女性向网络文学平台。本文档定义了从 Markdown 转换为晋江格式的规则。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 转换规则
|
|
10
|
+
|
|
11
|
+
### 1. 章节标题
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
原始 Markdown:# 开端
|
|
15
|
+
转换结果:<h2>开端</h2>
|
|
16
|
+
|
|
17
|
+
原始 Markdown:# 第一章 开端
|
|
18
|
+
转换结果:<h2>第一章 开端</h2>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**规则:**
|
|
22
|
+
- `# 标题` -> `<h2>标题</h2>`
|
|
23
|
+
- 保留原始标题格式(不强制编号)
|
|
24
|
+
- 章节标题居中显示
|
|
25
|
+
|
|
26
|
+
### 2. 正文格式
|
|
27
|
+
|
|
28
|
+
**Markdown -> HTML 转换:**
|
|
29
|
+
|
|
30
|
+
| Markdown | HTML | 说明 |
|
|
31
|
+
|----------|------|------|
|
|
32
|
+
| 普通段落 | `<p> 段落内容</p>` | 段首空两格 |
|
|
33
|
+
| `**粗体**` | `<b>粗体</b>` | 保留粗体 |
|
|
34
|
+
| `*斜体*` | `<i>斜体</i>` | 保留斜体 |
|
|
35
|
+
| `---` | `<br/><br/><center>***</center><br/>` | 场景分隔 |
|
|
36
|
+
| `> 引用` | `<blockquote>引用</blockquote>` | 引用块 |
|
|
37
|
+
| 空行 | `<br/>` | 换行 |
|
|
38
|
+
|
|
39
|
+
### 3. 引号
|
|
40
|
+
|
|
41
|
+
- 保持中文引号 `""` `''`
|
|
42
|
+
- 不转换为直角引号
|
|
43
|
+
|
|
44
|
+
### 4. 特殊标记
|
|
45
|
+
|
|
46
|
+
晋江支持的特殊标记:
|
|
47
|
+
|
|
48
|
+
| 标记 | 用途 | 示例 |
|
|
49
|
+
|------|------|------|
|
|
50
|
+
| `<b>` | 粗体 | `<b>重要内容</b>` |
|
|
51
|
+
| `<i>` | 斜体 | `<i>内心独白</i>` |
|
|
52
|
+
| `<br/>` | 换行 | 段落间分隔 |
|
|
53
|
+
| `<center>` | 居中 | `<center>***</center>` |
|
|
54
|
+
|
|
55
|
+
**不支持的标记(需移除):**
|
|
56
|
+
- `<img>` - 图片
|
|
57
|
+
- `<a>` - 链接
|
|
58
|
+
- `<script>` - 脚本
|
|
59
|
+
- `<style>` - 样式
|
|
60
|
+
- 其他复杂 HTML 标签
|
|
61
|
+
|
|
62
|
+
### 5. 编码和输出
|
|
63
|
+
|
|
64
|
+
- 编码:UTF-8
|
|
65
|
+
- 输出:单文件 HTML
|
|
66
|
+
- 文件名:`{书名}.html`
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 输出格式示例
|
|
71
|
+
|
|
72
|
+
```html
|
|
73
|
+
<h2>第一章 开端</h2>
|
|
74
|
+
|
|
75
|
+
<p> 李明站在青云宗的山门前,抬头望着那高耸入云的石阶。</p>
|
|
76
|
+
|
|
77
|
+
<p> "你就是新来的弟子?"一个声音从身后传来。</p>
|
|
78
|
+
|
|
79
|
+
<p> 他转过身,看到一个身穿白衣的少女正打量着他。</p>
|
|
80
|
+
|
|
81
|
+
<p> "是的,我叫李明。"他拱手行礼。</p>
|
|
82
|
+
|
|
83
|
+
<br/><br/><center>***</center><br/>
|
|
84
|
+
|
|
85
|
+
<h2>第二章 入门</h2>
|
|
86
|
+
|
|
87
|
+
<p> 清晨的阳光洒在练功场上,李明已经站了一个时辰。</p>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 字数限制
|
|
93
|
+
|
|
94
|
+
- 单章建议:2000-5000 字
|
|
95
|
+
- 单章上限:无硬性限制
|
|
96
|
+
- 全书无上限
|
|
97
|
+
|
|
98
|
+
## 晋江特殊要求
|
|
99
|
+
|
|
100
|
+
- 防盗章:晋江有防盗机制,正式发布时需在平台编辑器中操作
|
|
101
|
+
- 本导出格式适用于:草稿准备、内容备份、批量上传前的格式化
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# 起点中文网格式规范
|
|
2
|
+
|
|
3
|
+
## 概述
|
|
4
|
+
|
|
5
|
+
起点中文网(Qidian)是中国最大的网络文学平台之一。本文档定义了从 Markdown 转换为起点格式的规则。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 转换规则
|
|
10
|
+
|
|
11
|
+
### 1. 章节标题
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
原始 Markdown:# 开端
|
|
15
|
+
转换结果:第一章 开端
|
|
16
|
+
|
|
17
|
+
原始 Markdown:# 转折
|
|
18
|
+
转换结果:第二章 转折
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**规则:**
|
|
22
|
+
- `# 标题` -> `第X章 标题`
|
|
23
|
+
- 自动按顺序编号(第一章、第二章...)
|
|
24
|
+
- 如果原标题已包含编号(如 `# 第一章 开端`),保持原样
|
|
25
|
+
- 编号使用中文数字(一、二、三...)
|
|
26
|
+
|
|
27
|
+
### 2. 正文格式
|
|
28
|
+
|
|
29
|
+
**段落处理:**
|
|
30
|
+
- 每段开头空两个全角空格(`\u3000\u3000`)
|
|
31
|
+
- 段落之间不空行
|
|
32
|
+
- 去除所有 Markdown 格式标记
|
|
33
|
+
|
|
34
|
+
**格式标记去除:**
|
|
35
|
+
|
|
36
|
+
| Markdown | 转换结果 |
|
|
37
|
+
|----------|---------|
|
|
38
|
+
| `**粗体**` | 粗体 |
|
|
39
|
+
| `*斜体*` | 斜体 |
|
|
40
|
+
| `> 引用` | 引用内容(去除 > 标记) |
|
|
41
|
+
| `` `代码` `` | 代码 |
|
|
42
|
+
| `[链接](url)` | 链接文字 |
|
|
43
|
+
| `` | (移除) |
|
|
44
|
+
|
|
45
|
+
### 3. 引号转换
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
原始:他说:"你好。"
|
|
49
|
+
转换:他说:「你好。」
|
|
50
|
+
|
|
51
|
+
原始:她想:'这是什么意思?'
|
|
52
|
+
转换:她想:『这是什么意思?』
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**规则:**
|
|
56
|
+
- `""` -> `「」`(双引号 -> 直角双引号)
|
|
57
|
+
- `''` -> `『』`(单引号 -> 直角单引号)
|
|
58
|
+
- `""` -> `「」`(中文双引号 -> 直角双引号)
|
|
59
|
+
|
|
60
|
+
### 4. 场景分隔
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
原始:--- 或 *** 或 ___
|
|
64
|
+
转换:(空行)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 5. 特殊处理
|
|
68
|
+
|
|
69
|
+
- 省略号:`...` -> `……`(中文省略号)
|
|
70
|
+
- 破折号:`--` -> `——`(中文破折号)
|
|
71
|
+
- 数字:保持原样
|
|
72
|
+
|
|
73
|
+
### 6. 编码和输出
|
|
74
|
+
|
|
75
|
+
- 编码:UTF-8(无 BOM)
|
|
76
|
+
- 输出:单文件 TXT
|
|
77
|
+
- 文件名:`{书名}.txt`
|
|
78
|
+
- 换行符:`\r\n`(Windows 风格,兼容性最好)
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 输出格式示例
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
第一章 开端
|
|
86
|
+
|
|
87
|
+
李明站在青云宗的山门前,抬头望着那高耸入云的石阶。
|
|
88
|
+
|
|
89
|
+
「你就是新来的弟子?」一个声音从身后传来。
|
|
90
|
+
|
|
91
|
+
他转过身,看到一个身穿白衣的少女正打量着他。
|
|
92
|
+
|
|
93
|
+
「是的,我叫李明。」他拱手行礼。
|
|
94
|
+
|
|
95
|
+
第二章 入门
|
|
96
|
+
|
|
97
|
+
清晨的阳光洒在练功场上,李明已经站了一个时辰。
|
|
98
|
+
|
|
99
|
+
...
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 字数限制
|
|
105
|
+
|
|
106
|
+
- 单章建议:2000-4000 字
|
|
107
|
+
- 单章上限:无硬性限制,但超过 5000 字建议拆分
|
|
108
|
+
- 全书无上限
|