docyard 0.9.0 → 1.0.1

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 (165) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -1
  3. data/README.md +8 -253
  4. data/exe/docyard +6 -0
  5. data/lib/docyard/build/asset_bundler.rb +24 -2
  6. data/lib/docyard/build/error_page_generator.rb +33 -0
  7. data/lib/docyard/build/file_copier.rb +12 -5
  8. data/lib/docyard/build/file_writer.rb +19 -0
  9. data/lib/docyard/build/llms_txt_generator.rb +103 -0
  10. data/lib/docyard/build/root_fallback_generator.rb +66 -0
  11. data/lib/docyard/build/sitemap_generator.rb +1 -1
  12. data/lib/docyard/build/static_generator.rb +119 -81
  13. data/lib/docyard/builder.rb +6 -2
  14. data/lib/docyard/cli.rb +14 -4
  15. data/lib/docyard/components/processors/callout_processor.rb +1 -1
  16. data/lib/docyard/components/processors/code_block_extended_fence_postprocessor.rb +24 -0
  17. data/lib/docyard/components/processors/code_block_extended_fence_preprocessor.rb +44 -0
  18. data/lib/docyard/components/processors/code_block_options_preprocessor.rb +11 -1
  19. data/lib/docyard/components/processors/code_block_processor.rb +5 -24
  20. data/lib/docyard/components/processors/code_group_processor.rb +6 -22
  21. data/lib/docyard/components/processors/code_snippet_import_preprocessor.rb +1 -0
  22. data/lib/docyard/components/processors/file_tree_processor.rb +1 -2
  23. data/lib/docyard/components/processors/icon_processor.rb +8 -2
  24. data/lib/docyard/components/processors/include_processor.rb +10 -10
  25. data/lib/docyard/components/processors/video_embed_processor.rb +14 -3
  26. data/lib/docyard/components/support/code_block/feature_extractor.rb +3 -1
  27. data/lib/docyard/components/support/code_block/icon_detector.rb +5 -12
  28. data/lib/docyard/components/support/code_block/line_number_resolver.rb +30 -0
  29. data/lib/docyard/components/support/code_detector.rb +2 -12
  30. data/lib/docyard/components/support/code_group/html_builder.rb +2 -6
  31. data/lib/docyard/components/support/tabs/icon_detector.rb +6 -2
  32. data/lib/docyard/components/support/tabs/parser.rb +6 -23
  33. data/lib/docyard/config/analytics_resolver.rb +24 -0
  34. data/lib/docyard/config/branding_resolver.rb +58 -27
  35. data/lib/docyard/config/key_validator.rb +30 -0
  36. data/lib/docyard/config/logo_detector.rb +8 -8
  37. data/lib/docyard/config/schema.rb +39 -0
  38. data/lib/docyard/config/section.rb +21 -0
  39. data/lib/docyard/config/validation_helpers.rb +83 -0
  40. data/lib/docyard/config/validator.rb +45 -144
  41. data/lib/docyard/config/validators/navigation.rb +43 -0
  42. data/lib/docyard/config/validators/section.rb +114 -0
  43. data/lib/docyard/config.rb +46 -102
  44. data/lib/docyard/constants.rb +59 -0
  45. data/lib/docyard/{utils/errors.rb → errors.rb} +6 -0
  46. data/lib/docyard/initializer.rb +100 -49
  47. data/lib/docyard/navigation/breadcrumb_builder.rb +45 -6
  48. data/lib/docyard/navigation/page_navigation_builder.rb +65 -0
  49. data/lib/docyard/navigation/sidebar/auto_builder.rb +107 -0
  50. data/lib/docyard/navigation/sidebar/cache.rb +96 -0
  51. data/lib/docyard/navigation/sidebar/config_builder.rb +179 -0
  52. data/lib/docyard/navigation/sidebar/distributed_builder.rb +145 -0
  53. data/lib/docyard/navigation/sidebar/local_config_loader.rb +69 -3
  54. data/lib/docyard/navigation/sidebar/renderer.rb +12 -1
  55. data/lib/docyard/navigation/sidebar_builder.rb +43 -81
  56. data/lib/docyard/rendering/branding_variables.rb +65 -0
  57. data/lib/docyard/rendering/icon_helpers.rb +14 -1
  58. data/lib/docyard/rendering/icons/devicons.rb +63 -0
  59. data/lib/docyard/rendering/icons.rb +26 -27
  60. data/lib/docyard/rendering/markdown.rb +5 -23
  61. data/lib/docyard/rendering/og_helpers.rb +36 -0
  62. data/lib/docyard/rendering/renderer.rb +96 -61
  63. data/lib/docyard/rendering/template_resolver.rb +14 -0
  64. data/lib/docyard/routing/fallback_resolver.rb +3 -3
  65. data/lib/docyard/search/build_indexer.rb +2 -2
  66. data/lib/docyard/search/dev_indexer.rb +36 -28
  67. data/lib/docyard/search/pagefind_support.rb +1 -1
  68. data/lib/docyard/server/asset_handler.rb +39 -15
  69. data/lib/docyard/server/dev_server.rb +90 -55
  70. data/lib/docyard/server/file_watcher.rb +68 -18
  71. data/lib/docyard/server/pagefind_handler.rb +1 -1
  72. data/lib/docyard/server/preview_server.rb +29 -33
  73. data/lib/docyard/server/rack_application.rb +39 -71
  74. data/lib/docyard/server/router.rb +11 -7
  75. data/lib/docyard/server/sse_server.rb +157 -0
  76. data/lib/docyard/server/static_file_app.rb +42 -0
  77. data/lib/docyard/templates/assets/css/components/banner.css +31 -0
  78. data/lib/docyard/templates/assets/css/components/breadcrumbs.css +2 -1
  79. data/lib/docyard/templates/assets/css/components/callout.css +26 -6
  80. data/lib/docyard/templates/assets/css/components/code-block.css +4 -2
  81. data/lib/docyard/templates/assets/css/components/code-group.css +20 -7
  82. data/lib/docyard/templates/assets/css/components/feedback.css +126 -0
  83. data/lib/docyard/templates/assets/css/components/file-tree.css +5 -4
  84. data/lib/docyard/templates/assets/css/components/heading-anchor.css +2 -2
  85. data/lib/docyard/templates/assets/css/components/icon.css +5 -0
  86. data/lib/docyard/templates/assets/css/components/nav-menu.css +20 -4
  87. data/lib/docyard/templates/assets/css/components/navigation.css +25 -3
  88. data/lib/docyard/templates/assets/css/components/page-actions.css +131 -0
  89. data/lib/docyard/templates/assets/css/components/prev-next.css +14 -7
  90. data/lib/docyard/templates/assets/css/components/search.css +6 -10
  91. data/lib/docyard/templates/assets/css/components/tab-bar.css +9 -6
  92. data/lib/docyard/templates/assets/css/components/table-of-contents.css +63 -17
  93. data/lib/docyard/templates/assets/css/components/tabs.css +12 -4
  94. data/lib/docyard/templates/assets/css/components/theme-toggle.css +3 -1
  95. data/lib/docyard/templates/assets/css/landing.css +82 -13
  96. data/lib/docyard/templates/assets/css/layout.css +32 -16
  97. data/lib/docyard/templates/assets/css/markdown.css +22 -2
  98. data/lib/docyard/templates/assets/css/variables.css +14 -1
  99. data/lib/docyard/templates/assets/js/components/code-group.js +4 -1
  100. data/lib/docyard/templates/assets/js/components/copy-page.js +115 -0
  101. data/lib/docyard/templates/assets/js/components/feedback.js +66 -0
  102. data/lib/docyard/templates/assets/js/components/file-tree.js +5 -5
  103. data/lib/docyard/templates/assets/js/components/navigation.js +3 -3
  104. data/lib/docyard/templates/assets/js/components/search.js +3 -3
  105. data/lib/docyard/templates/assets/js/components/table-of-contents.js +12 -6
  106. data/lib/docyard/templates/assets/js/components/tabs.js +45 -22
  107. data/lib/docyard/templates/assets/js/components/tooltip.js +4 -4
  108. data/lib/docyard/templates/assets/js/hot-reload.js +44 -0
  109. data/lib/docyard/templates/errors/404.html.erb +125 -5
  110. data/lib/docyard/templates/errors/500.html.erb +184 -10
  111. data/lib/docyard/templates/errors/redirect.html.erb +12 -0
  112. data/lib/docyard/templates/init/_sidebar.yml +36 -0
  113. data/lib/docyard/templates/init/docyard.yml +36 -0
  114. data/lib/docyard/templates/init/pages/components.md +146 -0
  115. data/lib/docyard/templates/init/pages/getting-started.md +94 -0
  116. data/lib/docyard/templates/init/pages/index.md +22 -0
  117. data/lib/docyard/templates/layouts/default.html.erb +10 -0
  118. data/lib/docyard/templates/layouts/splash.html.erb +14 -1
  119. data/lib/docyard/templates/partials/_analytics.html.erb +24 -0
  120. data/lib/docyard/templates/partials/_banner.html.erb +1 -1
  121. data/lib/docyard/templates/partials/_code_block.html.erb +1 -1
  122. data/lib/docyard/templates/partials/_feedback.html.erb +14 -0
  123. data/lib/docyard/templates/partials/_footer.html.erb +1 -1
  124. data/lib/docyard/templates/partials/_head.html.erb +80 -5
  125. data/lib/docyard/templates/partials/_icon_library.html.erb +8 -0
  126. data/lib/docyard/templates/partials/_page_actions.html.erb +21 -0
  127. data/lib/docyard/templates/partials/_scripts.html.erb +6 -3
  128. data/lib/docyard/templates/partials/_tabs.html.erb +4 -1
  129. data/lib/docyard/utils/git_info.rb +157 -0
  130. data/lib/docyard/utils/hash_utils.rb +31 -0
  131. data/lib/docyard/utils/html_helpers.rb +8 -0
  132. data/lib/docyard/utils/logging.rb +44 -3
  133. data/lib/docyard/utils/path_resolver.rb +0 -10
  134. data/lib/docyard/utils/path_utils.rb +73 -0
  135. data/lib/docyard/version.rb +1 -1
  136. data/lib/docyard.rb +2 -2
  137. metadata +81 -47
  138. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -31
  139. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  140. data/.github/pull_request_template.md +0 -14
  141. data/.github/workflows/ci.yml +0 -49
  142. data/.rubocop.yml +0 -42
  143. data/CODE_OF_CONDUCT.md +0 -132
  144. data/CONTRIBUTING.md +0 -55
  145. data/LICENSE.vscode-icons +0 -42
  146. data/Rakefile +0 -8
  147. data/lib/docyard/config/constants.rb +0 -31
  148. data/lib/docyard/navigation/sidebar/children_discoverer.rb +0 -51
  149. data/lib/docyard/navigation/sidebar/config_parser.rb +0 -208
  150. data/lib/docyard/navigation/sidebar/file_resolver.rb +0 -90
  151. data/lib/docyard/navigation/sidebar/file_system_scanner.rb +0 -78
  152. data/lib/docyard/navigation/sidebar/metadata_extractor.rb +0 -71
  153. data/lib/docyard/navigation/sidebar/metadata_reader.rb +0 -51
  154. data/lib/docyard/navigation/sidebar/path_prefixer.rb +0 -34
  155. data/lib/docyard/navigation/sidebar/sorter.rb +0 -21
  156. data/lib/docyard/navigation/sidebar/title_extractor.rb +0 -25
  157. data/lib/docyard/navigation/sidebar/tree_builder.rb +0 -140
  158. data/lib/docyard/rendering/icons/LICENSE.phosphor +0 -21
  159. data/lib/docyard/rendering/icons/file_types.rb +0 -79
  160. data/lib/docyard/rendering/icons/phosphor.rb +0 -93
  161. data/lib/docyard/rendering/language_mapping.rb +0 -52
  162. data/lib/docyard/templates/assets/js/reload.js +0 -98
  163. data/lib/docyard/templates/partials/_icon.html.erb +0 -1
  164. data/lib/docyard/templates/partials/_icon_file_extension.html.erb +0 -1
  165. data/sig/docyard.rbs +0 -4
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Docyard
4
- VERSION = "0.9.0"
4
+ VERSION = "1.0.1"
5
5
  end
