docyard 0.7.0 → 0.9.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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -1
  3. data/CHANGELOG.md +43 -1
  4. data/lib/docyard/build/asset_bundler.rb +22 -7
  5. data/lib/docyard/build/file_copier.rb +49 -27
  6. data/lib/docyard/build/sitemap_generator.rb +6 -6
  7. data/lib/docyard/build/static_generator.rb +85 -12
  8. data/lib/docyard/builder.rb +6 -6
  9. data/lib/docyard/components/aliases.rb +12 -0
  10. data/lib/docyard/components/processors/abbreviation_processor.rb +72 -0
  11. data/lib/docyard/components/processors/accordion_processor.rb +81 -0
  12. data/lib/docyard/components/processors/badge_processor.rb +72 -0
  13. data/lib/docyard/components/processors/callout_processor.rb +8 -2
  14. data/lib/docyard/components/processors/cards_processor.rb +100 -0
  15. data/lib/docyard/components/processors/code_block_options_preprocessor.rb +23 -2
  16. data/lib/docyard/components/processors/code_block_processor.rb +6 -0
  17. data/lib/docyard/components/processors/code_group_processor.rb +198 -0
  18. data/lib/docyard/components/processors/code_snippet_import_preprocessor.rb +6 -1
  19. data/lib/docyard/components/processors/custom_anchor_processor.rb +42 -0
  20. data/lib/docyard/components/processors/file_tree_processor.rb +151 -0
  21. data/lib/docyard/components/processors/image_caption_processor.rb +96 -0
  22. data/lib/docyard/components/processors/include_processor.rb +86 -0
  23. data/lib/docyard/components/processors/steps_processor.rb +89 -0
  24. data/lib/docyard/components/processors/tabs_processor.rb +9 -1
  25. data/lib/docyard/components/processors/tooltip_processor.rb +57 -0
  26. data/lib/docyard/components/processors/video_embed_processor.rb +196 -0
  27. data/lib/docyard/components/support/code_group/html_builder.rb +122 -0
  28. data/lib/docyard/components/support/markdown_code_block_helper.rb +56 -0
  29. data/lib/docyard/config/branding_resolver.rb +121 -17
  30. data/lib/docyard/config/constants.rb +6 -4
  31. data/lib/docyard/config/logo_detector.rb +39 -0
  32. data/lib/docyard/config/validator.rb +122 -99
  33. data/lib/docyard/config.rb +40 -42
  34. data/lib/docyard/initializer.rb +15 -76
  35. data/lib/docyard/navigation/breadcrumb_builder.rb +133 -0
  36. data/lib/docyard/navigation/prev_next_builder.rb +4 -1
  37. data/lib/docyard/navigation/sidebar/children_discoverer.rb +51 -0
  38. data/lib/docyard/navigation/sidebar/config_parser.rb +136 -108
  39. data/lib/docyard/navigation/sidebar/file_resolver.rb +90 -0
  40. data/lib/docyard/navigation/sidebar/file_system_scanner.rb +2 -1
  41. data/lib/docyard/navigation/sidebar/item.rb +50 -7
  42. data/lib/docyard/navigation/sidebar/local_config_loader.rb +51 -0
  43. data/lib/docyard/navigation/sidebar/metadata_extractor.rb +71 -0
  44. data/lib/docyard/navigation/sidebar/metadata_reader.rb +51 -0
  45. data/lib/docyard/navigation/sidebar/path_prefixer.rb +34 -0
  46. data/lib/docyard/navigation/sidebar/renderer.rb +60 -38
  47. data/lib/docyard/navigation/sidebar/sorter.rb +21 -0
  48. data/lib/docyard/navigation/sidebar/tree_builder.rb +100 -26
  49. data/lib/docyard/navigation/sidebar/tree_filter.rb +55 -0
  50. data/lib/docyard/navigation/sidebar_builder.rb +105 -36
  51. data/lib/docyard/rendering/icon_helpers.rb +13 -0
  52. data/lib/docyard/rendering/icons/phosphor.rb +26 -1
  53. data/lib/docyard/rendering/markdown.rb +29 -1
  54. data/lib/docyard/rendering/renderer.rb +75 -34
  55. data/lib/docyard/rendering/template_resolver.rb +172 -0
  56. data/lib/docyard/routing/fallback_resolver.rb +92 -0
  57. data/lib/docyard/search/build_indexer.rb +1 -1
  58. data/lib/docyard/search/dev_indexer.rb +51 -6
  59. data/lib/docyard/search/pagefind_support.rb +2 -0
  60. data/lib/docyard/server/asset_handler.rb +25 -19
  61. data/lib/docyard/server/pagefind_handler.rb +63 -0
  62. data/lib/docyard/server/preview_server.rb +1 -1
  63. data/lib/docyard/server/rack_application.rb +81 -64
  64. data/lib/docyard/templates/assets/css/code.css +18 -51
  65. data/lib/docyard/templates/assets/css/components/abbreviation.css +86 -0
  66. data/lib/docyard/templates/assets/css/components/accordion.css +138 -0
  67. data/lib/docyard/templates/assets/css/components/badges.css +47 -0
  68. data/lib/docyard/templates/assets/css/components/banner.css +202 -0
  69. data/lib/docyard/templates/assets/css/components/breadcrumbs.css +143 -0
  70. data/lib/docyard/templates/assets/css/components/callout.css +67 -67
  71. data/lib/docyard/templates/assets/css/components/cards.css +100 -0
  72. data/lib/docyard/templates/assets/css/components/code-block.css +190 -282
  73. data/lib/docyard/templates/assets/css/components/code-group.css +281 -0
  74. data/lib/docyard/templates/assets/css/components/figure.css +22 -0
  75. data/lib/docyard/templates/assets/css/components/file-tree.css +124 -0
  76. data/lib/docyard/templates/assets/css/components/heading-anchor.css +36 -15
  77. data/lib/docyard/templates/assets/css/components/icon.css +0 -1
  78. data/lib/docyard/templates/assets/css/components/lightbox.css +65 -0
  79. data/lib/docyard/templates/assets/css/components/logo.css +0 -2
  80. data/lib/docyard/templates/assets/css/components/nav-menu.css +237 -0
  81. data/lib/docyard/templates/assets/css/components/navigation.css +193 -167
  82. data/lib/docyard/templates/assets/css/components/prev-next.css +68 -48
  83. data/lib/docyard/templates/assets/css/components/search.css +186 -174
  84. data/lib/docyard/templates/assets/css/components/steps.css +122 -0
  85. data/lib/docyard/templates/assets/css/components/tab-bar.css +163 -0
  86. data/lib/docyard/templates/assets/css/components/table-of-contents.css +127 -114
  87. data/lib/docyard/templates/assets/css/components/tabs.css +119 -160
  88. data/lib/docyard/templates/assets/css/components/theme-toggle.css +48 -44
  89. data/lib/docyard/templates/assets/css/components/tooltip.css +113 -0
  90. data/lib/docyard/templates/assets/css/components/video.css +41 -0
  91. data/lib/docyard/templates/assets/css/landing.css +815 -0
  92. data/lib/docyard/templates/assets/css/layout.css +489 -87
  93. data/lib/docyard/templates/assets/css/main.css +1 -3
  94. data/lib/docyard/templates/assets/css/markdown.css +113 -93
  95. data/lib/docyard/templates/assets/css/reset.css +0 -3
  96. data/lib/docyard/templates/assets/css/typography.css +43 -41
  97. data/lib/docyard/templates/assets/css/variables.css +268 -208
  98. data/lib/docyard/templates/assets/favicon.svg +7 -8
  99. data/lib/docyard/templates/assets/fonts/Inter-Variable.ttf +0 -0
  100. data/lib/docyard/templates/assets/js/components/abbreviation.js +85 -0
  101. data/lib/docyard/templates/assets/js/components/banner.js +81 -0
  102. data/lib/docyard/templates/assets/js/components/code-block.js +24 -42
  103. data/lib/docyard/templates/assets/js/components/code-group.js +283 -0
  104. data/lib/docyard/templates/assets/js/components/file-tree.js +39 -0
  105. data/lib/docyard/templates/assets/js/components/heading-anchor.js +26 -24
  106. data/lib/docyard/templates/assets/js/components/lightbox.js +72 -0
  107. data/lib/docyard/templates/assets/js/components/navigation.js +181 -70
  108. data/lib/docyard/templates/assets/js/components/search.js +0 -75
  109. data/lib/docyard/templates/assets/js/components/sidebar-toggle.js +29 -0
  110. data/lib/docyard/templates/assets/js/components/tab-navigation.js +145 -0
  111. data/lib/docyard/templates/assets/js/components/table-of-contents.js +153 -66
  112. data/lib/docyard/templates/assets/js/components/tabs.js +31 -69
  113. data/lib/docyard/templates/assets/js/components/tooltip.js +118 -0
  114. data/lib/docyard/templates/assets/js/theme.js +0 -3
  115. data/lib/docyard/templates/assets/logo-dark.svg +8 -2
  116. data/lib/docyard/templates/assets/logo.svg +7 -4
  117. data/lib/docyard/templates/config/docyard.yml.erb +37 -34
  118. data/lib/docyard/templates/errors/404.html.erb +1 -1
  119. data/lib/docyard/templates/errors/500.html.erb +1 -1
  120. data/lib/docyard/templates/layouts/default.html.erb +19 -67
  121. data/lib/docyard/templates/layouts/splash.html.erb +177 -0
  122. data/lib/docyard/templates/partials/_accordion.html.erb +9 -0
  123. data/lib/docyard/templates/partials/_banner.html.erb +27 -0
  124. data/lib/docyard/templates/partials/_breadcrumbs.html.erb +24 -0
  125. data/lib/docyard/templates/partials/_card.html.erb +23 -0
  126. data/lib/docyard/templates/partials/_code_block.html.erb +5 -3
  127. data/lib/docyard/templates/partials/_doc_footer.html.erb +25 -0
  128. data/lib/docyard/templates/partials/_features.html.erb +15 -0
  129. data/lib/docyard/templates/partials/_footer.html.erb +42 -0
  130. data/lib/docyard/templates/partials/_head.html.erb +22 -0
  131. data/lib/docyard/templates/partials/_header.html.erb +49 -0
  132. data/lib/docyard/templates/partials/_heading_anchor.html.erb +3 -1
  133. data/lib/docyard/templates/partials/_hero.html.erb +27 -0
  134. data/lib/docyard/templates/partials/_nav_group.html.erb +31 -11
  135. data/lib/docyard/templates/partials/_nav_leaf.html.erb +4 -1
  136. data/lib/docyard/templates/partials/_nav_menu.html.erb +42 -0
  137. data/lib/docyard/templates/partials/_nav_nested_section.html.erb +11 -0
  138. data/lib/docyard/templates/partials/_nav_section.html.erb +1 -1
  139. data/lib/docyard/templates/partials/_prev_next.html.erb +8 -2
  140. data/lib/docyard/templates/partials/_scripts.html.erb +7 -0
  141. data/lib/docyard/templates/partials/_search_modal.html.erb +2 -6
  142. data/lib/docyard/templates/partials/_search_trigger.html.erb +2 -6
  143. data/lib/docyard/templates/partials/_sidebar.html.erb +21 -4
  144. data/lib/docyard/templates/partials/_step.html.erb +14 -0
  145. data/lib/docyard/templates/partials/_tab_bar.html.erb +25 -0
  146. data/lib/docyard/templates/partials/_table_of_contents.html.erb +12 -12
  147. data/lib/docyard/templates/partials/_table_of_contents_toggle.html.erb +1 -3
  148. data/lib/docyard/templates/partials/_tabs.html.erb +2 -2
  149. data/lib/docyard/templates/partials/_theme_toggle.html.erb +2 -11
  150. data/lib/docyard/version.rb +1 -1
  151. metadata +70 -5
  152. data/lib/docyard/templates/markdown/getting-started/installation.md.erb +0 -77
  153. data/lib/docyard/templates/markdown/guides/configuration.md.erb +0 -202
  154. data/lib/docyard/templates/markdown/guides/markdown-features.md.erb +0 -247
  155. data/lib/docyard/templates/markdown/index.md.erb +0 -82
