macron-cms 1.0.0 → 2.0.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 (30) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +298 -21
  3. data/app/assets/javascripts/macron/cms/codemirror.js +6 -0
  4. data/app/assets/javascripts/macron/cms/editor.js +101 -0
  5. data/app/assets/stylesheets/macron/cms/application.css +1 -1
  6. data/app/assets/stylesheets/macron/cms/codemirror.css +64 -0
  7. data/app/assets/tailwind/macron/cms/application.css +1 -0
  8. data/app/components/macron/cms/widget_component.rb +25 -3
  9. data/app/controllers/macron/cms/article_contents_controller.rb +117 -10
  10. data/app/controllers/macron/cms/articles_controller.rb +16 -2
  11. data/app/helpers/macron/cms/content_helper.rb +31 -0
  12. data/app/helpers/macron/cms/fields_helper.rb +11 -1
  13. data/app/models/macron/cms/article.rb +36 -0
  14. data/app/models/macron/cms/article_content.rb +33 -1
  15. data/app/views/layouts/macron/cms/application.html.erb +6 -18
  16. data/app/views/macron/cms/articles/_content_blocks_section.html.erb +531 -0
  17. data/app/views/macron/cms/articles/_form.html.erb +121 -0
  18. data/app/views/macron/cms/articles/show.html.erb +11 -298
  19. data/app/views/macron/cms/content_types/show.html.erb +33 -9
  20. data/app/views/macron/cms/fields/_color.html.erb +35 -0
  21. data/app/views/macron/cms/fields/_dropdown.html.erb +28 -0
  22. data/app/views/macron/cms/fields/_file.html.erb +27 -0
  23. data/app/views/macron/cms/fields/_json.html.erb +17 -0
  24. data/app/views/macron/cms/fields/_markdown.html.erb +17 -0
  25. data/app/views/macron/cms/shared/_flash.html.erb +34 -0
  26. data/config/routes.rb +3 -0
  27. data/db/migrate/20261028000007_add_background_fields_to_macron_cms_articles.rb +6 -0
  28. data/db/migrate/20261028000008_add_text_color_to_macron_cms_articles.rb +5 -0
  29. data/lib/macron/cms/version.rb +1 -1
  30. metadata +55 -1
@@ -0,0 +1,34 @@
1
+ <% notice = local_assigns[:notice] || flash[:notice] %>
2
+ <% alert = local_assigns[:alert] || flash[:alert] %>
3
+
4
+ <% if notice.present? %>
5
+ <div class="p-4 mb-4 rounded-xl bg-emerald-50 border border-emerald-200 text-emerald-800 text-sm flex items-center justify-between gap-3 shadow-2xs">
6
+ <div class="flex items-center gap-3">
7
+ <svg class="w-5 h-5 text-emerald-600 shrink-0" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
8
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75 11.25 15 15 9.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" />
9
+ </svg>
10
+ <span class="font-medium"><%= notice %></span>
11
+ </div>
12
+ <button type="button" onclick="this.closest('div.rounded-xl').remove();" class="text-emerald-500 hover:text-emerald-800 cursor-pointer p-1">
13
+ <svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
14
+ <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
15
+ </svg>
16
+ </button>
17
+ </div>
18
+ <% end %>
19
+
20
+ <% if alert.present? %>
21
+ <div class="p-4 mb-4 rounded-xl bg-rose-50 border border-rose-200 text-rose-800 text-sm flex items-center justify-between gap-3 shadow-2xs">
22
+ <div class="flex items-center gap-3">
23
+ <svg class="w-5 h-5 text-rose-600 shrink-0" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
24
+ <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" />
25
+ </svg>
26
+ <span class="font-medium"><%= alert %></span>
27
+ </div>
28
+ <button type="button" onclick="this.closest('div.rounded-xl').remove();" class="text-rose-500 hover:text-rose-800 cursor-pointer p-1">
29
+ <svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor">
30
+ <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" />
31
+ </svg>
32
+ </button>
33
+ </div>
34
+ <% end %>
data/config/routes.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  Macron::Cms::Engine.routes.draw do
2
2
  root to: "dashboard#index"
3
3
  resources :articles do
4
+ member do
5
+ delete :purge_background_image
6
+ end
4
7
  resources :article_contents, only: %i[create update destroy] do
5
8
  member do
6
9
  patch :move
