publify_core 9.0.0 → 9.2.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of publify_core might be problematic. Click here for more details.

Files changed (360) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +92 -37
  3. data/app/assets/javascripts/bootstrap-sprockets.js +8 -0
  4. data/app/assets/javascripts/bootstrap/affix.js +164 -0
  5. data/app/assets/javascripts/bootstrap/alert.js +95 -0
  6. data/app/assets/javascripts/bootstrap/button.js +125 -0
  7. data/app/assets/javascripts/bootstrap/collapse.js +212 -0
  8. data/app/assets/javascripts/bootstrap/dropdown.js +165 -0
  9. data/app/assets/javascripts/bootstrap/modal.js +358 -0
  10. data/app/assets/javascripts/bootstrap/tab.js +155 -0
  11. data/app/assets/javascripts/bootstrap/transition.js +59 -0
  12. data/app/assets/javascripts/lightbox.js +4 -4
  13. data/app/assets/javascripts/publify_admin.js +1 -35
  14. data/app/assets/stylesheets/_bootstrap-compass.scss +9 -0
  15. data/app/assets/stylesheets/_bootstrap-mincer.scss +19 -0
  16. data/app/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
  17. data/app/assets/stylesheets/_bootstrap.scss +42 -0
  18. data/app/assets/stylesheets/administration_structure.css.scss +1 -45
  19. data/app/assets/stylesheets/bootstrap/_alerts.scss +73 -0
  20. data/app/assets/stylesheets/bootstrap/_button-groups.scss +242 -0
  21. data/app/assets/stylesheets/bootstrap/_buttons.scss +168 -0
  22. data/app/assets/stylesheets/bootstrap/_close.scss +37 -0
  23. data/app/assets/stylesheets/bootstrap/_code.scss +69 -0
  24. data/app/assets/stylesheets/bootstrap/_component-animations.scss +38 -0
  25. data/app/assets/stylesheets/bootstrap/_dropdowns.scss +213 -0
  26. data/app/assets/stylesheets/bootstrap/_forms.scss +586 -0
  27. data/app/assets/stylesheets/bootstrap/_grid.scss +94 -0
  28. data/app/assets/stylesheets/bootstrap/_labels.scss +66 -0
  29. data/app/assets/stylesheets/bootstrap/_media.scss +66 -0
  30. data/app/assets/stylesheets/bootstrap/_mixins.scss +37 -0
  31. data/app/assets/stylesheets/bootstrap/_modals.scss +150 -0
  32. data/app/assets/stylesheets/bootstrap/_navbar.scss +479 -0
  33. data/app/assets/stylesheets/bootstrap/_navs.scss +242 -0
  34. data/app/assets/stylesheets/bootstrap/_normalize.scss +427 -0
  35. data/app/assets/stylesheets/bootstrap/_pagination.scss +86 -0
  36. data/app/assets/stylesheets/bootstrap/_panels.scss +222 -0
  37. data/app/assets/stylesheets/bootstrap/_print.scss +99 -0
  38. data/app/assets/stylesheets/bootstrap/_scaffolding.scss +160 -0
  39. data/app/assets/stylesheets/bootstrap/_tables.scss +234 -0
  40. data/app/assets/stylesheets/bootstrap/_theme.scss +224 -0
  41. data/app/assets/stylesheets/bootstrap/_type.scss +296 -0
  42. data/app/assets/stylesheets/bootstrap/_utilities.scss +55 -0
  43. data/app/assets/stylesheets/bootstrap/_variables.scss +638 -0
  44. data/app/assets/stylesheets/bootstrap/_wells.scss +29 -0
  45. data/app/assets/stylesheets/bootstrap/mixins/_alerts.scss +15 -0
  46. data/app/assets/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
  47. data/app/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  48. data/app/assets/stylesheets/bootstrap/mixins/_buttons.scss +56 -0
  49. data/app/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  50. data/app/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  51. data/app/assets/stylesheets/bootstrap/mixins/_forms.scss +82 -0
  52. data/app/assets/stylesheets/bootstrap/mixins/_gradients.scss +56 -0
  53. data/app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  54. data/app/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  55. data/app/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  56. data/app/assets/stylesheets/bootstrap/mixins/_image.scss +28 -0
  57. data/app/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  58. data/app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  59. data/app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  60. data/app/assets/stylesheets/bootstrap/mixins/_opacity.scss +7 -0
  61. data/app/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  62. data/app/assets/stylesheets/bootstrap/mixins/_panels.scss +20 -0
  63. data/app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  64. data/app/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  65. data/app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +17 -0
  66. data/app/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  67. data/app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  68. data/app/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  69. data/app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  70. data/app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  71. data/app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  72. data/app/assets/stylesheets/lightbox.css +3 -3
  73. data/app/assets/stylesheets/publify_admin.css.scss +0 -1
  74. data/app/controllers/accounts_controller.rb +2 -0
  75. data/app/controllers/admin/base_controller.rb +8 -16
  76. data/app/controllers/admin/content_controller.rb +38 -36
  77. data/app/controllers/admin/dashboard_controller.rb +16 -65
  78. data/app/controllers/admin/feedback_controller.rb +45 -37
  79. data/app/controllers/admin/notes_controller.rb +16 -10
  80. data/app/controllers/admin/pages_controller.rb +19 -29
  81. data/app/controllers/admin/post_types_controller.rb +7 -5
  82. data/app/controllers/admin/profiles_controller.rb +15 -5
  83. data/app/controllers/admin/redirects_controller.rb +9 -5
  84. data/app/controllers/admin/resources_controller.rb +7 -4
  85. data/app/controllers/admin/seo_controller.rb +12 -10
  86. data/app/controllers/admin/settings_controller.rb +7 -5
  87. data/app/controllers/admin/sidebar_controller.rb +6 -5
  88. data/app/controllers/admin/tags_controller.rb +6 -3
  89. data/app/controllers/admin/themes_controller.rb +10 -7
  90. data/app/controllers/admin/users_controller.rb +10 -7
  91. data/app/controllers/articles_controller.rb +49 -33
  92. data/app/controllers/authors_controller.rb +6 -3
  93. data/app/controllers/base_controller.rb +9 -11
  94. data/app/controllers/comments_controller.rb +13 -13
  95. data/app/controllers/content_controller.rb +4 -2
  96. data/app/controllers/feedback_controller.rb +4 -2
  97. data/app/controllers/notes_controller.rb +5 -3
  98. data/app/controllers/setup_controller.rb +15 -12
  99. data/app/controllers/tags_controller.rb +6 -4
  100. data/app/controllers/text_controller.rb +2 -4
  101. data/app/controllers/textfilter_controller.rb +2 -0
  102. data/app/controllers/theme_controller.rb +18 -13
  103. data/app/controllers/xml_controller.rb +2 -0
  104. data/app/helpers/admin/base_helper.rb +28 -29
  105. data/app/helpers/admin/feedback_helper.rb +34 -24
  106. data/app/helpers/articles_helper.rb +4 -2
  107. data/app/helpers/authors_helper.rb +7 -16
  108. data/app/helpers/base_helper.rb +56 -52
  109. data/app/helpers/blog_helper.rb +4 -2
  110. data/app/helpers/xml_helper.rb +3 -1
  111. data/app/jobs/application_job.rb +2 -0
  112. data/app/mailers/notification_mailer.rb +5 -3
  113. data/app/models/ability.rb +25 -23
  114. data/app/models/archives_sidebar.rb +14 -11
  115. data/app/models/article.rb +42 -42
  116. data/app/models/article/factory.rb +14 -6
  117. data/app/models/blog.rb +86 -75
  118. data/app/models/comment.rb +10 -11
  119. data/app/models/config_manager.rb +4 -2
  120. data/app/models/content.rb +37 -50
  121. data/app/models/content_base.rb +10 -4
  122. data/app/models/feedback.rb +21 -17
  123. data/app/models/meta_sidebar.rb +4 -3
  124. data/app/models/note.rb +26 -25
  125. data/app/models/page.rb +9 -8
  126. data/app/models/page_sidebar.rb +4 -2
  127. data/app/models/ping.rb +3 -1
  128. data/app/models/post_type.rb +3 -3
  129. data/app/models/redirect.rb +13 -7
  130. data/app/models/redirection.rb +3 -1
  131. data/app/models/resource.rb +5 -3
  132. data/app/models/search_sidebar.rb +4 -2
  133. data/app/models/sidebar.rb +11 -6
  134. data/app/models/static_sidebar.rb +14 -13
  135. data/app/models/tag.rb +15 -11
  136. data/app/models/tag_sidebar.rb +6 -3
  137. data/app/models/text_filter.rb +85 -11
  138. data/app/models/trackback.rb +7 -11
  139. data/app/models/trigger.rb +7 -4
  140. data/app/models/user.rb +44 -43
  141. data/app/services/title_builder.rb +52 -45
  142. data/app/uploaders/resource_uploader.rb +5 -3
  143. data/app/views/accounts/confirm.html.erb +3 -3
  144. data/app/views/admin/content/_article_list.html.erb +23 -8
  145. data/app/views/admin/content/_form.html.erb +71 -47
  146. data/app/views/admin/content/autosave.js.erb +2 -2
  147. data/app/views/admin/content/edit.html.erb +1 -1
  148. data/app/views/admin/content/index.html.erb +25 -15
  149. data/app/views/admin/content/new.html.erb +2 -2
  150. data/app/views/admin/dashboard/_comment.html.erb +5 -5
  151. data/app/views/admin/dashboard/_comments.html.erb +2 -2
  152. data/app/views/admin/dashboard/_drafts.html.erb +5 -5
  153. data/app/views/admin/dashboard/_overview.html.erb +7 -9
  154. data/app/views/admin/dashboard/_welcome.html.erb +11 -11
  155. data/app/views/admin/dashboard/index.html.erb +12 -7
  156. data/app/views/admin/feedback/_button.html.erb +6 -6
  157. data/app/views/admin/feedback/_feedback.html.erb +3 -3
  158. data/app/views/admin/feedback/_ham.html.erb +27 -9
  159. data/app/views/admin/feedback/_spam.html.erb +26 -16
  160. data/app/views/admin/feedback/article.html.erb +20 -21
  161. data/app/views/admin/feedback/edit.html.erb +14 -15
  162. data/app/views/admin/feedback/{ham.js → ham.js.erb} +0 -0
  163. data/app/views/admin/feedback/index.html.erb +25 -23
  164. data/app/views/admin/feedback/{spam.js → spam.js.erb} +0 -0
  165. data/app/views/admin/migrations/show.html.erb +10 -11
  166. data/app/views/admin/notes/_form.html.erb +13 -13
  167. data/app/views/admin/notes/_list.html.erb +19 -8
  168. data/app/views/admin/notes/_note.html.erb +12 -7
  169. data/app/views/admin/notes/edit.html.erb +6 -1
  170. data/app/views/admin/notes/index.html.erb +5 -1
  171. data/app/views/admin/notes/show.html.erb +2 -2
  172. data/app/views/admin/pages/_form.html.erb +86 -77
  173. data/app/views/admin/pages/_pages.html.erb +11 -4
  174. data/app/views/admin/pages/edit.html.erb +3 -1
  175. data/app/views/admin/pages/index.html.erb +10 -6
  176. data/app/views/admin/pages/new.html.erb +3 -1
  177. data/app/views/admin/post_types/_index_and_form.html.erb +15 -16
  178. data/app/views/admin/post_types/edit.html.erb +1 -1
  179. data/app/views/admin/post_types/index.html.erb +1 -1
  180. data/app/views/admin/profiles/index.html.erb +2 -3
  181. data/app/views/admin/redirects/_index_and_form.html.erb +10 -11
  182. data/app/views/admin/redirects/edit.html.erb +1 -1
  183. data/app/views/admin/redirects/index.html.erb +1 -1
  184. data/app/views/admin/resources/index.html.erb +19 -16
  185. data/app/views/admin/seo/_general.html.erb +23 -47
  186. data/app/views/admin/seo/_permalinks.html.erb +16 -16
  187. data/app/views/admin/seo/_titles.html.erb +63 -64
  188. data/app/views/admin/seo/show.html.erb +14 -19
  189. data/app/views/admin/settings/display.html.erb +22 -25
  190. data/app/views/admin/settings/feedback.html.erb +31 -32
  191. data/app/views/admin/settings/index.html.erb +23 -24
  192. data/app/views/admin/settings/write.html.erb +21 -22
  193. data/app/views/admin/shared/_edit.html.erb +3 -3
  194. data/app/views/admin/shared/_menu.html.erb +26 -26
  195. data/app/views/admin/shared/_twitter_alert.html.erb +1 -1
  196. data/app/views/admin/sidebar/_config.html.erb +5 -5
  197. data/app/views/admin/sidebar/_target_sidebar.html.erb +4 -4
  198. data/app/views/admin/sidebar/index.html.erb +7 -7
  199. data/app/views/admin/tags/_index_and_form.html.erb +11 -12
  200. data/app/views/admin/tags/edit.html.erb +1 -1
  201. data/app/views/admin/tags/index.html.erb +1 -1
  202. data/app/views/admin/themes/index.html.erb +5 -6
  203. data/app/views/admin/users/_form.html.erb +34 -34
  204. data/app/views/admin/users/edit.html.erb +2 -2
  205. data/app/views/admin/users/index.html.erb +10 -12
  206. data/app/views/admin/users/new.html.erb +2 -2
  207. data/app/views/archives_sidebar/_content.html.erb +2 -2
  208. data/app/views/articles/_archives_article.html.erb +3 -3
  209. data/app/views/articles/_article.html.erb +7 -9
  210. data/app/views/articles/_article_author.html.erb +4 -0
  211. data/app/views/articles/_article_content.html.erb +2 -2
  212. data/app/views/articles/_article_excerpt.html.erb +2 -2
  213. data/app/views/articles/_article_links.html.erb +1 -1
  214. data/app/views/articles/_comment_errors.html.erb +1 -1
  215. data/app/views/articles/_comment_form.html.erb +12 -12
  216. data/app/views/articles/_comment_preview.html.erb +3 -3
  217. data/app/views/articles/_password_form.html.erb +4 -4
  218. data/app/views/articles/_trackback.html.erb +2 -2
  219. data/app/views/articles/archives.html.erb +1 -1
  220. data/app/views/articles/feedback_atom_feed.atom.builder +3 -1
  221. data/app/views/articles/feedback_rss_feed.rss.builder +9 -8
  222. data/app/views/articles/index_atom_feed.atom.builder +5 -3
  223. data/app/views/articles/index_rss_feed.rss.builder +10 -9
  224. data/app/views/articles/live_search.html.erb +3 -3
  225. data/app/views/articles/read.html.erb +16 -8
  226. data/app/views/articles/search.html.erb +2 -2
  227. data/app/views/articles/trackback.xml.builder +3 -1
  228. data/app/views/articles/view_page.html.erb +2 -2
  229. data/app/views/authors/show.html.erb +9 -9
  230. data/app/views/authors/show_atom_feed.atom.builder +4 -2
  231. data/app/views/authors/show_rss_feed.rss.builder +10 -9
  232. data/app/views/comments/_comment.html.erb +3 -3
  233. data/app/views/devise/mailer/reset_password_instructions.html.erb +7 -9
  234. data/app/views/devise/passwords/edit.html.erb +4 -4
  235. data/app/views/devise/passwords/new.html.erb +1 -1
  236. data/app/views/devise/registrations/new.html.erb +5 -5
  237. data/app/views/devise/sessions/new.html.erb +3 -3
  238. data/app/views/errors/404.html.erb +2 -2
  239. data/app/views/feedback/index.atom.builder +3 -1
  240. data/app/views/feedback/index.rss.builder +9 -8
  241. data/app/views/layouts/accounts.html.erb +26 -26
  242. data/app/views/layouts/administration.html.erb +31 -31
  243. data/app/views/layouts/default.html.erb +4 -3
  244. data/app/views/layouts/editor.html.erb +5 -19
  245. data/app/views/meta_sidebar/_content.html.erb +2 -2
  246. data/app/views/notes/_note.html.erb +1 -1
  247. data/app/views/notes/index.html.erb +1 -1
  248. data/app/views/notes/show_in_reply.html.erb +1 -1
  249. data/app/views/notification_mailer/_mail_footer.html.erb +3 -3
  250. data/app/views/notification_mailer/article.html.erb +2 -2
  251. data/app/views/notification_mailer/comment.html.erb +5 -5
  252. data/app/views/notification_mailer/notif_user.html.erb +1 -1
  253. data/app/views/page_sidebar/_content.html.erb +1 -1
  254. data/app/views/search_sidebar/_content.html.erb +2 -2
  255. data/app/views/settings/install.html.erb +2 -2
  256. data/app/views/setup/index.html.erb +7 -7
  257. data/app/views/shared/_atom_header.atom.builder +4 -4
  258. data/app/views/shared/_atom_item_article.atom.builder +19 -29
  259. data/app/views/shared/_atom_item_comment.atom.builder +4 -2
  260. data/app/views/shared/_atom_item_trackback.atom.builder +4 -2
  261. data/app/views/shared/_google_analytics.html.erb +8 -0
  262. data/app/views/shared/_page_header.html.erb +9 -12
  263. data/app/views/shared/_rss_item_article.rss.builder +9 -7
  264. data/app/views/shared/_rss_item_comment.rss.builder +3 -1
  265. data/app/views/shared/_rss_item_trackback.rss.builder +3 -1
  266. data/app/views/sidebar/display_plugins.html.erb +1 -1
  267. data/app/views/tag_sidebar/_content.html.erb +1 -1
  268. data/app/views/tags/index.html.erb +1 -1
  269. data/app/views/xml/_googlesitemap_item_article.googlesitemap.builder +2 -0
  270. data/app/views/xml/_googlesitemap_item_category.googlesitemap.builder +2 -0
  271. data/app/views/xml/_googlesitemap_item_page.googlesitemap.builder +2 -0
  272. data/app/views/xml/_googlesitemap_item_tag.googlesitemap.builder +2 -0
  273. data/app/views/xml/sitemap.googlesitemap.builder +4 -2
  274. data/config/i18n-tasks.yml +0 -5
  275. data/config/initializers/devise.rb +10 -4
  276. data/config/initializers/mime_types.rb +3 -1
  277. data/config/locales/da.yml +134 -73
  278. data/config/locales/de.yml +142 -77
  279. data/config/locales/en.yml +128 -68
  280. data/config/locales/es-MX.yml +135 -71
  281. data/config/locales/fr.yml +167 -88
  282. data/config/locales/he.yml +128 -72
  283. data/config/locales/it.yml +136 -74
  284. data/config/locales/ja.yml +110 -66
  285. data/config/locales/lt.yml +153 -76
  286. data/config/locales/nb-NO.yml +123 -67
  287. data/config/locales/nl.yml +140 -77
  288. data/config/locales/pl.yml +329 -240
  289. data/config/locales/pt-BR.yml +137 -72
  290. data/config/locales/ro.yml +148 -72
  291. data/config/locales/ru.yml +161 -71
  292. data/config/locales/zh-CN.yml +106 -61
  293. data/config/locales/zh-TW.yml +109 -63
  294. data/config/routes.rb +68 -63
  295. data/db/migrate/113_initial_schema.rb +191 -191
  296. data/db/migrate/114_fixes_buggy_articles_and_notes.rb +10 -7
  297. data/db/migrate/115_drops_categories_for_tags.rb +5 -4
  298. data/db/migrate/20150207131657_add_missing_indexes.rb +2 -0
  299. data/db/migrate/20150807134129_simplify_redirect_relations.rb +5 -0
  300. data/db/migrate/20150808052637_add_blog_ids.rb +9 -3
  301. data/db/migrate/20150808191127_add_blog_id_to_redirects.rb +2 -0
  302. data/db/migrate/20150810094754_add_blog_id_to_tags.rb +2 -0
  303. data/db/migrate/20160108111120_add_devise_to_users.rb +4 -2
  304. data/db/migrate/20160108184201_move_last_connection_to_last_sign_in_at.rb +2 -0
  305. data/db/migrate/20160110094906_remove_profiles_rights.rb +2 -0
  306. data/db/migrate/20160605103918_replace_profile_id_with_string.rb +2 -0
  307. data/db/migrate/20160605154632_remove_profiles.rb +10 -5
  308. data/db/migrate/20160701061851_demand_blog_id_on_contents.rb +2 -0
  309. data/db/migrate/20160701062604_add_blog_id_to_resources.rb +2 -0
  310. data/db/migrate/20170528093024_move_resources_to_content.rb +2 -0
  311. data/db/migrate/20170528094923_move_tags_to_content.rb +2 -0
  312. data/db/migrate/20170528201606_remove_separate_published_flag.rb +2 -0
  313. data/db/migrate/20170605071626_remove_extra_state_columns_from_feedback.rb +2 -0
  314. data/db/migrate/20170702105201_remove_published_at_from_feedback.rb +2 -0
  315. data/db/migrate/20190208151235_add_text_filter_name_fields.rb +9 -0
  316. data/db/migrate/20190208152646_move_text_filter_to_name.rb +97 -0
  317. data/db/migrate/20190209155717_remove_text_filter_ids.rb +19 -0
  318. data/db/migrate/20190209160610_remove_text_filters.rb +17 -0
  319. data/db/migrate/20200413140440_add_unique_indexes.rb +10 -0
  320. data/db/seeds.rb +8 -20
  321. data/lib/email_notify.rb +3 -1
  322. data/lib/format.rb +4 -12
  323. data/lib/publify_core.rb +36 -35
  324. data/lib/publify_core/engine.rb +11 -4
  325. data/lib/publify_core/lang.rb +5 -1
  326. data/lib/publify_core/testing_support/dns_mock.rb +15 -0
  327. data/lib/publify_core/testing_support/factories.rb +240 -0
  328. data/lib/publify_core/testing_support/feed_assertions.rb +48 -0
  329. data/lib/publify_core/testing_support/fixtures/exploit.svg +4 -0
  330. data/lib/publify_core/testing_support/fixtures/fakepng.png +1 -0
  331. data/lib/publify_core/testing_support/fixtures/otherfile.txt +1 -0
  332. data/lib/publify_core/testing_support/fixtures/testfile.png +0 -0
  333. data/lib/publify_core/testing_support/fixtures/testfile.txt +1 -0
  334. data/lib/publify_core/testing_support/upload_fixtures.rb +15 -0
  335. data/lib/publify_core/version.rb +3 -1
  336. data/lib/publify_guid.rb +3 -1
  337. data/lib/publify_plugins.rb +10 -5
  338. data/lib/publify_textfilter_markdown.rb +38 -25
  339. data/lib/publify_textfilter_none.rb +5 -3
  340. data/lib/publify_textfilter_smartypants.rb +5 -3
  341. data/lib/publify_textfilter_textile.rb +7 -4
  342. data/lib/publify_textfilter_twitterfilter.rb +13 -7
  343. data/lib/publify_time.rb +4 -0
  344. data/lib/sidebar_field.rb +15 -13
  345. data/lib/sidebar_registry.rb +5 -3
  346. data/lib/spam_protection.rb +19 -17
  347. data/lib/tasks/i18n.rake +9 -0
  348. data/lib/tasks/manifest.rake +30 -0
  349. data/lib/tasks/publify_core_tasks.rake +2 -0
  350. data/lib/text_filter_plugin.rb +30 -29
  351. data/lib/theme.rb +5 -5
  352. data/lib/transforms.rb +21 -20
  353. data/themes/plain/javascripts/theme.js +0 -0
  354. metadata +247 -109
  355. data/app/assets/javascripts/widearea.js +0 -486
  356. data/app/assets/stylesheets/widearea.css +0 -133
  357. data/app/controllers/admin/textfilters_controller.rb +0 -6
  358. data/app/views/admin/dashboard/_inbound.html.erb +0 -31
  359. data/app/views/admin/notes/_header.html.erb +0 -6
  360. data/app/views/articles/_protected_article_content.html.erb +0 -6
