Prezentacja kodu źródłowego na własnej stronie
Jak zaprezentować kod źródłowy na stronie internetowej, tak by był on przejrzysty a jednocześnie szybki we wdrożeniu i późniejszej eksploatacji? To pytanie zadaje sobie zapewne wielu developerów, i to nie tylko tych webowych.
Przeszukując internet pod tym kątem, natkniemy się na informacje o rozwiązaniach jak: Chili, CodeMirror, SyntaxHighlighter, Google Code Prettify, highlight.js, SHJS, JUSH, DlHighlight i wiele innych. Możemy zatem dojść do wniosku, że ilość dostępnych w sieci skryptów, które można potencjalnie wykorzystać, jest na tyle duża, że nie ma konieczności pisania własnego. Wystarczy jedynie wybrać rozwiązanie na miarę własnych potrzeb.
Pod względem funkcjonalności osobiście zaintrygował mnie skrypt ACE editor ze stajni Cloud9. Oferuje on obecnie 34 szablony kolorystyczne, co zwiększa szanse trafienia w nasz gust, lub ułatwi dopasowanie okna z kodem do koncepcji wizualnej strony internetowej. ACE editor, jak już jego nazwa mówi, jest w głównej mierze edytorem, jednak przy odpowiedniej jego inicjacji doskonale sobie radzi podczas kolorowania kodu, oferując funkcjonalności jakich nie posiadają inne rozwiązania.
Analizując możliwości tego skryptu, nie sposób pominąć tego, że radzi on sobie doskonale z kolorowaniem ponad 120 różnych formatów kodu!
Z czystym sumieniem mogę napisać, że zadowolony będzie zarówno frontend'owiec operujący językami CSS, JS, HTML, COFFEE SCRIPT, SASS czy LESS jak i programista piszący w językach PHP, JAVA, C, C#, Python, Ruby, Perl a nawet odchodzący do lamusa Cobol i Pascal. Jeśli zechcesz przekazać szerszemu gronu pewne konfiguracje lub pokazać przekazywane podczas komunikacji dane, nic nie stoi na przeszkodzie by przełączyć edytor w tryb kolorowania charakterystyczny dla plików XML, INI, czy JSON. Programiści tworzący szablony widoków w TWIG i SMARTY również znajdą odpowiedni tryb.
Nie będę tutaj wymieniał wszystkich możliwych formatów dokumentów, a odwołam się do strony demonstracyjnej, na której autorzy skryptu dają możliwość sprawdzenia niemalże każdej konfiguracji dostępnej podczas inicjacji skryptu na stronie. Jeśli wśród dostępnych trybów nie znajdziesz tego właściwego, producent nie zamyka nam drogi, udostępniając dokumentację umożliwiającą stworzenie własnego formatu. Personalizacja szablonów kolorystycznych również nie jest skomplikowana, i wystarczy podstawowa znajomość języka CSS.
Uruchomienie skryptu
Najbardziej podstawowy ale i zarazem najmniej elastyczny sposób wywołania to ten przedstawiony na stronie twórcy skryptu.
Proponowałbym jednak skupić się nad implementacją bardziej elastycznego wywołania, umożliwiającego szybkie definiowanie bloków kodu bez konieczności definiowania odrębnych inicjalizacji.
Oczywiście pracę musimy rozpocząć od pobrania biblioteki z repozytorium projektu i podpięcia jej w kodzie HTML:
Konieczne będzie również podpięcie biblioteki jQuery (jeśli jeszcze z niej nie korzystamy):
Jeśli bloki kodu osadzimy w treści Swojej strony za pomocą na przykład takiego wywołania:
Przypiszemy mu określone style:
To ich automatyczną obsługę w najprostszej formie zapewnimy sobie poniższym kodem javascript:
Jak widzimy biblioteka zostanie zainicjowana dla każdego bloku z przypisaną klasą "acecode".
W bardziej rozbudowanej formie wywołania:
przy zastosowanie bardziej rozbudowanego skryptu inicjującego (przedstawionego poniżej), uzyskamy możliwość łatwego sterowania nie tylko typem kodu, ale również szablonem kolorystycznym a nawet obecnością lub brakiem numeracji linijek.
W linijkach od 8 do 14, kod został uzupełniony o dodatkowe definicje. Dzięki nim wyłączone zostały funkcjonalności edytora, które w trybie tylko do odczytu są niepotrzebne. W komentarzu do nich zostały ujęte informacje za co są one odpowiedzialne.