data/lib/docyard.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative "docyard/version"
4
- require_relative "docyard/config/constants"
5
- require_relative "docyard/utils/errors"
4
+ require_relative "docyard/constants"
5
+ require_relative "docyard/errors"
6
6
  require_relative "docyard/utils/logging"
7
7
 
8
8
  require_relative "docyard/utils/text_formatter"
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docyard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sanif Himani
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-01-23 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: cssminify
@@ -79,6 +80,34 @@ dependencies:
79
80
  - - "~>"
80
81
  - !ruby/object:Gem::Version
81
82
  version: '1.6'
83
+ - !ruby/object:Gem::Dependency
84
+ name: parallel
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.26'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.26'
97
+ - !ruby/object:Gem::Dependency
98
+ name: puma
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '7.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '7.0'
82
111
  - !ruby/object:Gem::Dependency
83
112
  name: rack
84
113
  requirement: !ruby/object:Gem::Requirement
@@ -149,42 +178,25 @@ dependencies:
149
178
  - - "~>"
150
179
  - !ruby/object:Gem::Version
151
180
  version: '0.18'
152
- - !ruby/object:Gem::Dependency
153
- name: webrick
154
- requirement: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - "~>"
157
- - !ruby/object:Gem::Version
158
- version: '1.0'
159
- type: :runtime
160
- prerelease: false
161
- version_requirements: !ruby/object:Gem::Requirement
162
- requirements:
163
- - - "~>"
164
- - !ruby/object:Gem::Version
165
- version: '1.0'
166
181
  description: Beautiful, zero-config documentation sites. Built with Ruby.
