publify_core 9.0.0 → 9.2.2

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

Potentially problematic release.


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

Files changed (360) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +92 -37
  3. data/app/assets/javascripts/bootstrap-sprockets.js +8 -0
  4. data/app/assets/javascripts/bootstrap/affix.js +164 -0
  5. data/app/assets/javascripts/bootstrap/alert.js +95 -0
  6. data/app/assets/javascripts/bootstrap/button.js +125 -0
  7. data/app/assets/javascripts/bootstrap/collapse.js +212 -0
  8. data/app/assets/javascripts/bootstrap/dropdown.js +165 -0
  9. data/app/assets/javascripts/bootstrap/modal.js +358 -0
  10. data/app/assets/javascripts/bootstrap/tab.js +155 -0
  11. data/app/assets/javascripts/bootstrap/transition.js +59 -0
  12. data/app/assets/javascripts/lightbox.js +4 -4
  13. data/app/assets/javascripts/publify_admin.js +1 -35
  14. data/app/assets/stylesheets/_bootstrap-compass.scss +9 -0
  15. data/app/assets/stylesheets/_bootstrap-mincer.scss +19 -0
  16. data/app/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
  17. data/app/assets/stylesheets/_bootstrap.scss +42 -0
  18. data/app/assets/stylesheets/administration_structure.css.scss +1 -45
  19. data/app/assets/stylesheets/bootstrap/_alerts.scss +73 -0
  20. data/app/assets/stylesheets/bootstrap/_button-groups.scss +242 -0
  21. data/app/assets/stylesheets/bootstrap/_buttons.scss +168 -0
  22. data/app/assets/stylesheets/bootstrap/_close.scss +37 -0
  23. data/app/assets/stylesheets/bootstrap/_code.scss +69 -0
  24. data/app/assets/stylesheets/bootstrap/_component-animations.scss +38 -0
  25. data/app/assets/stylesheets/bootstrap/_dropdowns.scss +213 -0
  26. data/app/assets/stylesheets/bootstrap/_forms.scss +586 -0
  27. data/app/assets/stylesheets/bootstrap/_grid.scss +94 -0
  28. data/app/assets/stylesheets/bootstrap/_labels.scss +66 -0
  29. data/app/assets/stylesheets/bootstrap/_media.scss +66 -0
  30. data/app/assets/stylesheets/bootstrap/_mixins.scss +37 -0
  31. data/app/assets/stylesheets/bootstrap/_modals.scss +150 -0
  32. data/app/assets/stylesheets/bootstrap/_navbar.scss +479 -0
  33. data/app/assets/stylesheets/bootstrap/_navs.scss +242 -0
  34. data/app/assets/stylesheets/bootstrap/_normalize.scss +427 -0
  35. data/app/assets/stylesheets/bootstrap/_pagination.scss +86 -0
  36. data/app/assets/stylesheets/bootstrap/_panels.scss +222 -0
  37. data/app/assets/stylesheets/bootstrap/_print.scss +99 -0
  38. data/app/assets/stylesheets/bootstrap/_scaffolding.scss +160 -0
  39. data/app/assets/stylesheets/bootstrap/_tables.scss +234 -0
  40. data/app/assets/stylesheets/bootstrap/_theme.scss +224 -0
  41. data/app/assets/stylesheets/bootstrap/_type.scss +296 -0
  42. data/app/assets/stylesheets/bootstrap/_utilities.scss +55 -0
  43. data/app/assets/stylesheets/bootstrap/_variables.scss +638 -0
  44. data/app/assets/stylesheets/bootstrap/_wells.scss +29 -0
  45. data/app/assets/stylesheets/bootstrap/mixins/_alerts.scss +15 -0
  46. data/app/assets/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
  47. data/app/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  48. data/app/assets/stylesheets/bootstrap/mixins/_buttons.scss +56 -0
  49. data/app/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  50. data/app/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  51. data/app/assets/stylesheets/bootstrap/mixins/_forms.scss +82 -0
  52. data/app/assets/stylesheets/bootstrap/mixins/_gradients.scss +56 -0
  53. data/app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  54. data/app/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  55. data/app/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  56. data/app/assets/stylesheets/bootstrap/mixins/_image.scss +28 -0
  57. data/app/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  58. data/app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  59. data/app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  60. data/app/assets/stylesheets/bootstrap/mixins/_opacity.scss +7 -0
  61. data/app/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  62. data/app/assets/stylesheets/bootstrap/mixins/_panels.scss +20 -0
  63. data/app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  64. data/app/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  65. data/app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +17 -0
  66. data/app/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  67. data/app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  68. data/app/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  69. data/app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  70. data/app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  71. data/app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  72. data/app/assets/stylesheets/lightbox.css +3 -3
  73. data/app/assets/stylesheets/publify_admin.css.scss +0 -1
  74. data/app/controllers/accounts_controller.rb +2 -0
  75. data/app/controllers/admin/base_controller.rb +8 -16
  76. data/app/controllers/admin/content_controller.rb +38 -36
  77. data/app/controllers/admin/dashboard_controller.rb +16 -65
  78. data/app/controllers/admin/feedback_controller.rb +45 -37
  79. data/app/controllers/admin/notes_controller.rb +16 -10
  80. data/app/controllers/admin/pages_controller.rb +19 -29
  81. data/app/controllers/admin/post_types_controller.rb +7 -5
  82. data/app/controllers/admin/profiles_controller.rb +15 -5
  83. data/app/controllers/admin/redirects_controller.rb +9 -5
  84. data/app/controllers/admin/resources_controller.rb +7 -4
  85. data/app/controllers/admin/seo_controller.rb +12 -10
  86. data/app/controllers/admin/settings_controller.rb +7 -5
  87. data/app/controllers/admin/sidebar_controller.rb +6 -5
  88. data/app/controllers/admin/tags_controller.rb +6 -3
  89. data/app/controllers/admin/themes_controller.rb +10 -7
  90. data/app/controllers/admin/users_controller.rb +10 -7
  91. data/app/controllers/articles_controller.rb +49 -33
  92. data/app/controllers/authors_controller.rb +6 -3
  93. data/app/controllers/base_controller.rb +9 -11
  94. data/app/controllers/comments_controller.rb +13 -13
  95. data/app/controllers/content_controller.rb +4 -2
  96. data/app/controllers/feedback_controller.rb +4 -2
  97. data/app/controllers/notes_controller.rb +5 -3
  98. data/app/controllers/setup_controller.rb +15 -12
  99. data/app/controllers/tags_controller.rb +6 -4
  100. data/app/controllers/text_controller.rb +2 -4
  101. data/app/controllers/textfilter_controller.rb +2 -0
  102. data/app/controllers/theme_controller.rb +18 -13
  103. data/app/controllers/xml_controller.rb +2 -0
  104. data/app/helpers/admin/base_helper.rb +28 -29
  105. data/app/helpers/admin/feedback_helper.rb +34 -24
  106. data/app/helpers/articles_helper.rb +4 -2
  107. data/app/helpers/authors_helper.rb +7 -16
  108. data/app/helpers/base_helper.rb +56 -52
  109. data/app/helpers/blog_helper.rb +4 -2
  110. data/app/helpers/xml_helper.rb +3 -1
  111. data/app/jobs/application_job.rb +2 -0
  112. data/app/mailers/notification_mailer.rb +5 -3
  113. data/app/models/ability.rb +25 -23
  114. data/app/models/archives_sidebar.rb +14 -11
  115. data/app/models/article.rb +42 -42
  116. data/app/models/article/factory.rb +14 -6
  117. data/app/models/blog.rb +86 -75
  118. data/app/models/comment.rb +10 -11
  119. data/app/models/config_manager.rb +4 -2
  120. data/app/models/content.rb +37 -50
  121. data/app/models/content_base.rb +10 -4
  122. data/app/models/feedback.rb +21 -17
  123. data/app/models/meta_sidebar.rb +4 -3
  124. data/app/models/note.rb +26 -25
  125. data/app/models/page.rb +9 -8
  126. data/app/models/page_sidebar.rb +4 -2
  127. data/app/models/ping.rb +3 -1
  128. data/app/models/post_type.rb +3 -3
  129. data/app/models/redirect.rb +13 -7
  130. data/app/models/redirection.rb +3 -1
  131. data/app/models/resource.rb +5 -3
  132. data/app/models/search_sidebar.rb +4 -2
  133. data/app/models/sidebar.rb +11 -6
  134. data/app/models/static_sidebar.rb +14 -13
  135. data/app/models/tag.rb +15 -11
  136. data/app/models/tag_sidebar.rb +6 -3
  137. data/app/models/text_filter.rb +85 -11
  138. data/app/models/trackback.rb +7 -11
  139. data/app/models/trigger.rb +7 -4
  140. data/app/models/user.rb +44 -43
  141. data/app/services/title_builder.rb +52 -45
  142. data/app/uploaders/resource_uploader.rb +5 -3
  143. data/app/views/accounts/confirm.html.erb +3 -3
  144. data/app/views/admin/content/_article_list.html.erb +23 -8
  145. data/app/views/admin/content/_form.html.erb +71 -47
  146. data/app/views/admin/content/autosave.js.erb +2 -2
  147. data/app/views/admin/content/edit.html.erb +1 -1
  148. data/app/views/admin/content/index.html.erb +25 -15
  149. data/app/views/admin/content/new.html.erb +2 -2
  150. data/app/views/admin/dashboard/_comment.html.erb +5 -5
  151. data/app/views/admin/dashboard/_comments.html.erb +2 -2
  152. data/app/views/admin/dashboard/_drafts.html.erb +5 -5
  153. data/app/views/admin/dashboard/_overview.html.erb +7 -9
  154. data/app/views/admin/dashboard/_welcome.html.erb +11 -11
  155. data/app/views/admin/dashboard/index.html.erb +12 -7
  156. data/app/views/admin/feedback/_button.html.erb +6 -6
  157. data/app/views/admin/feedback/_feedback.html.erb +3 -3
  158. data/app/views/admin/feedback/_ham.html.erb +27 -9
  159. data/app/views/admin/feedback/_spam.html.erb +26 -16
  160. data/app/views/admin/feedback/article.html.erb +20 -21
  161. data/app/views/admin/feedback/edit.html.erb +14 -15
  162. data/app/views/admin/feedback/{ham.js → ham.js.erb} +0 -0
  163. data/app/views/admin/feedback/index.html.erb +25 -23
  164. data/app/views/admin/feedback/{spam.js → spam.js.erb} +0 -0
  165. data/app/views/admin/migrations/show.html.erb +10 -11
  166. data/app/views/admin/notes/_form.html.erb +13 -13
  167. data/app/views/admin/notes/_list.html.erb +19 -8
  168. data/app/views/admin/notes/_note.html.erb +12 -7
  169. data/app/views/admin/notes/edit.html.erb +6 -1
  170. data/app/views/admin/notes/index.html.erb +5 -1
  171. data/app/views/admin/notes/show.html.erb +2 -2
  172. data/app/views/admin/pages/_form.html.erb +86 -77
  173. data/app/views/admin/pages/_pages.html.erb +11 -4
  174. data/app/views/admin/pages/edit.html.erb +3 -1
  175. data/app/views/admin/pages/index.html.erb +10 -6
  176. data/app/views/admin/pages/new.html.erb +3 -1
  177. data/app/views/admin/post_types/_index_and_form.html.erb +15 -16
  178. data/app/views/admin/post_types/edit.html.erb +1 -1
  179. data/app/views/admin/post_types/index.html.erb +1 -1
  180. data/app/views/admin/profiles/index.html.erb +2 -3
  181. data/app/views/admin/redirects/_index_and_form.html.erb +10 -11
  182. data/app/views/admin/redirects/edit.html.erb +1 -1
  183. data/app/views/admin/redirects/index.html.erb +1 -1
  184. data/app/views/admin/resources/index.html.erb +19 -16
  185. data/app/views/admin/seo/_general.html.erb +23 -47
  186. data/app/views/admin/seo/_permalinks.html.erb +16 -16
  187. data/app/views/admin/seo/_titles.html.erb +63 -64
  188. data/app/views/admin/seo/show.html.erb +14 -19
  189. data/app/views/admin/settings/display.html.erb +22 -25
  190. data/app/views/admin/settings/feedback.html.erb +31 -32
  191. data/app/views/admin/settings/index.html.erb +23 -24
  192. data/app/views/admin/settings/write.html.erb +21 -22
  193. data/app/views/admin/shared/_edit.html.erb +3 -3
  194. data/app/views/admin/shared/_menu.html.erb +26 -26
  195. data/app/views/admin/shared/_twitter_alert.html.erb +1 -1
  196. data/app/views/admin/sidebar/_config.html.erb +5 -5
  197. data/app/views/admin/sidebar/_target_sidebar.html.erb +4 -4
  198. data/app/views/admin/sidebar/index.html.erb +7 -7
  199. data/app/views/admin/tags/_index_and_form.html.erb +11 -12
  200. data/app/views/admin/tags/edit.html.erb +1 -1
  201. data/app/views/admin/tags/index.html.erb +1 -1
  202. data/app/views/admin/themes/index.html.erb +5 -6
  203. data/app/views/admin/users/_form.html.erb +34 -34
  204. data/app/views/admin/users/edit.html.erb +2 -2
  205. data/app/views/admin/users/index.html.erb +10 -12
  206. data/app/views/admin/users/new.html.erb +2 -2
  207. data/app/views/archives_sidebar/_content.html.erb +2 -2
  208. data/app/views/articles/_archives_article.html.erb +3 -3
  209. data/app/views/articles/_article.html.erb +7 -9
  210. data/app/views/articles/_article_author.html.erb +4 -0
  211. data/app/views/articles/_article_content.html.erb +2 -2
  212. data/app/views/articles/_article_excerpt.html.erb +2 -2
  213. data/app/views/articles/_article_links.html.erb +1 -1
  214. data/app/views/articles/_comment_errors.html.erb +1 -1
  215. data/app/views/articles/_comment_form.html.erb +12 -12
  216. data/app/views/articles/_comment_preview.html.erb +3 -3
  217. data/app/views/articles/_password_form.html.erb +4 -4
  218. data/app/views/articles/_trackback.html.erb +2 -2
  219. data/app/views/articles/archives.html.erb +1 -1
  220. data/app/views/articles/feedback_atom_feed.atom.builder +3 -1
  221. data/app/views/articles/feedback_rss_feed.rss.builder +9 -8
  222. data/app/views/articles/index_atom_feed.atom.builder +5 -3
  223. data/app/views/articles/index_rss_feed.rss.builder +10 -9
  224. data/app/views/articles/live_search.html.erb +3 -3
  225. data/app/views/articles/read.html.erb +16 -8
  226. data/app/views/articles/search.html.erb +2 -2
  227. data/app/views/articles/trackback.xml.builder +3 -1
  228. data/app/views/articles/view_page.html.erb +2 -2
  229. data/app/views/authors/show.html.erb +9 -9
  230. data/app/views/authors/show_atom_feed.atom.builder +4 -2
  231. data/app/views/authors/show_rss_feed.rss.builder +10 -9
  232. data/app/views/comments/_comment.html.erb +3 -3
  233. data/app/views/devise/mailer/reset_password_instructions.html.erb +7 -9
  234. data/app/views/devise/passwords/edit.html.erb +4 -4
  235. data/app/views/devise/passwords/new.html.erb +1 -1
  236. data/app/views/devise/registrations/new.html.erb +5 -5
  237. data/app/views/devise/sessions/new.html.erb +3 -3
  238. data/app/views/errors/404.html.erb +2 -2
  239. data/app/views/feedback/index.atom.builder +3 -1
  240. data/app/views/feedback/index.rss.builder +9 -8
  241. data/app/views/layouts/accounts.html.erb +26 -26
  242. data/app/views/layouts/administration.html.erb +31 -31
  243. data/app/views/layouts/default.html.erb +4 -3
  244. data/app/views/layouts/editor.html.erb +5 -19
  245. data/app/views/meta_sidebar/_content.html.erb +2 -2
  246. data/app/views/notes/_note.html.erb +1 -1
  247. data/app/views/notes/index.html.erb +1 -1
  248. data/app/views/notes/show_in_reply.html.erb +1 -1
  249. data/app/views/notification_mailer/_mail_footer.html.erb +3 -3
  250. data/app/views/notification_mailer/article.html.erb +2 -2
  251. data/app/views/notification_mailer/comment.html.erb +5 -5
  252. data/app/views/notification_mailer/notif_user.html.erb +1 -1
  253. data/app/views/page_sidebar/_content.html.erb +1 -1
  254. data/app/views/search_sidebar/_content.html.erb +2 -2
  255. data/app/views/settings/install.html.erb +2 -2
  256. data/app/views/setup/index.html.erb +7 -7
  257. data/app/views/shared/_atom_header.atom.builder +4 -4
  258. data/app/views/shared/_atom_item_article.atom.builder +19 -29
  259. data/app/views/shared/_atom_item_comment.atom.builder +4 -2
  260. data/app/views/shared/_atom_item_trackback.atom.builder +4 -2
  261. data/app/views/shared/_google_analytics.html.erb +8 -0
  262. data/app/views/shared/_page_header.html.erb +9 -12
  263. data/app/views/shared/_rss_item_article.rss.builder +9 -7
  264. data/app/views/shared/_rss_item_comment.rss.builder +3 -1
  265. data/app/views/shared/_rss_item_trackback.rss.builder +3 -1
  266. data/app/views/sidebar/display_plugins.html.erb +1 -1
  267. data/app/views/tag_sidebar/_content.html.erb +1 -1
  268. data/app/views/tags/index.html.erb +1 -1
  269. data/app/views/xml/_googlesitemap_item_article.googlesitemap.builder +2 -0
  270. data/app/views/xml/_googlesitemap_item_category.googlesitemap.builder +2 -0
  271. data/app/views/xml/_googlesitemap_item_page.googlesitemap.builder +2 -0
  272. data/app/views/xml/_googlesitemap_item_tag.googlesitemap.builder +2 -0
  273. data/app/views/xml/sitemap.googlesitemap.builder +4 -2
  274. data/config/i18n-tasks.yml +0 -5
  275. data/config/initializers/devise.rb +10 -4
  276. data/config/initializers/mime_types.rb +3 -1
  277. data/config/locales/da.yml +134 -73
  278. data/config/locales/de.yml +142 -77
  279. data/config/locales/en.yml +128 -68
  280. data/config/locales/es-MX.yml +135 -71
  281. data/config/locales/fr.yml +167 -88
  282. data/config/locales/he.yml +128 -72
  283. data/config/locales/it.yml +136 -74
  284. data/config/locales/ja.yml +110 -66
  285. data/config/locales/lt.yml +153 -76
  286. data/config/locales/nb-NO.yml +123 -67
  287. data/config/locales/nl.yml +140 -77
  288. data/config/locales/pl.yml +329 -240
  289. data/config/locales/pt-BR.yml +137 -72
  290. data/config/locales/ro.yml +148 -72
  291. data/config/locales/ru.yml +161 -71
  292. data/config/locales/zh-CN.yml +106 -61
  293. data/config/locales/zh-TW.yml +109 -63
  294. data/config/routes.rb +68 -63
  295. data/db/migrate/113_initial_schema.rb +191 -191
  296. data/db/migrate/114_fixes_buggy_articles_and_notes.rb +10 -7
  297. data/db/migrate/115_drops_categories_for_tags.rb +5 -4
  298. data/db/migrate/20150207131657_add_missing_indexes.rb +2 -0
  299. data/db/migrate/20150807134129_simplify_redirect_relations.rb +5 -0
  300. data/db/migrate/20150808052637_add_blog_ids.rb +9 -3
  301. data/db/migrate/20150808191127_add_blog_id_to_redirects.rb +2 -0
  302. data/db/migrate/20150810094754_add_blog_id_to_tags.rb +2 -0
  303. data/db/migrate/20160108111120_add_devise_to_users.rb +4 -2
  304. data/db/migrate/20160108184201_move_last_connection_to_last_sign_in_at.rb +2 -0
  305. data/db/migrate/20160110094906_remove_profiles_rights.rb +2 -0
  306. data/db/migrate/20160605103918_replace_profile_id_with_string.rb +2 -0
  307. data/db/migrate/20160605154632_remove_profiles.rb +10 -5
  308. data/db/migrate/20160701061851_demand_blog_id_on_contents.rb +2 -0
  309. data/db/migrate/20160701062604_add_blog_id_to_resources.rb +2 -0
  310. data/db/migrate/20170528093024_move_resources_to_content.rb +2 -0
  311. data/db/migrate/20170528094923_move_tags_to_content.rb +2 -0
  312. data/db/migrate/20170528201606_remove_separate_published_flag.rb +2 -0
  313. data/db/migrate/20170605071626_remove_extra_state_columns_from_feedback.rb +2 -0
  314. data/db/migrate/20170702105201_remove_published_at_from_feedback.rb +2 -0
  315. data/db/migrate/20190208151235_add_text_filter_name_fields.rb +9 -0
  316. data/db/migrate/20190208152646_move_text_filter_to_name.rb +97 -0
  317. data/db/migrate/20190209155717_remove_text_filter_ids.rb +19 -0
  318. data/db/migrate/20190209160610_remove_text_filters.rb +17 -0
  319. data/db/migrate/20200413140440_add_unique_indexes.rb +10 -0
  320. data/db/seeds.rb +8 -20
  321. data/lib/email_notify.rb +3 -1
  322. data/lib/format.rb +4 -12
  323. data/lib/publify_core.rb +36 -35
  324. data/lib/publify_core/engine.rb +11 -4
  325. data/lib/publify_core/lang.rb +5 -1
  326. data/lib/publify_core/testing_support/dns_mock.rb +15 -0
  327. data/lib/publify_core/testing_support/factories.rb +240 -0
  328. data/lib/publify_core/testing_support/feed_assertions.rb +48 -0
  329. data/lib/publify_core/testing_support/fixtures/exploit.svg +4 -0
  330. data/lib/publify_core/testing_support/fixtures/fakepng.png +1 -0
  331. data/lib/publify_core/testing_support/fixtures/otherfile.txt +1 -0
  332. data/lib/publify_core/testing_support/fixtures/testfile.png +0 -0
  333. data/lib/publify_core/testing_support/fixtures/testfile.txt +1 -0
  334. data/lib/publify_core/testing_support/upload_fixtures.rb +15 -0
  335. data/lib/publify_core/version.rb +3 -1
  336. data/lib/publify_guid.rb +3 -1
  337. data/lib/publify_plugins.rb +10 -5
  338. data/lib/publify_textfilter_markdown.rb +38 -25
  339. data/lib/publify_textfilter_none.rb +5 -3
  340. data/lib/publify_textfilter_smartypants.rb +5 -3
  341. data/lib/publify_textfilter_textile.rb +7 -4
  342. data/lib/publify_textfilter_twitterfilter.rb +13 -7
  343. data/lib/publify_time.rb +4 -0
  344. data/lib/sidebar_field.rb +15 -13
  345. data/lib/sidebar_registry.rb +5 -3
  346. data/lib/spam_protection.rb +19 -17
  347. data/lib/tasks/i18n.rake +9 -0
  348. data/lib/tasks/manifest.rake +30 -0
  349. data/lib/tasks/publify_core_tasks.rake +2 -0
  350. data/lib/text_filter_plugin.rb +30 -29
  351. data/lib/theme.rb +5 -5
  352. data/lib/transforms.rb +21 -20
  353. data/themes/plain/javascripts/theme.js +0 -0
  354. metadata +247 -109
  355. data/app/assets/javascripts/widearea.js +0 -486
  356. data/app/assets/stylesheets/widearea.css +0 -133
  357. data/app/controllers/admin/textfilters_controller.rb +0 -6
  358. data/app/views/admin/dashboard/_inbound.html.erb +0 -31
  359. data/app/views/admin/notes/_header.html.erb +0 -6
  360. data/app/views/articles/_protected_article_content.html.erb +0 -6
