plum-cms 0.2.2 → 0.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +78 -0
  3. data/README.md +10 -2
  4. data/app/assets/builds/tailwind.css +1 -1
  5. data/app/assets/stylesheets/plum/comments.css +1 -0
  6. data/app/controllers/plum/cp/comments_controller.rb +55 -0
  7. data/app/controllers/plum/cp/content_types_controller.rb +1 -1
  8. data/app/controllers/plum/cp/entries_controller.rb +1 -1
  9. data/app/controllers/plum/discussions_controller.rb +46 -0
  10. data/app/helpers/plum/comments_helper.rb +20 -0
  11. data/app/models/plum/comment.rb +40 -0
  12. data/app/models/plum/comment_moderation.rb +7 -0
  13. data/app/models/plum/comment_report.rb +7 -0
  14. data/app/models/plum/commentable.rb +25 -0
  15. data/app/models/plum/discussion.rb +17 -0
  16. data/app/models/plum/entry.rb +11 -0
  17. data/app/models/plum/site.rb +1 -0
  18. data/app/services/plum/comments/context.rb +70 -0
  19. data/app/services/plum/comments/rate_limited.rb +5 -0
  20. data/app/services/plum/comments/theme_renderer.rb +66 -0
  21. data/app/services/plum/config_sync.rb +3 -0
  22. data/app/services/plum/liquid_context.rb +8 -0
  23. data/app/services/plum/liquid_renderer.rb +8 -0
  24. data/app/services/plum/site_archive.rb +4 -4
  25. data/app/themes/default/layouts/base.liquid +1 -1
  26. data/app/themes/default/templates/comments/_comment.liquid +8 -0
  27. data/app/themes/default/templates/comments/_form.liquid +7 -0
  28. data/app/themes/default/templates/comments/_report.liquid +6 -0
  29. data/app/themes/default/templates/comments/show.liquid +15 -0
  30. data/app/themes/default/templates/entries/_default.liquid +1 -0
  31. data/app/themes/default/templates/entries/landing.liquid +1 -0
  32. data/app/themes/default/templates/entries/pages.liquid +1 -0
  33. data/app/themes/default/templates/entries/posts.liquid +1 -0
  34. data/app/views/layouts/plum/cp.html.erb +4 -1
  35. data/app/views/layouts/plum/discussion.html.erb +5 -0
  36. data/app/views/layouts/plum/session.html.erb +1 -1
  37. data/app/views/layouts/plum/write.html.erb +1 -1
  38. data/app/views/plum/cp/comments/index.html.erb +16 -0
  39. data/app/views/plum/cp/content_types/_form.html.erb +3 -0
  40. data/app/views/plum/cp/entries/_form.html.erb +3 -0
  41. data/app/views/plum/discussions/_comments.html.erb +13 -0
  42. data/app/views/plum/discussions/_form.html.erb +6 -0
  43. data/app/views/plum/discussions/show.html.erb +19 -0
  44. data/config/plum_routes.rb +6 -0
  45. data/db/engine_migrate/20261005190000_create_plum_comments.rb +48 -0
  46. data/docs/comments.md +140 -0
  47. data/docs/plum-cli.md +66 -0
  48. data/docs/releases/0.3.0-validation.md +15 -0
  49. data/docs/zero-to-agency.md +172 -0
  50. data/lib/generators/plum/install/install_generator.rb +13 -1
  51. data/lib/plum/comments/configuration.rb +43 -0
  52. data/lib/plum/configuration.rb +3 -1
  53. data/lib/plum/engine.rb +11 -4
  54. data/lib/plum/version.rb +1 -1
  55. data/lib/plum.rb +7 -0
  56. metadata +36 -4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plum-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Simmons
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-13 00:00:00.000000000 Z
11
+ date: 2026-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt
@@ -180,16 +180,22 @@ dependencies:
180
180
  name: image_processing
181
181
  requirement: !ruby/object:Gem::Requirement
182
182
  requirements:
183
- - - "~>"
183
+ - - ">="
184
184
  - !ruby/object:Gem::Version
185
185
  version: '1.2'
186
+ - - "<"
187
+ - !ruby/object:Gem::Version
188
+ version: '3'
186
189
  type: :runtime
187
190
  prerelease: false
188
191
  version_requirements: !ruby/object:Gem::Requirement
189
192
  requirements:
190
- - - "~>"
193
+ - - ">="
191
194
  - !ruby/object:Gem::Version
192
195
  version: '1.2'
196
+ - - "<"
197
+ - !ruby/object:Gem::Version
198
+ version: '3'
193
199
  description: Plum is a Rails-native CMS engine with Hotwire control panel, Liquid
194
200
  themes, and site-scoped content.
195
201
  email:
@@ -206,12 +212,14 @@ files:
206
212
  - app/assets/images/table-needs-logo.svg
207
213
  - app/assets/javascripts/plum/application.js
208
214
  - app/assets/stylesheets/application.css
215
+ - app/assets/stylesheets/plum/comments.css
209
216
  - app/assets/stylesheets/plum/control_panel.css
210
217
  - app/assets/tailwind/application.css
211
218
  - app/controllers/plum/api/v1/entries_controller.rb
212
219
  - app/controllers/plum/application_controller.rb
213
220
  - app/controllers/plum/cp/assets_controller.rb
214
221
  - app/controllers/plum/cp/base_controller.rb
222
+ - app/controllers/plum/cp/comments_controller.rb
215
223
  - app/controllers/plum/cp/content_types_controller.rb
216
224
  - app/controllers/plum/cp/dashboard_controller.rb
217
225
  - app/controllers/plum/cp/entries_controller.rb
@@ -228,12 +236,14 @@ files:
228
236
  - app/controllers/plum/cp/terms_controller.rb
