Blog (29)
Komentarze (476)
Recenzje (0)
@iluzionStatyczne strony internetowe w Emacsie

Statyczne strony internetowe w Emacsie

07.04.2011 01:58, aktualizacja: 07.04.2011 11:45

Przypomnienie

W poprzednim wpisie opisałem podstawy org-mode w Emacsie. Wiesz już jak tworzyć rozbudowane listy TODO, jak w szybki sposób tworzyć notatki, znasz podstawowe skróty klawiszowe, które mogą być przydatne w trybie org.

Skróty klawiszowe

Skróty klawiszowe Emacsa mogą odstraszyć początkujących użytkowników, z trzech powodów:

1) Popularne skróty (np. Ctrl+Z, Ctrl+X, Ctrl+C, Ctrl+V) "nie działają" 2) Mają dziwne oznaczenia, np. C‑c C‑e h, M‑w itp. 3) Jest ich bardzo dużo

Spieszę z wyjaśnieniami.

Ad 1) Skróty działają, ale inaczej. Emacs powstawał w zamierzchłych czasach (1976), a popularne, ogólnie przyjęte skróty klawiszowe jak (Ctrl+C, Ctrl+V) rozpowszechniły się wraz z sukcesem systemów z rodziny Windows. Zatem skróty stosowane w Emacsie są pewną zaszłością historyczną. Jest oczywiście druga strona medalu. Emacs z racji wieku jest aplikacją bardzo dojrzałą i stabilną.

Znane z systemu Windows skróty (Ctrl+Z, Ctrl+X, Ctrl+C, Ctrl+V) można włączyć zaznaczając w opcjach pozycję C‑x/C-c/C-v Cut and Paste (CUA).

381985

Ad 2) Kto wyobraża sobie dziś pracę przy komputerze bez myszki? W czasach gdy nie było trybu graficznego, myszy komputerowe nie były popularnymi urządzeniami, bo nie miały większego zastosowania. Zapewne wtedy ktoś wpadł na genialny pomysł by zwiększyć efektywaność pracy przy pomocy skrótów klawiszowych.

Emacs posiada ogromną liczbę opcji i proporcjonalną do niej liczbę skrótów. Skrótów tych nie trzeba oczywiście pamiętać. Opcje można wybrać z menu. Przy każdej posiadającej własny skrót znajduje się opis, np. C‑x h. Należy pamiętać jedynie, że

C - Ctrl, M - Alt (Meta), S - Shift

Jak zatem zinterpretować skrót C‑x h? Wciśnij Ctrl+X, a następnie wciśnij H.

UWAGA: Wielkości liter w oznaczeniach skrótów są istotne. Tzn. C‑c C‑x C‑G to inny skrót od C‑c C‑x C‑g. Ten pierwszy można by zapisać jako C‑c C‑x C-S‑g.

Ad 3) Jak wspomniałem powyżej -‑- Emacs posiada tak dużą liczbę opcji, że na ich udokumentowanie na papierze należałoby wyciąć Puszczę Amazońską. Żartuję, ale prawdopodobnie autorzy podręcznika Emacsa doszli do wniosku, że łatwiej przyswoić zwięzłe oznaczenia (pewnie słusznie).

Statyczne strony internetowe

Pod koniec poprzedniego wpisu jako informację dodatkową podałem, że przy pomocy skrótu C‑c C‑e h (Ctrl+C, Ctrl+E, H) notatka org zostanie zapisana na dysku w pliku html (o tej samej nazwie). W tym wpisie nieco rozwinę ten wątek.

Obsługa języka polskiego

W załączniku do poprzedniej notatki dodałem wersję wpisu w postaci pliku html. Pierwsza rzecz, która rzuca się w oczy po otworzeniu tej strony to ,,Table of Contents''. Angielskie wyrażenie (które posiada polski odpowiednik) w tekście napisanym po polsku nie wygląda dobrze, a spis treści jest generowany przez Emacsa automatycznie.

Rozwiązanie tego problemu jest bardzo proste. Wystarczy do notatki (najlepiej na początku) dodać następujący wpis:

#+LANGUAGE: pl

Po wciśnięciu kombinacji C‑c C‑e h zostanie utworzony plik html, w którym zamiast ,,Table of Contents'' znajdzie się ,,Spis treści'', a zamiast ,,Author'' i ,,Date'' odpowiednio ,,Autor'' i ,,Data'', o ile podaliśmy również autora.

#+AUTHOR: Jan Kowalski

Dygresja: Jeśli oprócz pliku html chcemy utworzyć plik PDF (DocBook) ze wsparciem języka polskiego dodajemy:

#+LATEX_HEADER: \usepackage[polish]{babel}

Warto zauważyć, że w otrzymanym pliku zostało zastosowane prawidłowo dzielenie wyrazów. Microsoft Word domyślnie nie dzieli wyrazów, a po wyjustowaniu tekstu pozostawia okropne korytarze w tekście.

Dodatkowo cieszy fakt, że strony generowane przez Emacsa przechodzą bezbłędnie test WC3. Są lekkie dla przeglądarki, przyjemne dla oczu, choć nieco surowe.

Inne przydatne opcje to:

#+TITLE:       Tytuł strony
#+AUTHOR:      Autor strony
#+DATE:        Data
#+EMAIL:       Adres email
#+DESCRIPTION: Opis strony
#+KEYWORDS:    Słowa kluczowe

Więcej na stronie Export options.

Wzory matematycznie

Jeśli czytasz ten blog regularnie (zachęcam), to na pewno zwróciłeś(aś) uwagę, że dość często pojawia się na nim tematyka związana z LaTeX-em. LaTeX jest najlepszym (mi znanym) środowiskiem oferującym wsparcie dla wzorów matematycznych.

Wzory na stronach zwykle umieszczane są w postaci obrazów generowanych, np. na podstawie składni LaTeX-a. Rozwiązanie to ma taką zaletę, że działa w każdej przeglądarce internetowej. Nie jest natomiast wygodne w obsłudze. Zakładam, że posiadasz nowoczesną przeglądarkę, np. Google Chrome i lubisz proste, efektywne i efektowne rozwiązania typu print("Hello World"), a nie rozwiązania klasy ,,enterprise'' w stylu

public class HelloWorld {

    public static void main(String[] args) {
        System.enterprise.Enterprise.out.Jak.klikne.to.wyswietl("Hello World");
    }

}

Aby umieścić wzór/równanie wpisujemy je w trybie org w notacji LaTeX-a. Np.

$$ (a+b)^2 = a^2 + 2ab + b^2 $$

lub

\begin{equation}
    (a+b)^2 = a^2 + 2ab + b^2
\end{equation}

Wyrażenie takie jest renderowane na stronie internetowej przez MathJax.

Zapiszmy coś bardziej złożonego:

 \[ \int \frac{d\theta}{1+\theta^2} = \tan^{-1}\theta+C \]

Na końcu pliku znajduje się link do tej notatki wygenerowanej przez org-mode. Kliknij prawym przyciskiem myszy na wzór, a rozwinie się menu kontekstowe z szeregiem dodatkowych opcji.

382019

Z poziomu tego menu możemy m.in. zmieniać rozmiar wyświetlanego wzoru, wyświetlić kod źródłowy wzoru w postaci LaTeX/MathML lub ustawić, aby po podwójnym kliknięciu wyrażenie zostało powiększone.

382021

Proste i piękne!

HTML generated by org‑mode 7.4 in emacs 24 ++ org

Wybrane dla Ciebie
Komentarze (0)