@@ -1,17 +1,17 @@
1
- <%= form_tag :action=> 'index' do %>
1
+ <%= form_tag action: 'index' do %>
2
2
  <div class='alert alert-info'>
3
- <small><%= t(".welcome_to_your_blog_setup", publify: link_to("Publify", 'http://publify.co'))%></small>
3
+ <small><%= t('.welcome_to_your_blog_setup', publify: link_to('Publify', 'https://publify.github.io/')) %></small>
4
4
  </div>
5
5
  <div class='form-group'>
6
- <%= text_field(:setting, :blog_name, { :class=> 'form-control', :placeholder => t(".blog_name")})%>
6
+ <%= text_field(:setting, :blog_name, class: 'form-control', placeholder: t('.blog_name')) %>
7
7
  </div>
8
8
  <div class='form-group'>
9
- <%= text_field(:setting, :email, { :class=> 'form-control', :placeholder => t(".your_mail")})%>
9
+ <%= text_field(:setting, :email, class: 'form-control', placeholder: t('.your_mail')) %>
10
10
  </div>
11
11
  <div class='form-group'>
12
- <%= label_tag :setting_password, t('.password') %><br>
13
- <%= password_field(:setting, :password, { :class=> 'form-control' })%>
12
+ <%= label_tag :setting_password, t('.password') %><br />
13
+ <%= password_field(:setting, :password, class: 'form-control') %>
14
14
  </div>