@@ -1,247 +0,0 @@
1
- # Markdown Features
2
-
3
- Docyard supports GitHub Flavored Markdown (GFM) plus powerful custom components.
4
-
5
- ## Basic Formatting
6
-
7
- Use standard markdown syntax for formatting:
8
-
9
- **Bold text** with `**bold**` or `__bold__`
10
-
11
- *Italic text* with `*italic*` or `_italic_`
12
-
13
- `Inline code` with \`backticks\`
14
-
15
- ~~Strikethrough~~ with `~~text~~`
16
-
17
- ## Headings
18
-
19
- ```markdown
20
- # H1 Heading
21
- ## H2 Heading
22
- ### H3 Heading
23
- #### H4 Heading
24
- ```
25
-
26
- ## Lists
27
-
28
- Unordered lists:
29
-
30
- - Item one
31
- - Item two
32
- - Nested item
33
- - Another nested item
34
- - Item three
35
-
36
- Ordered lists:
37
-
38
- 1. First step
39
- 2. Second step
40
- 3. Third step
41
-
42
- Task lists:
43
-
44
- - [x] Completed task
45
- - [ ] Pending task
46
- - [ ] Another pending task
47
-
48
- ## Code Blocks
49
-
50
- Syntax highlighting for 100+ languages powered by Rouge:
51
-
52
- ```javascript
53
- function greet(name) {
54
- return `Hello, ${name}!`;
55
- }
56
-
57
- console.log(greet('World'));
58
- ```
59
-
60
- ```python
61
- def greet(name):
62
- return f"Hello, {name}!"
63
-
64
- print(greet('World'))
65
- ```
66
-
67
- ```ruby
68
- def greet(name)
69
- "Hello, #{name}!"
70
- end
71
-
72
- puts greet('World')
73
- ```
74
-
75
- Each code block includes a copy button for easy copying.
76
-
77
- ## Tables
78
-
79
- Create responsive tables with GFM syntax:
80
-
81
- | Feature | Supported | Notes |
82
- |---------|-----------|-------|
83
- | Syntax highlighting | ✓ | 100+ languages |
84
- | Hot reload | ✓ | Instant updates |
85
- | Dark mode | ✓ | Auto-switching |
86
- | Mobile responsive | ✓ | Works everywhere |
87
-
88
- Tables automatically wrap on mobile devices.
89
-
90
- ## Blockquotes
91
-
92
- > Standard blockquote for citations or highlights.
93
- >
94
- > Supports multiple paragraphs.
95
-
96
- ## Links
97
-
98
- [Link to a page](../getting-started/installation)
99
-
100
- [External link](https://github.com)
101
-
102
- ## Callouts
103
-
104
- Use callouts to highlight important information:
105
-
106
- ::: note
107
- Informational content that provides additional context.
108
- :::
109
-
110
- ::: tip Best Practice
111
- Helpful advice or recommendations for users.
112
- :::
113
-
114
- ::: important
115
- Critical information that requires special attention.
116
- :::
117
-
118
- ::: warning
119
- Caution about potential issues or things to watch out for.
120
- :::
121
-
122
- ::: danger
123
- Severe warnings about dangerous operations or critical issues.
124
- :::
125
-
126
- ### Custom Titles
127
-
128
- ::: tip Performance Optimization
129
- You can customize the title of any callout type.
130
- :::
131
-
132
- ### Rich Content
133
-
134
- ::: important Key Requirements
135
- Callouts support all markdown features:
136
-
137
- - **Lists** and formatting
138
- - `Code snippets`
139
- - [Links](/)
140
- - Code blocks with syntax highlighting
141
-
142
- ```ruby
143
- def example
144
- puts "Code works inside callouts!"
145
- end
146
- ```
147
- :::
148
-
149
- ## Tabs
150
-
151
- Display multiple code examples or options in tabs:
152
-
153
- :::tabs
154
- == JavaScript
155
- ```javascript
156
- const config = {
157
- apiUrl: 'https://api.example.com',
158
- timeout: 5000
159
- };
160
- ```
161
-
162
- == TypeScript
163
- ```typescript
164
- interface Config {
165
- apiUrl: string;
166
- timeout: number;
167
- }
168
-
169
- const config: Config = {
170
- apiUrl: 'https://api.example.com',
171
- timeout: 5000
172
- };
173
- ```
174
-
175
- == Ruby
176
- ```ruby
177
- config = {
178
- api_url: 'https://api.example.com',
179
- timeout: 5000
180
- }
181
- ```
182
- :::
183
-
184
- ### Package Manager Tabs
185
-
186
- Perfect for installation instructions:
187
-
188
- :::tabs
189
- == npm
190
- ```bash
191
- npm install your-package
192
- ```
193
-
194
- == yarn
195
- ```bash
196
- yarn add your-package
197
- ```
198
-
199
- == pnpm
200
- ```bash
201
- pnpm add your-package
202
- ```
203
-
204
- == bun
205
- ```bash
206
- bun add your-package
207
- ```
208
- :::
209
-
210
- Tabs automatically detect package managers and display appropriate icons.
211
-
212
- ## Icons
213
-
214
- Use inline icons from [Phosphor Icons](https://phosphoricons.com):
215
-
216
- :rocket-launch: :check: :warning: :heart: :star: :code: :book-open: :gear:
217
-
218
- Just wrap the icon name in colons:
219
-
220
- ```markdown
221
- :rocket-launch: :check: :warning:
222
- ```
223
-
224
- Browse all available icons at [phosphoricons.com](https://phosphoricons.com).
225
-
226
- ## Horizontal Rules
227
-
228
- Use three or more dashes, asterisks, or underscores:
229
-
230
- ---
231
-
232
- ## Best Practices
233
-
234
- ::: tip Writing Great Documentation
235
- 1. **Use headings hierarchically** - Don't skip levels (H1 → H3)
236
- 2. **Add code examples** - Show, don't just tell
237
- 3. **Use callouts sparingly** - Highlight only important information
238
- 4. **Keep it concise** - Respect your readers' time
239
- 5. **Link related pages** - Help users navigate your docs
240
- :::
241
-
242
- ## Next Steps
243
-
244
- ::: note
245
- - Learn how to [customize your site](configuration)
246
- - Explore the [installation guide](../getting-started/installation)
247
- :::
@@ -1,82 +0,0 @@
1
- # Welcome to Your Documentation
2
-
3
- This is your documentation homepage. Docyard transforms your Markdown files into beautiful, searchable documentation.
4
-
5
- ## Quick Example
6
-
7
- Here's what you can do with Docyard:
8
-
9
- ### Code Blocks with Syntax Highlighting
10
-
11
- ```ruby
12
- class User
13
- attr_reader :name, :email
14
-
15
- def initialize(name, email)
16
- @name = name
17
- @email = email
18
- end
19
-
20
- def greet
21
- "Hello, #{name}!"
22
- end
23
- end
24
- ```
25
-
26
- ### Callouts for Important Information
27
-
28
- ::: tip Pro Tip
29
- Use callouts to highlight important information. Available types: `note`, `tip`, `important`, `warning`, and `danger`.
30
- :::
31
-
32
- ::: warning
33
- Make sure to read the [Configuration Guide](guides/configuration) before deploying to production.
34
- :::
35
-
36
- ### Tabs for Multiple Options
37
-
38
- Show installation instructions for different package managers:
39
-
40
- :::tabs
41
- == npm
42
- ```bash
43
- npm install your-package
44
- ```
45
-
46
- == yarn
47
- ```bash
48
- yarn add your-package
49
- ```
50
-
51
- == pnpm
52
- ```bash
53
- pnpm add your-package
54
- ```
55
- :::
56
-
57
- ### Icons
58
-
59
- Use inline icons from [Phosphor Icons](https://phosphoricons.com): :rocket-launch: :check: :warning: :heart:
60
-
61
- ## Getting Started
62
-
63
- ::: note Next Steps
64
- 1. Edit the files in `docs/` to create your documentation
65
- 2. Run `docyard serve` to preview changes in real-time
66
- 3. Customize `docyard.yml` to configure branding and navigation
67
- 4. Run `docyard build` when ready to deploy
68
- :::
69
-
70
- ## Documentation Structure
71
-
72
- | Section | Description |
73
- |---------|-------------|
74
- | [Installation](getting-started/installation) | Get up and running quickly |
75
- | [Markdown Features](guides/markdown-features) | Learn about all supported features |
76
- | [Configuration](guides/configuration) | Customize appearance and navigation |
77
-
78
- ## Need Help?
79
-
80
- - Check out the [Markdown Features](guides/markdown-features) guide
81
- - Learn about [customization options](guides/configuration)
82
- - Explore the sidebar to see all available pages