167
182
  email:
168
183
  - sanifhimani92@gmail.com
169
- executables: []
184
+ executables:
185
+ - docyard
170
186
  extensions: []
171
187
  extra_rdoc_files: []
172
188
  files:
173
- - ".github/ISSUE_TEMPLATE/bug_report.md"
174
- - ".github/ISSUE_TEMPLATE/feature_request.md"
175
- - ".github/pull_request_template.md"
176
- - ".github/workflows/ci.yml"
177
- - ".rubocop.yml"
178
189
  - CHANGELOG.md
179
- - CODE_OF_CONDUCT.md
180
- - CONTRIBUTING.md
181
190
  - LICENSE.txt
182
- - LICENSE.vscode-icons
183
191
  - README.md
184
- - Rakefile
192
+ - exe/docyard
185
193
  - lib/docyard.rb
186
194
  - lib/docyard/build/asset_bundler.rb
195
+ - lib/docyard/build/error_page_generator.rb
187
196
  - lib/docyard/build/file_copier.rb
197
+ - lib/docyard/build/file_writer.rb
198
+ - lib/docyard/build/llms_txt_generator.rb
199
+ - lib/docyard/build/root_fallback_generator.rb
188
200
  - lib/docyard/build/sitemap_generator.rb
189
201
  - lib/docyard/build/static_generator.rb
