publify_core 9.1.0 → 9.2.0

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 (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: []