andromeda_cms 0.1.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 (56) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +30 -0
  3. data/CONTRIBUTING.md +47 -0
  4. data/Cargo.lock +1182 -0
  5. data/Cargo.toml +12 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +276 -0
  8. data/ext/andromeda_cms/Cargo.toml +18 -0
  9. data/ext/andromeda_cms/extconf.rb +6 -0
  10. data/ext/andromeda_cms/src/errors.rs +55 -0
  11. data/ext/andromeda_cms/src/lib.rs +143 -0
  12. data/ext/andromeda_cms/src/nodes.rs +400 -0
  13. data/lib/andromeda/assets.rb +128 -0
  14. data/lib/andromeda/check.rb +71 -0
  15. data/lib/andromeda/components/errors.rb +97 -0
  16. data/lib/andromeda/components/import_scanner.rb +72 -0
  17. data/lib/andromeda/components/static_expression.rb +79 -0
  18. data/lib/andromeda/components.rb +348 -0
  19. data/lib/andromeda/configuration.rb +91 -0
  20. data/lib/andromeda/entry.rb +294 -0
  21. data/lib/andromeda/errors.rb +173 -0
  22. data/lib/andromeda/fix.rb +71 -0
  23. data/lib/andromeda/frontmatter.rb +327 -0
  24. data/lib/andromeda/helpers.rb +84 -0
  25. data/lib/andromeda/id.rb +58 -0
  26. data/lib/andromeda/loader.rb +96 -0
  27. data/lib/andromeda/parser.rb +75 -0
  28. data/lib/andromeda/pipeline.rb +296 -0
  29. data/lib/andromeda/railtie.rb +47 -0
  30. data/lib/andromeda/registry.rb +127 -0
  31. data/lib/andromeda/relation.rb +125 -0
  32. data/lib/andromeda/renderer/code_highlighter.rb +53 -0
  33. data/lib/andromeda/renderer/errors.rb +52 -0
  34. data/lib/andromeda/renderer/literal_expression.rb +201 -0
  35. data/lib/andromeda/renderer.rb +411 -0
  36. data/lib/andromeda/schema.rb +383 -0
  37. data/lib/andromeda/slugger.rb +68 -0
  38. data/lib/andromeda/store.rb +286 -0
  39. data/lib/andromeda/tasks/andromeda.rake +56 -0
  40. data/lib/andromeda/version.rb +5 -0
  41. data/lib/andromeda_cms.rb +41 -0
  42. data/lib/generators/andromeda/collection/USAGE +25 -0
  43. data/lib/generators/andromeda/collection/collection_generator.rb +239 -0
  44. data/lib/generators/andromeda/component/USAGE +15 -0
  45. data/lib/generators/andromeda/component/component_generator.rb +75 -0
  46. data/lib/generators/andromeda/import_astro/USAGE +21 -0
  47. data/lib/generators/andromeda/import_astro/astro_schema_json.rb +80 -0
  48. data/lib/generators/andromeda/import_astro/balanced_scanner.rb +168 -0
  49. data/lib/generators/andromeda/import_astro/content_config_converter.rb +232 -0
  50. data/lib/generators/andromeda/import_astro/import_astro_generator.rb +313 -0
  51. data/lib/generators/andromeda/import_astro/mdx_content_scanner.rb +91 -0
  52. data/lib/generators/andromeda/import_astro/mdx_import_rewriter.rb +91 -0
  53. data/lib/generators/andromeda/install/USAGE +11 -0
  54. data/lib/generators/andromeda/install/install_generator.rb +77 -0
  55. data/lib/generators/andromeda/install/templates/initializer.rb +30 -0
  56. metadata +161 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 38c3c595473d6a14f36206386ce64499841ac14949c46650e34684db8c9df879