190
202
  - lib/docyard/builder.rb
@@ -197,6 +209,8 @@ files:
197
209
  - lib/docyard/components/processors/callout_processor.rb
198
210
  - lib/docyard/components/processors/cards_processor.rb
199
211
  - lib/docyard/components/processors/code_block_diff_preprocessor.rb
212
+ - lib/docyard/components/processors/code_block_extended_fence_postprocessor.rb
213
+ - lib/docyard/components/processors/code_block_extended_fence_preprocessor.rb
200
214
  - lib/docyard/components/processors/code_block_focus_preprocessor.rb
201
215
  - lib/docyard/components/processors/code_block_options_preprocessor.rb
202
216
  - lib/docyard/components/processors/code_block_processor.rb
@@ -217,6 +231,7 @@ files:
217
231
  - lib/docyard/components/registry.rb
218
232
  - lib/docyard/components/support/code_block/feature_extractor.rb
219
233
  - lib/docyard/components/support/code_block/icon_detector.rb
234
+ - lib/docyard/components/support/code_block/line_number_resolver.rb
220
235
  - lib/docyard/components/support/code_block/line_parser.rb
221
236
  - lib/docyard/components/support/code_block/line_wrapper.rb
222
237
  - lib/docyard/components/support/code_block/patterns.rb
@@ -227,35 +242,37 @@ files:
227
242
  - lib/docyard/components/support/tabs/parser.rb
228
243
  - lib/docyard/components/support/tabs/range_finder.rb
229
244
  - lib/docyard/config.rb
245
+ - lib/docyard/config/analytics_resolver.rb
230
246
  - lib/docyard/config/branding_resolver.rb
231
- - lib/docyard/config/constants.rb
247
+ - lib/docyard/config/key_validator.rb
232
248
  - lib/docyard/config/logo_detector.rb
249
+ - lib/docyard/config/schema.rb
250
+ - lib/docyard/config/section.rb
251
+ - lib/docyard/config/validation_helpers.rb
233
252
  - lib/docyard/config/validator.rb
253
+ - lib/docyard/config/validators/navigation.rb
254
+ - lib/docyard/config/validators/section.rb
255
+ - lib/docyard/constants.rb
256
+ - lib/docyard/errors.rb
234
257
  - lib/docyard/initializer.rb
235
258
  - lib/docyard/navigation/breadcrumb_builder.rb
259
+ - lib/docyard/navigation/page_navigation_builder.rb
236
260
  - lib/docyard/navigation/prev_next_builder.rb
237
- - lib/docyard/navigation/sidebar/children_discoverer.rb
238
- - lib/docyard/navigation/sidebar/config_parser.rb
239
- - lib/docyard/navigation/sidebar/file_resolver.rb
240
- - lib/docyard/navigation/sidebar/file_system_scanner.rb
261
+ - lib/docyard/navigation/sidebar/auto_builder.rb
262
+ - lib/docyard/navigation/sidebar/cache.rb
263
+ - lib/docyard/navigation/sidebar/config_builder.rb
264
+ - lib/docyard/navigation/sidebar/distributed_builder.rb
241
265
  - lib/docyard/navigation/sidebar/item.rb
242
266
  - lib/docyard/navigation/sidebar/local_config_loader.rb
243
- - lib/docyard/navigation/sidebar/metadata_extractor.rb
244
- - lib/docyard/navigation/sidebar/metadata_reader.rb
245
- - lib/docyard/navigation/sidebar/path_prefixer.rb
246
267
  - lib/docyard/navigation/sidebar/renderer.rb
247
- - lib/docyard/navigation/sidebar/sorter.rb
248
- - lib/docyard/navigation/sidebar/title_extractor.rb
249
- - lib/docyard/navigation/sidebar/tree_builder.rb
250
268
  - lib/docyard/navigation/sidebar/tree_filter.rb
