rozszerzenie podświetlenia kodu dla programu Libre Office writer

21

Niedawno napisałem raport dla szkoły z dużą ilością kodu. Jedynym sposobem, w jaki mogłem napisać wrok, było podkreślenie go STRONG i to jest naprawdę brzydkie. Czy jest więc rozszerzenie podświetlania kodu dla libre office writer?

Jak ten poniżej:

<insert code here>

Podświetlanie składni w różnych kolorach jest również w porządku.
Nigdy nie wchodzę w cały program, więc muszę być w stanie napisać kod, który uważam za kod.

Jak ten: echo "Hello World!";

Cooder

Przede wszystkim nie podobało mi się to wyróżnienie, ponieważ formatuje tekst i cały tekst, który pojawia się po nim. Chcę zaznaczyć tekst, a następnie kliknąć wyróżnienie i to wszystko.
Ten jest zbyt skomplikowany i trudny w użyciu, za każdym razem, gdy podkreślam, muszę wybrać język programowania, który będzie około 100 razy w jednym raporcie, to zdecydowanie za dużo.
Chciałbym coś podobnego do tego, czego używają na stronie. zaznacz prosty kod, jeśli chcesz.

Code Colorizer Formatter

Instaluje się dla mnie, ale nie mogę go uruchomić i nie ma obsługi PHP ani HTML, czego potrzebuję.

Alvar
źródło
dodany jako odpowiedź, cieszę się, że pomógł
Drake Clarris
1
Polecam korzystanie z LaTeX (patrz przykład ). Zanim użyłem lateksu, zapisałem źródło jako HTML za pomocą KDE Kate i skopiowałem renderowany kod z przeglądarki do otwarcia biura
Martin Thoma
@ Wybierz, dlaczego dodajesz to jako komentarz zamiast odpowiedzi? wyjaśnij też wszystkie kroki, dzięki.
Alvar

Odpowiedzi:

15

To nie jest wtyczka, ale umieściłem kod na stronie internetowej, która koloruje dla ciebie składnię. Witryna, z której korzystam, to tohtml . Nie używam kodu wygenerowanego w formacie HTML, po prostu kopiuję kolorowy i podświetlony kod z przeglądarki i wklejam go do dokumentu i WYSIWYG.

Drake Clarris
źródło
Kopiowanie nie działało dla mnie z Firefoksa do Libroffice, chociaż zapisywanie jako HTML i otwieranie pliku w Libreoffice, a następnie kopiowanie działało
Wilf
Kopiuj + wklej działał na Ubuntu z Chrome na libreoffice! dzięki!
rrosa
11

AKTUALIZACJA 2: Rozszerzenie LibreOffice

Mój poprzedni skrypt makra opublikowałem jako rozszerzenie: Code Highlighter, który jest dostępny w sklepie LibreOffice Extensions.

1. Jak zainstalować?

Wykonaj następujące kroki, aby zainstalować rozszerzenie:

Krok 1: Zainstaluj libreoffice-script-provider-python:

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

Krok 2: Zainstaluj pygmenty dla Pythona 3:

sudo pip3 install pygments

Krok 3: Pobierz i dodaj rozszerzenie codehighlighter.oxt do Libre Office

2. Jak korzystać?

  • Otwórz LibreOffice Writer / Calc / Impress.
  • Wstaw pole tekstowe ( Wstaw -> Pole tekstowe ).
  • Skopiuj i wklej dowolny fragment kodu w tym polu tekstowym.
  • Wybierz pole tekstowe.
  • Wyróżnij według narzędzi -> Kod wyróżnienia -> <Nazwa języka>

wprowadź opis zdjęcia tutaj

Możesz przypisać skróty klawiaturowe do często używanych języków. Aby zobaczyć, jak przypisać skrót klawiaturowy, odwiedź stronę Git Hub: libreoffice-code-highlighter


Zostawiam tutaj moją oryginalną odpowiedź, ponieważ nadal jest ważna dla LO <= 5.

Miałem takie same wymagania i żadne z tych rozwiązań nie działało dla mnie w LibreOffice 5 oprócz „Code Colorizer Formatter”. Ale Codeizer Colorizer Formatter działał tylko w Writer (potrzebowałem również Impress). Później znalazłem inne rozwiązanie wykorzystujące makro Python, które jest testowane w LibreOffice 5.

Instalacja

Krok 1: Zainstaluj libreoffice-script-provider-python:

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

