bonjour
je voudrais créer de manière flexible de gros documents à partir de blocs de texte préformulés dans de petits (ou non) documents individuels mémorisés au format texte sur le disque dur dans le même répertoire (ou un sous-répertoires …/ressources/…" par insertion
et l'idéal, même, serait de pouvoir le faire avec un simple script (comme on fait avec apt-get install dans debian pour installer des paquets… j'installerais là des segments de texte.
exemple:
insert textes-suivants monAdresse.txt adresse2tartempionBleu.txt lieuDateRef.txt salutations.txt referenceEtCoordonnées.txt gueuler.txt saluerPolimentQuandmeme.txt piecesJointes.txt
me permettrait de composer une lettre de réclamation standard, ou, vice-versa de répondre à une telle lettre, ou de proposer une nouveauté, ou des services, un rappel, une mise en demeure, etc.
et les textes étant préformulés, ils pourraient être dans une langue que je ne maîtrise pas vraiment.
je crois qu'un ancien éditeur de texte permettait cela (au moins en direct: la fonction "insert" ou équivalente y était au menu dans l'onglet "file", et, souvent, certainses applications consoles s'appropriaient à être utilisées par un script extérieur en ligne de commande via une telle ligne de noms de modules à traiter.
quelqu'un saurait-il encore de quel éditeur de texte il peut s'agir (en espérant que ce ne soit pas emacs, qui est une vraiment grosse horloge demandant beaucoup d'apprentissage avant de pouvoir l'utiliser beaucoup avec dextérité!)?
par ex. la minuscule puce "wordgrinder" peut en console exporter son text dans des formats absolument inattendus pour un tel outil minuscule! pourrait-il aussi récupérer des textes et les insérer?
crdlmt
# vi
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 4.
Comme tu as écrit « ancien » et exclu Emacs, je n'ai pas pu résister à l'envie trollesque d'évoquer son cousin Ex/Vi. Dans ton fichier de travail :
:read cheminRelatifOuAbsoluDuFichier
N
de la ligne après laquelle doit se faire l'insertion, tu tapes:Nread cheminRelatifOuAbsoluDuFichier
Attention à bien taper aussi les deux-points au début si c'est bien Vi. Et on est en mode commandes (et non insertion) dans les deux cas. Pour les usagers avancés, ce n'est pas une opération (ou commande pour faire simple) qui bénéficie de la répétition.
À vérifier (je n'ai pas de quoi le faire là, mais je crois bien que), dans le menu de GViM ça y est.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# cat
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 4.
Je ne sais pas si j'ai bien compris…
…mais tu veux concaténer des contenus de fichiers non ? Du coup ta commande "insert" s'appelle en fait con"cat"enate (aucun rapport avec quelque félin) :
cat textes-suivants monAdresse.txt adresse2tartempionBleu.txt lieuDateRef.txt salutations.txt referenceEtCoordonnées.txt gueuler.txt saluerPolimentQuandmeme.txt piecesJointes.txt
le résultat est envoyé sur le terminal (il faut que ton script redirige donc vers le fichier final) et les fichiers en argument ne sont pas modifiés.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: cat
Posté par pasApas . Évalué à 1.
bien sur, excellent! c'est ce que je fais avec mes fichiers "son" pour amalgamer des phrases par exemple de cours Assimil pour en faire des paragraphes prononces en entier donc! que je suis bete de ne pas le faire avec les textes …
[^] # Re: cat
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Héhé. c'est juste le manque d'habitude je pense. Mais pas à pas on acquière des réflexes ;-)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# template
Posté par gUI (Mastodon) . Évalué à 4. Dernière modification le 09 février 2022 à 07:43.
Je penses aux moteurs de template ?
Tu écris un document en laissant des champs, et ensuite tu as un outil pour remplir ces champs à la volée. C'est énormément utilisé en développement Web : la page HTML est écrite sous forme de template et le moteur du site rempli les trous. Tu peux regarder du côté de Jinja par exemple.
Sinon en cherchant des moteurs en Bash je suis tombé sur cette question et la commande envsubst.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: template
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . Évalué à 2.
Dans la même idée, ça se fait très bien avec LaTeX : on prépare un document type, et des contenus appropriés pour les différents champs du dit document, ensuite il n'y a plus qu'à enchaîner les \input{}…
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace
[^] # Re: template
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 09 février 2022 à 09:42.
En parlant de Jinja, il est directement utilisable en ligne de commande via : j2cli (Python), shtpl (Shell), cookie (Shell), bash-tpl (Shell). Les deux premiers me semblent plus complets. Les trois derniers utilise une liste de déclarations à la INI, comme bash-templater (Shell) et envsubst (qui du coup peut être plus simple)
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: template
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Ah tiens, un moule fait un retour d'expérience sur envsubst et j2cli sur son blog
https://hashtagueule.fr/posts/le-templating-dans-les-scripts-shell
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# DITA
Posté par Hodj . Évalué à 4.
Ça s'appelle la documentation structurée. C'est très utilisé dans l’aéronautique et dans une grosse partie de l'industrie (construction navale, automobile, fondeurs, …). En fait là ou on doit construire des manuels.
Les normes utilisées dans l'aéronautique sont :S1000D, ATA2300, …
Pour les besoins plus simples type bureautique, il y a la norme DITA, il existe des plugins pour word, je n'en connais pas pour LibreOffice, mais ça ne veut pas dire qu'il n'en existe pas.
Le pricinpe est très simple : On a des fragments de documents (en xml) dans un référenciel d'une part, une.des feuilles de style et un sommaire (fichier xml qui liste les fragmeznts et leur ordre) d'autre part.
les fragments sont "concaténés" suivant les directives du sommaire, la feuilles de style choisie est appliques cela donne un Document.
Parmi les avantages :
- Réutilisation des fragments
- réduction des coûts de traduction (un fragment n'est traduit qu'une fois même s'il est dans plusieurs documents)
- séparation du fond et de la forme
- …
[^] # Re: DITA
Posté par Hodj . Évalué à 3. Dernière modification le 09 février 2022 à 11:19.
Je me réponds à moi-même
D'autres avantages :
- Les traduction sont considéré comme un genre de "style" appliqué à tous les fragments d'un documents => on a donc un seul document quelque soit la langue, la langue n'est qu'un rendu
- La gestion de version se fait au niveau du fragment
- Dans l'aéronautique, il y a la notion d'applicabilité, qui permet d'avoir un seul manuel pour une famille d’appareils (le h160 par exemple) et les fragment sont inclus ou non lors de la fabrication du document en fonction de la version de l’appareil, de ses optionnels, de son numéro de série, …
# Dans LibreOffice
Posté par Nicolas Casanova . Évalué à 4.
Dans LibreOffice Writer (le traitement de texte, il y a la possibilité d’insérer des sections éventuellement importées de documents externes : « Les sections permettent d'insérer des blocs de texte issus d'autres documents, […] »
# variations autour de sed
Posté par bobo38 . Évalué à 1. Dernière modification le 09 février 2022 à 13:55.
ces commandes copient un template avec des pattern de champ à remplir, pour les substituer avec la commande sed directement dans le fichier (-i). Il est possible d'enchainer plusieurs options -e de sed, ou d'invoquer la commande plusieurs fois. L'option "g" des regex c'est pour appliquer la substitution plusieurs fois pour chaque ligne au cas où le pattern s'y trouverais plus d'une fois. En shell ça donnerait avec "" comme pattern à substituer:
Tu peux définir une variable et l'utiliser. Il serait possible de modifier la salutation dépendamment du genre: « Cher » ou « Chère » en utilisant la même commande sed avec un système de conditions…
Bref c'est méga-scriptable. Et tu peux faire de trucs chouettes à partir des expressions rationnelles (regular expression, ou regex en Anglais), c'est puissant mais tu peux aussi juste te contenter de chercher et substituer des patterns fixes. Tu peux aussi utiler "sed -e substitution1 -e substitution2 -e stubstiution3 … template >> doc" pour ajouter chaque template ajusté à la suite d'un document à partir d'une liste de template. Ou même jouer avec des variable shells globales.
# Mise en page… Scribus
Posté par lolop (site web personnel) . Évalué à 2.
Tu sembles vouloir faire du remplissage de blocs dans un document pré-structuré. Regarde si Scribus, avec ses possibilités de scripting via Python3, ne permettrait pas (une fois le modèle défini) de faire des remplissages faciles.
https://www.scribus.net/
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.