15
15
 
16
- <input type="submit" id="submit" class='btn btn-lg btn-success btn-block' value="<%= t('generic.save')%>">
16
+ <input type="submit" id="submit" class='btn btn-lg btn-success btn-block' value="<%= t('generic.save') %>" />
17
17
  <% end %>
@@ -1,6 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  feed.title(feed_title)
2
- if this_blog.blog_subtitle.present?
3
- feed.subtitle(this_blog.blog_subtitle, 'type' => 'html')
4
- end
4
+ feed.subtitle(this_blog.blog_subtitle, "type" => "html") if this_blog.blog_subtitle.present?
5
5
  feed.updated items.first.updated_at if items.first
6
- feed.generator 'Publify', uri: 'http://www.publify.co', version: PublifyCore::VERSION
6
+ feed.generator "Publify", uri: "https://publify.github.io", version: PublifyCore::VERSION
@@ -1,46 +1,36 @@
1
- feed.entry item, id: "urn:uuid:#{item.guid}", published: item.published_at, url: item.permalink_url do |entry|
1
+ # frozen_string_literal: true
2
+
3
+ feed.entry(item, id: "urn:uuid:#{item.guid}", published: item.published_at,
4
+ url: item.permalink_url) do |entry|
2
5
  entry.author do
3
- name = begin
4
- item.user.name
5
- rescue
6
- item.author
7
- end
8
- email = begin
9
- item.user.email
10
- rescue
11
- nil
12
- end
13
- entry.name name
14
- entry.email email unless email.blank? || !this_blog.link_to_author
6
+ entry.name item.author_name
15
7
  end
