extension de mise en évidence de code pour le rédacteur Libre Office


21

J'ai récemment écrit un rapport pour l'école avec beaucoup de code. La seule façon que j'ai trouvé de travailler était de le mettre en évidence avec STRONG et c'est vraiment assez moche. Existe-t-il donc une extension de surlignage de code pour les écrivains libres?

Comme celui-ci ci-dessous:

<insert code here>

Un surlignage de syntaxe avec différentes couleurs est également correct.
Je n'entre jamais dans un programme entier, je dois donc pouvoir mettre en évidence ce que je pense être du code.

Comme celui-ci: echo "Hello World!";

Cooder

Je n'aimais pas ce point fort car il formate le texte et tout le texte qui suit. Je veux marquer du texte puis cliquer sur un surlignage et c'est tout.
Celui-ci est trop compliqué et difficile à utiliser, je dois sélectionner le langage de programmation à chaque fois que je le mets en évidence qui sera environ 100 fois dans un rapport, c'est beaucoup trop.
Je voudrais quelque chose de similaire à ce qu'ils utilisent sur le site. mise en évidence de code simple si vous voulez.

Code Colorizer Formatter

Il s'installe pour moi, mais je ne peux pas le faire fonctionner et il n'a pas de support PHP ou HTML, dont j'ai besoin.


ajouté comme réponse, heureux d'avoir aidé
Drake Clarris

1
Je recommande d'utiliser LaTeX (voir l' exemple ). Avant d'utiliser du latex, j'ai enregistré la source au format HTML avec KDE Kate et copié le code rendu d'un navigateur vers un bureau ouvert
Martin Thoma

@Moose pourquoi ajoutez-vous cela comme un commentaire au lieu d'une réponse? expliquer aussi toutes les étapes merci.
Alvar

Réponses:


15

Ce n'est pas un plug-in, mais j'ai mis le code dans un site Web qui colore la syntaxe pour vous. Le site que j'utilise est tohtml . Je n'utilise pas le code généré html cependant, je copie simplement le code coloré et mis en surbrillance à partir du navigateur et le colle dans mon document et WYSIWYG.


La copie n'a pas fonctionné pour moi de Firefox à Libroffice, bien que l'enregistrement au format HTML et l'ouverture du fichier dans Libreoffice puis la copie aient fonctionné
Wilf

copier + coller a travaillé sur Ubuntu de Chrome vers LibreOffice! Merci!
rrosa

11

MISE À JOUR 2: Extension LibreOffice

J'ai publié mon script de macro précédent en tant qu'extension: Code Highlighter qui est disponible dans la boutique des extensions LibreOffice.

1. Comment installer?

Suivez ces étapes pour installer l'extension:

Étape 1: installez libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Étape 2: Installez les pygments pour Python 3:

sudo pip3 install pygments

Étape 3: Téléchargez et ajoutez l' extension codehighlighter.oxt à Libre Office

2. Comment utiliser?

  • Ouvrez LibreOffice Writer / Calc / Impress.
  • Insérez une zone de texte ( Insérer -> Zone de texte ).
  • Copiez et collez n'importe quel extrait de code dans cette zone de texte.
  • Sélectionnez la zone de texte.
  • Mettre en surbrillance par Outils -> Code de surbrillance -> <Nom de langue>

entrez la description de l'image ici

Vous pouvez attribuer des raccourcis clavier pour les langues fréquemment utilisées. Pour voir comment attribuer un raccourci clavier, visitez la page Git Hub: libreoffice-code-highlighter


Je laisse ma réponse originale ici car elle est toujours valable pour LO <= 5.

J'avais la même exigence et aucune de ces solutions ne fonctionnait pour moi dans LibreOffice 5 à l'exception de «Code Colorizer Formatter». Mais Code Colorizer Formatter ne fonctionnait que dans Writer (j'avais également besoin d'Impress). Plus tard, j'ai trouvé une autre solution en utilisant la macro Python qui est testée dans LibreOffice 5.

Installation

Étape 1: installez libreoffice-script-provider-python:

sudo apt-get install libreoffice-script-provider-python

Étape 2: Installez les pygments pour Python 3:

sudo pip3 install pygments

Étape 3: Téléchargez Highlight.py

Étape 4: copiez le fichier Highlight.py dans / usr / lib / libreoffice / share / Scripts / python /

sudo cp Highlight.py /usr/lib/libreoffice/share/Scripts/python/