251
269
  - lib/docyard/navigation/sidebar_builder.rb
270
+ - lib/docyard/rendering/branding_variables.rb
252
271
  - lib/docyard/rendering/icon_helpers.rb
253
272
  - lib/docyard/rendering/icons.rb
254
- - lib/docyard/rendering/icons/LICENSE.phosphor
255
- - lib/docyard/rendering/icons/file_types.rb
256
- - lib/docyard/rendering/icons/phosphor.rb
257
- - lib/docyard/rendering/language_mapping.rb
273
+ - lib/docyard/rendering/icons/devicons.rb
258
274
  - lib/docyard/rendering/markdown.rb
275
+ - lib/docyard/rendering/og_helpers.rb
259
276
  - lib/docyard/rendering/renderer.rb
260
277
  - lib/docyard/rendering/template_resolver.rb
261
278
  - lib/docyard/routing/fallback_resolver.rb
@@ -270,6 +287,8 @@ files:
270
287
  - lib/docyard/server/rack_application.rb
271
288
  - lib/docyard/server/resolution_result.rb
272
289
  - lib/docyard/server/router.rb
290
+ - lib/docyard/server/sse_server.rb
291
+ - lib/docyard/server/static_file_app.rb
273
292
  - lib/docyard/templates/assets/css/code.css
274
293
  - lib/docyard/templates/assets/css/components/abbreviation.css
275
294
  - lib/docyard/templates/assets/css/components/accordion.css
@@ -280,6 +299,7 @@ files:
280
299
  - lib/docyard/templates/assets/css/components/cards.css
281
300
  - lib/docyard/templates/assets/css/components/code-block.css
282
301
  - lib/docyard/templates/assets/css/components/code-group.css
302
+ - lib/docyard/templates/assets/css/components/feedback.css
283
303
  - lib/docyard/templates/assets/css/components/figure.css
284
304
  - lib/docyard/templates/assets/css/components/file-tree.css
285
305
  - lib/docyard/templates/assets/css/components/heading-anchor.css
@@ -288,6 +308,7 @@ files:
288
308
  - lib/docyard/templates/assets/css/components/logo.css
289
309
  - lib/docyard/templates/assets/css/components/nav-menu.css
290
310
  - lib/docyard/templates/assets/css/components/navigation.css
311
+ - lib/docyard/templates/assets/css/components/page-actions.css
291
312
  - lib/docyard/templates/assets/css/components/prev-next.css
292
313
  - lib/docyard/templates/assets/css/components/search.css
293
314
  - lib/docyard/templates/assets/css/components/steps.css
@@ -310,6 +331,8 @@ files:
310
331
  - lib/docyard/templates/assets/js/components/banner.js
311
332
  - lib/docyard/templates/assets/js/components/code-block.js
312
333
  - lib/docyard/templates/assets/js/components/code-group.js
334
+ - lib/docyard/templates/assets/js/components/copy-page.js
335
+ - lib/docyard/templates/assets/js/components/feedback.js
313
336
  - lib/docyard/templates/assets/js/components/file-tree.js
314
337
  - lib/docyard/templates/assets/js/components/heading-anchor.js
315
338
  - lib/docyard/templates/assets/js/components/lightbox.js
@@ -320,16 +343,23 @@ files:
320
343
  - lib/docyard/templates/assets/js/components/table-of-contents.js
321
344
  - lib/docyard/templates/assets/js/components/tabs.js
322
345
  - lib/docyard/templates/assets/js/components/tooltip.js
323
- - lib/docyard/templates/assets/js/reload.js
346
+ - lib/docyard/templates/assets/js/hot-reload.js
324
347
  - lib/docyard/templates/assets/js/theme.js
325
348
  - lib/docyard/templates/assets/logo-dark.svg
326
349
  - lib/docyard/templates/assets/logo.svg
327
350
  - lib/docyard/templates/config/docyard.yml.erb
328
351
  - lib/docyard/templates/errors/404.html.erb
329
352
  - lib/docyard/templates/errors/500.html.erb
353
+ - lib/docyard/templates/errors/redirect.html.erb
354
+ - lib/docyard/templates/init/_sidebar.yml
355
+ - lib/docyard/templates/init/docyard.yml
356
+ - lib/docyard/templates/init/pages/components.md
357
+ - lib/docyard/templates/init/pages/getting-started.md
358
+ - lib/docyard/templates/init/pages/index.md
330
359
  - lib/docyard/templates/layouts/default.html.erb
331
360
  - lib/docyard/templates/layouts/splash.html.erb
332
361
  - lib/docyard/templates/partials/_accordion.html.erb
362
+ - lib/docyard/templates/partials/_analytics.html.erb
333
363
  - lib/docyard/templates/partials/_banner.html.erb
334
364
  - lib/docyard/templates/partials/_breadcrumbs.html.erb
