publify_core 9.2.10 → 10.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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +57 -18
  3. data/app/assets/javascripts/lang/ar_AR.js +17 -0
  4. data/app/controllers/admin/{content_controller.rb → articles_controller.rb} +24 -24
  5. data/app/controllers/admin/dashboard_controller.rb +3 -3
  6. data/app/controllers/admin/feedback_controller.rb +23 -23
  7. data/app/controllers/admin/pages_controller.rb +2 -2
  8. data/app/controllers/admin/post_types_controller.rb +10 -4
  9. data/app/controllers/admin/redirects_controller.rb +10 -6
  10. data/app/controllers/admin/resources_controller.rb +2 -2
  11. data/app/controllers/admin/sidebar_controller.rb +2 -2
  12. data/app/controllers/admin/tags_controller.rb +5 -3
  13. data/app/controllers/admin/themes_controller.rb +1 -2
  14. data/app/controllers/admin/users_controller.rb +5 -3
  15. data/app/controllers/articles_controller.rb +5 -5
  16. data/app/controllers/authors_controller.rb +2 -2
  17. data/app/controllers/base_controller.rb +0 -3
  18. data/app/controllers/feedback_controller.rb +3 -3
  19. data/app/controllers/tags_controller.rb +3 -3
  20. data/app/helpers/authors_helper.rb +1 -1
  21. data/app/helpers/base_helper.rb +6 -6
  22. data/app/models/ability.rb +1 -1
  23. data/app/models/archives_sidebar.rb +3 -3
  24. data/app/models/article.rb +13 -13
  25. data/app/models/blog.rb +3 -6
  26. data/app/models/content.rb +1 -3
  27. data/app/models/content_base.rb +2 -13
  28. data/app/models/feedback.rb +1 -2
  29. data/app/models/meta_sidebar.rb +1 -1
  30. data/app/models/note.rb +2 -2
  31. data/app/models/redirect.rb +0 -1
  32. data/app/models/sidebar.rb +1 -1
  33. data/app/models/static_sidebar.rb +1 -1
  34. data/app/models/tag.rb +7 -8
  35. data/app/models/tag_sidebar.rb +3 -3
  36. data/app/models/text_filter.rb +17 -43
  37. data/app/models/user.rb +2 -2
  38. data/app/services/title_builder.rb +4 -4
  39. data/app/views/admin/{content → articles}/_article_list.html.erb +3 -3
  40. data/app/views/admin/{content → articles}/_form.html.erb +11 -1
  41. data/app/views/admin/{content → articles}/index.html.erb +1 -1
  42. data/app/views/admin/dashboard/_drafts.html.erb +2 -2
  43. data/app/views/admin/dashboard/_overview.html.erb +1 -1
  44. data/app/views/admin/dashboard/_welcome.html.erb +4 -4
  45. data/app/views/admin/dashboard/index.html.erb +0 -7
  46. data/app/views/admin/feedback/article.html.erb +12 -6
  47. data/app/views/admin/feedback/edit.html.erb +14 -2
  48. data/app/views/admin/feedback/index.html.erb +6 -7
  49. data/app/views/admin/pages/_form.html.erb +13 -14
  50. data/app/views/admin/seo/show.html.erb +12 -1
  51. data/app/views/admin/shared/_menu.html.erb +5 -4
  52. data/app/views/admin/tags/_index_and_form.html.erb +2 -1
  53. data/app/views/articles/_comment_errors.html.erb +11 -1
  54. data/app/views/articles/read.html.erb +1 -1
  55. data/app/views/layouts/administration.html.erb +9 -17
  56. data/config/i18n-tasks.yml +8 -1
  57. data/config/initializers/devise.rb +1 -1
  58. data/config/locales/ar.yml +885 -0
  59. data/config/locales/da.yml +12 -12
  60. data/config/locales/de.yml +12 -12
  61. data/config/locales/en.yml +12 -12
  62. data/config/locales/es-MX.yml +12 -12
  63. data/config/locales/fr.yml +12 -12
  64. data/config/locales/he.yml +12 -12
  65. data/config/locales/it.yml +12 -12
  66. data/config/locales/ja.yml +13 -13
  67. data/config/locales/lt.yml +12 -12
  68. data/config/locales/{nb-NO.yml → nb.yml} +13 -13
  69. data/config/locales/nl.yml +13 -13
  70. data/config/locales/pl.yml +12 -12
  71. data/config/locales/pt-BR.yml +12 -12
  72. data/config/locales/ro.yml +12 -12
  73. data/config/locales/ru.yml +13 -13
  74. data/config/locales/sidebars.ar.yml +20 -0
  75. data/config/locales/{sidebars.nb-NO.yml → sidebars.nb.yml} +1 -1
  76. data/config/locales/zh-CN.yml +12 -12
  77. data/config/locales/zh-TW.yml +12 -12
  78. data/config/routes.rb +2 -2
  79. data/db/migrate/20150807134129_simplify_redirect_relations.rb +1 -0
  80. data/db/migrate/20150808052637_add_blog_ids.rb +3 -1
  81. data/db/migrate/20160605103918_replace_profile_id_with_string.rb +1 -0
  82. data/db/migrate/20160701062604_add_blog_id_to_resources.rb +2 -0
  83. data/db/migrate/20190208152646_move_text_filter_to_name.rb +17 -17
  84. data/db/migrate/20221007091049_remove_table_sitealizer.rb +19 -0
  85. data/db/migrate/20221010092846_remove_page_caches_table.rb +15 -0
  86. data/db/migrate/20221012163214_remove_itunes_fields_from_resources.rb +14 -0
  87. data/db/seeds.rb +0 -4
  88. data/lib/publify_core/content_text_helpers.rb +11 -0
  89. data/lib/publify_core/lang.rb +1 -1
  90. data/lib/publify_core/testing_support/factories/articles.rb +55 -0
  91. data/lib/publify_core/testing_support/factories/blogs.rb +24 -0
  92. data/lib/publify_core/testing_support/factories/comments.rb +40 -0
  93. data/lib/publify_core/testing_support/factories/contents.rb +7 -0
  94. data/lib/publify_core/testing_support/factories/notes.rb +17 -0
  95. data/lib/publify_core/testing_support/factories/pages.rb +13 -0
  96. data/lib/publify_core/testing_support/factories/post_types.rb +8 -0
  97. data/lib/publify_core/testing_support/factories/redirects.rb +9 -0
  98. data/lib/publify_core/testing_support/factories/resources.rb +16 -0
  99. data/lib/publify_core/testing_support/factories/sequences.rb +12 -0
  100. data/lib/publify_core/testing_support/factories/sidebars.rb +10 -0
  101. data/lib/publify_core/testing_support/factories/tags.rb +9 -0
  102. data/lib/publify_core/testing_support/factories/trackbacks.rb +13 -0
  103. data/lib/publify_core/testing_support/factories/users.rb +43 -0
  104. data/lib/publify_core/version.rb +1 -1
  105. data/lib/publify_core.rb +3 -3
  106. data/lib/publify_textfilter_markdown.rb +8 -9
  107. data/lib/publify_textfilter_markdown_smartquotes.rb +20 -0
  108. data/lib/publify_textfilter_twitterfilter.rb +36 -18
  109. data/lib/sidebar_field.rb +2 -2
  110. data/lib/sidebar_registry.rb +0 -12
  111. data/lib/text_filter_plugin.rb +23 -30
  112. metadata +213 -105
  113. data/lib/publify_core/testing_support/factories.rb +0 -240
  114. data/lib/publify_textfilter_textile.rb +0 -24
  115. data/lib/tasks/i18n.rake +0 -9
  116. /data/app/views/admin/{content → articles}/autosave.js.erb +0 -0
  117. /data/app/views/admin/{content → articles}/edit.html.erb +0 -0
  118. /data/app/views/admin/{content → articles}/index.js.erb +0 -0
  119. /data/app/views/admin/{content → articles}/new.html.erb +0 -0
