@docsector/docsector-reader 4.1.0 โ†’ 4.3.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.
Files changed (27) hide show
  1. package/README.md +16 -6
  2. package/bin/docsector.js +1 -1
  3. package/docsector.config.js +15 -0
  4. package/package.json +1 -1
  5. package/public/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md +118 -0
  6. package/public/.well-known/agent-skills/docsector-documentation-authoring/references/authoring-patterns.md +98 -0
  7. package/public/.well-known/agent-skills/docsector-documentation-authoring/references/block-catalog.md +321 -0
  8. package/public/.well-known/agent-skills/docsector-documentation-authoring/references/mcp-webmcp.md +90 -0
  9. package/public/.well-known/agent-skills/docsector-documentation-authoring/references/page-structure.md +101 -0
  10. package/public/api/manual/http-client.json +91 -0
  11. package/public/quasar-api/QSeparator.json +39 -0
  12. package/src/components/DBlockApi.vue +634 -0
  13. package/src/components/DBlockApiEntry.js +623 -0
  14. package/src/components/DBlockCodeExample.vue +22 -0
  15. package/src/components/DBlockSourceCode.vue +2 -4
  16. package/src/components/DMenu.vue +70 -25
  17. package/src/components/DPageTokens.vue +8 -0
  18. package/src/components/api-block-model.js +326 -0
  19. package/src/components/page-section-tokens.js +53 -1
  20. package/src/components/source-code-lines.js +17 -0
  21. package/src/pages/manual/basic/agent-skills.overview.en-US.md +77 -0
  22. package/src/pages/manual/basic/agent-skills.overview.pt-BR.md +77 -0
  23. package/src/pages/manual/content/blocks/api-reference.overview.en-US.md +40 -0
  24. package/src/pages/manual/content/blocks/api-reference.overview.pt-BR.md +40 -0
  25. package/src/pages/manual/content/blocks/api-reference.showcase.en-US.md +33 -0
  26. package/src/pages/manual/content/blocks/api-reference.showcase.pt-BR.md +33 -0
  27. package/src/pages/manual.index.js +57 -0
package/README.md CHANGED
@@ -30,6 +30,7 @@ Transform Markdown content into beautiful, navigable documentation sites โ€” wit
30
30
  - ๐Ÿค– **AI-Friendly robots.txt** โ€” Scaffold includes a `robots.txt` explicitly allowing 23 AI crawlers (GPTBot, ClaudeBot, PerplexityBot, GrokBot, etc.)
31
31
  - ๐Ÿงญ **Content Signals** โ€” Optional `Content-Signal` directive for declaring AI usage policy (`ai-train`, `search`, `ai-input`) in `robots.txt`
32
32
  - ๐Ÿงฉ **Agent Skills Discovery Index** โ€” Optional `/.well-known/agent-skills/index.json` with RFC v0.2.0 schema and SHA-256 digests
33
+ - โœ๏ธ **Docsector Authoring Skill** โ€” Publishable `SKILL.md` that teaches agents Docsector blocks, page patterns, MCP lookup, and WebMCP tools
33
34
  - ๐Ÿชช **MCP Server Card** โ€” Optional `/.well-known/mcp/server-card.json` for MCP server discovery before connection
34
35
  - ๐ŸŒ **WebMCP Browser Tools** โ€” Optional registration of in-page tools via `navigator.modelContext` for browser agents
35
36
  - ๐Ÿ”— **Homepage Link Headers** โ€” Auto-generated `Link` response headers for agent discovery (`api-catalog`, `service-doc`, `service-desc`, `describedby`) per RFC 8288 / RFC 9727
@@ -75,11 +76,14 @@ Transform Markdown content into beautiful, navigable documentation sites โ€” wit
75
76
  - ๐ŸŒ **Embedded URL Blocks** โ€” Use `<d-block-embedded-url url="https://...">...</d-block-embedded-url>` to render curated embeds for YouTube, Vimeo, Spotify, and CodePen with a safe link-card fallback for unsupported URLs
76
77
  - ๐Ÿงญ **Quick Links Custom Element** โ€” Use `<d-block-quick-links>` and `<d-block-quick-link>` in Markdown to render rich home navigation cards
77
78
  - ๐Ÿ—‚๏ธ **Cards Custom Element** โ€” Use `<d-block-cards>` and `<d-block-card>` in Markdown to render linked content cards with optional cover images