4
+ data.tar.gz: 7864a88e1f8ed8465494ef00d10c34ee4374be3e92a27381a5f9bfb4c52fab8d
5
+ SHA512:
6
+ metadata.gz: 5c4b45062f074a324326d37dac40249fe8249d191954f6c571786d87e34afe20cd751ba82dc593fbc8a181c9f9b4ea1febe32eed48c4b8f9fb67a55a61efbd23
7
+ data.tar.gz: 10eddbe0ae7e03c7ff58fea37564a715acd15e0d92705484885cbbab32cd9918a78e6d614f73c64dee96b91666a8580dde8ab904236d409a2e88c341637af577
data/CHANGELOG.md ADDED
@@ -0,0 +1,30 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2026-09-27
9
+
10
+ ### Added
11
+
12
+ - Astro-compatible content collections: entry classes with a schema DSL, an
13
+ Astro-compatible id scheme, and queries (`all`/`find`/`where`/`order`/scopes).
14
+ - Markdown and MDX conversion through Sätteri, the engine Astro 7 uses by
15
+ default, with GFM, smart punctuation, github-slugger heading ids and Rouge
16
+ syntax highlighting.
17
+ - MDX components rendered as Rails partials, including props, children and
18
+ named slots.
19
+ - Frontmatter parsing with Astro-compatible semantics: YAML 1.2 scalars, TOML
20
+ (`+++`), and line numbers preserved for error messages.
21
+ - Build pipeline: `andromeda:build` (hooked into `assets:precompile`),
22
+ `andromeda:check`, `andromeda:fix` and `andromeda:clobber`, writing to
23
+ `.andromeda/`; on-demand conversion in development.
24
+ - Images referenced from content published through the asset pipeline.
25
+ - View helpers: `andromeda_content`, `andromeda_toc`, `andromeda_meta_tags`,
26
+ `andromeda_image_url`.
27
+ - Generators: `andromeda:install`, `andromeda:collection`,
28
+ `andromeda:component` and `andromeda:import_astro`.
29
+
30
+ [0.1.0]: https://github.com/AndromedaCMS/andromeda_cms/releases/tag/v0.1.0
data/CONTRIBUTING.md ADDED
@@ -0,0 +1,47 @@
1
+ # Contributing
2
+
3
+ **Andromeda is open source, but not open contribution.**
4
+
5
+ The code is MIT licensed: use it, fork it, change it, ship it. What this
6
+ project does not do is take patches into its own implementation. That keeps the
7
+ copyright in one place, which in turn keeps relicensing, redistribution and
8
+ long-term maintenance decisions simple — the same reasoning
9
+ [SQLite](https://www.sqlite.org/copyright.html) gives for its own policy.
10
+
11
+ So pull requests are generally closed unfixed, and that is not a judgement on
12
+ the code in them. Please do not spend an afternoon on a patch expecting it to be
13
+ merged.
14
+
15
+ ## What helps most
16
+
17
+ **Bug reports.** They are the highest-value contribution here, and they are
18
+ always welcome. A good one includes:
19
+
20
+ - the versions of Ruby, Rails and `andromeda_cms`
21
+ - the content file that triggers it, reduced to the smallest thing that still
22
+ fails (frontmatter plus a few lines of body is usually enough)
23
+ - what you expected, and what happened, including the full error message
24
+ - for a compatibility problem: what Astro does with the same file
25
+
26
+ **Compatibility gaps.** Content that works in Astro and does not work here is a
27
+ bug, even if the error message looks reasonable. Say which Astro version the
28
+ content came from.
29
+
30
+ **Documentation that is wrong or missing.** Point at the page and say what was
31
+ confusing; that is enough.
32
+
33
+ **Ideas.** Open an issue describing the problem you hit rather than the
34
+ implementation you have in mind — the problem is the part that is hard to
35
+ guess from the outside.
36
+
37
+ ## What to expect
38
+
39
+ Issues are read. Not every one becomes a change: this gem deliberately keeps a
40
+ small surface, and compatibility with Astro's behaviour outranks new options.
41
+ When something is declined, the issue will say why.
42
+
43
+ ## Forking
44
+
45
+ Forking is a legitimate outcome, not a hostile one. If this project will not go
46
+ where you need it to go, the MIT licence exists precisely so you can take it
47
+ there yourself.