Étape 5: définissez l'autorisation de lecture seule sur le script.

sudo chmod 0444 /usr/lib/libreoffice/share/Scripts/python/Highlight.py

Étape 6: Ouvrez LibreOffice Writer et passez à Outils -> Personnaliser -> Clavier

  • Sélectionnez le bouton d'option LibreOffice (disponible dans le coin supérieur gauche)
  • Sélectionnez le raccourci souhaité
  • Sélectionnez share / Highlight / Highlight_source_code dans la catégorie Fonctions
  • Cliquez sur le bouton Modifier pour définir le raccourci

Usage

LibreOffice Impress

  • Ouvrez LibreOffice Impress.
  • Insérez une zone de texte (Insérer -> Zone de texte).
  • Copiez et collez n'importe quel extrait de code dans cette zone de texte.
  • Créer un nouveau style (clic droit sur un style existant -> Nouveau ...)
  • Nommez le style code-<language>
  • Appliquez le style à votre zone de texte d'extrait de code.
  • Sélectionnez la zone de texte.
  • Utilisez vos touches de raccourci pour exécuter la macro.

LibreOffice Writer / Calc

  • Ouvrez LibreOffice Writer / Calc.
  • Insérez une zone de texte (Insérer -> Zone de texte).
  • Copiez et collez n'importe quel extrait de code dans cette zone de texte.
  • Faites un clic droit sur la zone de texte et sélectionnez «Description».
  • Ajoutez une description au format suivant: code-<language>
  • Sélectionnez la zone de texte
  • Utilisez vos touches de raccourci pour exécuter la macro.

MISE À JOUR 1:

J'ai ajouté un support de style personnalisé à cette extension. Utilisez code-<language>pour le style par défaut et code-<language>-<style>pour le style personnalisé. Les styles disponibles sont répertoriés dans ma page Git Hub.

Par exemple, Code-Java-Emacscolorera le code Java en utilisant le style Emacs.


Cela fonctionne très bien, merci! Comment puis-je changer le thème des pygments?
greschd

Veuillez vérifier la publication mise à jour. J'ai mis à jour mon script pour prendre en charge les styles personnalisés. Vous devez mettre à niveau le script Highlight.py, afin d'utiliser cette nouvelle fonctionnalité.
Gobinath

Bien, merci. Une chose me dérange toujours - lorsque je viens d'enregistrer le fichier et d'essayer d'exécuter la macro, cela réinitialise le texte à une version antérieure. Savez-vous pourquoi c'est et si cela pourrait être réparé facilement?
greschd

Je n'ai pas rencontré un tel problème. Pourriez-vous me faire savoir les étapes exactes pour reproduire ce problème?
Gobinath

(dans Impress): je modifie du code dans une zone de texte que j'avais déjà formatée précédemment, enregistre le document (Ctrl + S), sélectionne la zone de texte, essaie de mettre en surbrillance (Ctrl + Maj + H), et cela réinitialise une partie du texte J'ai écrit
greschd

4

COOder

COOder semble abandonné et ne peut pas être installé dans LibreOffice 4.2.8.2.

Code Colorizer Formatter

Code Colorizer Formatter s'installe et fonctionne correctement dans LibreOffice. Code Colorizer Formatter a également ajouté la prise en charge PHP, mais la prise en charge HTML est complètement manquante et JavaScript n'a pas fonctionné lorsque je l'ai testé. Les instructions pour le faire fonctionner sur le site Web Code Colorizer Formatter ne fonctionnaient pas pour moi, mais j'ai fait fonctionner Code Colorizer Formatter dans LibreOffice à la dure, et voici mes instructions:

  1. Téléchargez Code Colorizer Formatter depuis la page d'accueil du projet Code Colorizer Formatter et installez-le dans LibreOffice Writer comme toute autre extension LibreOffice.

  2. Ouvrez votre fichier de code dans LibreOffice Writer. Code Colorizer Formatter prend en charge Bash, Basic, C ++, Java, Perl, PHP, Python, R, SQL, XML, C #, 8085 Assembler et x86 Assembler.

  3. Sélectionnez le code à coloriser.

  4. Sélectionnez Outils -> Macros -> Organiser les macros -> LibreOffice Basic .

  5. Une nouvelle fenêtre LibreOffice Basic Macros s'ouvre. Sous l'en- tête Macro from , sélectionnez Mes macros -> MacroFormatterADP -> un langage de programmation pris en charge. Dans la capture d'écran ci-dessous, Java est sélectionné.

  6. Sous l' en- tête Macros existantes dans ... , sélectionnez HighlightSelLanguage où la langue dans HighlightSelLanguage est la même que le langage de programmation qui a été sélectionné à l'étape cinq. Dans la capture d'écran ci-dessous, HighlightSelJava est sélectionné.

  7. Cliquez sur le bouton Exécuter pour coloriser le code sélectionné.