79
+ - ๐Ÿงพ **API JSON Reference Block** โ€” Use `<d-block-api src="..." />` in Markdown to render Quasar-compatible API reference UIs from public JSON assets without inventing a new schema
78
80
  - ๐Ÿ—‚๏ธ **API Catalog Well-Known** โ€” Auto-generates `/.well-known/api-catalog` as Linkset JSON for machine-readable API discovery
81
+ - ๐Ÿง  **Docsector Authoring Skill Docs** โ€” Documents the built-in `SKILL.md` and reference files so agents can learn Docsector blocks, page patterns, MCP lookup, and WebMCP tools from a public manual page
79
82
  - ๐Ÿ—ƒ๏ธ **Multi-Version History** โ€” Archive older major versions under `src/pages/.old/<version>/` and expose them at prefixed routes (e.g. `/v0.x/guide/...`) while keeping the current docs at unprefixed routes
80
83
  - ๐Ÿท๏ธ **Version Selector Badges** โ€” Every version in the sidebar selector displays a color-coded badge: green for released, orange for draft, red for deprecated; fully customizable via `badge: { label, color, textColor }`
81
84
  - ๐Ÿ“‚ **Tabbed Code Blocks** โ€” Group consecutive fenced code blocks into tabs using the `group` and `tab` attributes in the fence info line
82
85
  - ๐Ÿงช **Live Code Example Blocks** โ€” Use `<d-block-code-example src="..." />` to render bundled Vue SFC examples with a live preview, GitHub source link, source toggle, and CodePen export for compatible examples
86
+ - ๐Ÿ“ **Accurate Source Code Line Counts** โ€” Code example headers count visible lines correctly across LF, CRLF, and terminal newlines without inflating the total
83
87
  - ๐Ÿž **Breadcrumb Path Display** โ€” Show a file path breadcrumb above code blocks with the `breadcrumb` attribute; renders as clickable path segments
84
88
  - ๐ŸŽจ **File Type Icons** โ€” Automatically resolves file extension or filename to a Material Icon Theme SVG icon, shown inline in tabs and beside the last breadcrumb segment
85
89
  - โš™๏ธ **Single Config File** โ€” Customize branding, links, and languages via `docsector.config.js`
@@ -525,6 +529,12 @@ The generated payload follows Agent Skills Discovery RFC v0.2.0 and includes:
525
529
  - `$schema`
526
530
  - `skills[]` entries with `name`, `type`, `description`, `url`, `digest`
527
531
 
532
+ This repository publishes the built-in Docsector authoring skill at:
533
+
534
+ - `/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md`
535
+
536
+ The skill teaches agents Docsector Markdown authoring, all documented blocks, page/source conventions, MCP lookup, and WebMCP browser tools.
537
+
528
538
  When `digest` is omitted in config, Docsector computes it automatically from the referenced local artifact and writes it as:
529
539
 
530
540
  - `sha256:{hex}`
@@ -541,10 +551,10 @@ export default {
541
551
  schema: 'https://schemas.agentskills.io/discovery/0.2.0/schema.json',
542
552
  skills: [
543
553
  {
544
- name: 'my-docs-mcp',
554
+ name: 'docsector-documentation-authoring',
545
555
  type: 'skill-md',
546
- description: 'Search and fetch docs pages via MCP.',
547
- url: '/.well-known/agent-skills/my-docs-mcp/SKILL.md'
556
+ description: 'Author Docsector documentation with Markdown, custom blocks, MCP, and WebMCP.',
557
+ url: '/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md'
548
558
  }
549
559
  ]
550
560
  }
@@ -755,10 +765,10 @@ export default {
755
765
  schema: 'https://schemas.agentskills.io/discovery/0.2.0/schema.json',
756
766
  skills: [
757
767
  {
758
- name: 'my-docs-mcp',
768
+ name: 'docsector-documentation-authoring',
759
769
  type: 'skill-md',
760
- description: 'Search and fetch docs pages via MCP.',
761
- url: '/.well-known/agent-skills/my-docs-mcp/SKILL.md'
770
+ description: 'Author Docsector documentation with Markdown, custom blocks, MCP, and WebMCP.',
771
+ url: '/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md'
762
772
  }
763
773
  ]
764
774
  },
package/bin/docsector.js CHANGED
@@ -23,7 +23,7 @@ const packageRoot = resolve(__dirname, '..')
23
23
  const args = process.argv.slice(2)
24
24
  const command = args[0]
25
25
 
26
- const VERSION = '4.1.0'
26
+ const VERSION = '4.3.0'
27
27
 