16
8
 
17
9
  if item.is_a?(Note)
18
- entry.title truncate(item.html(:body).strip_html, length: 80, separator: ' ', omissions: '...'), 'type' => 'html'
10
+ truncated_body = truncate(item.html(:body).strip_html,
11
+ length: 80, separator: " ", omissions: "...")
12
+ entry.title truncated_body, "type" => "html"
19
13
  else
20
- entry.title item.title, 'type' => 'html'
14
+ entry.title item.title, "type" => "html"
21
15
  end
22
16
 
23
17
  if item.is_a?(Article)
24
18
 
25
19
  item.tags.each do |tag|
26
- entry.category 'term' => tag.display_name, 'scheme' => tag_url(tag.permalink)
20
+ entry.category "term" => tag.display_name, "scheme" => tag_url(tag.permalink)
27
21
  end
28
22
 
23
+ # TODO: Add tests for this
29
24
  item.resources.each do |resource|
30
- if resource.size > 0 # The Atom spec disallows files with size=0
31
- entry.tag! :link, 'rel' => 'enclosure',
32
- type: resource.mime,
33
- title: item.title,
34
- href: this_blog.file_url(resource.upload_url),
35
- length: resource.size
36
- else
37
- entry.tag! :link, 'rel' => 'enclosure',
38
- type: resource.mime,
39
- title: item.title,
40
- href: this_blog.file_url(resource.upload_url)
41
- end
25
+ link_options = { rel: "enclosure",
26
+ type: resource.mime,
27
+ title: item.title,
28
+ href: this_blog.file_url(resource.upload_url) }
29
+ # The Atom spec disallows files with size=0
30
+ link_options[:length] = resource.size if resource.size > 0
31
+ entry.tag! :link, link_options
42
32
  end
43
33
  end
44
34
  content_html = fetch_html_content_for_feeds(item, this_blog)
45
- entry.content content_html + item.get_rss_description, 'type' => 'html'
35
+ entry.content content_html + item.rss_description, "type" => "html"
46
36
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  feed.entry item, id: "urn:uuid:#{item.guid}", url: item.permalink_url do |entry|
2
4
  entry.author do
3
5
  entry.name item.author
4
6
  entry.uri item.url
5
7
  end
6
- entry.title item.feed_title, 'type' => 'html'
7
- entry.content html(item), 'type' => 'html'
8
+ entry.title item.feed_title, "type" => "html"
9
+ entry.content html(item), "type" => "html"
8
10
  end
@@ -1,8 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  feed.entry item, id: "urn:uuid:#{item.guid}", url: item.permalink_url do |entry|
2
4
  entry.author do
3
5
  entry.name item.blog_name
4
6
  entry.uri item.url
5
7
  end
6
- entry.title item.feed_title, 'type' => 'html'
7
- entry.summary item.excerpt, 'type' => 'html'
8
+ entry.title item.feed_title, "type" => "html"
9
+ entry.summary item.excerpt, "type" => "html"
8
10
  end
@@ -0,0 +1,8 @@
1
+ <script type="text/javascript">
2
+ var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
3
+ document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
4
+ </script>
5
+ <script type="text/javascript">
6
+ var pageTracker = _gat._getTracker("<%= this_blog.google_analytics %>");
7
+ pageTracker._trackPageview();
8
+ </script>
@@ -1,26 +1,23 @@
1
- <meta http-equiv="content-type" content="text/html; charset=utf-8">
1
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
2
2
  <%= meta_tag 'ICBM', this_blog.geourl_location if this_blog.geourl_location.present? %>
3
- <%= meta_tag 'description', @description unless @description.blank? %>
3
+ <%= meta_tag 'description', @description if @description.present? %>
4
4
  <%= meta_tag 'robots', 'noindex, follow' if stop_index_robots?(this_blog) %>
5
- <%= meta_tag 'google-site-verification', this_blog.google_verification unless this_blog.google_verification.blank?%>
6
- <meta name="generator" content="Publify <%=PublifyCore::VERSION%>">
5
+ <%= meta_tag 'google-site-verification', this_blog.google_verification if this_blog.google_verification.present? %>
6
+ <meta name="generator" content="Publify <%= PublifyCore::VERSION %>" />
7
7
  <%= show_meta_keyword %>
8
8
  <% if feed_atom %>
9
- <link rel="alternate" type="application/atom+xml" title="Atom" href="<%= feed_atom %>">
9
+ <link rel="alternate" type="application/atom+xml" title="Atom" href="<%= feed_atom %>" />
10
10
  <% end %>
11
11
  <% if feed_rss %>
12
- <link rel="alternate" type="application/rss+xml" title="RSS" href="<%= feed_rss %>">
12
+ <link rel="alternate" type="application/rss+xml" title="RSS" href="<%= feed_rss %>" />
13
13
  <% end %>
14
14
  <%= javascript_include_tag :publify, async: Rails.env.production? %>
15
15
  <%= csrf_meta_tags %>
16
16
  <%= stylesheet_link_tag :publify %>
17
17
  <%= page_header_includes %>
18
- <% if this_blog.use_canonical_url %>
19
- <link rel="canonical" href="<%= this_blog.base_url + request.fullpath %>" />
20
- <% end %>
21
- <%= raw this_blog.custom_tracking_field unless this_blog.custom_tracking_field.blank? %>
22
- <%= google_analytics %>
18
+ <link rel="canonical" href="<%= this_blog.url_for request.fullpath %>" />
19
+ <%= raw this_blog.custom_tracking_field if this_blog.custom_tracking_field.present? %>
20
+ <%= render 'shared/google_analytics' if this_blog.google_analytics.present? %>
23
21
 
24
22
  <%= meta_tag 'og:site_name', this_blog.blog_name %>
25
23
  <%= meta_tag 'og:title', @article ? @article.title : @page_title %>
26
- <link ref='author' href="humans.txt">
@@ -1,17 +1,20 @@
1
+ # frozen_string_literal: true
2
+
1
3
  xm.item do
2
4
  if item.is_a?(Note)