229
237
  - app/controllers/plum/cp/theme_previews_controller.rb
230
238
  - app/controllers/plum/cp/themes_controller.rb
239
+ - app/controllers/plum/discussions_controller.rb
231
240
  - app/controllers/plum/form_submissions_controller.rb
232
241
  - app/controllers/plum/pages_controller.rb
233
242
  - app/controllers/plum/sessions_controller.rb
234
243
  - app/controllers/plum/theme_assets_controller.rb
235
244
  - app/helpers/application_helper.rb
236
245
  - app/helpers/markdown_helper.rb
246
+ - app/helpers/plum/comments_helper.rb
237
247
  - app/helpers/plum/cp/assets_helper.rb
238
248
  - app/helpers/plum/cp/theme_settings_helper.rb
239
249
  - app/javascript/application.js
@@ -251,7 +261,12 @@ files:
251
261
  - app/javascript/controllers/plum/write_controller.js
252
262
  - app/models/plum/application_record.rb
253
263
  - app/models/plum/asset.rb
264
+ - app/models/plum/comment.rb
265
+ - app/models/plum/comment_moderation.rb
266
+ - app/models/plum/comment_report.rb
267
+ - app/models/plum/commentable.rb
254
268
  - app/models/plum/content_type.rb
269
+ - app/models/plum/discussion.rb
255
270
  - app/models/plum/entry.rb
256
271
  - app/models/plum/entry_revision.rb
257
272
  - app/models/plum/entry_term.rb
@@ -272,6 +287,9 @@ files:
272
287
  - app/services/plum/block_editor_config.rb
273
288
  - app/services/plum/block_library.rb
274
289
  - app/services/plum/builder_renderer.rb
290
+ - app/services/plum/comments/context.rb
291
+ - app/services/plum/comments/rate_limited.rb
292
+ - app/services/plum/comments/theme_renderer.rb
275
293
  - app/services/plum/config_sync.rb
276
294
  - app/services/plum/draft_diff.rb
277
295
  - app/services/plum/entry_serializer.rb
@@ -315,6 +333,10 @@ files:
315
333
  - app/themes/default/layouts/base.liquid
316
334
  - app/themes/default/templates/collections/_default.liquid
317
335
  - app/themes/default/templates/collections/posts.liquid
336
+ - app/themes/default/templates/comments/_comment.liquid
337
+ - app/themes/default/templates/comments/_form.liquid
338
+ - app/themes/default/templates/comments/_report.liquid
339
+ - app/themes/default/templates/comments/show.liquid
318
340
  - app/themes/default/templates/entries/_default.liquid
319
341
  - app/themes/default/templates/entries/landing.liquid
320
342
  - app/themes/default/templates/entries/pages.liquid
@@ -325,12 +347,14 @@ files:
325
347
  - app/themes/default/templates/taxonomies/_default_index.liquid
326
348
  - app/themes/default/theme.yml
327
349
  - app/views/layouts/plum/cp.html.erb
350
+ - app/views/layouts/plum/discussion.html.erb
328
351
  - app/views/layouts/plum/session.html.erb
329
352
  - app/views/layouts/plum/write.html.erb
330
353
  - app/views/plum/cp/assets/_form.html.erb
331
354
  - app/views/plum/cp/assets/edit.html.erb
332
355
  - app/views/plum/cp/assets/index.html.erb
333
356
  - app/views/plum/cp/assets/new.html.erb
357
+ - app/views/plum/cp/comments/index.html.erb
334
358
  - app/views/plum/cp/content_types/_form.html.erb
335
359
  - app/views/plum/cp/content_types/edit.html.erb
336
360
  - app/views/plum/cp/content_types/index.html.erb
@@ -379,6 +403,9 @@ files:
379
403
  - app/views/plum/cp/terms/edit.html.erb
380
404
  - app/views/plum/cp/terms/new.html.erb
381
405
  - app/views/plum/cp/themes/index.html.erb
406
+ - app/views/plum/discussions/_comments.html.erb
407
+ - app/views/plum/discussions/_form.html.erb
408
+ - app/views/plum/discussions/show.html.erb
382
409
  - app/views/plum/form_mailer/submission_notification.html.erb
383
410
  - app/views/plum/form_mailer/submission_notification.text.erb
384
411
  - app/views/plum/sessions/new.html.erb
@@ -392,21 +419,26 @@ files:
392
419
  - db/engine_migrate/20260807150000_add_focal_point_to_plum_assets.rb
393
420
  - db/engine_migrate/20260807160000_add_localization_to_plum_entries.rb
394
421
  - db/engine_migrate/20260811090000_add_draft_data_to_plum_entries.rb
422
+ - db/engine_migrate/20261005190000_create_plum_comments.rb
395
423
  - docs/blueprint-fields.md
424
+ - docs/comments.md
396
425
  - docs/config-as-code.md
397
426
  - docs/extensions.md
398
427
  - docs/plum-cli.md
399
428
  - docs/portability.md
400
429
  - docs/product-principles.md
430
+ - docs/releases/0.3.0-validation.md
401
431
  - docs/roadmap.md
402
432
  - docs/site/homepage.md
403
433
  - docs/site/information-architecture.md
404
434
  - docs/statamic-parity.md
405
435
  - docs/static-caching.md
406
436
  - docs/vision.md
437
+ - docs/zero-to-agency.md
407
438
  - lib/generators/plum/install/install_generator.rb
408
439
  - lib/generators/plum/install/templates/plum_initializer.rb
409
440
  - lib/plum.rb
441
+ - lib/plum/comments/configuration.rb
410
442
  - lib/plum/configuration.rb
411
443
  - lib/plum/content_source.rb
412
444
  - lib/plum/content_source_context.rb