entrez la description de l'image ici


Semble abandonné, aller à la section des extensions dans LibreOffice dit qu'il n'a pas eu de mise à jour depuis plus d'un an
Purefan

La quantité de travail pour utiliser le CCF ne vaut pas le résultat, à mon humble avis. Je pensais que la page tohtml faisait un meilleur travail avec les résultats (par exemple les points de couleurs, les parenthèses, etc.). Cependant, si quelqu'un veut utiliser cette "méthode simple" ™, il peut aller dans Outils >> Personnaliser ... >> Menus contextuels (onglet) >> Menu (liste déroulante) >> Texte >> Ajouter ... ( >> Macros LibreOffice >> Mes macros >> MacroFormatterADP >> (choisir la langue) >> HighlightSel (langue) >> Fermer . Après cela, mettez simplement le texte en surbrillance, cliquez à nouveau et trouvez la nouvelle option dans le menu contextuel pour formater le texte sélectionné; l'entrée peut être renommée.
code_dredd

1
@karel J'utilise la version 5.2.2.2de Kubuntu 16.10. Je l'ai fait quelques instants avant mon commentaire d'origine.
code_dredd

@ray Merci pour votre suggestion. Je vais installer Kubuntu dans VirtualBox et l'essayer.
karel

@karel La version 5.2.2.2de Windows ne fonctionne- t-elle pas de la même manière? Je pense que la simple mise à niveau de votre version devrait fonctionner sans avoir à passer par une installation complète du système d'exploitation.
code_dredd

1

Je dois sélectionner le langage de programmation chaque fois que je le souligne, ce qui sera environ 100 fois dans un rapport, c'est beaucoup trop

En fait, il existe un moyen de lier la coloration dans une langue donnée à une touche de raccourci. Faites le sous suivant et liez-le à une touche de raccourci:

Allez dans Outils → Macros → Organiser les macros → LibreOffice Basic. Sélectionnez Module1 et appuyez sur Modifier:

entrez la description de l'image ici

Copiez-collez ensuite ce code:

Sub COOoderInPython
  ExecuteCOOoder("python")
End Sub

Sub ExecuteCOOoder(sLanguage As String)
  oLanguage = org.openoffice.coooder.theLanguagesManager.get(GetDefaultContext()).getLanguage(sLanguage)
  If NOT isNull(oLanguage) Then
    oHighlighter = CreateUnoService("org.openoffice.coooder.Highlighter")
    oHighlighter.Language = oLanguage
    oHighlighter.parse(Null)
  End If
End Sub

Enfin, liez cela à une touche de raccourci:

entrez la description de l'image ici


0

Un que je connais, mais semble être abandonné, est Code Colorizer Formatter .

Je ne sais pas si cela fonctionne toujours dans LO 4, mais cela pourrait valoir la peine d'essayer (ou de sauver et de mettre à jour!).


1
Code Colorizer Formatter a été mis à jour le 1er mars 2015 avec la prise en charge jusqu'à LibreOffice 4.4 pour de nombreux langages de programmation, y compris PHP. J'ai testé Code Colorizer Formatter sur LibreOffice 4.2. Les instructions sur le site officiel de Code Colorizer Formatter ne fonctionnaient pas pour moi, donc j'ai mis mes propres instructions pour utiliser Code Colorizer Formatter dans ma réponse.
karel

0

Je me suis fatigué de formater mon code sur une page en ligne et je voulais que mon code soit stylisé dans LibreOffice ou OpenOffice Writer.

J'ai découvert que l'extension "cooder" fonctionne correctement sur mon LibreOffice 5. * même si son installation semblait échouer (My LibreOffice 5. * suspendu pendant l'installation).

Dans le gestionnaire d'extensions, vous pouvez activer le Cooder, redémarrer LibreOffice / NeoOffice / OpenOffice et vous devriez voir un nouveau symbole que vous pouvez utiliser pour styliser votre code source dans LibreOffice.

Vous pouvez télécharger l'extension sur: http://extensions.libreoffice.org/extension-center/coooder

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.