3
- xm.title truncate(item.html(:body).strip_html, length: 80, separator: ' ', omissions: '...')
5
+ xm.title truncate(item.html(:body).strip_html, length: 80, separator: " ",
6
+ omissions: "...")
4
7
  else
5
8
  xm.title item.title
6
9
  end
7
10
  content_html = fetch_html_content_for_feeds(item, this_blog)
8
- xm.description content_html + item.get_rss_description
11
+ xm.description content_html + item.rss_description
9
12
  xm.pubDate item.published_at.rfc822
10
- xm.guid "urn:uuid:#{item.guid}", 'isPermaLink' => 'false'
11
- xm.author "#{item.user.email} (#{item.user.name})" if item.link_to_author?
13
+ xm.guid "urn:uuid:#{item.guid}", "isPermaLink" => "false"
14
+ xm.dc :creator, item.author_name
12
15
 
13
16
  if item.is_a?(Article)
14
- xm.comments(item.permalink_url('comments'))
17
+ xm.comments(item.permalink_url("comments"))
15
18
  item.tags.each do |tag|
16
19
  xm.category tag.display_name
17
20
  end
@@ -21,8 +24,7 @@ xm.item do
21
24
  xm.enclosure(
22
25
  url: item.blog.file_url(resource.upload_url),
23
26
  length: resource.size,
24
- type: resource.mime
25
- )
27
+ type: resource.mime)
26
28
  end
27
29
  end
28
30
 
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  feed.item do
2
4
  feed.title item.feed_title
3
5
  feed.description html(item)
4
6
  feed.pubDate item.created_at.rfc822
5
- feed.guid "urn:uuid:#{item.guid}", 'isPermaLink' => 'false'
7
+ feed.guid "urn:uuid:#{item.guid}", "isPermaLink" => "false"
6
8
  feed.link item.permalink_url
7
9
  end
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  feed.item do
2
4
  feed.title item.feed_title
3
5
  feed.description item.excerpt
4
6
  feed.pubDate item.created_at.rfc822
5
- feed.guid "urn:uuid:#{item.guid}", 'isPermaLink' => 'false'
7
+ feed.guid "urn:uuid:#{item.guid}", "isPermaLink" => "false"
6
8
  feed.link item.url
7
9
  end
@@ -1,4 +1,4 @@
1
- <% benchmark "BENCHMARK: display_plugins" do %>
1
+ <% benchmark 'BENCHMARK: display_plugins' do %>
2
2
  <% @sidebars.each do |sidebar| %>
3
3
  <%= render sidebar %>
4
4
  <% end %>
@@ -1,5 +1,5 @@
1
1
  <% unless sidebar.tags.blank? %>
2
- <h3 class="sidebar-title"><%= t(".tags")%></h3>
2
+ <h3 class="sidebar-title"><%= t('.tags') %></h3>
3
3
  <div class="sidebar-body">
4
4
  <p style="overflow:hidden">
5
5
  <% sidebar.tags.each do |tag| %>
@@ -9,7 +9,7 @@
9
9
  <% end %>
10
10
  </ul>
11
11
  <% else %>
12
- <p><%= t(".there_are_no_tags") %></p>
12
+ <p><%= t('.there_are_no_tags') %></p>
13
13
  <% end %>
14
14
  </div>
15
15
  <p><%= paginate @tags %></p>
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  xm.url do
2
4
  xm.loc item.permalink_url
3
5
  xm.lastmod item.updated_at.xmlschema
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  xm.url do
2
4
  xm.loc item.permalink_url
3
5
  xm.lastmod collection_lastmod(item)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  xm.url do
2
4
  xm.loc item.permalink_url
3
5
  xm.lastmod item.updated_at.xmlschema
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  xm.url do
2
4
  xm.loc item.permalink_url
3
5
  xm.lastmod collection_lastmod(item)
@@ -1,5 +1,7 @@
1
- xml.instruct! :xml, version: '1.0', encoding: 'UTF-8'
2
- xml.urlset 'xmlns' => 'http://www.google.com/schemas/sitemap/0.84' do
1
+ # frozen_string_literal: true
2
+
3
+ xml.instruct! :xml, version: "1.0", encoding: "UTF-8"
4
+ xml.urlset "xmlns" => "http://www.google.com/schemas/sitemap/0.84" do
3
5
  @items.each do |item|
4
6
  render "googlesitemap_item_#{item.class.name.to_s.downcase}",
5
7
  item: item, xm: xml
@@ -17,11 +17,6 @@ data:
17
17
  - ['*_sidebar.*', 'config/locales/sidebars.%{locale}.yml']
18
18
  - config/locales/%{locale}.yml
19
19
 
20
- yaml:
21
- write:
22
- # do not wrap lines at 80 characters
23
- line_width: -1
24
-
25
20
  # Find translate calls
26
21
  search:
27
22
  ## Paths or `File.find` patterns to search in:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Use this hook to configure devise mailer, warden hooks and so forth.
2
4
  # Many of these configuration options can be set straight in your model.
3
5
  Devise.setup do |config|
@@ -6,13 +8,15 @@ Devise.setup do |config|
6
8
  # confirmation, reset password and unlock tokens in the database.
7
9
  # Devise will use the `secret_key_base` on Rails 4+ applications as its `secret_key`
8
10
  # by default. You can change it below and use your own secret key.
9
- # config.secret_key = '99a1fd068906f7a32686e001fff91fdfb88703303de85657ab63ad5405ae7c3b215c144c0dd4eaf2e68f3e3dae8c43e132968dd0b32e4c78ac1e86b202e3c6ee'
11
+ # config.secret_key =
12
+ # '99a1fd068906f7a32686e001fff91fdfb88703303de85657ab63ad5405ae7c3b' \
13
+ # '215c144c0dd4eaf2e68f3e3dae8c43e132968dd0b32e4c78ac1e86b202e3c6ee'
10
14
 
11
15
  # ==> Mailer Configuration
12
16
  # Configure the e-mail address which will be shown in Devise::Mailer,
13
17
  # note that it will be overwritten if you use your own mailer class
14
18
  # with default "from" parameter.
15
- config.mailer_sender = 'default@publify.co'
19
+ config.mailer_sender = "change-me@example.com"
16
20
 
17
21
  # Configure the class responsible to send e-mails.
18
22
  # config.mailer = 'Devise::Mailer'
@@ -21,7 +25,7 @@ Devise.setup do |config|
21
25
  # Load and configure the ORM. Supports :active_record (default) and
22
26
  # :mongoid (bson_ext recommended) by default. Other ORMs may be
23
27
  # available as additional gems.
24
- require 'devise/orm/active_record'
28
+ require "devise/orm/active_record"
25
29
 
26
30
  # ==> Configuration for any authentication mechanism
27
31
  # Configure which keys are used when authenticating a user. The default is
@@ -99,7 +103,9 @@ Devise.setup do |config|
99
103
  config.stretches = Rails.env.test? ? 1 : 10
100
104
 
101
105
  # Setup a pepper to generate the encrypted password.
102
- # config.pepper = 'cd666dfd37982f9981838aa0bc32a04099d309a831dffcf64c3ec1814e9ae9ad4fde148638675ee2443b5c532222ff007c032e76fc0eec24c5fb4fccfd3546a3'
106
+ # config.pepper =
107
+ # 'cd666dfd37982f9981838aa0bc32a04099d309a831dffcf64c3ec1814e9ae9ad' \
108
+ # '4fde148638675ee2443b5c532222ff007c032e76fc0eec24c5fb4fccfd3546a3'
103
109
 
104
110
  # Send a notification email when the user's password is changed
105
111
  # config.send_password_change_notification = false
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Add new mime types for use in respond_to blocks:
4
6
  # Mime::Type.register "text/richtext", :rtf
5
- Mime::Type.register_alias "application/xml", :googlesitemap
7
+ Mime::Type.register_alias "application/xml", :googlesitemap
@@ -5,7 +5,8 @@ da:
5
5
  back_to_login: Back to login
6
6
  confirm:
7
7
  admin: admin
8
- dont_lose_the_mail_sent: Don't lose the mail sent at %{email} or you won't be able to login anymore
8
+ dont_lose_the_mail_sent: Don't lose the mail sent at %{email} or you won't be
9
+ able to login anymore
9
10
  login: Brugernavn %{login}
10
11
  proceed_to: Proceed to %{link}
11
12
  success: You have successfully signed up.
@@ -29,6 +30,7 @@ da:
29
30
  access_granted:
30
31
  error: Error, you are not allowed to perform this action
31
32
  article_list:
33
+ feedback: Diskussion
32
34
  no_articles: There are no articles yet. Why don't you start and create one?
33
35
  autosave:
34
36
  success: Article was successfully saved
@@ -37,9 +39,10 @@ da:
37
39
  form:
38
40
  allow_comments: Tillad kommentarer
39
41
  allow_comments_status:
40
- one: aktiveret
41
- zero: disabled
42
+ disabled: disabled
43
+ enabled: aktiveret
42
44
  allowed_comments_html: Comments are %{allow_comment}
45
+ article_filter: Artikelfilter
43
46
  article_type: Article type
44
47
  cancel: Anuller
45
48
  default: Default
@@ -57,20 +60,28 @@ da:
57
60
  save_as_draft: Save as draft
58
61
  status: Status
59
62
  tags: Tags
60
- tags_explanation_html: Separate tags with commas. Use double quotes (&quot;) around multi-word tags, e.g. &quot;opera house&quot;.
63
+ tags_explanation_html: Separate tags with commas. Use double quotes (&quot;)
64
+ around multi-word tags, e.g. &quot;opera house&quot;.
61
65
  title: Titel
62
66
  type_your_post: Type your post
63
67
  visibility: Visibility
64
68
  index:
69
+ actions: Actions
65
70
  all_articles: All articles
71
+ author: Forfatter
72
+ created_at: Created at
66
73
  drafts: Kladder
74
+ feedback: Diskussion
67
75
  manage_articles: Administrer artikler
68
76
  new_article: Ny Artikel
69
77
  publication_date: Publication date
70
78
  publication_pending: Publication pending
71
79
  published: Offentliggjort
80
+ published_at: Publication date
72
81
  search: Search
73
82
  select_an_author: Select an author
83
+ text_filter: Text filter
84
+ title: Titel
74
85
  withdrawn: Withdrawn
75
86
  update:
76
87
  success: Article was successfully updated
@@ -83,35 +94,31 @@ da:
83
94
  drafts:
84
95
  no_drafts_yet: No drafts yet, why don't you start and write one
85
96
  your_drafts: Your drafts
86
- inbound:
87
- at: at
88
- at_an_unknown_date: at an unknown date
89
- inbound_links: Indkomne links
90
- made_a_link_to_you_on: " har lavet et link til dig, og skrevet "
91
- no_one_made_link_to_you_yet: Der er endnu ingen der har linket til dig
92
- you_have_no_internet_connection: Du har ingen internet forbindelse
93
97
  index:
98
+ textile_deprecated_html: The Textile text filter has been deprecated and will
99
+ be removed soon. Some of your content still uses this filter. Run the <code>publify:textile_to_markdown</code>
100
+ rake task to convert it to Markdown, or convert your content manually.
94
101
  welcome_back: Velkommen tilbage, %{user_name}!
95
102
  overview:
96
103
  change_your_blog_presentation: ændre din blogs udseende
97
- customization_explain_html: Du kan også tilpasse designet, %{theme_link} eller %{sidebar_link}.
98
- dashboard_explain_html: Dette sted giver dig en hurtig oversigt over, hvad der sker på din Publify blog, og hvad du kan gøre. Måske du ønsker at %{available_actions}.
104
+ customization_explain_html: Du kan også tilpasse designet, %{theme_link} eller
105
+ %{sidebar_link}.
106
+ dashboard_explain_html: Dette sted giver dig en hurtig oversigt over, hvad
107
+ der sker på din Publify blog, og hvad du kan gøre. Måske du ønsker at %{available_actions}.
99
108
  enable_plugins: tilføje plugins
100
109
  help_explain_html: If you need help, %{doc_link}.
101
110
  read_our_documentation: read our documentation
102
- update_your_profile_or_change_your_password: opdatere din profil eller rette dit kodeord
111
+ update_your_profile_or_change_your_password: opdatere din profil eller rette
112
+ dit kodeord
103
113
  write_a_page: skrive en side
104
114
  write_a_post: skrive en artikel
105
- publify_version:
106
- error: You are at least one major version of Publify out of date. You should upgrade immediately. Download and install <a href='http://publify.co/stable.tgz'>the latest Publify version</a>
107
- notice: There's a new version of Publify available. Why don't you upgrade to <a href='http://publify.co/stable.tgz'>the latest Publify version</a>?
108
- warning: There's a new version of Publify available which may contain important bug fixes. Why don't you upgrade to <a href='http://publify.co/stable.tgz'>the latest Publify version</a>?
109
115
  welcome:
110
116
  approved_count:
111
117
  one: 1 approved
112
118
  other: "%{count} approved"
113
119
  zero: no approved
114
- articles_and_comments_count_since: "%{articles_count} articles and %{comments_count} comments were posted since your last connexion"
120
+ articles_and_comments_count_since: "%{articles_count} articles and %{comments_count}
121
+ comments were posted since your last connexion"
115
122
  articles_count:
116
123
  one: 1 artikel
117
124
  other: "%{count} artikler"
@@ -186,7 +193,7 @@ da:
186
193
  success: Deleted
187
194
  edit:
188
195
  action_or_other_html: "%{first_action} eller %{second_action}"
189
- author: Author
196
+ author: Forfatter
190
197
  cancel: Cancel
191
198
  comments_for_html: Comments for %{article_link}
192
199
  edit_a_comment: Edit a comment
@@ -194,11 +201,12 @@ da:
194
201
  save: Gem
195
202
  url: Url
196
203
  your_comment: Your comment
197
- ham:
198
- by: by
199
- created_on: 'on'
200
204
  index:
205
+ actions: Actions
201
206
  all: All
207
+ author: Forfatter
208
+ content: Indhold
209
+ created_at: Created at
202
210
  feedback: Diskussion
203
211
  ham: Ham
204
212
  no_feedback: There is no feedback yet. Why don't you create some?
@@ -206,12 +214,8 @@ da:
206
214
  presumed_spam: Presumed spam
207
215
  select_all: Select all
208
216
  spam: Spam
217
+ status: Status
209
218
  unapproved_comments: Unapproved comments
210
- spam:
211
- by: by
212
- cancel: Anuller
213
- created_on: 'on'
214
- this_comment_by_was_flagged_as_spam_html: This comment by %{author} was flagged as spam, %{cancel_link}?
215
219
  state:
216
220
  ham: Ham
217
221
  just_marked_as_ham: Just Marked As Ham
@@ -237,6 +241,8 @@ da:
237
241
  update_database_now: Updatér database nu
238
242
  you_are_up_to_date: Du er up to date!
239
243
  notes:
244
+ edit:
245
+ notes: Notes
240
246
  form:
241
247
  cancel: Anuller
242
248
  compose_new_note: Compose new note
@@ -250,8 +256,14 @@ da:
250
256
  publish_at: Offentliggjort den
251
257
  publish_settings: Publish settings
252
258
  tweet_id_like: Tweet id like 123456
253
- header:
259
+ index:
254
260
  notes: Notes
261
+ list:
262
+ actions: Actions
263
+ author: Forfatter
264
+ created_at: Created at
265
+ text_filter: Text filter
266
+ title: Titel
255
267
  show:
256
268
  action_or_other_html: "%{first_action} eller %{second_action}"
257
269
  are_you_sure: Are you sure you want to delete this note
@@ -264,20 +276,21 @@ da:
264
276
  form:
265
277
  article_filter: Artikelfilter
266
278
  cancel: Anuller
267
- offline: offline
268
279
  online: Online
269
280
  permanent_link: Permanent link
270
281
  publish: Udgiv
271
282
  publish_settings: Publish settings
272
- published: published
273
283
  save: Gem
274
284
  status: Status
275
285
  title: Titel
276
286
  type_your_post: Type your post
277
287
  index:
288
+ actions: Actions
278
289
  author: Forfatter
290
+ created_at: Created at
279
291
  manage_pages: Administrer sider
280
292
  new_page: ny Side
293
+ text_filter: Text filter
281
294
  title: Titel
282
295
  new:
283
296
  success: New page created
@@ -288,7 +301,9 @@ da:
288
301
  cancel: Anuller
289
302
  default: Default
290
303
  description: Beskrivelse