28
28
  const HELP = `
29
29
  Docsector Reader v${VERSION}
@@ -55,6 +55,21 @@ export default {
55
55
  toolSuffix: 'docsector'
56
56
  },
57
57
 
58
+ // @ Agent Skills
59
+ agentSkills: {
60
+ enabled: true,
61
+ path: '/.well-known/agent-skills/index.json',
62
+ schema: 'https://schemas.agentskills.io/discovery/0.2.0/schema.json',
63
+ skills: [
64
+ {
65
+ name: 'docsector-documentation-authoring',
66
+ type: 'skill-md',
67
+ description: 'Author Docsector documentation with Markdown, custom blocks, MCP, and WebMCP.',
68
+ url: '/.well-known/agent-skills/docsector-documentation-authoring/SKILL.md'
69
+ }
70
+ ]
71
+ },
72
+
58
73
  // @ Home page source
59
74
  homePage: {
60
75
  source: 'remote-readme',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docsector/docsector-reader",
3
- "version": "4.1.0",
3
+ "version": "4.3.0",
4
4
  "description": "A documentation rendering engine built with Vue 3, Quasar v2 and Vite. Transform Markdown into beautiful, navigable documentation sites.",
5
5
  "productName": "Docsector Reader",
6
6
  "author": "Rodrigo de Araujo Vieira",
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: docsector-documentation-authoring
3
+ description: "Author Docsector documentation with Markdown, d-block custom elements, page structures, blocks, MCP, WebMCP, and agent-readable docs. Use when writing or editing Docsector pages, choosing content blocks, creating examples, documenting APIs, or helping an AI understand Docsector authoring syntax."
4
+ argument-hint: "Describe the Docsector page, block, or documentation task"
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Docsector Documentation Authoring
9
+
10
+ ## When to Use
11
+
12
+ Use this skill when creating, reviewing, or editing documentation for a site built with Docsector Reader.
13
+
14
+ Use it for:
15
+
16
+ - Choosing the right Docsector block for a content need.
17
+ - Writing Markdown pages with Docsector custom elements.
18
+ - Creating overview, showcase, guide, API reference, changelog, or landing content.
19
+ - Finding live Docsector docs through MCP, WebMCP, Markdown negotiation, or `llms.txt`.
20
+ - Teaching an AI assistant how Docsector pages, blocks, and examples are authored.
21
+
22
+ ## Expected Outcome
23
+
24
+ - The page uses standard Markdown where Markdown is enough.
25
+ - Rich interactions use the appropriate Docsector custom element.
26
+ - Links, assets, examples, and API JSON use Docsector conventions.
27
+ - The result is easy to scan, accessible, and friendly to both humans and agents.
28
+ - When MCP or WebMCP is available, current Docsector documentation is queried instead of relying only on memory.
29
+
30
+ ## Authoring Workflow
31
+
32
+ 1. Identify the page purpose: concept, tutorial, API reference, release note, navigation hub, example showcase, or troubleshooting guide.
33
+ 2. Use headings to shape the reading path. In normal page content, start with `##` because the page title is supplied by metadata.
34
+ 3. Pick the simplest block that communicates the content. Prefer Markdown first, then Docsector custom elements when the layout or interaction needs it.
35
+ 4. Keep custom element attributes short and explicit. Use `to` for internal navigation and `href` for external URLs.
36
+ 5. Put reusable assets in stable public paths such as `/images/...`, `/files/...`, `/api/...`, or `/quasar-api/...`.
37
+ 6. For live examples, place Vue SFCs under `src/examples/**/*.vue` and reference them with `<d-block-code-example>`.
38
+ 7. For API references, serve JSON from a same-origin public asset and reference it with `<d-block-api>`.
39
+ 8. Validate links, anchors, code fences, and custom element closing tags before finishing.
40
+
41
+ ## Quick Block Selection
42
+
43
+ | Need | Use |
44
+ | ------------------------------- | ------------------------ |
45
+ | Narrative text | Paragraphs |
46
+ | Page sections and anchors | Headings |
47
+ | Features or requirements | Unordered lists |
48
+ | Sequential instructions | Ordered lists or Stepper |
49
+ | Progress states | Task lists |
50
+ | Notes, tips, warnings | Hints |
51
+ | Quoted text | Quotes |
52
+ | Commands or source snippets | Code blocks |
53
+ | Live Vue demos | Code examples |
54
+ | Flowcharts or diagrams | Mermaid diagrams |
55
+ | Screenshots or diagrams | Images |
56
+ | Downloads | Files |
57
+ | Videos, audio, or pens | Embedded URLs |
58
+ | Equations | Math and TeX |
59
+ | Optional detail | Expandable |
60
+ | Guided sequence with navigation | Stepper |
61
+ | Changelog or release log | Timeline |
62
+ | Comparisons or matrices | Tables |
63
+ | Custom structure | Raw HTML |
64
+ | Small navigation sets | Quick Links |
65
+ | Visual navigation grids | Cards |
66
+ | Structured API docs | API Reference |
67
+
68
+ For the complete syntax and guidance, read [the block catalog](./references/block-catalog.md).
69
+
70
+ ## MCP and WebMCP
71
+
72
+ When a Docsector site exposes MCP, prefer live lookup for exact syntax and current examples.
73
+
74
+ Typical MCP tools are named with the configured suffix:
75
+
76
+ - `search_{suffix}` searches documentation pages.
77
+ - `get_page_{suffix}` returns raw Markdown for a documentation page.
78
+
79
+ This repository uses the suffix `docsector`, so the local docs tools are expected to be `search_docsector` and `get_page_docsector` when the MCP server is connected.
80
+
81
+ Use known paths such as:
82
+
83
+ - `manual/content/blocks/cards/overview`
84
+ - `manual/content/blocks/quick-links/overview`
85
+ - `manual/content/blocks/api-reference/overview`
86
+ - `manual/content/blocks/timeline/showcase`
87
+
88
+ Browser agents may also see WebMCP tools such as `docs.search_docs`, `docs.get_page`, `docs.navigate_to`, and `docs.copy_current_page`.
89
+
90
+ Read [MCP and WebMCP reference](./references/mcp-webmcp.md) for details and caveats.
91
+
92
+ ## Page and Asset Conventions
93
+
94
+ Read [page structure reference](./references/page-structure.md) before changing page layout, localization, examples, or public assets.
95
+
96
+ Key conventions:
97
+
98
+ - Manual block docs live under `src/pages/manual/content/blocks/`.
99
+ - Block pages usually have `overview` and `showcase` subpages.
100
+ - Localized source files use suffixes such as `.en-US.md` and `.pt-BR.md`.
101
+ - Downloadable files should use `/files/...` paths backed by `public/files/...`.
102
+ - Images should use `/images/...` paths backed by `public/images/...`.
103
+ - API JSON should use same-origin public paths such as `/api/...` or `/quasar-api/...`.
104
+
105
+ ## Authoring Patterns
106
+
107
+ Read [authoring patterns](./references/authoring-patterns.md) for common page recipes such as tutorials, changelogs, navigation hubs, API reference pages, and example showcases.
108
+
109
+ ## Quality Checklist
110
+
111
+ - The page has a clear first section and predictable heading hierarchy.
112
+ - Every custom element has required attributes and matching closing tags unless it is intentionally self-closing.
113
+ - Internal links use route paths and external links use absolute URLs.
114
+ - Images, files, examples, and API JSON point to assets that exist or are intentionally external.
115
+ - Hints are reserved for semantic callouts, not general decoration.
116
+ - Tables are not overloaded with prose that would read better as sections or lists.
117
+ - Nested custom blocks are used conservatively; avoid unsupported nested Expandable and Stepper patterns.
118
+ - MCP or WebMCP was used for current docs when available.
@@ -0,0 +1,98 @@
1
+ # Docsector Authoring Patterns
2
+
3
+ Use these patterns to choose a page shape before writing detailed content.
4
+
5
+ ## Tutorial or Setup Guide
6
+
7
+ Use when readers must follow a sequence.
8
+
9
+ Recommended blocks:
10
+
11
+ - Headings for major phases.
12
+ - Stepper for guided, interactive sequences.
13
+ - Code blocks for commands and configuration.
14
+ - Hints for warnings or best practices.
15
+ - Files for downloadable checklists or templates.
16
+
17
+ Start with a short outcome statement, then move into steps. Keep each step focused on one action and one result.
18
+
19
+ ## Concept or Overview Page
20
+
21
+ Use when readers need understanding before action.
22
+
23
+ Recommended blocks:
24
+
25
+ - Paragraphs for explanation.
26
+ - Headings for scannable sections.
27
+ - Unordered lists for capabilities and constraints.
28
+ - Images or Mermaid diagrams for mental models.
29
+ - Quick Links or Cards for next steps.
30
+
31
+ Avoid heavy custom blocks if a simple section and list are clearer.
32
+
33
+ ## Navigation Hub
34
+
35
+ Use when a page primarily routes readers to other content.
36
+
37
+ Recommended blocks:
38
+
39
+ - Quick Links for compact next steps.
40
+ - Cards for visual destinations.
41
+ - Short paragraphs for framing.
42
+ - Headings only when the hub has multiple groups.
43
+
44
+ Use `to` for Docsector routes and `href` for external URLs.
45
+
46
+ ## Changelog or Release Notes
47
+
48
+ Use when content is chronological.
49
+
50
+ Recommended blocks:
51
+
52
+ - Timeline for dated entries.
53
+ - Timeline tags for release channels, categories, or status.
54
+ - Hints for breaking changes or migration warnings.
55
+ - Code blocks for commands that users must run.
56
+ - Quick Links for related upgrade docs.
57
+
58
+ Give timeline items stable `anchor` values for important releases and migration entries.
59
+
60
+ ## API Reference Page
61
+
62
+ Use when structured API data is available.
63
+
64
+ Recommended blocks:
65
+
66
+ - API Reference for Quasar-compatible JSON.
67
+ - Code blocks for quick usage examples.
68
+ - Hints for compatibility or deprecation notes.
69
+ - Tables only for small summaries not already covered by the API block.
70
+
71
+ Keep JSON assets under same-origin public paths such as `/api/manual/...` or `/quasar-api/...`.
72
+
73
+ ## Example Showcase
74
+
75
+ Use when readers need to inspect behavior and source.
76
+
77
+ Recommended blocks:
78
+
79
+ - Code Examples for live Vue SFC previews.
80
+ - Code blocks for smaller standalone snippets.
81
+ - Expandable for optional implementation notes.
82
+ - Cards or Quick Links for related examples.
83
+
84
+ Use `expanded="true"` when source inspection is the main value. Set `codepen="false"` when an example cannot be exported safely.
85
+
86
+ ## Troubleshooting Page
87
+
88
+ Use when readers need to diagnose and resolve problems.
89
+
90
+ Recommended blocks:
91
+
92
+ - Headings for symptoms or error messages.
93
+ - Hints for warnings and high-risk operations.
94
+ - Ordered lists for resolution steps.
95
+ - Code blocks for commands and logs.
96
+ - Expandable for verbose logs or advanced diagnostics.
97
+
98
+ Keep the shortest successful path visible and move rare details into Expandable blocks.
@@ -0,0 +1,321 @@
1
+ # Docsector Block Catalog
2
+
3
+ This catalog summarizes the Docsector authoring blocks that an agent should know before writing documentation. Each block has live manual pages at `manual/content/blocks/{slug}/overview` and usually `manual/content/blocks/{slug}/showcase`.
4
+
5
+ ## Custom Element Blocks
6
+
7
+ | Block | Syntax | Use For | Manual Path |
8
+ | ------------- | --------------------------------------------------- | -------------------------------------------------------- | ---------------------------------------------- |
9
+ | Quick Links | `<d-block-quick-links>` with `<d-block-quick-link>` | Small sets of next-step links | `manual/content/blocks/quick-links/overview` |
10
+ | Cards | `<d-block-cards>` with `<d-block-card>` | Visual navigation grids and landing sections | `manual/content/blocks/cards/overview` |
11
+ | Timeline | `<d-block-timeline>` with `<d-block-timeline-item>` | Changelogs, release notes, rollout logs | `manual/content/blocks/timeline/overview` |
12
+ | Stepper | `<d-block-stepper>` with `<d-block-step>` | Guided multi-step flows with navigation | `manual/content/blocks/stepper/overview` |
13
+ | Expandable | `<d-block-expandable>` | Optional details, appendices, longer examples | `manual/content/blocks/expandable/overview` |
14
+ | Files | `<d-block-file>` | Download cards for attachments | `manual/content/blocks/files/overview` |
15
+ | Embedded URLs | `<d-block-embedded-url>` | YouTube, Vimeo, Spotify, CodePen, or link-card fallbacks | `manual/content/blocks/embedded-urls/overview` |
16
+ | Code Examples | `<d-block-code-example>` | Live Vue SFC previews with source inspection | `manual/content/blocks/code-examples/overview` |
17
+ | API Reference | `<d-block-api>` | Quasar-compatible JSON API reference UIs | `manual/content/blocks/api-reference/overview` |
18
+
19
+ ### Quick Links
20
+
21
+ Use Quick Links when a page needs a compact group of destinations without a long prose list.
22
+
23
+ ```html
24
+ <d-block-quick-links title="Get started">
25
+ <d-block-quick-link
26
+ title="Install"
27
+ description="Set up the project"
28
+ to="/guide/getting-started"
29
+ />
30
+ <d-block-quick-link
31
+ title="GitHub"
32
+ description="Open the repository"
33
+ href="https://github.com/docsector/docsector-reader"
34
+ />
35
+ </d-block-quick-links>
36
+ ```
37
+
38
+ Use `to` for internal navigation and `href` for external URLs. Keep descriptions short.
39
+
40
+ ### Cards
41
+
42
+ Use Cards for landing sections, curated resource grids, and visual navigation.
43
+
44
+ ```html
45
+ <d-block-cards title="Explore more">
46
+ <d-block-card
47
+ title="Install"
48
+ description="Set up the project"
49
+ to="/guide/getting-started"
50
+ image="/images/cards/getting-started-cover.svg"
51
+ />
52
+ <d-block-card
53
+ title="GitHub"
54
+ description="Open the repository"
55
+ href="https://github.com/docsector/docsector-reader"
56
+ icon="launch"
57
+ />
58
+ </d-block-cards>
59
+ ```
60
+
61
+ Prefer `image` for landing-page tiles and `icon` for lighter cards without covers.
62
+
63
+ ### Timeline
64
+
65
+ Use Timeline for chronological entries such as changelogs, release notes, migrations, and rollout journals.
66
+
67
+ ```html
68
+ <d-block-timeline>
69
+ <d-block-timeline-item date="2025-12-25" anchor="brand-new-update">
70
+ <d-block-timeline-tag color="warning" icon="rocket_launch"
71
+ >beta</d-block-timeline-tag
72
+ >
73
+ <d-block-timeline-tag color="secondary" text-color="white"
74
+ >docs</d-block-timeline-tag
75
+ >
76
+
77
+ ## A brand new update Use this block for release notes, product
78
+ announcements, migration notices, or operational updates.
79
+ </d-block-timeline-item>
80
+ </d-block-timeline>
81
+ ```
82
+
83
+ Every item needs `date`. Tags are optional and support text content or `label`, plus `color`, `text-color`, and `icon`. `anchor` is optional; Docsector can generate one from the date and first visible text. Headings inside timeline items are flattened so the page ToC stays stable.
84
+
85
+ ### Stepper
86
+
87
+ Use Stepper when the reader should move through a guided sequence.
88
+
89
+ ```html
90
+ <d-block-stepper>
91
+ <d-block-step title="Install dependencies">
92
+ Run `npm install` in the project root.
93
+ </d-block-step>
94
+
95
+ <d-block-step
96
+ title="Ship the release"
97
+ icon="rocket_launch"
98
+ active-icon="rocket_launch"
99
+ done-icon="task_alt"
100
+ >
101
+ Use icon attributes when a numbered prefix is not expressive enough.
102
+ </d-block-step>
103
+ </d-block-stepper>
104
+ ```
105
+
106
+ Every step needs `title`. Step bodies support common Markdown such as paragraphs, lists, hints, code fences, images, tables, and math. Avoid nested Stepper blocks and other custom Docsector blocks inside steps in the current version.
107
+
108
+ ### Expandable
109
+
110
+ Use Expandable for optional material that should not interrupt the main reading path.
111
+
112
+ ```html
113
+ <d-block-expandable title="Release checklist" open="true">
114
+ - Review breaking changes - Update screenshots - Run smoke tests
115
+ </d-block-expandable>
116
+ ```
117
+
118
+ Use `open="true"` to start expanded. Keep page headings outside expandable bodies because inner headings are flattened. Avoid nesting one expandable inside another.
119
+
120
+ ### Files
121
+
122
+ Use Files for attachments such as checklists, PDFs, sample bundles, and release assets.
123
+
124
+ ```html
125
+ <d-block-file
126
+ src="/files/manual/release-checklist.txt"
127
+ title="Release checklist"
128
+ size="1 KB"
129
+ >
130
+ Download the example attachment used in this manual.
131
+ </d-block-file>
132
+ ```
133
+
134
+ `src` is required. `title` and `size` are optional. When `title` is omitted, Docsector falls back to the file name from `src`. Store repo-tracked attachments under `public/files/` and reference them as `/files/...`.
135
+
136
+ ### Embedded URLs
137
+
138
+ Use Embedded URLs for curated public embeds while keeping Docsector's consistent card and preview treatment.
139
+
140
+ ```html
141
+ <d-block-embedded-url
142
+ url="https://www.youtube.com/watch?v=M7lc1UVf-VE"
143
+ title="YouTube player demo"
144
+ >
145
+ Optional caption rendered as inline Markdown.
146
+ </d-block-embedded-url>
147
+ ```
148
+
149
+ `url` is required and `title` is optional. Supported providers are YouTube, Vimeo, Spotify, and CodePen. Unsupported or private URLs render as safe external-link cards.
150
+
151
+ ### Code Examples
152
+
153
+ Use Code Examples to render project Vue SFCs as live previews with source inspection.
154
+
155
+ ```html
156
+ <d-block-code-example
157
+ src="manual/code-examples/basic-counter"
158
+ title="Basic counter"
159
+ />
160
+ ```
161
+
162
+ Place examples under `src/examples/**/*.vue`. The `src` value is normalized to kebab-case, so `manual/code-examples/basic-counter` resolves to `src/examples/manual/code-examples/BasicCounter.vue`. `file` is an alias for `src`.
163
+
164
+ Common attributes:
165
+
166
+ | Attribute | Purpose |
167
+ | ------------ | ---------------------------------------------- |
168
+ | `src` | Example id under `src/examples/**/*.vue` |
169
+ | `file` | Alias for `src` |
170
+ | `title` | Header title above the preview |
171
+ | `expanded` | Opens the source panel by default when `true` |
172
+ | `codepen` | Shows the CodePen action unless set to `false` |
173
+ | `scrollable` | Gives the preview a fixed scrollable height |
174
+ | `overflow` | Allows horizontal and vertical overflow |
175
+ | `height` | Sets a preview height such as `360` or `420px` |
176
+
177
+ ### API Reference
178
+
179
+ Use API Reference blocks to render Quasar-compatible JSON API documentation.
180
+
181
+ ```html
182
+ <d-block-api src="/quasar-api/QSeparator.json" />
183
+
184
+ <d-block-api
185
+ src="/api/manual/http-client.json"
186
+ title="HTTP Client API"
187
+ page-link="true"
188
+ />
189
+ ```
190
+
191
+ `src` is required and should point to same-origin JSON. `title` overrides the header. `page-link="true"` shows a Docs button when the JSON includes `meta.docsUrl`. Useful JSON sections include `props`, `methods`, `events`, `value`, `arg`, and `quasarConfOptions`; entries with `internal: true` are hidden.
192
+
193
+ ## Markdown and Native Blocks
194
+
195
+ | Block | Syntax | Use For | Manual Path |
196
+ | ---------------- | -------------------------- | ------------------------------- | ------------------------------------------------- |
197
+ | Paragraphs | Plain Markdown text | Explanations and transitions | `manual/content/blocks/paragraphs/overview` |
198
+ | Headings | `##`, `###`, `####` | Sections, anchors, page ToC | `manual/content/blocks/headings/overview` |
199
+ | Unordered Lists | `- item` | Feature sets and requirements | `manual/content/blocks/unordered-lists/overview` |
200
+ | Ordered Lists | `1. item` | Sequential procedures | `manual/content/blocks/ordered-lists/overview` |
201
+ | Task Lists | `- [ ] item`, `- [x] item` | Static checklists | `manual/content/blocks/task-lists/overview` |
202
+ | Hints | `> [!WARNING]` | Semantic notes and warnings | `manual/content/blocks/hints/overview` |
203
+ | Quotes | `> text` | Neutral quoted text | `manual/content/blocks/quotes/overview` |
204
+ | Code Blocks | Fenced code | Commands and snippets | `manual/content/blocks/code-blocks/overview` |
205
+ | Mermaid Diagrams | Fenced `mermaid` code | Flowcharts and diagrams | `manual/content/blocks/mermaid-diagrams/overview` |
206
+ | Images | `![caption](/path.png)` | Screenshots and illustrations | `manual/content/blocks/images/overview` |
207
+ | Math and TeX | `$...$`, `$$...$$` | Inline and display equations | `manual/content/blocks/math-and-tex/overview` |
208
+ | Tables | Markdown tables | Comparisons and matrices | `manual/content/blocks/tables/overview` |
209
+ | Raw HTML | HTML tags | Custom structure and attributes | `manual/content/blocks/raw-html/overview` |
210
+
211
+ ### Paragraphs
212
+
213
+ Use paragraphs for narrative copy. Separate paragraphs with a blank line. Inline emphasis, links, inline code, and math work inside normal paragraphs.
214
+
215
+ ### Headings
216
+
217
+ Use headings to organize the page and feed the right-side table of contents. In page content, start with `##` because the page title is generated from page metadata. Keep heading levels in order and use headings for sections that readers may bookmark or deep-link.
218
+
219
+ ### Lists
220
+
221
+ Use unordered lists when order does not matter. Use ordered lists when sequence matters. Use task lists when each item should show a done or not-done state. Published task-list checkboxes are static and cannot be toggled by readers.
222
+
223
+ ### Hints
224
+
225
+ Use GitHub-style alert markers in blockquotes:
226
+
227
+ ```markdown
228
+ > [!WARNING]
229
+ > This operation may interrupt workers.
230
+ ```
231
+
232
+ Supported markers are `NOTE`, `TIP`, `IMPORTANT`, `WARNING`, and `CAUTION`. Unknown markers fall back to regular quotes.
233
+
234
+ ### Quotes
235
+
236
+ Use regular blockquotes for cited text or neutral notes that should stand apart from the main flow without semantic alert styling.
237
+
238
+ ```markdown
239
+ > This is a regular quote.
240
+ ```
241
+
242
+ ### Code Blocks
243
+
244
+ Use fenced code blocks for commands and snippets. Docsector renders syntax highlighting, line numbers, copy support, grouped tabs, breadcrumbs, and file metadata.
245
+
246
+ ````markdown
247
+ ```bash :filename="install.sh";
248
+ npm install
249
+ npm run dev
250
+ ```
251
+ ````
252
+
253
+ Useful metadata attributes are `filename`, `group`, `tab`, and `breadcrumb` using `:attr;` syntax.
254
+
255
+ ### Mermaid Diagrams
256
+
257
+ Use a fenced `mermaid` block for diagrams.
258
+
259
+ ````markdown
260
+ ```mermaid
261
+ flowchart TD
262
+ A[Start] --> B[Finish]
263
+ ```
264
+ ````
265
+
266
+ Docsector lazy-loads Mermaid, renders responsive SVG, adapts to light and dark mode, and shows a safe error state for invalid Mermaid syntax.
267
+
268
+ ### Images
269
+
270
+ Use standard Markdown images for screenshots, illustrations, diagrams, and product UI.
271
+
272
+ ```markdown
273
+ ![Dashboard overview](/images/example-dashboard.png)
274
+ ```
275
+
276
+ Standalone Markdown images render as block figures with click-to-zoom. The label is used as both caption and alt text. Use raw `<figure>` and `<picture>` markup when alt text and visible caption need to differ.
277
+
278
+ ### Math and TeX
279
+
280
+ Use single dollar delimiters for inline math and double dollar delimiters for display math.
281
+
282
+ ```markdown
283
+ Use $E = mc^2$ inside a sentence.
284
+
285
+ $$
286
+ \int_0^1 x^2 dx
287
+ $$
288
+ ```
289
+
290
+ Math works in paragraphs, hints, and expandable blocks. Delimiters remain literal inside inline code and fenced code blocks.
291
+
292
+ ### Tables
293
+
294
+ Use tables for comparisons, option matrices, compatibility notes, and scannable row-column content.
295
+
296
+ ```markdown
297
+ | Feature | Status | Notes |
298
+ | ------- | ------ | ------------------------ |
299
+ | Search | Done | Available in the sidebar |
300
+ ```
301
+
302
+ Keep column labels short. Split very dense tables into smaller sections.
303
+
304
+ ### Raw HTML
305
+
306
+ Use raw HTML only when Markdown is not expressive enough or when authoring Docsector custom elements.
307
+
308
+ ```html
309
+ <div data-kind="secondary-note">
310
+ This block uses raw HTML inside the page source.
311
+ </div>
312
+ ```
313
+
314
+ Prefer plain Markdown first. Keep raw markup readable because documentation content still needs maintenance.
315
+
316
+ ## Renderer and Parser References
317
+
318
+ - `src/components/page-section-tokens.js` parses custom elements and Markdown tokens.
319
+ - `src/components/DPageTokens.vue` dispatches tokens to block components.
320
+ - `src/components/DBlockCards.vue`, `DBlockQuickLinks.vue`, `DBlockTimeline.vue`, `DBlockStepper.vue`, `DBlockExpandable.vue`, `DBlockFile.vue`, `DBlockEmbeddedUrl.vue`, `DBlockCodeExample.vue`, and `DBlockApi.vue` render custom element blocks.
321
+ - `src/components/DBlockSourceCode.vue`, `DBlockMermaidDiagram.vue`, `DBlockBlockquote.vue`, and `DBlockImage.vue` render richer Markdown blocks.