335
365
  - lib/docyard/templates/partials/_callout.html.erb
@@ -337,13 +367,13 @@ files:
337
367
  - lib/docyard/templates/partials/_code_block.html.erb
338
368
  - lib/docyard/templates/partials/_doc_footer.html.erb
339
369
  - lib/docyard/templates/partials/_features.html.erb
370
+ - lib/docyard/templates/partials/_feedback.html.erb
340
371
  - lib/docyard/templates/partials/_footer.html.erb
341
372
  - lib/docyard/templates/partials/_head.html.erb
342
373
  - lib/docyard/templates/partials/_header.html.erb
343
374
  - lib/docyard/templates/partials/_heading_anchor.html.erb
344
375
  - lib/docyard/templates/partials/_hero.html.erb
345
- - lib/docyard/templates/partials/_icon.html.erb
346
- - lib/docyard/templates/partials/_icon_file_extension.html.erb
376
+ - lib/docyard/templates/partials/_icon_library.html.erb
347
377
  - lib/docyard/templates/partials/_nav_group.html.erb
348
378
  - lib/docyard/templates/partials/_nav_item.html.erb
349
379
  - lib/docyard/templates/partials/_nav_leaf.html.erb
@@ -351,6 +381,7 @@ files:
351
381
  - lib/docyard/templates/partials/_nav_menu.html.erb
352
382
  - lib/docyard/templates/partials/_nav_nested_section.html.erb
353
383
  - lib/docyard/templates/partials/_nav_section.html.erb
384
+ - lib/docyard/templates/partials/_page_actions.html.erb
354
385
  - lib/docyard/templates/partials/_prev_next.html.erb
355
386
  - lib/docyard/templates/partials/_scripts.html.erb
356
387
  - lib/docyard/templates/partials/_search_modal.html.erb
@@ -363,14 +394,15 @@ files:
363
394
  - lib/docyard/templates/partials/_table_of_contents_toggle.html.erb
364
395
  - lib/docyard/templates/partials/_tabs.html.erb
365
396
  - lib/docyard/templates/partials/_theme_toggle.html.erb
366
- - lib/docyard/utils/errors.rb
397
+ - lib/docyard/utils/git_info.rb
398
+ - lib/docyard/utils/hash_utils.rb
367
399
  - lib/docyard/utils/html_helpers.rb
368
400
  - lib/docyard/utils/logging.rb
369
401
  - lib/docyard/utils/path_resolver.rb
402
+ - lib/docyard/utils/path_utils.rb
370
403
  - lib/docyard/utils/text_formatter.rb
371
404
  - lib/docyard/utils/url_helpers.rb
372
405
  - lib/docyard/version.rb
373
- - sig/docyard.rbs
374
406
  homepage: https://github.com/sanifhimani/docyard
375
407
  licenses:
376
408
  - MIT
@@ -379,6 +411,7 @@ metadata:
379
411
  homepage_uri: https://github.com/sanifhimani/docyard
380
412
  source_code_uri: https://github.com/sanifhimani/docyard
381
413
  rubygems_mfa_required: 'true'
414
+ post_install_message:
382
415
  rdoc_options: []
383
416
  require_paths:
384
417
  - lib
@@ -393,7 +426,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
393
426
  - !ruby/object:Gem::Version
394
427
  version: '0'
395
428
  requirements: []
396
- rubygems_version: 3.7.2
429
+ rubygems_version: 3.5.22
430
+ signing_key:
397
431
  specification_version: 4
398
432
  summary: Documentation generator for Ruby
399
433
  test_files: []