291
- explain: The template name is the filename Publify will look for when calling an article of that type. It should be in your theme under views/articles/template name.html.erb
304
+ explain: The template name is the filename Publify will look for when calling
305
+ an article of that type. It should be in your theme under views/articles/template
306
+ name.html.erb
292
307
  name: Navn
293
308
  or: or
294
309
  post_types: Post Types
@@ -318,7 +333,7 @@ da:
318
333
  are_you_sure: Are you sure?
319
334
  content_type: Indholdstype (Content Type)
320
335
  date: Dato
321
- delete: Delete
336
+ delete: Slet
322
337
  file_size: Filstørrelse
323
338
  filename: Filnavn
324
339
  media_library: Media Library
@@ -334,42 +349,47 @@ da:
334
349
  warning: No file selected
335
350
  seo:
336
351
  general:
337
- canonical_url: Canonical Url
338
352
  custom_tracking_code: Custom tracking code
339
353
  do_not_index_tags: Do not index tags
340
354
  dofollow: Dofollow
341
- explain: Here you can add anything you want to appear in your application header, such as analytics service tracking code.
342
- explain_humans_txt: It's an initiative for knowing the people behind a website. It's a TXT file that contains information about the different people who have contributed to building the website. http://humanstxt.org/
343
- explain_moderate_feedback: You may want to moderate feedback when turning this on
344
- explain_rss_description: 'You can use the following tags: %author% (author name), %blog_url% (this blog URL), %blog_name% (this blog title) and %permalink_url% (a link to the article you want to protect)'
345
- explain_tag_index_html: Checking this box will add <code>noindex, follow</code> meta tags in every tags page, removing them from search engines and preventing duplicate content issues
355
+ explain: Here you can add anything you want to appear in your application
356
+ header, such as analytics service tracking code.
357
+ explain_moderate_feedback: You may want to moderate feedback when turning
358
+ this on
359
+ explain_rss_description: 'You can use the following tags: %author% (author
360
+ name), %blog_url% (this blog URL), %blog_name% (this blog title) and %permalink_url%
361
+ (a link to the article you want to protect)'
362
+ explain_tag_index_html: Checking this box will add <code>noindex, follow</code>
363
+ meta tags in every tags page, removing them from search engines and preventing
364
+ duplicate content issues
346
365
  general_settings: Generelle indstillinger
347
366
  google: Google
348
367
  google_analytics: Google Analytics
349
- google_webmaster_tools_validation_link: Google Webmaster Tools validation link
350
- human: Human
351
- humans_txt: Human
368
+ google_webmaster_tools_validation_link: Google Webmaster Tools validation
369
+ link
352
370
  indexing: Indexing
353
371
  meta_description: Meta description
354
372
  meta_keywords: Meta keywords
355
- read_more_about_html: Read more about %{link}
356
373
  robots_txt: Robots.txt
357
374
  rss_description_message: RSS description message
358
- this_will_display: This will display at the bottom of each post in the RSS feed
359
- use_canonical_url: Use canonical URL
375
+ this_will_display: This will display at the bottom of each post in the RSS
376
+ feed
360
377
  use_dofollow_in_comments: Use dofollow in comments
361
378
  use_meta_keywords: Use meta keywords
362
379
  use_rss_description: Use RSS description
363
380
  permalinks:
364
381
  custom: Custom
365
382
  date_and_title: Date and title
366
- explain: Publify offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links.
383
+ explain: Publify offers you the ability to create a custom URL structure for
384
+ your permalinks and archives. This can improve the aesthetics, usability,
385
+ and forward-compatibility of your links.
367
386
  help_on_permalink_settings: Help on permalink settings
368
387
  month_and_title: Month and title
369
388
  permalink_format: Permalink format
370
389
  sample: Here are some examples to get you started.
371
390
  title_only: Title only
372
- you_can_custom_your_url_structure: 'You can customize your URL structure using the following tags:'
391
+ you_can_custom_your_url_structure: 'You can customize your URL structure using
392
+ the following tags:'
373
393
  your_article_day: your article day of publication.
374
394
  your_article_month: your article month of publication.
375
395
  your_article_slug_html: your article slug. <strong>Using this slug is mandatory</strong>.
@@ -392,30 +412,35 @@ da:
392
412
  paginated_archives: Paginated archives
393
413
  replaced_by_the_archive_date: Replaced by the archive date
394
414
  replaced_by_the_content_body: Replaced by the content body
395
- replaced_with_the_article_categories: Replaced with the article categories (comma separated)
415
+ replaced_with_the_article_categories: Replaced with the article categories
416
+ (comma separated)
396
417
  replaced_with_the_article_page_title: Replaced with the article/page title
397
418
  replaced_with_the_article_tags: Replaced with the article tags (comma separated)
398
419
  replaced_with_the_category_tag_name: Replaced with the category/tag name
399
420
  replaced_with_the_current_date: Replaced with the current date
400
421
  replaced_with_the_current_month: Replaced with the current month
401
422
  replaced_with_the_current_page_number: Replaced with the current page number
402
- replaced_with_the_current_search_phrase: Replaced with the current search phrase
423
+ replaced_with_the_current_search_phrase: Replaced with the current search
424
+ phrase
403
425
  replaced_with_the_current_time: Replaced with the current time
404
426
  replaced_with_the_current_year: Replaced with the current year
405
427
  replaced_with_the_post_page_excerpt: Replaced with the post/page excerpt
406
- replaced_with_the_title_of_the_article_page: Replaced with the title of the article/page
428
+ replaced_with_the_title_of_the_article_page: Replaced with the title of the
429
+ article/page
407
430
  search_results: Search results
408
431
  short_statuses: Short statuses
409
432
  short_statuses_lists: Short statuses lists
410
433
  the_blog_s_name: The blog's name
411
434
  the_blog_s_tagline_description: The blog's tagline / description
412
- these_tags_can_be_included: These tags can be included in your templates and will be replaced when displaying the page.
435
+ these_tags_can_be_included: These tags can be included in your templates and
436
+ will be replaced when displaying the page.
413
437
  title_template: Title template
414
438
  settings:
415
439
  display:
416
440
  cancel: Anuller
417
441
  custom_url: Custom URL shortener domain
418
- custom_url_help: If you have a custom domain for URL shortening, enter it here.
442
+ custom_url_help: If you have a custom domain for URL shortening, enter it
443
+ here.
419
444
  date_format: Date format
420
445
  default_archives_show: articles on the archives page
421
446
  default_article_show: articles on the homepage
@@ -444,16 +469,24 @@ da:
444
469
  enable_feedback_moderation: Aktiver feedback moderation
445
470
  enable_recaptcha: Enable reCaptcha
446
471
  enable_spam_protection: Aktiver spam beskyttelse
447
- explain_feedback_moderation: Du kan slå feedback moderation til for hele bloggen. Hvis du gør dette kommer kommentarer først frem når du har godkendt dem
448
- explain_reject_comments: Publify will automatically reject comments which contain over a certain amount of links in them
449
- explain_spam_protection: Enabling spam protection will make publify compare the IP address of posters as well as the contents of their posts against local and remote blacklists. Good defense against spam bots
450
- explain_spamfiltering_html: Publify can (optionally) use the <a href='http://akismet.com'>Akismet</a> spam-filtering service. You need to register with Akismet and receive an API key before you can use their service. If you have an Akismet key, enter it here
451
- feedback: Feedback
472
+ explain_feedback_moderation: Du kan slå feedback moderation til for hele bloggen.
473
+ Hvis du gør dette kommer kommentarer først frem når du har godkendt dem
474
+ explain_reject_comments: Publify will automatically reject comments which
475
+ contain over a certain amount of links in them
476
+ explain_spam_protection: Enabling spam protection will make publify compare
477
+ the IP address of posters as well as the contents of their posts against
478
+ local and remote blacklists. Good defense against spam bots
479
+ explain_spamfiltering_html: Publify can (optionally) use the <a href='http://akismet.com'>Akismet</a>
480
+ spam-filtering service. You need to register with Akismet and receive an
481
+ API key before you can use their service. If you have an Akismet key, enter
482
+ it here
483
+ feedback: Diskussion
452
484
  feedback_settings: Feedback settings
453
485
  max_links: Max Links
454
486
  none: none
455
487
  or: or
456
- remember_to_set_your_recaptcha: Remember to set your reCaptcha keys inside config/initializers/recaptcha.rb
488
+ remember_to_set_your_recaptcha: Remember to set your reCaptcha keys inside
489
+ config/initializers/recaptcha.rb
457
490
  set_to_0_to_never_disable_comments: Sæt til 0 for at aldrig deaktivere kommentarer