@@ -0,0 +1,6 @@
1
+ class AddBackgroundFieldsToMacronCmsArticles < ActiveRecord::Migration[8.0]
2
+ def change
3
+ add_column :macron_cms_articles, :background_color, :string
4
+ add_column :macron_cms_articles, :background_options, :jsonb, default: {}, null: false
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddTextColorToMacronCmsArticles < ActiveRecord::Migration[8.0]
2
+ def change
3
+ add_column :macron_cms_articles, :text_color, :string
4
+ end
5
+ end
@@ -1,5 +1,5 @@
1
1
  module Macron
2
2
  module Cms
3
- VERSION = "1.0.0"
3
+ VERSION = "2.0.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: macron-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leonid Medovyy
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: 8.1.3.1
26
+ - !ruby/object:Gem::Dependency
27
+ name: turbo-rails
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '2.0'
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: friendly_id
28
42
  requirement: !ruby/object:Gem::Requirement
@@ -65,6 +79,34 @@ dependencies:
65
79
  - - ">="
66
80
  - !ruby/object:Gem::Version
67
81
  version: '3.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: kramdown
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '2.4'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.4'
96
+ - !ruby/object:Gem::Dependency
97
+ name: kramdown-parser-gfm
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.1'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.1'
68
110
  - !ruby/object:Gem::Dependency
69
111
  name: tailwindcss-ruby
70
112
  requirement: !ruby/object:Gem::Requirement
@@ -91,7 +133,10 @@ files:
91
133
  - MIT-LICENSE
92
134
  - README.md
93
135
  - Rakefile
136
+ - app/assets/javascripts/macron/cms/codemirror.js
137
+ - app/assets/javascripts/macron/cms/editor.js
94
138
  - app/assets/stylesheets/macron/cms/application.css
139
+ - app/assets/stylesheets/macron/cms/codemirror.css
95
140
  - app/assets/tailwind/macron/cms/application.css
96
141
  - app/components/macron/cms/widget_component.rb
97
142
  - app/controllers/macron/cms/application_controller.rb
@@ -110,6 +155,7 @@ files:
110
155
  - app/models/macron/cms/article_content.rb
111
156
  - app/models/macron/cms/content.rb
112
157
  - app/views/layouts/macron/cms/application.html.erb
158
+ - app/views/macron/cms/articles/_content_blocks_section.html.erb
113
159
  - app/views/macron/cms/articles/_form.html.erb
114
160
  - app/views/macron/cms/articles/_table.html.erb
115
161
  - app/views/macron/cms/articles/edit.html.erb
@@ -119,9 +165,15 @@ files:
119
165
  - app/views/macron/cms/content_types/index.html.erb
120
166
  - app/views/macron/cms/content_types/show.html.erb
121
167
  - app/views/macron/cms/dashboard/index.html.erb
168
+ - app/views/macron/cms/fields/_color.html.erb
169
+ - app/views/macron/cms/fields/_dropdown.html.erb
170
+ - app/views/macron/cms/fields/_file.html.erb
171
+ - app/views/macron/cms/fields/_json.html.erb
172
+ - app/views/macron/cms/fields/_markdown.html.erb
122
173
  - app/views/macron/cms/fields/_string.html.erb
123
174
  - app/views/macron/cms/fields/_text.html.erb
124
175
  - app/views/macron/cms/shared/_breadcrumbs.html.erb
176
+ - app/views/macron/cms/shared/_flash.html.erb
125
177
  - config/routes.rb
126
178
  - db/migrate/20261028000001_create_macron_cms_articles.rb
127
179
  - db/migrate/20261028000002_add_name_and_slug_to_macron_cms_articles.rb
@@ -129,6 +181,8 @@ files:
129
181
  - db/migrate/20261028000004_create_macron_cms_contents.rb
130
182
  - db/migrate/20261028000005_create_macron_cms_article_contents.rb
131
183
  - db/migrate/20261028000006_move_payload_to_macron_cms_article_contents.rb
184
+ - db/migrate/20261028000007_add_background_fields_to_macron_cms_articles.rb
185
+ - db/migrate/20261028000008_add_text_color_to_macron_cms_articles.rb
132
186
  - db/seeds.rb
133
187
  - lib/generators/macron/cms/content_type/content_type_generator.rb
134
188
  - lib/macron/cms.rb