@@ -1,240 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "publify_core/testing_support/upload_fixtures"
4
-
5
- # Factory definitions
6
- FactoryBot.define do
7
- sequence(:name) { |n| "name_#{n}" }
8
- sequence(:body) { |n| "body #{n}" * (n + 3 % 5) }
9
- sequence(:user) { |n| "user#{n}" }
10
- sequence(:email) { |n| "user#{n}@example.com" }
11
- sequence(:guid) { |n| "deadbeef#{n}" }
12
- sequence(:label) { |n| "lab_#{n}" }
13
- sequence(:file_name) { |f| "file_name_#{f}" }
14
- sequence(:time) { |n| Time.new(2012, 3, 26, 19, 56).in_time_zone - n }
15
-
16
- factory :user do
17
- login { FactoryBot.generate(:user) }
18
- email { generate(:email) }
19
- name { "Bond" }
20
- nickname { "James Bond" }
21
- notify_via_email { false }
22
- notify_on_new_articles { false }
23
- notify_on_comments { false }
24
- password { "top-Secret12!$#" }
25
- state { "active" }
26
- profile { User::CONTRIBUTOR }
27
-
28
- trait :without_twitter do
29
- twitter { nil }
30
- association :resource, nil
31
- end
32
-
33
- trait :with_a_full_profile do
34
- description { "I am a poor lonesone factory generated user" }
35
- url { "http://myblog.net" }
36
- msn { "random@mail.com" }
37
- aim { "randomaccount" }
38
- yahoo { "anotherrandomaccount" }
39
- twitter { "@random" }
40
- jabber { "random@account.com" }
41
- end
42
-
43
- trait :as_admin do
44
- profile { User::ADMIN }
45
- end
46
-
47
- trait :as_publisher do
48
- profile { User::PUBLISHER }
49
- end
50
-
51
- trait :as_contributor do
52
- profile { User::CONTRIBUTOR }
53
- end
54
- end
55
-
56
- factory :article do
57
- title { "A big article" }
58
- body { "A content with several data" }
59
- extended { "extended content for fun" }
60
- guid
61
- published_at { Time.zone.now }
62
- user
63
- allow_comments { true }
64
- state { :published }
65
- allow_pings { true }
66
- text_filter_name { "markdown" }
67
-
68
- after :build do |article|
69
- article.blog ||= Blog.first || create(:blog)
70
- end
71
-
72
- after :stub do |article|
73
- article.blog ||= Blog.first || create(:blog)
74
- end
75
-
76
- trait :with_tags do
77
- keywords { "a tag" }
78
- end
79
- end
80
-
81
- factory :unpublished_article, parent: :article do
82
- published_at { nil }
83
- state { :draft }
84
- end
85
-
86
- factory :full_article, parent: :article do
87
- after :create do |article|
88
- article.resources << create(:resource)
89
- article.tags << create(:tag)
90
- end
91
- end
92
-
93
- factory :content do
94
- blog { Blog.first || create(:blog) }
95
- end
96
-
97
- factory :post_type do
98
- name { "foobar" }
99
- description { "Some description" }
100
- end
101
-
102
- factory :utf8article, parent: :article do
103
- title { "ルビー" }
104
- permalink { "ルビー" }
105
- end
106
-
107
- factory :second_article, parent: :article do
108
- title { "Another big article" }
109
- end
110
-
111
- factory :article_with_accent_in_html, parent: :article do
112
- title { "article with accent" }
113
- body { "&eacute;coute The future is cool!" }
114
- permalink { "article-with-accent" }
115
- end
116
-
117
- factory :blog do
118
- base_url { "http://test.host/blog" }
119
- hide_extended_on_rss { true }
120
- blog_name { "test blog" }
121
- limit_article_display { 2 }
122
- sp_url_limit { 3 }
123
- plugin_avatar { "" }
124
- blog_subtitle { "test subtitle" }
125
- limit_rss_display { 10 }
126
- geourl_location { "" }
127
- default_allow_pings { false }
128
- send_outbound_pings { false }
129
- sp_global { true }
130
- default_allow_comments { true }
131
- email_from { "scott@sigkill.org" }
132
- sp_article_auto_close { 0 }
133
- permalink_format { "/%year%/%month%/%day%/%title%" }
134
- rss_description_text { "rss description text" }
135
- lang { "en_US" }
136
- end
137
-
138
- factory :tag do |tag|
139
- tag.name { FactoryBot.generate(:name) }
140
- tag.display_name { |a| a.name } # rubocop:disable Style/SymbolProc
141
- blog { Blog.first || create(:blog) }
142
- end
143
-
144
- factory :resource do
145
- upload { PublifyCore::TestingSupport::UploadFixtures.file_upload }
146
- mime { "image/jpeg" }
147
- size { 110 }
148
- blog { Blog.first || create(:blog) }
149
- end
150
-
151
- factory :avatar, parent: :resource do
152
- upload { "avatar.jpg" }
153
- mime { "image/jpeg" }
154
- size { 600 }
155
- end
156
-
157
- factory :redirect do
158
- from_path { "foo/bar" }
159
- to_path { "/someplace/else" }
160
- blog { Blog.first || create(:blog) }
161
- end
162
-
163
- factory :comment do
164
- article
165
- author { "Bob Foo" }
166
- url { "http://fakeurl.com" }
167
- body { "Comment body" }
168
- guid
169
- state { "ham" }
170
-
171
- factory :unconfirmed_comment do
172
- state { "presumed_ham" }
173
- end
174
-
175
- factory :published_comment do
176
- state { "ham" }
177
- end
178
-
179
- factory :not_published_comment do
180
- state { "spam" }
181
- end
182
-
183
- factory :ham_comment do
184
- state { "ham" }
185
- end
186
-
187
- factory :presumed_ham_comment do
188
- state { "presumed_ham" }
189
- end
190
-
191
- factory :presumed_spam_comment do
192
- state { "presumed_spam" }
193
- end
194
-
195
- factory :spam_comment do
196
- state { "spam" }
197
- end
198
- end
199
-
200
- factory :page do
201
- name { FactoryBot.generate(:name) }
202
- title { "Page One Title" }
203
- body { FactoryBot.generate(:body) }
204
- published_at { Time.zone.now }
205
- user
206
- blog { Blog.first || create(:blog) }
207
- state { "published" }
208
- end
209
-
210
- factory :note do
211
- body { "this is a note" }
212
- published_at { Time.zone.now }
213
- user
214
- state { "published" }
215
- text_filter_name { "markdown" }
216
- guid
217
- blog { Blog.first || create(:blog) }
218
- end
219
-
220
- factory :unpublished_note, parent: :note do
221
- state { "draft" }
222
- end
223
-
224
- factory :trackback do
225
- state { "ham" }
226
- article
227
- blog_name { "Trackback Blog" }
228
- title { "Trackback Entry" }
229
- url { "http://www.example.com" }
230
- excerpt { "This is an excerpt" }
231
- guid { "dsafsadffsdsf" }
232
- end
233
-
234
- factory :sidebar do
235
- active_position { 1 }
236
- config { { "title" => "Links", "body" => "some links" } }
237
- type { "StaticSidebar" }
238
- blog { Blog.first || create(:blog) }
239
- end
240
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "text_filter_plugin"
4
- require "RedCloth"
5
-
6
- class PublifyApp
7
- class Textfilter
8
- class Textile < TextFilterPlugin::Markup
9
- plugin_display_name "Textile (Deprecated)"
10
- plugin_description "Textile markup language"
11
-
12
- def self.help_text
13
- %{
14
- See [_why's Textile reference](http://hobix.com/textile/).
15
- }
16
- end
17
-
18
- def self.filtertext(text)
19
- ActiveSupport::Deprecation.warn "Use of Textile is deprecated"
20
- RedCloth.new(text).to_html(:textile)
21
- end
22
- end
23
- end
24
- end
data/lib/tasks/i18n.rake DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :i18n do
4
- desc "Check translation health"
5
- task :health do
6
- `i18n-tasks health`
7
- abort("Translation problems found") unless $CHILD_STATUS.success?
8
- end
9
- end
File without changes
File without changes