@@ -0,0 +1,9 @@
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
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ namespace :manifest do
4
+ def gemmable_files
5
+ `git ls-files -z`.split("\x0").reject do |file|
6
+ file.match(%r{^(bin|spec)/}) ||
7
+ file.end_with?("/.keep") ||
8
+ file.start_with?(".") ||
9
+ %w(Manifest.txt Gemfile Rakefile publify_core.gemspec).include?(file)
10
+ end
11
+ end
12
+
13
+ def manifest_files
14
+ File.open("Manifest.txt").readlines.map(&:chomp)
15
+ end
16
+
17
+ desc "Create manifest"
18
+ task :create do
19
+ File.open("Manifest.txt", "w") do |manifest|
20
+ gemmable_files.each { |file| manifest.puts file }
21
+ end
22
+ end
23
+
24
+ desc "Check manifest"
25
+ task :check do
26
+ unless gemmable_files == manifest_files
27
+ raise "Manifest check failed, try recreating the manifest"
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # desc "Explaining what the task does"
2
4
  # task :publify_core do
3
5
  # # Task goes here
@@ -1,4 +1,6 @@
1
- require 'publify_plugins'
1
+ # frozen_string_literal: true
2
+
3
+ require "publify_plugins"
2
4
 
3
5
  class TextFilterPlugin