Krok 2: Zainstaluj pygmenty dla Pythona 3:

sudo pip3 install pygments

Krok 3: Pobierz Highlight.py

Krok 4: Skopiuj plik Highlight.py do / usr / lib / libreoffice / share / Scripts / python /

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

Krok 5: Ustaw uprawnienie skryptu tylko do odczytu.

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

Krok 6: Otwórz LibreOffice Writer i goto Narzędzia -> Dostosuj -> Klawiatura

  • Wybierz przycisk opcji LibreOffice (dostępny w lewym górnym rogu)
  • Wybierz żądany skrót
  • Wybierz share / Highlight / Highlight_source_code w kategorii Funkcje
  • Kliknij przycisk Zmień, aby ustawić skrót

Stosowanie

LibreOffice Impress

  • Otwórz LibreOffice Impress.
  • Wstaw pole tekstowe (Wstaw -> Pole tekstowe).
  • Skopiuj i wklej dowolny fragment kodu w tym polu tekstowym.
  • Utwórz nowy styl (kliknij istniejący styl prawym przyciskiem myszy -> Nowy ...)
  • Nazwij styl jako code-<language>
  • Zastosuj styl do pola tekstowego fragmentu kodu.
  • Wybierz pole tekstowe.
  • Użyj klawiszy skrótu, aby wykonać makro.

LibreOffice Writer / Calc

  • Otwórz LibreOffice Writer / Calc.
  • Wstaw pole tekstowe (Wstaw -> Pole tekstowe).
  • Skopiuj i wklej dowolny fragment kodu w tym polu tekstowym.
  • Kliknij pole tekstowe prawym przyciskiem myszy i wybierz „Opis”.
  • Dodaj opis w następującym formacie: code-<language>
  • Wybierz pole tekstowe
  • Użyj klawiszy skrótu, aby wykonać makro.

AKTUALIZACJA 1:

Dodałem obsługę niestandardowego stylu do tego rozszerzenia. Użyj code-<language>dla stylu domyślnego i code-<language>-<style>niestandardowego. Dostępne style są wymienione na mojej stronie Git Hub.

Na przykład Code-Java-Emacspokoloruje kod Java za pomocą stylu Emacsa.

Gobinath
źródło
Działa całkiem nieźle, dzięki! Jak mogę zmienić motyw pigwy?
greschd
Sprawdź zaktualizowany post. Zaktualizowałem skrypt, aby obsługiwał niestandardowe style. Musisz zaktualizować skrypt Highlight.py, aby móc korzystać z tej nowej funkcji.
Gobinath
Fajnie dzięki. Jedno wciąż mnie niepokoi - kiedy właśnie zapisałem plik, a następnie próbowałem uruchomić makro, resetuje tekst do wcześniejszej wersji. Czy wiesz, dlaczego tak jest i czy można to łatwo naprawić?
greschd,
Nie spotkałem się z takim problemem. Czy możesz dać mi znać dokładne kroki, aby odtworzyć ten problem?
Gobinath,
(w Impress): edytuję kod w polu tekstowym, które już wcześniej sformatowałem, zapisz dokument (Ctrl + S), zaznacz pole tekstowe, spróbuj wyróżnić (Ctrl + Shift + H) i resetuje część tekstu Napisałem
greschd,
4

KUCHNIA

COOder wydaje się być porzucony i nie można go zainstalować w LibreOffice 4.2.8.2.

Code Colorizer Formatter

Code Colorizer Formatter instaluje się i działa poprawnie w LibreOffice. Code Colorizer Formatter także dodał obsługę PHP, ale obsługa HTML całkowicie zniknęła, a JavaScript nie działał, kiedy go testowałem. Instrukcje, jak sprawić, by działało na stronie Code Colorizer Formatter, nie działały dla mnie, jednak dostałem Code Colorizer Formatter do pracy w LibreOffice, a oto moje instrukcje:

  1. Pobierz Code Colorizer Formatter ze strony głównej projektu Code Colorizer Formatter i zainstaluj go w LibreOffice Writer, jak każde inne rozszerzenie LibreOffice.

  2. Otwórz plik kodu w LibreOffice Writer. Code Colorizer Formatter obsługuje Bash, Basic, C ++, Java, Perl, PHP, Python, R, SQL, XML, C #, 8085 Asembler i x86 Asembler.

  3. Wybierz kod do pokolorowania.

  4. Wybierz Narzędzia -> Makra -> Organizuj makra -> LibreOffice Basic .

  5. Otworzy się nowe okno Makr podstawowych LibreOffice . Pod nagłówkiem Makro z wybierz Moje makra -> MacroFormatterADP -> obsługiwany język programowania. Na poniższym zrzucie ekranu wybrano Javę.

  6. Pod nagłówkiem Istniejące makra w ... wybierz HighlightSelLanguage, gdzie język w HighlightSelLanguage jest taki sam, jak język programowania wybrany w kroku piątym. Na poniższym zrzucie ekranu wybrano HighlightSelJava.

  7. Kliknij przycisk Uruchom , aby pokolorować wybrany kod.

