Comment je valide et convertit des documents HTML trop chargés ou provenant de Microsoft Word en HTML valide et simplifié

Description

Cette procédure est faite optimiser la conversion document word en html, spécialement ceux qui sont généré avec beaucoup de «tagsoup» en en simplifier a sa plus simple expression html. Valide.

Sauter à la Procédure

Exemple

Avant
<h2 class="Standard" dir="ltr" lang="fr-FR" style="margin-top: 0; margin-bottom: 0; text-align: center;" xml:lang="fr-FR">
  <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">TERMS AND CONDITIONS OF 1</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">‐</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">YEAR OR 30</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">‐</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">DAY ACCESS AND USE</span>
</h2>

<span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">OF THE SERVICE BY SUBSCRIBERS</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">SECTION 1</span> <span lang="en-CA" style="font-weight: bold; font-size: 16.0px;" xml:lang="en-CA">PURPOSE OF THE SERVICE</span>
Après
<h2>TERMS AND CONDITIONS OF 1 ‐ YEAR OR 30 ‐ DAY ACCESS AND USE</h2>

<span>OF THE SERVICE BY SUBSCRIBERS SECTION 1 PURPOSE OF THE SERVICE</span> 

 

Inspiration et pistes

  1. Convertir de format document en ligne de commandeDe Word2000 vers HTML, voir UNOCONV http://dag.wieers.com/home-made/unoconv/#download

 

 

 

Procédure 

Version abstraite

  1. Utiliser Open Office (ou peu importe) pour exporter le document en HTML

* Purifier via HTMLTidy
* Nettoyer les attributs inutiles avec la classe htmLawed 

Use cases

Document texte seulement

  • Pas de formulaire, ni images, etc
  • Idéal pour un document légal, par exemple.

Étapes concrètes:

  1. A partir du fichier HTML généré exemple: Fichier appelé “1.1.2.en.html”

* Extraire le fichier htmLawed.zip
 
cd ~
mkdir htmlawed
mv htmLawed.zip htmlawed/
cd htmlawed
unzip htmLawed.zip

Passer au travers de la classe htmLawed

require('htmLawed.php');
$config = array('safe'=>1,'elements'=>'a,em,strong,p,ul,li,ol,h1,h2,h3,h4,h5,div,tr,td,table','deny_attribute'=>'* -title -href');
$out = htmLawed(file_get_contents('in.html'), $config);
echo $out;

Rouler le script. Déplacer le fichier a utiliser, puis exécuter le script pour en générer dans out.html

cp ~/1.1.2.en.tidy.html in.html
php cleanup.php &gt; out.html</pre>

Rouler Tidy. Normaliser le fichier “1.1.2.en.html”, Nettoyer les balises, minuscules, etc

tidy --drop-font-tags 1 --logical-emphasis 1 --clean 1 --merge-spans 1 --show-body-only 1 --output-xhtml 1 --word-2000 1 --indent "auto" --char-encoding "utf8" --indent-spaces "2" --wrap "90" 1.1.2.en.html &gt; 1.1.2.en.tidy.html

tada!

Précautions

Ordre d’exécution des tâches

Remarque:

J’ai essayé de passer Tidy avant htmLawed et j’ai réalisé que le nettoyage de htmLawed est assez drastique et que Tidy rend le code plus propre. Sans oublier que htmLawed peut générer des balises vides que Tidy va éliminer.

Références

  1. Options Tidy
  2. htmLawed Documentation a PHP Html purification Class
    1. original documentation
    2. Example settings

Mon souhait pour bien écrire sur le web: Lettre ouverte à Druide

Bonjour

Je suis un développeur web et je regarde sur le web s’il existe un service qui me permettrait de faire valider mon texte. Plusieurs gens dans le monde du marketing ne jurent que par vos produits. Mais je ne vois pas d’offre de la sorte autre que WebElixir.

Selon moi, plusieurs développeurs web aimeraient avoir accès a votre service pour ajouter votre outil au processus d’édition leur contenus.

De façon interactive.

Mon point de vue

J’aimerai pouvoir avoir un accès a un service REST avec token OAuth pour envoyer mon texte, et le recevoir révisé.

Je suis un développeur PHP qui utilise Symfony2 et ce qui suit est basé sur les outils que j’utilise en PHP.  Soyez assuré qu’il existe une alternative pour les autres langages du web tel que le .NET, Python et Ruby car les concepts que j’apporte ici sont monnaie courrante d’une technologie web à l’autre.

Potentiel

  • pouvoir avoir une aide directement dans une fenêtre d’édition de l’administration d’un site géré par WordPress (l’un des CMS les plus utilisés au monde).
  • Outil de publication de Tweet avec vérification de syntaxe pour widget de portail d’entreprise
  • Décentraliser l’architecture (WebElixir à sûrement un API via http?)
  • Outil allégé pour téléphones intelligents (seulement supporter le pastebin qui sert d’entrée de texte)
  • Connectivité aux API de iOS, et Android
  • Les services web sont offerts pour presque tout (TwitterFacebookEvernote, Solr (Lucene, index de recherche),  et beaucoup d’autres)

Ébauche préliminaire d’une solution

 

Avez-vous de quoi de similaire? (Autre que WebElixir?)

 

Merci de m’avoir lu.


Réponse reçue de Druide Informatique

Bonjour Monsieur Renoir,

