publify_core 9.1.0 → 9.2.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 (357) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +34 -1
  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 -5
  76. data/app/controllers/admin/content_controller.rb +37 -24
  77. data/app/controllers/admin/dashboard_controller.rb +16 -64
  78. data/app/controllers/admin/feedback_controller.rb +45 -38
  79. data/app/controllers/admin/notes_controller.rb +15 -9
  80. data/app/controllers/admin/pages_controller.rb +18 -15
  81. data/app/controllers/admin/post_types_controller.rb +7 -5
  82. data/app/controllers/admin/profiles_controller.rb +4 -2
  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 +14 -10
  86. data/app/controllers/admin/settings_controller.rb +7 -5
  87. data/app/controllers/admin/sidebar_controller.rb +7 -4
  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 +9 -6
  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 -5
  94. data/app/controllers/comments_controller.rb +12 -8
  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 +14 -10
  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 +14 -12
  103. data/app/controllers/xml_controller.rb +2 -0
  104. data/app/helpers/admin/base_helper.rb +28 -28
  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 +6 -3
  108. data/app/helpers/base_helper.rb +50 -34
  109. data/app/helpers/blog_helper.rb +4 -2
  110. data/app/helpers/xml_helper.rb +2 -0
  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 +44 -32
  116. data/app/models/article/factory.rb +14 -6
  117. data/app/models/blog.rb +85 -65
  118. data/app/models/comment.rb +10 -7
  119. data/app/models/config_manager.rb +4 -2
  120. data/app/models/content.rb +34 -40
  121. data/app/models/content_base.rb +9 -3
  122. data/app/models/feedback.rb +19 -16
  123. data/app/models/meta_sidebar.rb +5 -2
  124. data/app/models/note.rb +25 -23
  125. data/app/models/page.rb +8 -6
  126. data/app/models/page_sidebar.rb +4 -2
  127. data/app/models/ping.rb +2 -0
  128. data/app/models/post_type.rb +3 -1
  129. data/app/models/redirect.rb +11 -6
  130. data/app/models/redirection.rb +2 -0
  131. data/app/models/resource.rb +4 -2
  132. data/app/models/search_sidebar.rb +4 -2
  133. data/app/models/sidebar.rb +10 -5
  134. data/app/models/static_sidebar.rb +15 -12
  135. data/app/models/tag.rb +14 -10
  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 +6 -3
  140. data/app/models/user.rb +43 -42
  141. data/app/services/title_builder.rb +56 -45
  142. data/app/uploaders/resource_uploader.rb +7 -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/edit.html.erb +1 -1
  147. data/app/views/admin/content/index.html.erb +25 -15
  148. data/app/views/admin/content/new.html.erb +2 -2
  149. data/app/views/admin/dashboard/_comment.html.erb +5 -5
  150. data/app/views/admin/dashboard/_comments.html.erb +2 -2
  151. data/app/views/admin/dashboard/_drafts.html.erb +5 -5
  152. data/app/views/admin/dashboard/_overview.html.erb +7 -9
  153. data/app/views/admin/dashboard/_welcome.html.erb +11 -11
  154. data/app/views/admin/dashboard/index.html.erb +12 -7
  155. data/app/views/admin/feedback/_button.html.erb +6 -6
  156. data/app/views/admin/feedback/_feedback.html.erb +3 -3
  157. data/app/views/admin/feedback/_ham.html.erb +27 -9
  158. data/app/views/admin/feedback/_spam.html.erb +26 -16
  159. data/app/views/admin/feedback/article.html.erb +20 -21
  160. data/app/views/admin/feedback/edit.html.erb +14 -15
  161. data/app/views/admin/feedback/{ham.js → ham.js.erb} +0 -0
  162. data/app/views/admin/feedback/index.html.erb +25 -23
  163. data/app/views/admin/feedback/{spam.js → spam.js.erb} +0 -0
  164. data/app/views/admin/migrations/show.html.erb +10 -11
  165. data/app/views/admin/notes/_form.html.erb +13 -13
  166. data/app/views/admin/notes/_list.html.erb +19 -8
  167. data/app/views/admin/notes/_note.html.erb +12 -7
  168. data/app/views/admin/notes/edit.html.erb +6 -1
  169. data/app/views/admin/notes/index.html.erb +5 -1
  170. data/app/views/admin/notes/show.html.erb +2 -2
  171. data/app/views/admin/pages/_form.html.erb +86 -77
  172. data/app/views/admin/pages/_pages.html.erb +11 -4
  173. data/app/views/admin/pages/edit.html.erb +3 -1
  174. data/app/views/admin/pages/index.html.erb +10 -6
  175. data/app/views/admin/pages/new.html.erb +3 -1
  176. data/app/views/admin/post_types/_index_and_form.html.erb +15 -16
  177. data/app/views/admin/post_types/edit.html.erb +1 -1
  178. data/app/views/admin/post_types/index.html.erb +1 -1
  179. data/app/views/admin/profiles/index.html.erb +2 -3
  180. data/app/views/admin/redirects/_index_and_form.html.erb +10 -11
  181. data/app/views/admin/redirects/edit.html.erb +1 -1
  182. data/app/views/admin/redirects/index.html.erb +1 -1
  183. data/app/views/admin/resources/index.html.erb +19 -16
  184. data/app/views/admin/seo/_general.html.erb +23 -47
  185. data/app/views/admin/seo/_permalinks.html.erb +14 -14
  186. data/app/views/admin/seo/_titles.html.erb +63 -64
  187. data/app/views/admin/seo/show.html.erb +14 -19
  188. data/app/views/admin/settings/display.html.erb +22 -25
  189. data/app/views/admin/settings/feedback.html.erb +31 -32
  190. data/app/views/admin/settings/index.html.erb +23 -24
  191. data/app/views/admin/settings/write.html.erb +21 -22
  192. data/app/views/admin/shared/_edit.html.erb +3 -3
  193. data/app/views/admin/shared/_menu.html.erb +26 -26
  194. data/app/views/admin/shared/_twitter_alert.html.erb +1 -1
  195. data/app/views/admin/sidebar/_config.html.erb +5 -5
  196. data/app/views/admin/sidebar/_target_sidebar.html.erb +4 -4
  197. data/app/views/admin/sidebar/index.html.erb +7 -7
  198. data/app/views/admin/tags/_index_and_form.html.erb +11 -12
  199. data/app/views/admin/tags/edit.html.erb +1 -1
  200. data/app/views/admin/tags/index.html.erb +1 -1
  201. data/app/views/admin/themes/index.html.erb +5 -6
  202. data/app/views/admin/users/_form.html.erb +34 -34
  203. data/app/views/admin/users/edit.html.erb +2 -2
  204. data/app/views/admin/users/index.html.erb +10 -12
  205. data/app/views/admin/users/new.html.erb +2 -2
  206. data/app/views/archives_sidebar/_content.html.erb +2 -2
  207. data/app/views/articles/_archives_article.html.erb +3 -3
  208. data/app/views/articles/_article.html.erb +7 -9
  209. data/app/views/articles/_article_author.html.erb +4 -0
  210. data/app/views/articles/_article_content.html.erb +2 -2
  211. data/app/views/articles/_article_excerpt.html.erb +2 -2
  212. data/app/views/articles/_article_links.html.erb +1 -1
  213. data/app/views/articles/_comment_errors.html.erb +1 -1
  214. data/app/views/articles/_comment_form.html.erb +12 -12
  215. data/app/views/articles/_comment_preview.html.erb +3 -3
  216. data/app/views/articles/_password_form.html.erb +4 -4
  217. data/app/views/articles/_trackback.html.erb +2 -2
  218. data/app/views/articles/archives.html.erb +1 -1
  219. data/app/views/articles/feedback_atom_feed.atom.builder +3 -1
  220. data/app/views/articles/feedback_rss_feed.rss.builder +9 -7
  221. data/app/views/articles/index_atom_feed.atom.builder +5 -3
  222. data/app/views/articles/index_rss_feed.rss.builder +10 -8
  223. data/app/views/articles/live_search.html.erb +3 -3
  224. data/app/views/articles/read.html.erb +16 -8
  225. data/app/views/articles/search.html.erb +2 -2
  226. data/app/views/articles/trackback.xml.builder +3 -1
  227. data/app/views/articles/view_page.html.erb +1 -1
  228. data/app/views/authors/show.html.erb +9 -9
  229. data/app/views/authors/show_atom_feed.atom.builder +4 -2
  230. data/app/views/authors/show_rss_feed.rss.builder +10 -8
  231. data/app/views/comments/_comment.html.erb +3 -3
  232. data/app/views/devise/mailer/reset_password_instructions.html.erb +7 -9
  233. data/app/views/devise/passwords/edit.html.erb +4 -4
  234. data/app/views/devise/passwords/new.html.erb +1 -1
  235. data/app/views/devise/registrations/new.html.erb +5 -5
  236. data/app/views/devise/sessions/new.html.erb +3 -3
  237. data/app/views/errors/404.html.erb +2 -2
  238. data/app/views/feedback/index.atom.builder +3 -1
  239. data/app/views/feedback/index.rss.builder +9 -7
  240. data/app/views/layouts/accounts.html.erb +26 -26
  241. data/app/views/layouts/administration.html.erb +31 -31
  242. data/app/views/layouts/default.html.erb +3 -3
  243. data/app/views/layouts/editor.html.erb +5 -19
  244. data/app/views/meta_sidebar/_content.html.erb +2 -2
  245. data/app/views/notes/_note.html.erb +1 -1
  246. data/app/views/notes/index.html.erb +1 -1
  247. data/app/views/notes/show_in_reply.html.erb +1 -1
  248. data/app/views/notification_mailer/_mail_footer.html.erb +3 -3
  249. data/app/views/notification_mailer/article.html.erb +2 -2
  250. data/app/views/notification_mailer/comment.html.erb +5 -5
  251. data/app/views/notification_mailer/notif_user.html.erb +1 -1
  252. data/app/views/page_sidebar/_content.html.erb +1 -1
  253. data/app/views/search_sidebar/_content.html.erb +2 -2
  254. data/app/views/settings/install.html.erb +2 -2
  255. data/app/views/setup/index.html.erb +7 -7
  256. data/app/views/shared/_atom_header.atom.builder +4 -2
  257. data/app/views/shared/_atom_item_article.atom.builder +11 -6
  258. data/app/views/shared/_atom_item_comment.atom.builder +4 -2
  259. data/app/views/shared/_atom_item_trackback.atom.builder +4 -2
  260. data/app/views/shared/_page_header.html.erb +9 -12
  261. data/app/views/shared/_rss_item_article.rss.builder +6 -3
  262. data/app/views/shared/_rss_item_comment.rss.builder +3 -1
  263. data/app/views/shared/_rss_item_trackback.rss.builder +3 -1
  264. data/app/views/sidebar/display_plugins.html.erb +1 -1
  265. data/app/views/tag_sidebar/_content.html.erb +1 -1
  266. data/app/views/tags/index.html.erb +1 -1
  267. data/app/views/xml/_googlesitemap_item_article.googlesitemap.builder +2 -0
  268. data/app/views/xml/_googlesitemap_item_category.googlesitemap.builder +2 -0
  269. data/app/views/xml/_googlesitemap_item_page.googlesitemap.builder +2 -0
  270. data/app/views/xml/_googlesitemap_item_tag.googlesitemap.builder +2 -0
  271. data/app/views/xml/sitemap.googlesitemap.builder +4 -2
  272. data/config/i18n-tasks.yml +0 -5
  273. data/config/initializers/devise.rb +10 -4
  274. data/config/initializers/mime_types.rb +3 -1
  275. data/config/locales/da.yml +134 -71
  276. data/config/locales/de.yml +142 -75
  277. data/config/locales/en.yml +128 -66
  278. data/config/locales/es-MX.yml +135 -69
  279. data/config/locales/fr.yml +167 -86
  280. data/config/locales/he.yml +128 -70
  281. data/config/locales/it.yml +136 -72
  282. data/config/locales/ja.yml +110 -64
  283. data/config/locales/lt.yml +153 -74
  284. data/config/locales/nb-NO.yml +123 -65
  285. data/config/locales/nl.yml +140 -75
  286. data/config/locales/pl.yml +160 -69
  287. data/config/locales/pt-BR.yml +137 -70
  288. data/config/locales/ro.yml +148 -70
  289. data/config/locales/ru.yml +161 -69
  290. data/config/locales/zh-CN.yml +106 -59
  291. data/config/locales/zh-TW.yml +109 -61
  292. data/config/routes.rb +68 -63
  293. data/db/migrate/113_initial_schema.rb +192 -190
  294. data/db/migrate/114_fixes_buggy_articles_and_notes.rb +9 -6
  295. data/db/migrate/115_drops_categories_for_tags.rb +3 -1
  296. data/db/migrate/20150207131657_add_missing_indexes.rb +2 -0
  297. data/db/migrate/20150807134129_simplify_redirect_relations.rb +8 -1
  298. data/db/migrate/20150808052637_add_blog_ids.rb +4 -2
  299. data/db/migrate/20150808191127_add_blog_id_to_redirects.rb +2 -0
  300. data/db/migrate/20150810094754_add_blog_id_to_tags.rb +2 -0
  301. data/db/migrate/20160108111120_add_devise_to_users.rb +4 -2
  302. data/db/migrate/20160108184201_move_last_connection_to_last_sign_in_at.rb +2 -0
  303. data/db/migrate/20160110094906_remove_profiles_rights.rb +2 -0
  304. data/db/migrate/20160605103918_replace_profile_id_with_string.rb +2 -0
  305. data/db/migrate/20160605154632_remove_profiles.rb +10 -5
  306. data/db/migrate/20160701061851_demand_blog_id_on_contents.rb +2 -0
  307. data/db/migrate/20160701062604_add_blog_id_to_resources.rb +2 -0
  308. data/db/migrate/20170528093024_move_resources_to_content.rb +2 -0
  309. data/db/migrate/20170528094923_move_tags_to_content.rb +2 -0
  310. data/db/migrate/20170528201606_remove_separate_published_flag.rb +2 -0
  311. data/db/migrate/20170605071626_remove_extra_state_columns_from_feedback.rb +2 -0
  312. data/db/migrate/20170702105201_remove_published_at_from_feedback.rb +2 -0
  313. data/db/migrate/20190208151235_add_text_filter_name_fields.rb +9 -0
  314. data/db/migrate/20190208152646_move_text_filter_to_name.rb +97 -0
  315. data/db/migrate/20190209155717_remove_text_filter_ids.rb +19 -0
  316. data/db/migrate/20190209160610_remove_text_filters.rb +17 -0
  317. data/db/migrate/20200413140440_add_unique_indexes.rb +10 -0
  318. data/db/seeds.rb +9 -19
  319. data/lib/email_notify.rb +3 -1
  320. data/lib/format.rb +4 -2
  321. data/lib/publify_core.rb +36 -35
  322. data/lib/publify_core/engine.rb +8 -6
  323. data/lib/publify_core/lang.rb +5 -1
  324. data/lib/publify_core/testing_support/dns_mock.rb +15 -0
  325. data/lib/publify_core/testing_support/factories.rb +240 -0
  326. data/lib/publify_core/testing_support/feed_assertions.rb +48 -0
  327. data/lib/publify_core/testing_support/fixtures/exploit.svg +4 -0
  328. data/lib/publify_core/testing_support/fixtures/fakepng.png +1 -0
  329. data/lib/publify_core/testing_support/fixtures/otherfile.txt +1 -0
  330. data/lib/publify_core/testing_support/fixtures/testfile.png +0 -0
  331. data/lib/publify_core/testing_support/fixtures/testfile.txt +1 -0
  332. data/lib/publify_core/testing_support/upload_fixtures.rb +15 -0
  333. data/lib/publify_core/version.rb +3 -1
  334. data/lib/publify_guid.rb +3 -1
  335. data/lib/publify_plugins.rb +10 -5
  336. data/lib/publify_textfilter_markdown.rb +38 -25
  337. data/lib/publify_textfilter_none.rb +5 -3
  338. data/lib/publify_textfilter_smartypants.rb +5 -3
  339. data/lib/publify_textfilter_textile.rb +7 -4
  340. data/lib/publify_textfilter_twitterfilter.rb +13 -7
  341. data/lib/publify_time.rb +4 -0
  342. data/lib/sidebar_field.rb +15 -13
  343. data/lib/sidebar_registry.rb +5 -3
  344. data/lib/spam_protection.rb +16 -13
  345. data/lib/tasks/i18n.rake +9 -0
  346. data/lib/tasks/manifest.rake +30 -0
  347. data/lib/tasks/publify_core_tasks.rake +2 -0
  348. data/lib/text_filter_plugin.rb +27 -25
  349. data/lib/theme.rb +5 -3
  350. data/lib/transforms.rb +22 -19
  351. metadata +217 -87
  352. data/app/assets/javascripts/widearea.js +0 -486
  353. data/app/assets/stylesheets/widearea.css +0 -133
  354. data/app/controllers/admin/textfilters_controller.rb +0 -6
  355. data/app/views/admin/dashboard/_inbound.html.erb +0 -31
  356. data/app/views/admin/notes/_header.html.erb +0 -6
  357. 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,7 +78,7 @@ 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)