@@ -1,31 +0,0 @@
1
- ---
2
- name: Bug Report
3
- about: Report a bug
4
- title: ''
5
- labels: bug
6
- assignees: ''
7
- ---
8
-
9
- ## Description
10
-
11
- <!-- Clear description of the bug -->
12
-
13
- ## Steps to Reproduce
14
-
15
- 1.
16
- 2.
17
- 3.
18
-
19
- ## Expected Behavior
20
-
21
- <!-- What should happen -->
22
-
23
- ## Actual Behavior
24
-
25
- <!-- What actually happens -->
26
-
27
- ## Environment
28
-
29
- - Ruby version: <!-- `ruby -v` -->
30
- - Docyard version: <!-- `gem list docyard` -->
31
- - OS: <!-- macOS, Linux, etc. -->
@@ -1,19 +0,0 @@
1
- ---
2
- name: Feature Request
3
- about: Suggest a feature
4
- title: ''
5
- labels: enhancement
6
- assignees: ''
7
- ---
8
-
9
- ## Description
10
-
11
- <!-- What feature would you like? -->
12
-
13
- ## Use Case
14
-
15
- <!-- Why is this useful? When would you use it? -->
16
-
17
- ## Implementation Ideas
18
-
19
- <!-- Optional: How might this work? -->
@@ -1,14 +0,0 @@
1
- ## Description
2
-
3
- <!-- What does this PR do? -->
4
-
5
- ## Changes
6
-
7
- -
8
- -
9
-
10
- ## Checklist
11
-
12
- - [ ] Tests added/updated
13
- - [ ] CHANGELOG.md updated
14
- - [ ] README.md updated (if needed)
@@ -1,49 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: [main]
6
- pull_request:
7
- branches: [main]
8
-
9
- jobs:
10
- test:
11
- name: Ruby ${{ matrix.ruby }} - Test
12
- runs-on: ubuntu-latest
13
- strategy:
14
- fail-fast: false
15
- matrix:
16
- ruby: ['3.2', '3.3', '3.4', 'head']
17
- continue-on-error: ${{ matrix.ruby == 'head' }}
18
-
19
- steps:
20
- - name: Checkout code
21
- uses: actions/checkout@v4
22
-
23
- - name: Set up Ruby
24
- uses: ruby/setup-ruby@v1
25
- with:
26
- ruby-version: ${{ matrix.ruby }}
27
- bundler-cache: true
28
-
29
- - name: Run tests
30
- run: bundle exec rspec
31
- env:
32
- RUBYOPT: '-W0'
33
-
34
- lint:
35
- name: Rubocop
36
- runs-on: ubuntu-latest
37
-
38
- steps:
39
- - name: Checkout code
40
- uses: actions/checkout@v4
41
-
42
- - name: Set up Ruby
43
- uses: ruby/setup-ruby@v1
44
- with:
45
- ruby-version: '3.3'
46
- bundler-cache: true
47
-
48
- - name: Run rubocop
49
- run: bundle exec rubocop
data/.rubocop.yml DELETED
@@ -1,42 +0,0 @@
1
- plugins:
2
- - rubocop-rspec
3
- - rubocop-rake
4
-
5
- AllCops:
6
- NewCops: enable
7
- TargetRubyVersion: 3.2
8
- Exclude:
9
- - 'vendor/**/*'
10
- - 'spec/fixtures/**/*'
11
- - 'tmp/**/*'
12
-
13
- Metrics/BlockLength:
14
- Exclude:
15
- - 'spec/**/*'
16
- - '*.gemspec'
17
-
18
- RSpec/ExampleLength:
19
- Max: 15
20
-
21
- Metrics/ClassLength:
22
- Max: 150
23
-
24
- Metrics/MethodLength:
25
- Max: 16
26
-
27
- Metrics/ParameterLists:
28
- MaxOptionalParameters: 6
29
- CountKeywordArgs: false
30
-
31
- Style/Documentation:
32
- Enabled: false
33
-
34
- Layout/LineLength:
35
- Max: 120
36
-
37
- Style/StringLiterals:
38
- Enabled: true
39
- EnforcedStyle: double_quotes
40
-
41
- Layout/MultilineMethodCallIndentation:
42
- EnforcedStyle: indented
data/CODE_OF_CONDUCT.md DELETED
@@ -1,132 +0,0 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- We as members, contributors, and leaders pledge to make participation in our
6
- community a harassment-free experience for everyone, regardless of age, body
7
- size, visible or invisible disability, ethnicity, sex characteristics, gender
8
- identity and expression, level of experience, education, socio-economic status,
9
- nationality, personal appearance, race, caste, color, religion, or sexual
10
- identity and orientation.
11
-
12
- We pledge to act and interact in ways that contribute to an open, welcoming,
13
- diverse, inclusive, and healthy community.
14
-
15
- ## Our Standards
16
-
17
- Examples of behavior that contributes to a positive environment for our
18
- community include:
19
-
20
- * Demonstrating empathy and kindness toward other people
21
- * Being respectful of differing opinions, viewpoints, and experiences
22
- * Giving and gracefully accepting constructive feedback
23
- * Accepting responsibility and apologizing to those affected by our mistakes,
24
- and learning from the experience
25
- * Focusing on what is best not just for us as individuals, but for the overall
26
- community
27
-
28
- Examples of unacceptable behavior include:
29
-
30
- * The use of sexualized language or imagery, and sexual attention or advances of
31
- any kind
32
- * Trolling, insulting or derogatory comments, and personal or political attacks
33
- * Public or private harassment
34
- * Publishing others' private information, such as a physical or email address,
35
- without their explicit permission
36
- * Other conduct which could reasonably be considered inappropriate in a
37
- professional setting
38
-
39
- ## Enforcement Responsibilities
40
-
41
- Community leaders are responsible for clarifying and enforcing our standards of
42
- acceptable behavior and will take appropriate and fair corrective action in
43
- response to any behavior that they deem inappropriate, threatening, offensive,
44
- or harmful.
45
-
46
- Community leaders have the right and responsibility to remove, edit, or reject
47
- comments, commits, code, wiki edits, issues, and other contributions that are
48
- not aligned to this Code of Conduct, and will communicate reasons for moderation
49
- decisions when appropriate.
50
-
51
- ## Scope
52
-
53
- This Code of Conduct applies within all community spaces, and also applies when
54
- an individual is officially representing the community in public spaces.
55
- Examples of representing our community include using an official email address,
56
- posting via an official social media account, or acting as an appointed
57
- representative at an online or offline event.
58
-
59
- ## Enforcement
60
-
61
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
- reported to the community leaders responsible for enforcement at
63
- [INSERT CONTACT METHOD].
64
- All complaints will be reviewed and investigated promptly and fairly.
65
-
66
- All community leaders are obligated to respect the privacy and security of the
67
- reporter of any incident.
68
-
69
- ## Enforcement Guidelines
70
-
71
- Community leaders will follow these Community Impact Guidelines in determining
72
- the consequences for any action they deem in violation of this Code of Conduct:
73
-
74
- ### 1. Correction
75
-
76
- **Community Impact**: Use of inappropriate language or other behavior deemed
77
- unprofessional or unwelcome in the community.
78
-
79
- **Consequence**: A private, written warning from community leaders, providing
80
- clarity around the nature of the violation and an explanation of why the
81
- behavior was inappropriate. A public apology may be requested.
82
-
83
- ### 2. Warning
84
-
85
- **Community Impact**: A violation through a single incident or series of
86
- actions.
87
-
88
- **Consequence**: A warning with consequences for continued behavior. No
89
- interaction with the people involved, including unsolicited interaction with
90
- those enforcing the Code of Conduct, for a specified period of time. This
91
- includes avoiding interactions in community spaces as well as external channels
92
- like social media. Violating these terms may lead to a temporary or permanent
93
- ban.
94
-
95
- ### 3. Temporary Ban
96
-
97
- **Community Impact**: A serious violation of community standards, including
98
- sustained inappropriate behavior.
99
-
100
- **Consequence**: A temporary ban from any sort of interaction or public
101
- communication with the community for a specified period of time. No public or
102
- private interaction with the people involved, including unsolicited interaction
103
- with those enforcing the Code of Conduct, is allowed during this period.
104
- Violating these terms may lead to a permanent ban.
105
-
106
- ### 4. Permanent Ban
107
-
108
- **Community Impact**: Demonstrating a pattern of violation of community
109
- standards, including sustained inappropriate behavior, harassment of an
110
- individual, or aggression toward or disparagement of classes of individuals.
111
-
112
- **Consequence**: A permanent ban from any sort of public interaction within the
113
- community.
114
-
115
- ## Attribution
116
-
117
- This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118
- version 2.1, available at
119
- [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120
-
121
- Community Impact Guidelines were inspired by
122
- [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123
-
124
- For answers to common questions about this code of conduct, see the FAQ at
125
- [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126
- [https://www.contributor-covenant.org/translations][translations].
127
-
128
- [homepage]: https://www.contributor-covenant.org
129
- [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130
- [Mozilla CoC]: https://github.com/mozilla/diversity
131
- [FAQ]: https://www.contributor-covenant.org/faq
132
- [translations]: https://www.contributor-covenant.org/translations
data/CONTRIBUTING.md DELETED
@@ -1,55 +0,0 @@
1
- # Contributing
2
-
3
- Thanks for wanting to contribute to Docyard!
4
-
5
- ## Development Setup
6
-
7
- ```bash
8
- git clone https://github.com/YOUR_USERNAME/docyard.git
9
- cd docyard
10
- bundle install
11
-
12
- # Run tests
13
- bundle exec rspec
14
- bundle exec rubocop
15
-
16
- # Test locally
17
- ./bin/docyard init
18
- ./bin/docyard serve
19
- ```
20
-
21
- ## Pull Requests
22
-
23
- 1. Fork the repo and create a branch from `main`
24
- 2. Write tests for new features
25
- 3. Run `bundle exec rspec && bundle exec rubocop`
26
- 4. Update README/CHANGELOG if needed
27
- 5. Use conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `test:`
28
-
29
- ## Architecture
30
-
31
- ```
32
- lib/docyard/
33
- cli.rb # CLI
34
- server.rb # Server lifecycle
35
- rack_application.rb # HTTP handling
36
- router.rb # URL → file mapping
37
- renderer.rb # Markdown → HTML
38
- markdown.rb # Parsing
39
- file_watcher.rb # Live reload
40
- asset_handler.rb # Static assets
41
- ```
42
-
43
- ## Code Style
44
-
45
- - Maintain >85% test coverage
46
- - Keep methods focused and readable
47
- - Add tests for new features
48
-
49
- ## Questions?
50
-
51
- Open an issue.
52
-
53
- ---
54
-
55
- Thanks for contributing! 🚀