2015-11-30 05:32:01 -05:00
|
|
|
# name: discourse-details
|
|
|
|
# about: HTML5.1 Details polyfill for Discourse
|
2016-03-11 11:51:16 -05:00
|
|
|
# version: 0.4
|
2015-11-30 05:32:01 -05:00
|
|
|
# authors: Régis Hanol
|
|
|
|
# url: https://github.com/discourse/discourse/tree/master/plugins/discourse-details
|
|
|
|
|
|
|
|
enabled_site_setting :details_enabled
|
2018-05-15 18:43:09 -04:00
|
|
|
hide_plugin if self.respond_to?(:hide_plugin)
|
2015-11-30 05:32:01 -05:00
|
|
|
|
|
|
|
register_asset "javascripts/details.js"
|
|
|
|
register_asset "stylesheets/details.scss"
|
|
|
|
|
|
|
|
after_initialize do
|
|
|
|
|
|
|
|
Email::Styles.register_plugin_style do |fragment|
|
2016-03-11 11:51:16 -05:00
|
|
|
# remove all elided content
|
2018-02-07 18:01:11 -05:00
|
|
|
fragment.css("details.elided").each(&:remove)
|
2016-03-11 11:51:16 -05:00
|
|
|
|
|
|
|
# replace all details with their summary in emails
|
|
|
|
fragment.css("details").each do |details|
|
2016-05-01 22:33:56 -04:00
|
|
|
summary = details.css("summary")
|
|
|
|
if summary && summary[0]
|
|
|
|
summary = summary[0]
|
|
|
|
if summary && summary.respond_to?(:name)
|
|
|
|
summary.name = "p"
|
|
|
|
details.replace(summary)
|
|
|
|
end
|
|
|
|
end
|
2015-11-30 05:32:01 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-02-07 18:01:11 -05:00
|
|
|
on(:reduce_cooked) do |fragment|
|
|
|
|
fragment.css("details.elided").each(&:remove)
|
|
|
|
end
|
|
|
|
|
2015-11-30 05:32:01 -05:00
|
|
|
end
|