wprowadź opis zdjęcia tutaj

Karel
źródło
Wydaje się porzucony, przechodząc do sekcji rozszerzeń w LibreOffice mówi, że nie miał aktualizacji od ponad roku
Purefan
Ilość pracy przy korzystaniu z CCF nie jest warta wyniku, IMHO. Myślałem, że strona tohtml lepiej sobie radzi z wynikami (np. Kolory kropek, nawiasy itp.). Jeśli jednak ktoś chce użyć tej „prostej drogi” ™, może przejść do Narzędzia >> Dostosuj ... >> Menu kontekstowe (zakładka) >> Menu (lista rozwijana) >> Tekst >> Dodaj ... ( przycisk) >> Makra LibreOffice >> Moje makra >> MacroFormatterADP >> (wybierz język) >> HighlightSel (język) >> Zamknij . Następnie zaznacz tekst, kliknij r-r i znajdź nową opcję w menu kontekstowym, aby sformatować zaznaczony tekst; nazwa wpisu może zostać zmieniona.
code_dredd
1
@karel Używam wersji 5.2.2.2w Kubuntu 16.10. Zrobiłem to na kilka chwil przed moim oryginalnym komentarzem.
code_dredd
@ray Dziękuję za sugestię. Zainstaluję Kubuntu w VirtualBox i spróbuję.
karel
@karel Czy wersja 5.2.2.2w systemie Windows nie działa tak samo? Wydaje mi się, że aktualizacja twojej wersji powinna działać bez konieczności przeprowadzania pełnej instalacji systemu operacyjnego.
code_dredd
1

Muszę wybierać język programowania za każdym razem, gdy zaznaczam, który będzie około 100 razy w jednym raporcie, to zdecydowanie za dużo

W rzeczywistości istnieje sposób na powiązanie kolorowania w danym języku z klawiszem skrótu. Utwórz następujący element podrzędny i powiąż go z klawiszem skrótu:

Przejdź do Narzędzia → Makra → Makra organizacji → LibreOffice Basic. Wybierz Moduł 1 i naciśnij Edytuj:

wprowadź opis zdjęcia tutaj

Następnie skopiuj i wklej ten kod:

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

Na koniec powiąż to z klawiszem skrótu:

wprowadź opis zdjęcia tutaj

Cegła suszona na słońcu
źródło
0

Jednym z nich, który znam, ale wydaje się być porzucony, jest Code Colorizer Formatter .

Nie wiem, czy nadal działa w LO 4, ale może warto spróbować (lub uratować i zaktualizować!).

Carnendil
źródło
1
Code Colorizer Formatter został zaktualizowany 1 marca 2015 roku z obsługą do LibreOffice 4.4 dla wielu języków programowania, w tym PHP. Przetestowałem Code Colorizer Formatter na LibreOffice 4.2. Instrukcje na oficjalnej stronie Code Colorizer Formatter nie działały dla mnie, więc w odpowiedzi umieściłem własne instrukcje dotyczące używania Code Colorizer Formatter.
karel
0

Zmęczyłem się formatowaniem kodu na stronie internetowej i chciałem nadać mu styl w LibreOffice lub pisarzu OpenOffice.

Dowiedziałem się, że rozszerzenie „cooder” działa poprawnie na moim LibreOffice 5. * nawet jeśli instalacja wydawała się nieudana (My LibreOffice 5. * zawieszony podczas instalacji).

W Extension-Managerze możesz aktywować Cooder, zrestartować LibreOffice / NeoOffice / OpenOffice i powinieneś zobaczyć nowy Symbol, którego możesz użyć do nadania stylu kodowi źródłowemu w LibreOffice.

Możesz pobrać rozszerzenie ze strony: http://extensions.libreoffice.org/extension-center/coooder

Jo Canara
źródło