4
6
  class << self
@@ -9,7 +11,9 @@ class TextFilterPlugin
9
11
 
10
12
  @@filter_map = {}
11
13
  def self.inherited(sub)
12
- if sub.to_s =~ /^Plugin/ || sub.to_s =~ /^PublifyApp::Textfilter/
14
+ super
15
+
16
+ if sub.to_s.start_with?("Plugin", "PublifyApp::Textfilter")
13
17
  name = sub.short_name
14
18
  @@filter_map[name] = sub
15
19
  end
@@ -25,11 +29,11 @@ class TextFilterPlugin
25
29
 
26
30
  def self.available_filter_types
27
31
  unless @cached_filter_types
28
- types = { 'macropre' => [],
29
- 'macropost' => [],
30
- 'markup' => [],
31
- 'postprocess' => [],
32
- 'other' => [] }
32
+ types = { "macropre" => [],
33
+ "macropost" => [],
34
+ "markup" => [],
35
+ "postprocess" => [],
36
+ "other" => [] }
33
37
 
34
38
  available_filters.each { |filter| types[filter.filter_type].push(filter) }
35
39
 
@@ -42,8 +46,8 @@ class TextFilterPlugin
42
46
  available_filters.select { |filter| TextFilterPlugin::Macro > filter }
43
47
  end