@@ -89,13 +93,13 @@ class TextFilterPlugin
89
93
  end
90
94
 
91
95
  def self.logger
92
- @logger ||= ::Rails.logger || Logger.new(STDOUT)
96
+ @logger ||= ::Rails.logger || Logger.new($stdout)
93
97
  end
94
98
  end
95
99
 
96
100
  class TextFilterPlugin::PostProcess < TextFilterPlugin
97
101
  def self.filter_type
98
- 'postprocess'
102
+ "postprocess"
99
103
  end
100
104
  end
101
105
 
@@ -126,40 +130,38 @@ class TextFilterPlugin::Macro < TextFilterPlugin
126
130
  macrofilter(attributes_parse(match))
127
131
  end
128
132
 
129
- new_text = new_text.gsub(regex2) do |_match|
133
+ new_text.gsub(regex2) do |_match|
130
134
  macrofilter(attributes_parse(Regexp.last_match[1].to_s), Regexp.last_match[2].to_s)
131
135
  end
132
-
133
- new_text
134
136
  end
135
137
  end
136
138
 
137
139
  class TextFilterPlugin::MacroPre < TextFilterPlugin::Macro
138
140
  def self.filter_type
139
- 'macropre'
141
+ "macropre"
140
142
  end
141
143
  end
142
144
 
