Skip to content
Snippets Groups Projects
Unverified Commit a37b9908 authored by Sébastien Gaya's avatar Sébastien Gaya
Browse files

h1..5 in wordpress

parent 5aac4f23
No related branches found
No related tags found
No related merge requests found
class Wordpress
attr_reader :domain
# Test in console with:
# reload! && Communication::Website::Imported::Post.first.save && Communication::Website::Imported::Post.first.post.text
# R&D:
# https://github.com/rails/rails-html-sanitizer
# https://github.com/gjtorikian/html-pipeline
# https://github.com/rgrove/sanitize
def self.clean(html)
Sanitize.fragment html, Sanitize::Config::RELAXED
# html
fragment = Sanitize.fragment(html, Sanitize::Config::RELAXED)
fragment = Nokogiri::HTML5.fragment(fragment)
if fragment.css('h1').any?
# h1 => h2 ; h2 => h3 ; ...
(1..5).to_a.reverse.each do |i|
fragment.css("h#{i}").each { |element| element.name = "h#{i+1}" }
end
end
fragment.to_html(preserve_newline: true)
end
def initialize(domain)
......
File added
......@@ -21,6 +21,7 @@ namespace :app do
desc 'Get database from Scalingo'
task :staging do
Bundler.with_unbundled_env do
Figaro.load # Load ENV variables
# Get a new backup archive from Scalingo
# PG Addon ID from `scalingo addons` CLI command.
sh "scalingo --app #{ENV['OSUNY_STAGING_APP_NAME']} backups-create --addon #{ENV['OSUNY_STAGING_PG_ADDON_ID']}"
......
......@@ -2,18 +2,37 @@ require "test_helper"
class WordpressTest < ActiveSupport::TestCase
test "convert apostroph" do
assert_equal Wordpress.clean('Ouverture du CRM pendant les vacances d&#8217;Avril'), 'Ouverture du CRM pendant les vacances d’Avril'
assert_equal Wordpress.clean('Ouverture du CRM pendant les vacances d&#8217;Avril'),
'Ouverture du CRM pendant les vacances d’Avril'
end
test "convert 3 dots" do
assert_equal Wordpress.clean('Le CRM fait le tri dans ses collections &#8230; et vous propose une vente de livres'), 'Le CRM fait le tri dans ses collections … et vous propose une vente de livres'
assert_equal Wordpress.clean('Le CRM fait le tri dans ses collections &#8230; et vous propose une vente de livres'),
'Le CRM fait le tri dans ses collections … et vous propose une vente de livres'
end
test "convert double quotation marks" do
assert_equal Wordpress.clean('Conférence Joëlle Zask : &#8220;Ecologie de la participation&#8221;'), 'Conférence Joëlle Zask : “Ecologie de la participation”'
assert_equal Wordpress.clean('Conférence Joëlle Zask : &#8220;Ecologie de la participation&#8221;'),
'Conférence Joëlle Zask : “Ecologie de la participation”'
end
test "convert h1" do
assert_equal Wordpress.clean('<h1>B.U.T. Métiers du multimédia et de l&#8217;internet</h1>'),
'<h2>B.U.T. Métiers du multimédia et de l’internet</h2>'
end
test "convert h2 without h1" do
assert_equal Wordpress.clean('<h2>B.U.T. Métiers du multimédia et de l&#8217;internet</h2>'),
'<h2>B.U.T. Métiers du multimédia et de l’internet</h2>'
end
test "convert h2 with h1" do
assert_equal Wordpress.clean('<h1>Bachelor Universitaire de Technologie</h1><h2>B.U.T. Métiers du multimédia et de l&#8217;internet</h2>'),
'<h2>Bachelor Universitaire de Technologie</h2><h3>B.U.T. Métiers du multimédia et de l’internet</h3>'
end
test "convert " do
assert_equal Wordpress.clean('TRAVAILLER DEMAIN, Débat &#8211; le 10 mai à 18h30'), 'TRAVAILLER DEMAIN, Débat – le 10 mai à 18h30'
assert_equal Wordpress.clean('TRAVAILLER DEMAIN, Débat &#8211; le 10 mai à 18h30'),
'TRAVAILLER DEMAIN, Débat – le 10 mai à 18h30'
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment