diff --git a/backend/config.py b/backend/config.py index 52125c9..0fc1c7b 100644 --- a/backend/config.py +++ b/backend/config.py @@ -10,6 +10,7 @@ ALLOWED_FORMATS = [ "OnePager", "Cheatsheet", "MiniGuide", + "Guide", "BeginnerGuide", "IntermediateGuide", "ExtendedGuide", @@ -19,6 +20,7 @@ FORMAT_META = { "OnePager": {"pages": "1 Seite", "time": "~5 Min"}, "Cheatsheet": {"pages": "1 Seite", "time": "~10 Min"}, "MiniGuide": {"pages": "3-4 Seiten", "time": "~15 Min"}, + "Guide": {"pages": "15-250 Seiten", "time": "variabel"}, "BeginnerGuide": {"pages": "35-40 Seiten", "time": "~3h"}, "IntermediateGuide": {"pages": "42-50 Seiten", "time": "~4h"}, "ExtendedGuide": {"pages": "47-60 Seiten", "time": "~5h"}, diff --git a/backend/models.py b/backend/models.py index 3b2a598..33c441b 100644 --- a/backend/models.py +++ b/backend/models.py @@ -5,6 +5,7 @@ FormatType = Literal[ "OnePager", "Cheatsheet", "MiniGuide", + "Guide", "BeginnerGuide", "IntermediateGuide", "ExtendedGuide", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 96b70a5..5ac44b4 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -77,7 +77,7 @@ async function loadGuides() { } } -const FORMAT_ORDER = ['OnePager', 'Cheatsheet', 'MiniGuide', 'BeginnerGuide', 'IntermediateGuide', 'ExtendedGuide'] +const FORMAT_ORDER = ['OnePager', 'Cheatsheet', 'MiniGuide', 'Guide', 'BeginnerGuide', 'IntermediateGuide', 'ExtendedGuide'] function autoPreview() { const map = doneByFormat.value diff --git a/frontend/src/components/TopicSidebar.vue b/frontend/src/components/TopicSidebar.vue index 7d651e5..f50a219 100644 --- a/frontend/src/components/TopicSidebar.vue +++ b/frontend/src/components/TopicSidebar.vue @@ -26,6 +26,7 @@ const formats = [ { key: 'OnePager', label: 'OnePager' }, { key: 'Cheatsheet', label: 'Cheatsheet' }, { key: 'MiniGuide', label: 'MiniGuide' }, + { key: 'Guide', label: 'Guide' }, { key: 'BeginnerGuide', label: 'BeginnerGuide' }, { key: 'IntermediateGuide', label: 'IntermediateGuide' }, { key: 'ExtendedGuide', label: 'ExtendedGuide' }, diff --git a/templates/Format/Guide.md b/templates/Format/Guide.md new file mode 100644 index 0000000..84fbc8e --- /dev/null +++ b/templates/Format/Guide.md @@ -0,0 +1,760 @@ +``` +# Guide Style System — Authoring & Build Specification + +This document is a **complete, self-contained specification** for producing a polished, book-style guide as a single HTML file that renders to a clean A4 PDF. It is **topic-neutral**: use it for programming subjects (PHP, Godot, Blender) and equally for non-technical ones (nutrition, finance, psychology, communication, language learning, …). + +You will normally be given two things: this specification and possibly one reference HTML file built with it. From those alone you must be able to: + +1. Gather the subject knowledge yourself (research as needed). +2. Decide a structure (parts → chapters). +3. Write a single HTML file that embeds the CSS from this document verbatim. +4. Convert that HTML to PDF. + +Follow this spec exactly. The visual identity depends on small details (spacing, weights, the single accent color), so do not improvise the CSS. You **do** have full freedom over content, structure, length, and which optional building blocks you use. + +--- + +## 1. Output contract + +- **One HTML file**, self-contained: a single ` + +
+ + +