143
145
  class TextFilterPlugin::MacroPost < TextFilterPlugin::Macro
144
146
  def self.filter_type
145
- 'macropost'
147
+ "macropost"
146
148
  end
147
149
  end
148
150
 
149
151
  class TextFilterPlugin::Markup < TextFilterPlugin
150
152
  def self.filter_type
151
- 'markup'
153
+ "markup"
152
154
  end
153
155
  end
154
156
 
155
157
  class PublifyApp
156
158
  class Textfilter
157
159
  class MacroPost < TextFilterPlugin
158
- plugin_display_name 'MacroPost'
159
- plugin_description 'Macro expansion meta-filter (post-markup)'
160
+ plugin_display_name "MacroPost"
161
+ plugin_description "Macro expansion meta-filter (post-markup)"
160
162
 
161
163
  def self.filtertext(text)
162
- macros = TextFilterPlugin.available_filter_types['macropost']
164
+ macros = TextFilterPlugin.available_filter_types["macropost"]
163
165
  macros.reduce(text) do |new_text, macro|
164
166
  macro.filtertext(new_text)
165
167
  end
@@ -167,11 +169,11 @@ class PublifyApp
167
169
  end
168
170
 
169
171
  class MacroPre < TextFilterPlugin
170
- plugin_display_name 'MacroPre'
171
- plugin_description 'Macro expansion meta-filter (pre-markup)'
172
+ plugin_display_name "MacroPre"
173
+ plugin_description "Macro expansion meta-filter (pre-markup)"
172
174
 
