Przygotowując prezentacje w Keynote, zależy mi czasem by zaprezentować kawałek kodu źródłowego. Można zrobić prezentację na „żywym organizmie” i prezentować kod i jego działanie wprost ze swojego IDE, ale jest także metoda na wygenerowanie kodu źródłowego tak, aby można go umieścić w prezentacji, zachowując przy tym jego formatowanie i kolorowanie składni.
Formatowanie kodu źródłowego
Do zrealizowania tego celu, wykorzystać można Highlight, który dostępny jest poprzez Homebrew. Jeśli jeszcze nie masz Homebrew, zacznij od tego kroku. Następnie zainstaluj Highlight poprzez wykonanie komendy:
brew install highlight
Posiadając już zainstalowane narzędzie, można skonwertować plik z kodem źródłowym, np. do pliku HTML, za pomocą polecenia:
highlight -o hello.html -i hello.c
Automatyzacja formatowania
Aby ułatwić sobie pracę z przygotowywaniem prezentacji, wyszedłem z założenia, że najwygodniejszy dla mnie workflow byłby następujący:
- Skopiuj treść kodu źródłowego do schowka 📥
- Wykonaj czary-mary 🧙♀️
- Wklej gotowy kod do prezentacji 🎬
Idąc tym tokiem myślenia, potrzebujemy w prezentacji kodu w formacie rtf, dzięki czemu zachowamy kolory i strukturę kodu.
Przygotowałem więc polecenie w terminalu, które pobiera zawartość schowka, następnie wykonuje konwersję (w tym wypadku) kodu w języku Swift na gotową treść do wklejenia w prezentacji, a następnie wynik kopiuje z powrotem do schowka, dzięki czemu możemy wkleić gotowy rezultat za pomocą skrótu ⌘ + V.
pbpaste | highlight --syntax=swift --font-size 16 --style=moria --line-numbers -O rtf | pbcopy
W powyższym przykładzie zdefiniowałem także rozmiar czcionki oraz styl, którego ma użyć konwerter w przygotowywaniu tekstu. Jednak każdorazowe wpisywanie takiego tasiemca byłoby niezbyt wygodne, stąd można stworzyć swój własny alias, który wykona całą pracę za nas.
Tworzenie aliasu
Jako że używam powłoki zsh, tworzenie aliasu przedstawię na przykładzie właśnie tej powłoki, której ustawienia i aliasy ustawiane są w pliku .zshrc. W tym celu otwórz plik do edycji za pomocą polecenia:
nano ~/.zshrc
Na końcu pliku wklej poniższą treść:
alias swifttext="pbpaste | highlight --syntax=swift --font-size 16 --style=moria --line-numbers -O rtf | pbcopy"
Nazwę aliasu możesz ustawić inną. W moim przykładzie jest to swifttext.
Dla przykładu, utworzyłem także kolejny alias, które formatuje kod w języku ruby:
alias rubytext="pbpaste | highlight --syntax=ruby --font-size 16 --style=moria --line-numbers -O rtf | pbcopy"
Po zakończeniu edycji pliku, zamknij plik poprzez ⌃ctrl + X, następnie potwierdź klawiszem ↩︎Enter.
Na koniec zrestartuj terminal i możesz testować nową funkcję:
- Skopiuj żądaną treść kodu do schowka (⌘ + C)
- Wykonaj polecenie swifttext w terminalu
- Wklej treść do prezentacji w Keynote (⌘ + V)
Jeśli wszystko wykonałeś poprawnie, gratuluję 👏 Dla przykładu wklejam poniżej krótki kawałek który w celach testowych wygenerowałem za pomocą tego narzędzia (fragment ustawień Cocoapods):