44
48
 
45
- plugin_display_name 'Unknown Text Filter'
46
- plugin_description 'Unknown Text Filter Description'
49
+ plugin_display_name "Unknown Text Filter"
50
+ plugin_description "Unknown Text Filter Description"
47
51
 
48
52
  def self.reloadable?
49
53
  false
@@ -66,7 +70,7 @@ class TextFilterPlugin
66
70
  end
67
71
 
68
72
  def self.filter_type
69
- 'other'
73
+ "other"
70
74
  end
71
75
 
72
76
  def self.default_config
@@ -74,15 +78,14 @@ class TextFilterPlugin
74
78
  end
75
79
 
76
80
  def self.help_text
77
- ''
81
+ ""
78
82
  end
79
83
 
80
84
  def self.sanitize(*args)
81
85
  (@sanitizer ||= Rails::Html::WhiteListSanitizer.new).sanitize(*args)
82
86
  end
83
87
 
84
- def self.default_helper_module!
85
- end
88
+ def self.default_helper_module!; end
86
89
 
87
90
  # Look up a config paramater, falling back to the default as needed.
88
91
  def self.config_value(params, name)
@@ -90,13 +93,13 @@ class TextFilterPlugin
90
93
  end
91
94
 
92
95
  def self.logger
93
- @logger ||= ::Rails.logger || Logger.new(STDOUT)
96
+ @logger ||= ::Rails.logger || Logger.new($stdout)
94
97
  end
95
98
  end
96
99
 
97
100
  class TextFilterPlugin::PostProcess < TextFilterPlugin
98
101
  def self.filter_type
99
- 'postprocess'
102
+ "postprocess"
100
103
  end
101
104
  end
102
105
 
@@ -120,47 +123,45 @@ class TextFilterPlugin::Macro < TextFilterPlugin
120
123
  end
121
124
 
122
125
  def self.filtertext(text)