Nous n’avons rien de similaire à ce que vous mentionnez dans votre message, ni d’API pour développer sur la base de WebElixir.

Toutefois, nous vous remercions de votre commentaire. Au fil du temps, nos produits ne cessent de s’améliorer, et ce sont en grande partie les remarques et suggestions de ses utilisateurs qui orientent notre travail.

Les commentaires comme le vôtre sont dument notés et font tous l’objet d’une analyse diligente. Il est ainsi possible que l’amélioration que vous suggérez, ainsi que plusieurs autres, fasse un jour partie d’une version ou d’une édition future d’Antidote ou de WebElixir.

Nos salutations les plus sincères.

(…)

Les différentes versions du service de tâches planifié CRON

Suite a mon article «Comment automatiser une tâche avec CRON en utilisant Vim» je me suis venu aux questions sur les différences essentielles entre les versions de CRON.

Le concept de CRON est, un «lanceur de commandes» planifié pour les systèmes UNIX. Le nom est inspiré du dieu grec Chronos.

Ayant déjà utilise Gentoo Linux j’avait vu qu’il était possible d’utiliser plus d’une version de CRON mais je ne m’était jamais penché sur les différences. Je l’ai fait aujourd’hui.

Continue reading “Les différentes versions du service de tâches planifié CRON”

Réalisation d’une application d’échange de cadeau avec RED L’agence le «club échangiste» [2009]

Il s’agit d’une réalisation que j’ai effectuée en deux semaines pour RED L’agence. L’idée vient de François Sauvé lors d’une rencontre pour un autre projet. Il m’a dit: «J’ai une idée de fou. Je ne sais pas si on pourrait faire ça rapidement mais…».

C’est le genre de situation que j’aime!  Une question, la possibilité de me laisser aller, et hop!

RED voulait faire offrir un cadeau à chacun de ses clients privilégiés d’une façon hors de l’ordinaire. Les participants étaient invités a visionner leur cadeau par une petite carte de noël reçue par la poste (devant, dos) avec une adresse web et un code.

Le concept graphique était, selon moi, bien rendu. Un club échangiste avec les lumières tamisés, rien d’offensant mais tellement bien choisi pour le jeu.

Le site web devait permettre aux participants de voir leur cadeau et de pouvoir «Participer au club échangiste» en volant le cadeau d’un autre participant. Chaque participant qui se faisait voler son cadeau reçevait un courriel qui lui annonçait qu’il s’était fait voler et qu’il pouvait aller le récupérer.

Continue reading “Réalisation d’une application d’échange de cadeau avec RED L’agence le «club échangiste» [2009]”

Réalisation Gestionnaire de service à la clientèle pour Câble Axion [2006]


Gestionnaire des décodeurs
Avant Après

Voici un projet que j’ai fait pour Câble Axion [edit: en plus de celui du site web]. Lorsque j’avait été engagé on m’avait spécifié que je travaillerait a améliorer les processus de travail de plusieurs départements: Soutient technique, Service à la clientèle, et même l’inventaire. C’était un projet très intéressant. Sur ce mandat j’ai du faire avec le choix technologique actuel et supporter ce qui était déjà en place: des bases de données Microsoft Access.

(PS: J’ai fait le site web aussi, c’est celui là qui est encore en-ligne. Voir le billet correspondant.).

Continue reading “Réalisation Gestionnaire de service à la clientèle pour Câble Axion [2006]”

Faire son inventaire personnel avec Namminik.com

Faire son inventaire personnel est une tâche qu’on remet très aisément de coté.

Pourtant faire son inventaire peut s’avérer plaisant. Avec tout les services web 2.0 qui existent aujourd’hui, pourquoi ne pas faire pareil avec ce type d’activité important mais qu’on remet toujours à demain?

Personnellement, j’ai jamais pensé à faire cette activité.

Avec Namminik, j’ai rapidement pris plaisir
J’ai un très bon ami qui a fait son inventaire avec son appareil numérique
Mon collègue Félix Martineau http://heffem.blogspot.com/2008/01/flix-vous-prsente-namminikcom.html

http://www2.infopresse.com/blogs/actualites/archive/2007/09/10/article-23462.aspx

Lorsque gérer un réseau peut rimer avec vigilance plutôt que réparation

Les collègues qui travaillent avec moi pour le réseau savent ce que qu’implique chaque modification dans le réseau. Nous travaillons pour remonter le réseau et atteindre un certain niveau côté qualité qui rendra notre travail plus facile pour tous.

Parmi ces améliorations, il s’agit d’un moyen de savoir si tout est correct et être averti si un changement à été opéré et même savoir “où est le bobo”.

Il s’agit du service de monitoring avec Nagios. Il ne s’agit ici pas d’un howo-to technique mais plutôt ma “review” de ce que l’installation que j’ai monté peut faire.

Continue reading “Lorsque gérer un réseau peut rimer avec vigilance plutôt que réparation”

Copier un fichier d’un serveur à l’autre en le compressant pour la route via NetCat et

J’ai voulu un jour transférer des fichiers entre deux machines et les fichiers je les trouvaient lourds. Habituellement j’aurait utilisé soit rsync ou scp mais cette fois ci je voulait utiliser un processus un peu différent. Pourquoi ne pas compresser le contenu durant le transfert? Continue reading “Copier un fichier d’un serveur à l’autre en le compressant pour la route via NetCat et”