458
491
  set_to_0_to_never_reject_comments: Sæt til 0 for at aldrig forkaste kommentarer
459
492
  spam: Spam
@@ -465,8 +498,12 @@ da:
465
498
  blog_subtitle: Blog undertitel
466
499
  blog_url: Blogadresse
467
500
  cancel: Anuller
468
- email_address_used_to_notify: E-mail adresse der bruges af Publify til at sende meddelelser
469
- explain_allow_users_to_register_html: This will allow users to register themselves as contributors, an unprivileged account level which grants them no rights beyond owning a profile on the site. If you don't want users to register, you can add them via <em>Manage users</em> under <em>Settings</em>.
501
+ email_address_used_to_notify: E-mail adresse der bruges af Publify til at
502
+ sende meddelelser
503
+ explain_allow_users_to_register_html: This will allow users to register themselves
504
+ as contributors, an unprivileged account level which grants them no rights
505
+ beyond owning a profile on the site. If you don't want users to register,
506
+ you can add them via <em>Manage users</em> under <em>Settings</em>.
470
507
  general_settings: Generelle Indstillinger
471
508
  items_to_display_in_admin_lists: Items to display in admin lists
472
509
  language: Sprog
@@ -508,9 +545,10 @@ da:
508
545
  design: Design
509
546
  display: Display
510
547
  documentation: Documentation
511
- feedback: Feedback
548
+ feedback: Diskussion
512
549
  general_settings: Generelle Indstillinger
513
550
  global_seo_settings: Global SEO settings
551
+ home: Home
514
552
  in_page_plugins: In page plugins
515
553
  logged_in_as: Logged in as %{login}
516
554
  logout_html: Log ud &raquo;
@@ -535,7 +573,8 @@ da:
535
573
  write: Write
536
574
  twitter_alert:
537
575
  fill_the_twitter_credentials: fill in the OAuth credentials
538
- how_to_setup_twitter_html: If you want to push short statuses on Twitter, you need to %{twitter_settings_link} Twitter gave you after you %{twitter_registration_link}.
576
+ how_to_setup_twitter_html: If you want to push short statuses on Twitter,
577
+ you need to %{twitter_settings_link} Twitter gave you after you %{twitter_registration_link}.
539
578
  registered_your_application: registered your application
540
579
  sidebar:
541
580
  config:
@@ -544,8 +583,14 @@ da:
544
583
  you_have_no_plugins_installed: You have no plugins installed
545
584
  index:
546
585
  cancel: Anuller
547
- download_more_plugins_html: You can download and install sidebar plugins from our official <a href='https://github.com/fdv/publify/wiki/Sidebar-plugins'>plugin repository</a>. All you have to do is upload the theme directory in your vendor/plugins directory.
548
- explain_how_its_works: Træk og slip for at ændre indholdsoversigten der vises på denne blog. Du kan fjerne elementer fra indholdsoversigten bare ved at klikke fjern. Ændringer gemmes med det samme, men ikke aktiveret, før du klikker på 'Offentliggør' knappen.
586
+ download_more_plugins_html: You can download and install sidebar plugins from
587
+ our official <a href='https://github.com/fdv/publify/wiki/Sidebar-plugins'>plugin
588
+ repository</a>. All you have to do is upload the theme directory in your
589
+ vendor/plugins directory.
590
+ explain_how_its_works: Træk og slip for at ændre indholdsoversigten der vises
591
+ på denne blog. Du kan fjerne elementer fra indholdsoversigten bare ved at
592
+ klikke fjern. Ændringer gemmes med det samme, men ikke aktiveret, før du
593
+ klikker på 'Offentliggør' knappen.
549
594
  or: or
550
595
  publish_changes: Udgiv ændringer
551
596
  sidebar: Sidebar
@@ -562,6 +607,7 @@ da:
562
607
  no_tags: There are no tags yet. Why don't you create one?
563
608
  or: or
564
609
  save: Gem
610
+ view: View
565
611
  themes:
566
612
  index:
567
613
  active_theme: "%{name} - Aktiv tema"
@@ -629,7 +675,7 @@ da:
629
675
  no_articles_found: Fandt ingen artikler
630
676
  archives_article:
631
677
  posted_in: offentliggjort i
632
- article:
678
+ article_author:
633
679
  posted_by: Skrevet af
634
680
  article_excerpt:
635
681
  continue_reading: Continue reading
@@ -649,7 +695,7 @@ da:
649
695
  comment_markup_help: Hjælp med kommentar markup
650
696
  leave_url_email: leave url/email
651
697
  preview_comment: Vis kommentar eksempel
652
- your_blog: your blog
698
+ your_blog: Din Blog
653
699
  your_email: Din email
654
700
  your_message: Din besked
655
701
  your_name: Dit Navn
@@ -674,14 +720,17 @@ da:
674
720
  contact_information: Contact information
675
721
  jabber: 'Jabber:'
676
722
  msn: 'MSN:'
677
- this_author_has_not_published_any_article_yet: This author has not published any article yet
723
+ this_author_has_not_published_any_article_yet: This author has not published
724
+ any article yet
678
725
  twitter: 'Twitter:'
679
726
  web_site: 'Web site:'
680
727
  yahoo: 'Yahoo:'
681
728
  comments:
682
729
  comment:
683
730
  said: sagde
684
- this_comment_has_been_flagged_for_moderator_approval: Denne kommentar er blevet markeret som krævende godkendelse. Den vil ikke blive vist før forfatteren godkender den.
731
+ this_comment_has_been_flagged_for_moderator_approval: Denne kommentar er blevet
732
+ markeret som krævende godkendelse. Den vil ikke blive vist før forfatteren
733
+ godkender den.
685
734
  date:
686
735
  abbr_month_names:
687
736
  -
@@ -715,17 +764,26 @@ da:
715
764
  characters_minimum: Minimum %{min} characters
716
765
  errors:
717
766
  article_type_already_exist: This article type already exists
718
- cant_end_with_rss_or_atom: Can't end in .rss or .atom. These are reserved to be used for feed URLs
767
+ cant_end_with_rss_or_atom: Can't end in .rss or .atom. These are reserved to be
768
+ used for feed URLs
719
769
  no_notes_found: No notes found...
720
770
  no_posts_found: No posts found...
721
771
  page_not_found: Page not found
722
772
  permalink_need_a_title: 'You need a permalink format with an identifier : %%title%%'
723
773
  problem_sending_to_twitter: Oooops something went wrong!
724
- render_sidebar: It seems something went wrong. Maybe some of your sidebars are actually missing and you should either reinstall them or remove them manually
725
- the_page_you_are_looking_for: The page you are looking for has moved or does not exist.
774
+ render_sidebar: It seems something went wrong. Maybe some of your sidebars are
775
+ actually missing and you should either reinstall them or remove them manually
776
+ the_page_you_are_looking_for: The page you are looking for has moved or does not
777
+ exist.
726
778
  generic:
727
779
  change: Change
780
+ conversation: Conversation
781
+ delete: Slet
782
+ edit: Rediger
783
+ mark_as_ham: Mark as ham
784
+ mark_as_spam: Mark as spam
728
785
  save: Gem
786
+ short_url: Short url
729
787
  helper:
730
788
  at: at
731
789
  langs:
@@ -763,7 +821,8 @@ da:
763
821
  publisher: Blog publisher
764
822
  setup:
765
823
  article:
766
- body: Welcome to Publify. This is your first article. Edit or delete it, then start blogging!'
824
+ body: Welcome to Publify. This is your first article. Edit or delete it, then
825
+ start blogging!
767
826
  title: Hello World!
768
827
  index:
769
828
  blog_name: Blog name
@@ -772,7 +831,9 @@ da:
772
831
  your_mail: Din email
773
832
  page:
774
833
  about: About
775
- body: This is an example of a Publify page. You can edit this to write information about yourself or your site so readers know who you are. You can create as many pages as this one as you like and manage all of your content inside Publify.
834
+ body: This is an example of a Publify page. You can edit this to write information
835
+ about yourself or your site so readers know who you are. You can create as
836
+ many pages as this one as you like and manage all of your content inside Publify.
776
837
  tags:
777
838
  index:
778
839
  there_are_no_tags: There are no tags