Migrer de FrameMaker vers DITA XML¶
Le but de cette procédure est de :
- migrer son contenu |fm| vers |dita| sans se plonger dans les arcanes des EDD |fm| (petits projets uniquement !),
- gérer la documentation technique au format |dita| sans utiliser |fm| structuré.
- Restructurez le contenu et les styles de vos fichiers de contenu |fm| selon les concepts |dita|.
- Créez un document |fm| vide et importez-y tous les styles existants dans les fichiers à migrer.
- Appliquez tous les styles disponibles à des paragraphes vides du document |fm| vide.
- Enregistrez le document |fm| vide sous le nom
styles.fm. - Ouvrez |fm| structuré 11 et créez un nouveau fichier |dita| de type topic.
- Choisissez StructureTools > Exporter le catalogue d’éléments en tant
qu’EDD et sauvegardez la nouvelle EDD sous le nom
DITA-topic-edd.fm. - Ouvrez le fichier
styles.fm, puis choisissez Fichier > Importer les définitions d’éléments et importez les définitions d’éléments à partir deDITA-topic-edd.fm. - Répétez les trois étapes ci-dessus pour les autres types de topics |dita| (task, reference, etc.), en modifiant les noms de fichiers comme il se doit.
- Ouvrez le fichier
styles.fm, puis choisissez StructureTools > Générer le tableau de conversion. - Modifiez le fichier de conversion et faites correspondre chaque style |fm| à une balise |dita|.
- Enregistrez le tableau de conversion sous le nom
DITA2FM-conversion-table.fm. - Ouvrez un fichier de contenu |fm| sous |fm| structuré 11 et choisissez StructureTools > Utilitaires > Structurer le document en cours.
- Sélectionnez
DITA2FM-conversion-table.fmet cliquez sur Ajouter structure. - Enregistrez le fichier de contenu |fm| au format XML sans sélectionner d’application.
- Ouvrez le fichier XML généré sous un éditeur |dita| et corrigez la syntaxe |dita|. Certains aspects de cette étape sont scriptables, mais il faut également procéder à des opérations manuelles de restructuration du contenu. Il vous faudra notamment placer à la main les références croisées, de préférence dans une reltable.
Pour générer les éléments permettant de construire un fichier ditamap, vous pouvez par exemple utiliser des scripts Perl du type :
Avertissement
Ne lancez ce type de scripts que sur une copie de vos fichiers et non sur les fichiers originaux.
#!/usr/bin/perl
open(INPUT,"<$ARGV[0]") or die;
@input_array=<INPUT>;
close(INPUT);
$input_scalar=join("",@input_array);
# substitution
$input_scalar =~ s#\<body>(.|\n)*?</body>##ig;
open(OUTPUT,>$ARGV[0]") or die;
print(OUTPUT $input_scalar);
close(OUTPUT);
Vous pouvez également modulariser facilement le contenu à l’aide des ciseaux XML
xml_split,
ou utiliser le module Perl XML::Twig, ou
encore ce one-liner Bash pour renommer les fichiers .dita d’après leur titre :
$ ack "<title>" *.dita| sed "s# #_#g;" | tr '[:upper:]' '[:lower:]' | \
sed -E "s#(.*.dita)#mv \1#g;" | \
sed -E "s#\.dita.*<title>(.*)</title>#.dita \1.dita#g;"