173
175
  def self.filtertext(text)
174
- macros = TextFilterPlugin.available_filter_types['macropre']
176
+ macros = TextFilterPlugin.available_filter_types["macropre"]
175
177
  macros.reduce(text) do |new_text, macro|
176
178
  macro.filtertext(new_text)
177
179
  end
@@ -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,10 +9,10 @@ class Theme
7
9
  end
8
10
 
9
11
  def layout(action = :default)
10
- if action.to_s == 'view_page'
11
- return 'layouts/pages' if File.exist? "#{view_path}/layouts/pages.html.erb"
12
+ if action.to_s == "view_page"
13
+ return "layouts/pages" if File.exist? "#{view_path}/layouts/pages.html.erb"
12
14
  end
13
- 'layouts/default'
15
+ "layouts/default"
14
16
  end
15
17
 
16
18
  def description
@@ -1,21 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # FIXME: Replace with helpers and/or methods provided by Rails
2
4
  class String
3
- ACCENTS = { %w(á à â ä ã Ã Ä Â À) => 'a',
4
- %w(é è ê ë Ë É È Ê) => 'e',
5
- %w(í ì î ï I Î Ì) => 'i',
6
- %w(ó ò ô ö õ Õ Ö Ô Ò) => 'o',
7
- ['œ'] => 'oe',
8
- ['ß'] => 'ss',
9
- %w(ú ù û ü U Û Ù) => 'u',
10
- %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
11
13
 
12
14
  def to_permalink
13
15
  string = self
14
16
  ACCENTS.each do |key, value|
15
17
  string = string.tr(key.join, value)
16
18
  end
17
- string = string.tr("'", '-')
18
- string.gsub(/<[^>]*>/, '').to_url
19
+ string = string.tr("'", "-")
20
+ string.gsub(/<[^>]*>/, "").to_url
19
21
  end
20
22
 
21
23
  # Returns a-string-with-dashes when passed 'a string with dashes'.
@@ -23,9 +25,9 @@ class String
23
25
  def to_url
24
26
  return if nil?
25
27
 
26
- s = downcase.tr("\"'", '')
27
- s = s.gsub(/\P{Word}/, ' ')
28
- s.strip.tr_s(' ', '-').tr(' ', '-').sub(/^$/, '-')
28
+ s = downcase.tr("\"'", "")
29
+ s = s.gsub(/\P{Word}/, " ")
30
+ s.strip.tr_s(" ", "-").tr(" ", "-").sub(/^$/, "-")
29
31
  end
30
32
 
31
33
  def to_title(item, settings, params)
@@ -33,12 +35,13 @@ class String
33
35
  end
34
36
 
35
37
  # Strips any html markup from a string
36
- TYPO_TAG_KEY = TYPO_ATTRIBUTE_KEY = /[\w:_-]+/
37
- TYPO_ATTRIBUTE_VALUE = /(?:[A-Za-z0-9]+|(?:'[^']*?'|"[^"]*?"))/
38
- TYPO_ATTRIBUTE = /(?:#{TYPO_ATTRIBUTE_KEY}(?:\s*=\s*#{TYPO_ATTRIBUTE_VALUE})?)/
39
- TYPO_ATTRIBUTES = /(?:#{TYPO_ATTRIBUTE}(?:\s+#{TYPO_ATTRIBUTE})*)/
40
- 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
41
44
  def strip_html
42
- gsub(TAG, '').gsub(/\s+/, ' ').strip
45
+ gsub(TAG, "").gsub(/\s+/, " ").strip
43
46
  end
44
47
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: publify_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.1.0
4
+ version: 9.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matijs van Zuijlen
8
8
  - Yannick François
9
9
  - Thomas Lecavellier
10
10
  - Frédéric de Villamil
11
- autorequire:
11
+ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2018-04-19 00:00:00.000000000 Z
14
+ date: 2021-01-17 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: aasm
@@ -19,28 +19,28 @@ dependencies:
19
19
  requirements:
20
20
  - - "~>"
21
21
  - !ruby/object:Gem::Version
22
- version: 4.12.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: 4.12.0
29
+ version: '5.0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: akismet
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  requirements:
34
34
  - - "~>"
35
35
  - !ruby/object:Gem::Version
36
- version: '2.0'
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: '2.0'
43
+ version: '3.0'
44
44
  - !ruby/object:Gem::Dependency
45
45
  name: bluecloth
46
46
  requirement: !ruby/object:Gem::Requirement
@@ -55,62 +55,48 @@ dependencies:
55
55
  - - "~>"
56
56
  - !ruby/object:Gem::Version
57
57
  version: '2.1'
58
- - !ruby/object:Gem::Dependency
59
- name: bootstrap-sass
60
- requirement: !ruby/object:Gem::Requirement
61
- requirements:
62
- - - "~>"
63
- - !ruby/object:Gem::Version
64
- version: 3.3.6
65
- type: :runtime
66
- prerelease: false
67
- version_requirements: !ruby/object:Gem::Requirement
68
- requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: 3.3.6
72
58
  - !ruby/object:Gem::Dependency
73
59
  name: cancancan
74
60
  requirement: !ruby/object:Gem::Requirement
75
61
  requirements:
76
62
  - - "~>"
77
63
  - !ruby/object:Gem::Version
78
- version: '2.0'
64
+ version: '3.0'
79
65
  type: :runtime
80
66
  prerelease: false
81
67
  version_requirements: !ruby/object:Gem::Requirement
82
68
  requirements:
83
69
  - - "~>"
84
70
  - !ruby/object:Gem::Version
85
- version: '2.0'
71
+ version: '3.0'
86
72
  - !ruby/object:Gem::Dependency
87
73
  name: carrierwave
88
74
  requirement: !ruby/object:Gem::Requirement
89
75
  requirements:
90
76
  - - "~>"
91
77
  - !ruby/object:Gem::Version
92
- version: '1.1'
78
+ version: '2.0'
93
79
  type: :runtime
94
80
  prerelease: false
95
81
  version_requirements: !ruby/object:Gem::Requirement
96
82
  requirements:
97
83
  - - "~>"
98
84
  - !ruby/object:Gem::Version
99
- version: '1.1'
85
+ version: '2.0'
100
86
  - !ruby/object:Gem::Dependency
101
87
  name: devise
102
88
  requirement: !ruby/object:Gem::Requirement
103
89
  requirements:
104
90
  - - "~>"
105
91
  - !ruby/object:Gem::Version
106
- version: 4.4.3
92
+ version: 4.7.1
107
93
  type: :runtime
108
94
  prerelease: false
109
95
  version_requirements: !ruby/object:Gem::Requirement
110
96
  requirements:
111
97
  - - "~>"
112
98
  - !ruby/object:Gem::Version
113
- version: 4.4.3
99
+ version: 4.7.1
114
100
  - !ruby/object:Gem::Dependency
115
101
  name: devise-i18n
116
102
  requirement: !ruby/object:Gem::Requirement
@@ -140,47 +126,47 @@ dependencies:
140
126
  - !ruby/object:Gem::Version
141
127
  version: 1.1.4
142
128
  - !ruby/object:Gem::Dependency
143
- name: feedjira
129
+ name: fog-aws
144
130
  requirement: !ruby/object:Gem::Requirement
145
131
  requirements:
146
132
  - - "~>"
147
133
  - !ruby/object:Gem::Version
148
- version: 2.1.0
134
+ version: '3.2'
149
135
  type: :runtime
150
136
  prerelease: false
151
137
  version_requirements: !ruby/object:Gem::Requirement
152
138
  requirements:
153
139
  - - "~>"
154
140
  - !ruby/object:Gem::Version
155
- version: 2.1.0
141
+ version: '3.2'
156
142
  - !ruby/object:Gem::Dependency
157
- name: fog-aws
143
+ name: fog-core
158
144
  requirement: !ruby/object:Gem::Requirement
159
145
  requirements:
160
146
  - - "~>"
161
147
  - !ruby/object:Gem::Version
162
- version: 2.0.0
148
+ version: '2.2'
163
149
  type: :runtime
164
150
  prerelease: false
165
151
  version_requirements: !ruby/object:Gem::Requirement
166
152
  requirements:
167
153
  - - "~>"
168
154
  - !ruby/object:Gem::Version
169
- version: 2.0.0
155
+ version: '2.2'
170
156
  - !ruby/object:Gem::Dependency
171
157
  name: jquery-rails
172
158
  requirement: !ruby/object:Gem::Requirement
173
159
  requirements:
174
160
  - - "~>"
175
161
  - !ruby/object:Gem::Version
176
- version: 4.3.1
162
+ version: 4.4.0
177
163
  type: :runtime
178
164
  prerelease: false
179
165
  version_requirements: !ruby/object:Gem::Requirement
180
166
  requirements:
181
167
  - - "~>"
182
168
  - !ruby/object:Gem::Version
183
- version: 4.3.1
169
+ version: 4.4.0
184
170
  - !ruby/object:Gem::Dependency
185
171
  name: jquery-ui-rails
186
172
  requirement: !ruby/object:Gem::Requirement
@@ -201,14 +187,20 @@ dependencies:
201
187
  requirements:
202
188
  - - "~>"
203
189
  - !ruby/object:Gem::Version
204
- version: '1.0'
190
+ version: '1.2'
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: 1.2.1
205
194
  type: :runtime
206
195
  prerelease: false
207
196
  version_requirements: !ruby/object:Gem::Requirement
208
197
  requirements:
209
198
  - - "~>"
210
199
  - !ruby/object:Gem::Version
211
- version: '1.0'
200
+ version: '1.2'
201
+ - - ">="
202
+ - !ruby/object:Gem::Version
203
+ version: 1.2.1
212
204
  - !ruby/object:Gem::Dependency
213
205
  name: mimemagic
214
206
  requirement: !ruby/object:Gem::Requirement
@@ -229,42 +221,54 @@ dependencies:
229
221
  requirements:
230
222
  - - "~>"
231
223
  - !ruby/object:Gem::Version
232
- version: '4.2'
224
+ version: '4.9'
225
+ - - ">="
226
+ - !ruby/object:Gem::Version
227
+ version: 4.9.4
233
228
  type: :runtime
234
229
  prerelease: false
235
230
  version_requirements: !ruby/object:Gem::Requirement
236
231
  requirements:
237
232
  - - "~>"
238
233
  - !ruby/object:Gem::Version
239
- version: '4.2'
234
+ version: '4.9'
235
+ - - ">="
236
+ - !ruby/object:Gem::Version
237
+ version: 4.9.4
240
238
  - !ruby/object:Gem::Dependency
241
- name: rails
239
+ name: rack
242
240
  requirement: !ruby/object:Gem::Requirement
243
241
  requirements:
244
- - - "~>"
242
+ - - ">="
245
243
  - !ruby/object:Gem::Version
246
- version: 5.1.2
244
+ version: 2.2.3
247
245
  type: :runtime
248
246
  prerelease: false
249
247
  version_requirements: !ruby/object:Gem::Requirement
250
248
  requirements:
251
- - - "~>"
249
+ - - ">="
252
250
  - !ruby/object:Gem::Version
253
- version: 5.1.2
251
+ version: 2.2.3
254
252
  - !ruby/object:Gem::Dependency
255
- name: rails-timeago
253
+ name: rails
256
254
  requirement: !ruby/object:Gem::Requirement
257
255
  requirements:
258
256
  - - "~>"
259
257
  - !ruby/object:Gem::Version
260
- version: '2.0'
258
+ version: 5.2.4
259
+ - - ">="
260
+ - !ruby/object:Gem::Version
261
+ version: 5.2.4.3
261
262
  type: :runtime
262
263
  prerelease: false
263
264
  version_requirements: !ruby/object:Gem::Requirement
264
265
  requirements:
265
266
  - - "~>"
266
267
  - !ruby/object:Gem::Version
267
- version: '2.0'
268
+ version: 5.2.4
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: 5.2.4.3
268
272
  - !ruby/object:Gem::Dependency
269
273
  name: rails_autolink
270
274
  requirement: !ruby/object:Gem::Requirement
@@ -280,25 +284,33 @@ dependencies:
280
284
  - !ruby/object:Gem::Version
281
285
  version: 1.1.0
282
286
  - !ruby/object:Gem::Dependency
283
- name: recaptcha
287
+ name: rails-timeago
284
288
  requirement: !ruby/object:Gem::Requirement
285
289
  requirements:
286
290
  - - "~>"
287
291
  - !ruby/object:Gem::Version
288
- version: '4.3'
289
- - - ">="
290
- - !ruby/object:Gem::Version
291
- version: 4.3.1
292
+ version: '2.0'
292
293
  type: :runtime
293
294
  prerelease: false
294
295
  version_requirements: !ruby/object:Gem::Requirement
295
296
  requirements:
296
297
  - - "~>"
297
298
  - !ruby/object:Gem::Version
298
- version: '4.3'
299
- - - ">="
299
+ version: '2.0'
300
+ - !ruby/object:Gem::Dependency
301
+ name: recaptcha
302
+ requirement: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - "~>"
305
+ - !ruby/object:Gem::Version
306
+ version: '5.0'
307
+ type: :runtime
308
+ prerelease: false
309
+ version_requirements: !ruby/object:Gem::Requirement
310
+ requirements:
311
+ - - "~>"
300
312
  - !ruby/object:Gem::Version
301
- version: 4.3.1
313
+ version: '5.0'
302
314
  - !ruby/object:Gem::Dependency
303
315
  name: RedCloth
304
316
  requirement: !ruby/object:Gem::Requirement
@@ -328,33 +340,47 @@ dependencies:
328
340
  - !ruby/object:Gem::Version
329
341
  version: 0.7.0
330
342
  - !ruby/object:Gem::Dependency
331
- name: sass-rails
343
+ name: sassc-rails
332
344
  requirement: !ruby/object:Gem::Requirement
333
345
  requirements:
334
346
  - - "~>"
335
347
  - !ruby/object:Gem::Version
336
- version: '5.0'
348
+ version: '2.0'
337
349
  type: :runtime
338
350
  prerelease: false
339
351
  version_requirements: !ruby/object:Gem::Requirement
340
352
  requirements:
341
353
  - - "~>"
342
354
  - !ruby/object:Gem::Version
343
- version: '5.0'
355
+ version: '2.0'
356
+ - !ruby/object:Gem::Dependency
357
+ name: sprockets
358
+ requirement: !ruby/object:Gem::Requirement
359
+ requirements:
360
+ - - "~>"
361
+ - !ruby/object:Gem::Version
362
+ version: '3.0'
363
+ type: :runtime
364
+ prerelease: false
365
+ version_requirements: !ruby/object:Gem::Requirement
366
+ requirements:
367
+ - - "~>"
368
+ - !ruby/object:Gem::Version
369
+ version: '3.0'
344
370
  - !ruby/object:Gem::Dependency
345
371
  name: twitter
346
372
  requirement: !ruby/object:Gem::Requirement
347
373
  requirements:
348
374
  - - "~>"
349
375
  - !ruby/object:Gem::Version
350
- version: 6.2.0
376
+ version: 7.0.0
351
377
  type: :runtime
352
378
  prerelease: false
353
379
  version_requirements: !ruby/object:Gem::Requirement
354
380
  requirements:
355
381
  - - "~>"
356
382
  - !ruby/object:Gem::Version
357
- version: 6.2.0
383
+ version: 7.0.0
358
384
  - !ruby/object:Gem::Dependency
359
385
  name: uuidtools
360
386
  requirement: !ruby/object:Gem::Requirement
@@ -375,28 +401,42 @@ dependencies:
375
401
  requirements:
376
402
  - - "~>"
377
403
  - !ruby/object:Gem::Version
378
- version: '2.7'
404
+ version: '3.0'
379
405
  type: :development
380
406
  prerelease: false
381
407
  version_requirements: !ruby/object:Gem::Requirement
382
408
  requirements:
383
409
  - - "~>"
384
410
  - !ruby/object:Gem::Version
385
- version: '2.7'
411
+ version: '3.0'
386
412
  - !ruby/object:Gem::Dependency
387
- name: factory_girl_rails
413
+ name: factory_bot
388
414
  requirement: !ruby/object:Gem::Requirement
389
415
  requirements:
390
416
  - - "~>"
391
417
  - !ruby/object:Gem::Version
392
- version: 4.8.0
418
+ version: '5.1'
393
419
  type: :development
394
420
  prerelease: false
395
421
  version_requirements: !ruby/object:Gem::Requirement
396
422
  requirements:
397
423
  - - "~>"
398
424
  - !ruby/object:Gem::Version
399
- version: 4.8.0
425
+ version: '5.1'
426
+ - !ruby/object:Gem::Dependency
427
+ name: feedjira
428
+ requirement: !ruby/object:Gem::Requirement
429
+ requirements:
430
+ - - "~>"
431
+ - !ruby/object:Gem::Version
432
+ version: '3.1'
433
+ type: :development
434
+ prerelease: false
435
+ version_requirements: !ruby/object:Gem::Requirement
436
+ requirements:
437
+ - - "~>"
438
+ - !ruby/object:Gem::Version
439
+ version: '3.1'
400
440
  - !ruby/object:Gem::Dependency
401
441
  name: i18n-tasks
402
442
  requirement: !ruby/object:Gem::Requirement
@@ -411,6 +451,20 @@ dependencies:
411
451
  - - "~>"
412
452
  - !ruby/object:Gem::Version
413
453
  version: 0.9.1
454
+ - !ruby/object:Gem::Dependency
455
+ name: pry
456
+ requirement: !ruby/object:Gem::Requirement
457
+ requirements:
458
+ - - ">="
459
+ - !ruby/object:Gem::Version
460
+ version: '0'
461
+ type: :development
462
+ prerelease: false
463
+ version_requirements: !ruby/object:Gem::Requirement
464
+ requirements:
465
+ - - ">="
466
+ - !ruby/object:Gem::Version
467
+ version: '0'
414
468
  - !ruby/object:Gem::Dependency
415
469
  name: rails-controller-testing
416
470
  requirement: !ruby/object:Gem::Requirement
@@ -431,28 +485,28 @@ dependencies:
431
485
  requirements:
432
486
  - - "~>"
433
487
  - !ruby/object:Gem::Version
434
- version: '3.5'
488
+ version: '4.0'
435
489
  type: :development
436
490
  prerelease: false
437
491
  version_requirements: !ruby/object:Gem::Requirement
438
492
  requirements:
439
493
  - - "~>"
440
494
  - !ruby/object:Gem::Version
441
- version: '3.5'
495
+ version: '4.0'
442
496
  - !ruby/object:Gem::Dependency
443
497
  name: simplecov
444
498
  requirement: !ruby/object:Gem::Requirement
445
499
  requirements:
446
500
  - - "~>"
447
501
  - !ruby/object:Gem::Version
448
- version: 0.14.0
502
+ version: 0.18.5
449
503
  type: :development
450
504
  prerelease: false
451
505
  version_requirements: !ruby/object:Gem::Requirement
452
506
  requirements:
453
507
  - - "~>"
454
508
  - !ruby/object:Gem::Version
455
- version: 0.14.0
509
+ version: 0.18.5
456
510
  - !ruby/object:Gem::Dependency
457
511
  name: sqlite3
458
512
  requirement: !ruby/object:Gem::Requirement
@@ -473,28 +527,28 @@ dependencies:
473
527
  requirements:
474
528
  - - "~>"
475
529
  - !ruby/object:Gem::Version
476
- version: 0.8.1
530
+ version: 0.9.1
477
531
  type: :development
478
532
  prerelease: false
479
533
  version_requirements: !ruby/object:Gem::Requirement
480
534
  requirements:
481
535
  - - "~>"
482
536
  - !ruby/object:Gem::Version
483
- version: 0.8.1
537
+ version: 0.9.1
484
538
  - !ruby/object:Gem::Dependency
485
539
  name: webmock
486
540
  requirement: !ruby/object:Gem::Requirement
487
541
  requirements:
488
542
  - - "~>"
489
543
  - !ruby/object:Gem::Version
490
- version: 3.0.1
544
+ version: '3.3'
491
545
  type: :development
492
546
  prerelease: false
493
547
  version_requirements: !ruby/object:Gem::Requirement
494
548
  requirements:
495
549
  - - "~>"
496
550
  - !ruby/object:Gem::Version
497
- version: 3.0.1
551
+ version: '3.3'
498
552
  description: Core engine for the Publify blogging system, formerly known as Typo.
499
553
  email:
500
554
  - matijs@matijs.net
@@ -522,6 +576,15 @@ files:
522
576
  - app/assets/images/spinner.gif
523
577
  - app/assets/images/thumb_blank.jpg
524
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
525
588
  - app/assets/javascripts/cookies.js
526
589
  - app/assets/javascripts/datetimepicker.js
527
590
  - app/assets/javascripts/lang/da_DK.js
@@ -540,9 +603,65 @@ files:
540
603
  - app/assets/javascripts/spinnable.js
541
604
  - app/assets/javascripts/tagmanager.js
542
605
  - app/assets/javascripts/typeahead.js
543
- - 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
544
610
  - app/assets/stylesheets/accounts.css.scss
545
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
546
665
  - app/assets/stylesheets/coderay.css
547
666
  - app/assets/stylesheets/datetimepicker.css
548
667
  - app/assets/stylesheets/lightbox.css
@@ -552,7 +671,6 @@ files:
552
671
  - app/assets/stylesheets/sidebar_admin.css.scss
553
672
  - app/assets/stylesheets/tagmanager.css
554
673
  - app/assets/stylesheets/user-styles.css
555
- - app/assets/stylesheets/widearea.css
556
674
  - app/controllers/accounts_controller.rb
557
675
  - app/controllers/admin/base_controller.rb
558
676
  - app/controllers/admin/content_controller.rb
@@ -568,7 +686,6 @@ files:
568
686
  - app/controllers/admin/settings_controller.rb
569
687
  - app/controllers/admin/sidebar_controller.rb
570
688
  - app/controllers/admin/tags_controller.rb
571
- - app/controllers/admin/textfilters_controller.rb
572
689
  - app/controllers/admin/themes_controller.rb
573
690
  - app/controllers/admin/users_controller.rb
574
691
  - app/controllers/articles_controller.rb
@@ -634,7 +751,6 @@ files:
634
751
  - app/views/admin/dashboard/_comment.html.erb
635
752
  - app/views/admin/dashboard/_comments.html.erb
636
753
  - app/views/admin/dashboard/_drafts.html.erb
637
- - app/views/admin/dashboard/_inbound.html.erb
638
754
  - app/views/admin/dashboard/_overview.html.erb
639
755
  - app/views/admin/dashboard/_welcome.html.erb
640
756
  - app/views/admin/dashboard/index.html.erb
@@ -644,12 +760,11 @@ files:
644
760
  - app/views/admin/feedback/_spam.html.erb
645
761
  - app/views/admin/feedback/article.html.erb
646
762
  - app/views/admin/feedback/edit.html.erb
647
- - app/views/admin/feedback/ham.js
763
+ - app/views/admin/feedback/ham.js.erb
648
764
  - app/views/admin/feedback/index.html.erb
649
- - app/views/admin/feedback/spam.js
765
+ - app/views/admin/feedback/spam.js.erb
650
766
  - app/views/admin/migrations/show.html.erb
651
767
  - app/views/admin/notes/_form.html.erb
652
- - app/views/admin/notes/_header.html.erb
653
768
  - app/views/admin/notes/_list.html.erb
654
769
  - app/views/admin/notes/_note.html.erb
655
770
  - app/views/admin/notes/edit.html.erb
@@ -699,6 +814,7 @@ files:
699
814
  - app/views/archives_sidebar/_content.html.erb
700
815
  - app/views/articles/_archives_article.html.erb
701
816
  - app/views/articles/_article.html.erb
817
+ - app/views/articles/_article_author.html.erb
702
818
  - app/views/articles/_article_collection.html.erb
703
819
  - app/views/articles/_article_content.html.erb
704
820
  - app/views/articles/_article_excerpt.html.erb
@@ -710,7 +826,6 @@ files:
710
826
  - app/views/articles/_comment_preview.html.erb
711
827
  - app/views/articles/_full_article_content.html.erb
712
828
  - app/views/articles/_password_form.html.erb
713
- - app/views/articles/_protected_article_content.html.erb
714
829
  - app/views/articles/_trackback.html.erb
715
830
  - app/views/articles/archives.html.erb
716
831
  - app/views/articles/comment.js.erb
@@ -843,12 +958,26 @@ files:
843
958
  - db/migrate/20170528201606_remove_separate_published_flag.rb
844
959
  - db/migrate/20170605071626_remove_extra_state_columns_from_feedback.rb
845
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
846
966
  - db/seeds.rb
847
967
  - lib/email_notify.rb
848
968
  - lib/format.rb
849
969
  - lib/publify_core.rb
850
970
  - lib/publify_core/engine.rb
851
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
852
981
  - lib/publify_core/version.rb
853
982
  - lib/publify_guid.rb
854
983
  - lib/publify_plugins.rb
@@ -861,6 +990,8 @@ files:
861
990
  - lib/sidebar_field.rb
862
991
  - lib/sidebar_registry.rb
863
992
  - lib/spam_protection.rb
993
+ - lib/tasks/i18n.rake
994
+ - lib/tasks/manifest.rake
864
995
  - lib/tasks/publify_core_tasks.rake
865
996
  - lib/text_filter_plugin.rb
866
997
  - lib/theme.rb
@@ -869,11 +1000,11 @@ files:
869
1000
  - themes/plain/javascripts/theme.js
870
1001
  - themes/plain/preview.png
871
1002
  - themes/plain/stylesheets/theme.css
872
- homepage: https://publify.co
1003
+ homepage: https://publify.github.io/
873
1004
  licenses:
874
1005
  - MIT
875
1006
  metadata: {}
876
- post_install_message:
1007
+ post_install_message:
877
1008
  rdoc_options: []
878
1009
  require_paths:
879
1010
  - lib
@@ -881,16 +1012,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
881
1012
  requirements:
882
1013
  - - ">="
883
1014
  - !ruby/object:Gem::Version
884
- version: 2.2.0
1015
+ version: 2.4.0
885
1016
  required_rubygems_version: !ruby/object:Gem::Requirement
886
1017
  requirements:
887
1018
  - - ">="
888
1019
  - !ruby/object:Gem::Version
889
1020
  version: '0'
890
1021
  requirements: []
891
- rubyforge_project:
892
- rubygems_version: 2.7.6
893
- signing_key:
1022
+ rubygems_version: 3.2.3
1023
+ signing_key:
894
1024
  specification_version: 4
895
1025
  summary: Core engine for the Publify blogging system.
896
1026
  test_files: []