123
- regex1 = /<publify:#{short_name}(?:[ \t][^>]*)?\/>/
124
- regex2 = /<publify:#{short_name}([ \t][^>]*)?>(.*?)<\/publify:#{short_name}>/m
126
+ regex1 = %r{<publify:#{short_name}(?:[ \t][^>]*)?/>}
127
+ regex2 = %r{<publify:#{short_name}([ \t][^>]*)?>(.*?)</publify:#{short_name}>}m
125
128
 
126
129
  new_text = text.gsub(regex1) do |match|
127
130
  macrofilter(attributes_parse(match))
128
131
  end
129
132
 
130
- new_text = new_text.gsub(regex2) do |_match|
133
+ new_text.gsub(regex2) do |_match|
131
134
  macrofilter(attributes_parse(Regexp.last_match[1].to_s), Regexp.last_match[2].to_s)
132
135
  end
133
-
134
- new_text
135
136
  end
136
137
  end
137
138
 
138
139
  class TextFilterPlugin::MacroPre < TextFilterPlugin::Macro
139
140
  def self.filter_type
140
- 'macropre'
141
+ "macropre"
141
142
  end
142
143
  end
143
144
 
144
145
  class TextFilterPlugin::MacroPost < TextFilterPlugin::Macro
145
146
  def self.filter_type
146
- 'macropost'
147
+ "macropost"
147
148
  end
148
149
  end
149
150
 
150
151
  class TextFilterPlugin::Markup < TextFilterPlugin
151
152
  def self.filter_type
152
- 'markup'
153
+ "markup"
153
154
  end
154
155
  end
155
156
 
156
157
  class PublifyApp
157
158
  class Textfilter
158
159
  class MacroPost < TextFilterPlugin
159
- plugin_display_name 'MacroPost'
160
- plugin_description 'Macro expansion meta-filter (post-markup)'
160
+ plugin_display_name "MacroPost"
161
+ plugin_description "Macro expansion meta-filter (post-markup)"
161
162
 
162
163
  def self.filtertext(text)
163
- macros = TextFilterPlugin.available_filter_types['macropost']
164
+ macros = TextFilterPlugin.available_filter_types["macropost"]
164
165
  macros.reduce(text) do |new_text, macro|
165
166
  macro.filtertext(new_text)
166
167
  end
@@ -168,11 +169,11 @@ class PublifyApp
168
169
  end
169
170
 
170
171
  class MacroPre < TextFilterPlugin
171
- plugin_display_name 'MacroPre'
172
- plugin_description 'Macro expansion meta-filter (pre-markup)'
172
+ plugin_display_name "MacroPre"
173
+ plugin_description "Macro expansion meta-filter (pre-markup)"
173
174
 
174
175
  def self.filtertext(text)
175
- macros = TextFilterPlugin.available_filter_types['macropre']
176
+ macros = TextFilterPlugin.available_filter_types["macropre"]
176
177
  macros.reduce(text) do |new_text, macro|
177
178
  macro.filtertext(new_text)
178
179
  end
data/lib/theme.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Theme
2
4
  attr_accessor :name, :path, :description_html
3
5
 
@@ -7,12 +9,10 @@ class Theme
7
9
  end
8
10
 
9
11
  def layout(action = :default)
10
- if action.to_s == 'view_page'
11
- if File.exist? "#{view_path}/layouts/pages.html.erb"
12
- return 'layouts/pages'
13
- end
12
+ if action.to_s == "view_page"
13
+ return "layouts/pages" if File.exist? "#{view_path}/layouts/pages.html.erb"
14
14
  end
15
- 'layouts/default'
15
+ "layouts/default"
16
16
  end
17
17
 
18
18
  def description
data/lib/transforms.rb CHANGED
@@ -1,23 +1,23 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
3
  # FIXME: Replace with helpers and/or methods provided by Rails
4
4
  class String
5
- ACCENTS = { %w(á à â ä ã Ã Ä Â À) => 'a',
6
- %w(é è ê ë Ë É È Ê) => 'e',
7
- %w(í ì î ï I Î Ì) => 'i',
8
- %w(ó ò ô ö õ Õ Ö Ô Ò) => 'o',
9
- ['œ'] => 'oe',
10
- ['ß'] => 'ss',
11
- %w(ú ù û ü U Û Ù) => 'u',
12
- %w(ç Ç) => 'c' }.freeze
5
+ ACCENTS = { %w(á à â ä ã Ã Ä Â À) => "a",
6
+ %w(é è ê ë Ë É È Ê) => "e",
7
+ %w(í ì î ï I Î Ì) => "i",
8
+ %w(ó ò ô ö õ Õ Ö Ô Ò) => "o",
9
+ ["œ"] => "oe",
10
+ ["ß"] => "ss",
11
+ %w(ú ù û ü U Û Ù) => "u",
12
+ %w(ç Ç) => "c" }.freeze
13
13
 
14
14
  def to_permalink
15
15
  string = self
16
16
  ACCENTS.each do |key, value|
17
17
  string = string.tr(key.join, value)
18
18
  end
19
- string = string.tr("'", '-')
20
- string.gsub(/<[^>]*>/, '').to_url
19
+ string = string.tr("'", "-")
20
+ string.gsub(/<[^>]*>/, "").to_url
21
21
  end
22
22
 
23
23
  # Returns a-string-with-dashes when passed 'a string with dashes'.
@@ -25,9 +25,9 @@ class String
25
25
  def to_url
26
26
  return if nil?
27
27
 
28
- s = downcase.tr("\"'", '')
29
- s = s.gsub(/\P{Word}/, ' ')
30
- s.strip.tr_s(' ', '-').tr(' ', '-').sub(/^$/, '-')
28
+ s = downcase.tr("\"'", "")
29
+ s = s.gsub(/\P{Word}/, " ")
30
+ s.strip.tr_s(" ", "-").tr(" ", "-").sub(/^$/, "-")
31
31
  end
32
32
 
33
33
  def to_title(item, settings, params)
@@ -35,12 +35,13 @@ class String
35
35
  end
36
36
 
37
37
  # Strips any html markup from a string
38
- TYPO_TAG_KEY = TYPO_ATTRIBUTE_KEY = /[\w:_-]+/
39
- TYPO_ATTRIBUTE_VALUE = /(?:[A-Za-z0-9]+|(?:'[^']*?'|"[^"]*?"))/
40
- TYPO_ATTRIBUTE = /(?:#{TYPO_ATTRIBUTE_KEY}(?:\s*=\s*#{TYPO_ATTRIBUTE_VALUE})?)/
41
- TYPO_ATTRIBUTES = /(?:#{TYPO_ATTRIBUTE}(?:\s+#{TYPO_ATTRIBUTE})*)/
42
- TAG = %r{<[!/?\[]?(?:#{TYPO_TAG_KEY}|--)(?:\s+#{TYPO_ATTRIBUTES})?\s*(?:[!/?\]]+|--)?>}
38
+ TYPO_TAG_KEY = TYPO_ATTRIBUTE_KEY = /[\w:_-]+/.freeze
39
+ TYPO_ATTRIBUTE_VALUE = /(?:[A-Za-z0-9]+|(?:'[^']*?'|"[^"]*?"))/.freeze
40
+ TYPO_ATTRIBUTE = /(?:#{TYPO_ATTRIBUTE_KEY}(?:\s*=\s*#{TYPO_ATTRIBUTE_VALUE})?)/.freeze
41
+ TYPO_ATTRIBUTES = /(?:#{TYPO_ATTRIBUTE}(?:\s+#{TYPO_ATTRIBUTE})*)/.freeze
42
+ TAG =
43
+ %r{<[!/?\[]?(?:#{TYPO_TAG_KEY}|--)(?:\s+#{TYPO_ATTRIBUTES})?\s*(?:[!/?\]]+|--)?>}.freeze
43
44
  def strip_html
44
- gsub(TAG, '').gsub(/\s+/, ' ').strip
45
+ gsub(TAG, "").gsub(/\s+/, " ").strip
45
46
  end
46
47
  end
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: publify_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 9.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matijs van Zuijlen
@@ -11,246 +11,278 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2017-07-29 00:00:00.000000000 Z
14
+ date: 2021-03-21 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: rails
17
+ name: aasm
18
18
  requirement: !ruby/object:Gem::Requirement
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: 5.0.0
22
+ version: '5.0'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: 5.0.0
29
+ version: '5.0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: RedCloth
31
+ name: akismet
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: 4.3.2
36
+ version: '3.0'
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
40
40
  requirements:
41
41
  - - "~>"
42
42
  - !ruby/object:Gem::Version
43
- version: 4.3.2
43
+ version: '3.0'
44
44
  - !ruby/object:Gem::Dependency
45
- name: aasm
45
+ name: bluecloth
46
46
  requirement: !ruby/object:Gem::Requirement
47
47
  requirements:
48
48
  - - "~>"
49
49
  - !ruby/object:Gem::Version
50
- version: 4.12.0
50
+ version: '2.1'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
54
54
  requirements:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
- version: 4.12.0
57
+ version: '2.1'
58
58
  - !ruby/object:Gem::Dependency
59
- name: akismet
59
+ name: cancancan
60
60
  requirement: !ruby/object:Gem::Requirement
61
61
  requirements:
62
62
  - - "~>"
63
63
  - !ruby/object:Gem::Version
64
- version: '2.0'
64
+ version: '3.0'
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - "~>"
70
70
  - !ruby/object:Gem::Version
71
- version: '2.0'
71
+ version: '3.0'
72
72
  - !ruby/object:Gem::Dependency
73
- name: bluecloth
73
+ name: carrierwave
74
74
  requirement: !ruby/object:Gem::Requirement
75
75
  requirements:
76
76
  - - "~>"
77
77
  - !ruby/object:Gem::Version
78
- version: '2.1'
78
+ version: '2.0'
79
79
  type: :runtime
80
80
  prerelease: false
81
81
  version_requirements: !ruby/object:Gem::Requirement
82
82
  requirements:
83
83
  - - "~>"
84
84
  - !ruby/object:Gem::Version
85
- version: '2.1'
85
+ version: '2.0'
86
86
  - !ruby/object:Gem::Dependency
87
- name: bootstrap-sass
87
+ name: devise
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
90
  - - "~>"
91
91
  - !ruby/object:Gem::Version
92
- version: 3.3.6
92
+ version: 4.7.1
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: 3.3.6
99
+ version: 4.7.1
100
100
  - !ruby/object:Gem::Dependency
101
- name: cancancan
101
+ name: devise-i18n
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: '2.0'
106
+ version: '1.2'
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: '2.0'
113
+ version: '1.2'
114
114
  - !ruby/object:Gem::Dependency
115
- name: carrierwave
115
+ name: dynamic_form
116
116
  requirement: !ruby/object:Gem::Requirement
117
117
  requirements:
118
118
  - - "~>"
119
119
  - !ruby/object:Gem::Version
120
- version: 1.1.0
120
+ version: 1.1.4
121
121
  type: :runtime
122
122
  prerelease: false
123
123
  version_requirements: !ruby/object:Gem::Requirement
124
124
  requirements:
125
125
  - - "~>"
126
126
  - !ruby/object:Gem::Version
127
- version: 1.1.0
127
+ version: 1.1.4
128
128
  - !ruby/object:Gem::Dependency
129
- name: devise
129
+ name: fog-aws
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
132
  - - "~>"
133
133
  - !ruby/object:Gem::Version
134
- version: 4.3.0
134
+ version: '3.2'
135
135
  type: :runtime
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
139
  - - "~>"
140
140
  - !ruby/object:Gem::Version
141
- version: 4.3.0
141
+ version: '3.2'
142
142
  - !ruby/object:Gem::Dependency
143
- name: devise-i18n
143
+ name: fog-core
144
144
  requirement: !ruby/object:Gem::Requirement
145
145
  requirements:
146
146
  - - "~>"
147
147
  - !ruby/object:Gem::Version
148
- version: 1.1.0
148
+ version: '2.2'
149
149
  type: :runtime
150
150
  prerelease: false
151
151
  version_requirements: !ruby/object:Gem::Requirement
152
152
  requirements:
153
153
  - - "~>"
154
154
  - !ruby/object:Gem::Version
155
- version: 1.1.0
155
+ version: '2.2'
156
156
  - !ruby/object:Gem::Dependency
157
- name: dynamic_form
157
+ name: jquery-rails
158
158
  requirement: !ruby/object:Gem::Requirement
159
159
  requirements:
160
160
  - - "~>"
161
161
  - !ruby/object:Gem::Version
162
- version: 1.1.4
162
+ version: 4.4.0
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
167
  - - "~>"
168
168
  - !ruby/object:Gem::Version
169
- version: 1.1.4
169
+ version: 4.4.0
170
170
  - !ruby/object:Gem::Dependency
171
- name: feedjira
171
+ name: jquery-ui-rails
172
172
  requirement: !ruby/object:Gem::Requirement
173
173
  requirements:
174
174
  - - "~>"
175
175
  - !ruby/object:Gem::Version
176
- version: 2.1.0
176
+ version: 6.0.1
177
177
  type: :runtime
178
178
  prerelease: false
179
179
  version_requirements: !ruby/object:Gem::Requirement
180
180
  requirements:
181
181
  - - "~>"
182
182
  - !ruby/object:Gem::Version
183
- version: 2.1.0
183
+ version: 6.0.1
184
184
  - !ruby/object:Gem::Dependency
185
- name: fog-aws
185
+ name: kaminari
186
186
  requirement: !ruby/object:Gem::Requirement
187
187
  requirements:
188
188
  - - "~>"
189
189
  - !ruby/object:Gem::Version
190
- version: 1.3.0
190
+ version: '1.2'
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: 1.2.1
191
194
  type: :runtime
192
195
  prerelease: false
193
196
  version_requirements: !ruby/object:Gem::Requirement
194
197
  requirements:
195
198
  - - "~>"
196
199
  - !ruby/object:Gem::Version
197
- version: 1.3.0
200
+ version: '1.2'
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: 1.2.1
198
204
  - !ruby/object:Gem::Dependency
199
- name: jquery-rails
205
+ name: mimemagic
200
206
  requirement: !ruby/object:Gem::Requirement
201
207
  requirements:
202
208
  - - "~>"
203
209
  - !ruby/object:Gem::Version
204
- version: 4.3.1
210
+ version: 0.3.2
205
211
  type: :runtime
206
212
  prerelease: false
207
213
  version_requirements: !ruby/object:Gem::Requirement
208
214
  requirements:
209
215
  - - "~>"
210
216
  - !ruby/object:Gem::Version
211
- version: 4.3.1
217
+ version: 0.3.2
212
218
  - !ruby/object:Gem::Dependency
213
- name: jquery-ui-rails
219
+ name: mini_magick
214
220
  requirement: !ruby/object:Gem::Requirement
215
221
  requirements:
216
222
  - - "~>"
217
223
  - !ruby/object:Gem::Version
218
- version: 6.0.1
224
+ version: '4.9'
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: 4.9.4
219
228
  type: :runtime
220
229
  prerelease: false
221
230
  version_requirements: !ruby/object:Gem::Requirement
222
231
  requirements:
223
232
  - - "~>"
224
233
  - !ruby/object:Gem::Version
225
- version: 6.0.1
234
+ version: '4.9'
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: 4.9.4
226
238
  - !ruby/object:Gem::Dependency
227
- name: kaminari
239
+ name: rack
240
+ requirement: !ruby/object:Gem::Requirement
241
+ requirements:
242
+ - - ">="
243
+ - !ruby/object:Gem::Version
244
+ version: 2.2.3
245
+ type: :runtime
246
+ prerelease: false
247
+ version_requirements: !ruby/object:Gem::Requirement
248
+ requirements:
249
+ - - ">="
250
+ - !ruby/object:Gem::Version
251
+ version: 2.2.3
252
+ - !ruby/object:Gem::Dependency
253
+ name: rails
228
254
  requirement: !ruby/object:Gem::Requirement
229
255
  requirements:
230
256
  - - "~>"
231
257
  - !ruby/object:Gem::Version
232
- version: 1.0.1
258
+ version: 5.2.4
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: 5.2.4.3
233
262
  type: :runtime
234
263
  prerelease: false
235
264
  version_requirements: !ruby/object:Gem::Requirement
236
265
  requirements:
237
266
  - - "~>"
238
267
  - !ruby/object:Gem::Version
239
- version: 1.0.1
268
+ version: 5.2.4
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: 5.2.4.3
240
272
  - !ruby/object:Gem::Dependency
241
- name: mini_magick
273
+ name: rails_autolink
242
274
  requirement: !ruby/object:Gem::Requirement
243
275
  requirements:
244
276
  - - "~>"
245
277
  - !ruby/object:Gem::Version
246
- version: '4.2'
278
+ version: 1.1.0
247
279
  type: :runtime
248
280
  prerelease: false
249
281
  version_requirements: !ruby/object:Gem::Requirement
250
282
  requirements:
251
283
  - - "~>"
252
284
  - !ruby/object:Gem::Version
253
- version: '4.2'
285
+ version: 1.1.0
254
286
  - !ruby/object:Gem::Dependency
255
287
  name: rails-timeago
256
288
  requirement: !ruby/object:Gem::Requirement
@@ -266,89 +298,89 @@ dependencies:
266
298
  - !ruby/object:Gem::Version
267
299
  version: '2.0'
268
300
  - !ruby/object:Gem::Dependency
269
- name: rails_autolink
301
+ name: recaptcha
270
302
  requirement: !ruby/object:Gem::Requirement
271
303
  requirements:
272
304
  - - "~>"
273
305
  - !ruby/object:Gem::Version
274
- version: 1.1.0
306
+ version: '5.0'
275
307
  type: :runtime
276
308
  prerelease: false
277
309
  version_requirements: !ruby/object:Gem::Requirement
278
310
  requirements:
279
311
  - - "~>"
280
312
  - !ruby/object:Gem::Version
281
- version: 1.1.0
313
+ version: '5.0'
282
314
  - !ruby/object:Gem::Dependency
283
- name: recaptcha
315
+ name: RedCloth
284
316
  requirement: !ruby/object:Gem::Requirement
285
317
  requirements:
286
318
  - - "~>"
287
319
  - !ruby/object:Gem::Version
288
- version: 4.3.1
320
+ version: 4.3.2
289
321
  type: :runtime
290
322
  prerelease: false
291
323
  version_requirements: !ruby/object:Gem::Requirement
292
324
  requirements:
293
325
  - - "~>"
294
326
  - !ruby/object:Gem::Version
295
- version: 4.3.1
327
+ version: 4.3.2
296
328
  - !ruby/object:Gem::Dependency
297
329
  name: rubypants
298
330
  requirement: !ruby/object:Gem::Requirement
299
331
  requirements:
300
332
  - - "~>"
301
333
  - !ruby/object:Gem::Version
302
- version: 0.6.0
334
+ version: 0.7.0
303
335
  type: :runtime
304
336
  prerelease: false
305
337
  version_requirements: !ruby/object:Gem::Requirement
306
338
  requirements:
307
339
  - - "~>"
308
340
  - !ruby/object:Gem::Version
309
- version: 0.6.0
341
+ version: 0.7.0
310
342
  - !ruby/object:Gem::Dependency
311
- name: mimemagic
343
+ name: sassc-rails
312
344
  requirement: !ruby/object:Gem::Requirement
313
345
  requirements:
314
346
  - - "~>"
315
347
  - !ruby/object:Gem::Version
316
- version: 0.3.2
348
+ version: '2.0'
317
349
  type: :runtime
318
350
  prerelease: false
319
351
  version_requirements: !ruby/object:Gem::Requirement
320
352
  requirements:
321
353
  - - "~>"
322
354
  - !ruby/object:Gem::Version
323
- version: 0.3.2
355
+ version: '2.0'
324
356
  - !ruby/object:Gem::Dependency
325
- name: sass-rails
357
+ name: sprockets
326
358
  requirement: !ruby/object:Gem::Requirement
327
359
  requirements:
328
360
  - - "~>"
329
361
  - !ruby/object:Gem::Version
330
- version: '5.0'
362
+ version: '3.0'
331
363
  type: :runtime
332
364
  prerelease: false
333
365
  version_requirements: !ruby/object:Gem::Requirement
334
366
  requirements:
335
367
  - - "~>"
336
368
  - !ruby/object:Gem::Version
337
- version: '5.0'
369
+ version: '3.0'
338
370
  - !ruby/object:Gem::Dependency
339
371
  name: twitter
340
372
  requirement: !ruby/object:Gem::Requirement
341
373
  requirements:
342
374
  - - "~>"
343
375
  - !ruby/object:Gem::Version
344
- version: 6.1.0
376
+ version: 7.0.0
345
377
  type: :runtime
346
378
  prerelease: false
347
379
  version_requirements: !ruby/object:Gem::Requirement
348
380
  requirements:
349
381
  - - "~>"
350
382
  - !ruby/object:Gem::Version
351
- version: 6.1.0
383
+ version: 7.0.0
352
384
  - !ruby/object:Gem::Dependency
353
385
  name: uuidtools
354
386
  requirement: !ruby/object:Gem::Requirement
@@ -364,75 +396,75 @@ dependencies:
364
396
  - !ruby/object:Gem::Version
365
397
  version: 2.1.1
366
398
  - !ruby/object:Gem::Dependency
367
- name: sqlite3
399
+ name: capybara
368
400
  requirement: !ruby/object:Gem::Requirement
369
401
  requirements:
370
- - - ">="
402
+ - - "~>"
371
403
  - !ruby/object:Gem::Version
372
- version: '0'
404
+ version: '3.0'
373
405
  type: :development
374
406
  prerelease: false
375
407
  version_requirements: !ruby/object:Gem::Requirement
376
408
  requirements:
377
- - - ">="
409
+ - - "~>"
378
410
  - !ruby/object:Gem::Version
379
- version: '0'
411
+ version: '3.0'
380
412
  - !ruby/object:Gem::Dependency
381
- name: rspec-rails
413
+ name: factory_bot
382
414
  requirement: !ruby/object:Gem::Requirement
383
415
  requirements:
384
416
  - - "~>"
385
417
  - !ruby/object:Gem::Version
386
- version: '3.5'
418
+ version: '5.1'
387
419
  type: :development
388
420
  prerelease: false
389
421
  version_requirements: !ruby/object:Gem::Requirement
390
422
  requirements:
391
423
  - - "~>"
392
424
  - !ruby/object:Gem::Version
393
- version: '3.5'
425
+ version: '5.1'
394
426
  - !ruby/object:Gem::Dependency
395
- name: capybara
427
+ name: feedjira
396
428
  requirement: !ruby/object:Gem::Requirement
397
429
  requirements:
398
430
  - - "~>"
399
431
  - !ruby/object:Gem::Version
400
- version: '2.7'
432
+ version: '3.1'
401
433
  type: :development
402
434
  prerelease: false
403
435
  version_requirements: !ruby/object:Gem::Requirement
404
436
  requirements:
405
437
  - - "~>"
406
438
  - !ruby/object:Gem::Version
407
- version: '2.7'
439
+ version: '3.1'
408
440
  - !ruby/object:Gem::Dependency
409
- name: factory_girl_rails
441
+ name: i18n-tasks
410
442
  requirement: !ruby/object:Gem::Requirement
411
443
  requirements:
412
444
  - - "~>"
413
445
  - !ruby/object:Gem::Version
414
- version: 4.8.0
446
+ version: 0.9.1
415
447
  type: :development
416
448
  prerelease: false
417
449
  version_requirements: !ruby/object:Gem::Requirement
418
450
  requirements:
419
451
  - - "~>"
420
452
  - !ruby/object:Gem::Version
421
- version: 4.8.0
453
+ version: 0.9.1
422
454
  - !ruby/object:Gem::Dependency
423
- name: i18n-tasks
455
+ name: pry
424
456
  requirement: !ruby/object:Gem::Requirement
425
457
  requirements:
426
- - - "~>"
458
+ - - ">="
427
459
  - !ruby/object:Gem::Version
428
- version: 0.9.1
460
+ version: '0'
429
461
  type: :development
430
462
  prerelease: false
431
463
  version_requirements: !ruby/object:Gem::Requirement
432
464
  requirements:
433
- - - "~>"
465
+ - - ">="
434
466
  - !ruby/object:Gem::Version
435
- version: 0.9.1
467
+ version: '0'
436
468
  - !ruby/object:Gem::Dependency
437
469
  name: rails-controller-testing
438
470
  requirement: !ruby/object:Gem::Requirement
@@ -448,47 +480,75 @@ dependencies:
448
480
  - !ruby/object:Gem::Version
449
481
  version: 1.0.1
450
482
  - !ruby/object:Gem::Dependency
451
- name: timecop
483
+ name: rspec-rails
452
484
  requirement: !ruby/object:Gem::Requirement
453
485
  requirements:
454
486
  - - "~>"
455
487
  - !ruby/object:Gem::Version
456
- version: 0.8.1
488
+ version: '4.0'
457
489
  type: :development
458
490
  prerelease: false
459
491
  version_requirements: !ruby/object:Gem::Requirement
460
492
  requirements:
461
493
  - - "~>"
462
494
  - !ruby/object:Gem::Version
463
- version: 0.8.1
495
+ version: '4.0'
464
496
  - !ruby/object:Gem::Dependency
465
- name: webmock
497
+ name: simplecov
466
498
  requirement: !ruby/object:Gem::Requirement
467
499
  requirements:
468
500
  - - "~>"
469
501
  - !ruby/object:Gem::Version
470
- version: 3.0.1
502
+ version: 0.18.5
471
503
  type: :development
472
504
  prerelease: false
473
505
  version_requirements: !ruby/object:Gem::Requirement
474
506
  requirements:
475
507
  - - "~>"
476
508
  - !ruby/object:Gem::Version
477
- version: 3.0.1
509
+ version: 0.18.5
478
510
  - !ruby/object:Gem::Dependency
479
- name: simplecov
511
+ name: sqlite3
512
+ requirement: !ruby/object:Gem::Requirement
513
+ requirements:
514
+ - - ">="
515
+ - !ruby/object:Gem::Version
516
+ version: '0'
517
+ type: :development
518
+ prerelease: false
519
+ version_requirements: !ruby/object:Gem::Requirement
520
+ requirements:
521
+ - - ">="
522
+ - !ruby/object:Gem::Version
523
+ version: '0'
524
+ - !ruby/object:Gem::Dependency
525
+ name: timecop
526
+ requirement: !ruby/object:Gem::Requirement
527
+ requirements:
528
+ - - "~>"
529
+ - !ruby/object:Gem::Version
530
+ version: 0.9.1
531
+ type: :development
532
+ prerelease: false
533
+ version_requirements: !ruby/object:Gem::Requirement
534
+ requirements:
535
+ - - "~>"
536
+ - !ruby/object:Gem::Version
537
+ version: 0.9.1
538
+ - !ruby/object:Gem::Dependency
539
+ name: webmock
480
540
  requirement: !ruby/object:Gem::Requirement
481
541
  requirements:
482
542
  - - "~>"
483
543
  - !ruby/object:Gem::Version
484
- version: 0.14.0
544
+ version: '3.3'
485
545
  type: :development
486
546
  prerelease: false
487
547
  version_requirements: !ruby/object:Gem::Requirement
488
548
  requirements:
489
549
  - - "~>"
490
550
  - !ruby/object:Gem::Version
491
- version: 0.14.0
551
+ version: '3.3'
492
552
  description: Core engine for the Publify blogging system, formerly known as Typo.
493
553
  email:
494
554
  - matijs@matijs.net
@@ -516,6 +576,15 @@ files:
516
576
  - app/assets/images/spinner.gif
517
577
  - app/assets/images/thumb_blank.jpg
518
578
  - app/assets/javascripts/application.js
579
+ - app/assets/javascripts/bootstrap-sprockets.js
580
+ - app/assets/javascripts/bootstrap/affix.js
581
+ - app/assets/javascripts/bootstrap/alert.js
582
+ - app/assets/javascripts/bootstrap/button.js
583
+ - app/assets/javascripts/bootstrap/collapse.js
584
+ - app/assets/javascripts/bootstrap/dropdown.js
585
+ - app/assets/javascripts/bootstrap/modal.js
586
+ - app/assets/javascripts/bootstrap/tab.js
587
+ - app/assets/javascripts/bootstrap/transition.js
519
588
  - app/assets/javascripts/cookies.js
520
589
  - app/assets/javascripts/datetimepicker.js
521
590
  - app/assets/javascripts/lang/da_DK.js
@@ -534,9 +603,65 @@ files:
534
603
  - app/assets/javascripts/spinnable.js
535
604
  - app/assets/javascripts/tagmanager.js
536
605
  - app/assets/javascripts/typeahead.js
537
- - app/assets/javascripts/widearea.js
606
+ - app/assets/stylesheets/_bootstrap-compass.scss
607
+ - app/assets/stylesheets/_bootstrap-mincer.scss
608
+ - app/assets/stylesheets/_bootstrap-sprockets.scss
609
+ - app/assets/stylesheets/_bootstrap.scss
538
610
  - app/assets/stylesheets/accounts.css.scss
539
611
  - app/assets/stylesheets/administration_structure.css.scss
612
+ - app/assets/stylesheets/bootstrap/_alerts.scss
613
+ - app/assets/stylesheets/bootstrap/_button-groups.scss
614
+ - app/assets/stylesheets/bootstrap/_buttons.scss
615
+ - app/assets/stylesheets/bootstrap/_close.scss
616
+ - app/assets/stylesheets/bootstrap/_code.scss
617
+ - app/assets/stylesheets/bootstrap/_component-animations.scss
618
+ - app/assets/stylesheets/bootstrap/_dropdowns.scss
619
+ - app/assets/stylesheets/bootstrap/_forms.scss
620
+ - app/assets/stylesheets/bootstrap/_grid.scss
621
+ - app/assets/stylesheets/bootstrap/_labels.scss
622
+ - app/assets/stylesheets/bootstrap/_media.scss
623
+ - app/assets/stylesheets/bootstrap/_mixins.scss
624
+ - app/assets/stylesheets/bootstrap/_modals.scss
625
+ - app/assets/stylesheets/bootstrap/_navbar.scss
626
+ - app/assets/stylesheets/bootstrap/_navs.scss
627
+ - app/assets/stylesheets/bootstrap/_normalize.scss
628
+ - app/assets/stylesheets/bootstrap/_pagination.scss
629
+ - app/assets/stylesheets/bootstrap/_panels.scss
630
+ - app/assets/stylesheets/bootstrap/_print.scss
631
+ - app/assets/stylesheets/bootstrap/_scaffolding.scss
632
+ - app/assets/stylesheets/bootstrap/_tables.scss
633
+ - app/assets/stylesheets/bootstrap/_theme.scss
634
+ - app/assets/stylesheets/bootstrap/_type.scss
635
+ - app/assets/stylesheets/bootstrap/_utilities.scss
636
+ - app/assets/stylesheets/bootstrap/_variables.scss
637
+ - app/assets/stylesheets/bootstrap/_wells.scss
638
+ - app/assets/stylesheets/bootstrap/mixins/_alerts.scss
639
+ - app/assets/stylesheets/bootstrap/mixins/_background-variant.scss
640
+ - app/assets/stylesheets/bootstrap/mixins/_border-radius.scss
641
+ - app/assets/stylesheets/bootstrap/mixins/_buttons.scss
642
+ - app/assets/stylesheets/bootstrap/mixins/_center-block.scss
643
+ - app/assets/stylesheets/bootstrap/mixins/_clearfix.scss
644
+ - app/assets/stylesheets/bootstrap/mixins/_forms.scss
645
+ - app/assets/stylesheets/bootstrap/mixins/_gradients.scss
646
+ - app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss
647
+ - app/assets/stylesheets/bootstrap/mixins/_grid.scss
648
+ - app/assets/stylesheets/bootstrap/mixins/_hide-text.scss
649
+ - app/assets/stylesheets/bootstrap/mixins/_image.scss
650
+ - app/assets/stylesheets/bootstrap/mixins/_labels.scss
651
+ - app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss
652
+ - app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss
653
+ - app/assets/stylesheets/bootstrap/mixins/_opacity.scss
654
+ - app/assets/stylesheets/bootstrap/mixins/_pagination.scss
655
+ - app/assets/stylesheets/bootstrap/mixins/_panels.scss
656
+ - app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss
657
+ - app/assets/stylesheets/bootstrap/mixins/_resize.scss
658
+ - app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss
659
+ - app/assets/stylesheets/bootstrap/mixins/_size.scss
660
+ - app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss
661
+ - app/assets/stylesheets/bootstrap/mixins/_table-row.scss
662
+ - app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss
663
+ - app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss
664
+ - app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss
540
665
  - app/assets/stylesheets/coderay.css
541
666
  - app/assets/stylesheets/datetimepicker.css
542
667
  - app/assets/stylesheets/lightbox.css
@@ -546,7 +671,6 @@ files:
546
671
  - app/assets/stylesheets/sidebar_admin.css.scss
547
672
  - app/assets/stylesheets/tagmanager.css
548
673
  - app/assets/stylesheets/user-styles.css
549
- - app/assets/stylesheets/widearea.css
550
674
  - app/controllers/accounts_controller.rb
551
675
  - app/controllers/admin/base_controller.rb
552
676
  - app/controllers/admin/content_controller.rb
@@ -562,7 +686,6 @@ files:
562
686
  - app/controllers/admin/settings_controller.rb
563
687
  - app/controllers/admin/sidebar_controller.rb
564
688
  - app/controllers/admin/tags_controller.rb
565
- - app/controllers/admin/textfilters_controller.rb
566
689
  - app/controllers/admin/themes_controller.rb
567
690
  - app/controllers/admin/users_controller.rb
568
691
  - app/controllers/articles_controller.rb
@@ -628,7 +751,6 @@ files:
628
751
  - app/views/admin/dashboard/_comment.html.erb
629
752
  - app/views/admin/dashboard/_comments.html.erb
630
753
  - app/views/admin/dashboard/_drafts.html.erb
631
- - app/views/admin/dashboard/_inbound.html.erb
632
754
  - app/views/admin/dashboard/_overview.html.erb
633
755
  - app/views/admin/dashboard/_welcome.html.erb
634
756
  - app/views/admin/dashboard/index.html.erb
@@ -638,12 +760,11 @@ files:
638
760
  - app/views/admin/feedback/_spam.html.erb
639
761
  - app/views/admin/feedback/article.html.erb
640
762
  - app/views/admin/feedback/edit.html.erb
641
- - app/views/admin/feedback/ham.js
763
+ - app/views/admin/feedback/ham.js.erb
642
764
  - app/views/admin/feedback/index.html.erb
643
- - app/views/admin/feedback/spam.js
765
+ - app/views/admin/feedback/spam.js.erb
644
766
  - app/views/admin/migrations/show.html.erb
645
767
  - app/views/admin/notes/_form.html.erb
646
- - app/views/admin/notes/_header.html.erb
647
768
  - app/views/admin/notes/_list.html.erb
648
769
  - app/views/admin/notes/_note.html.erb
649
770
  - app/views/admin/notes/edit.html.erb
@@ -693,6 +814,7 @@ files:
693
814
  - app/views/archives_sidebar/_content.html.erb
694
815
  - app/views/articles/_archives_article.html.erb
695
816
  - app/views/articles/_article.html.erb
817
+ - app/views/articles/_article_author.html.erb
696
818
  - app/views/articles/_article_collection.html.erb
697
819
  - app/views/articles/_article_content.html.erb
698
820
  - app/views/articles/_article_excerpt.html.erb
@@ -704,7 +826,6 @@ files:
704
826
  - app/views/articles/_comment_preview.html.erb
705
827
  - app/views/articles/_full_article_content.html.erb
706
828
  - app/views/articles/_password_form.html.erb
707
- - app/views/articles/_protected_article_content.html.erb
708
829
  - app/views/articles/_trackback.html.erb
709
830
  - app/views/articles/archives.html.erb
710
831
  - app/views/articles/comment.js.erb
@@ -760,6 +881,7 @@ files:
760
881
  - app/views/shared/_atom_item_comment.atom.builder
761
882
  - app/views/shared/_atom_item_trackback.atom.builder
762
883
  - app/views/shared/_flash.erb
884
+ - app/views/shared/_google_analytics.html.erb
763
885
  - app/views/shared/_page_header.html.erb
764
886
  - app/views/shared/_rss_item_article.rss.builder
765
887
  - app/views/shared/_rss_item_comment.rss.builder
@@ -836,12 +958,26 @@ files:
836
958
  - db/migrate/20170528201606_remove_separate_published_flag.rb
837
959
  - db/migrate/20170605071626_remove_extra_state_columns_from_feedback.rb
838
960
  - db/migrate/20170702105201_remove_published_at_from_feedback.rb
961
+ - db/migrate/20190208151235_add_text_filter_name_fields.rb
962
+ - db/migrate/20190208152646_move_text_filter_to_name.rb
963
+ - db/migrate/20190209155717_remove_text_filter_ids.rb
964
+ - db/migrate/20190209160610_remove_text_filters.rb
965
+ - db/migrate/20200413140440_add_unique_indexes.rb
839
966
  - db/seeds.rb
840
967
  - lib/email_notify.rb
841
968
  - lib/format.rb
842
969
  - lib/publify_core.rb
843
970
  - lib/publify_core/engine.rb
844
971
  - lib/publify_core/lang.rb
972
+ - lib/publify_core/testing_support/dns_mock.rb
973
+ - lib/publify_core/testing_support/factories.rb
974
+ - lib/publify_core/testing_support/feed_assertions.rb
975
+ - lib/publify_core/testing_support/fixtures/exploit.svg
976
+ - lib/publify_core/testing_support/fixtures/fakepng.png
977
+ - lib/publify_core/testing_support/fixtures/otherfile.txt
978
+ - lib/publify_core/testing_support/fixtures/testfile.png
979
+ - lib/publify_core/testing_support/fixtures/testfile.txt
980
+ - lib/publify_core/testing_support/upload_fixtures.rb
845
981
  - lib/publify_core/version.rb
846
982
  - lib/publify_guid.rb
847
983
  - lib/publify_plugins.rb
@@ -854,14 +990,17 @@ files:
854
990
  - lib/sidebar_field.rb
855
991
  - lib/sidebar_registry.rb
856
992
  - lib/spam_protection.rb
993
+ - lib/tasks/i18n.rake
994
+ - lib/tasks/manifest.rake
857
995
  - lib/tasks/publify_core_tasks.rake
858
996
  - lib/text_filter_plugin.rb
859
997
  - lib/theme.rb
860
998
  - lib/transforms.rb
861
999
  - themes/plain/about.markdown
1000
+ - themes/plain/javascripts/theme.js
862
1001
  - themes/plain/preview.png
863
1002
  - themes/plain/stylesheets/theme.css
864
- homepage: https://publify.co
1003
+ homepage: https://publify.github.io/
865
1004
  licenses:
866
1005
  - MIT
867
1006
  metadata: {}
@@ -873,15 +1012,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
873
1012
  requirements:
874
1013
  - - ">="
875
1014
  - !ruby/object:Gem::Version
876
- version: 2.2.0
1015
+ version: 2.4.0
877
1016
  required_rubygems_version: !ruby/object:Gem::Requirement
878
1017
  requirements:
879
1018
  - - ">="
880
1019
  - !ruby/object:Gem::Version
881
1020
  version: '0'
882
1021
  requirements: []
883
- rubyforge_project:
884
- rubygems_version: 2.6.12
1022
+ rubygems_version: 3.2.3
885
1023
  signing_key:
886
1024
  specification_version: 4
887
1025
  summary: Core engine for the Publify blogging system.