22. kesäkuu 2011, 21:43

Makefile-pohja rst-projektille

Kamalasti nimetty reStructuredText on muilta osin aika ihana. Ajattelin siirtää erään kirjoitusprojektin (jota on ehkä 400 sanaa tehty) LaTeXista reStructuredText-muotoon, ja tätä varten valmistelin hyvän hakemistorakenteen ja makefileen hommaa varten. Kyllä jos jotakin osaan tehdä, niin hidastella sitä aloittamista!

Perinteinen malli. Yksi masterdokumentti, jonka tehtävänä on inkluuderata varsinaiset kappaleet rakenteeksi. Dokumentista vedetään HTML- ja TeX-versiot, (joista jälkimmäinen sitä mukaa PDF:ksi) ehkä myös BBCode sitten hakuseen, kun on aihetta. Haluan turhat roskat pois työtiloistani. Makefile syntyi yllättävän kivutta. Yleensä niitä tarvitsee kirjoitella tyhjästä juuri sen verran harvoin, että se unohtuu.

# the name of master document
OUTPUT=fieldtest

#######################
# HTML
#######################

html: $(OUTPUT).html

$(OUTPUT).html: *.rst
	rst2html.py $(OUTPUT).rst > $(OUTPUT).html

#######################
# LaTeX
#######################

LATEXDIR = latex
latex: $(OUTPUT).pdf

$(OUTPUT).pdf: $(LATEXDIR)/$(OUTPUT).tex
	cd $(LATEXDIR);				\
	pdflatex $(OUTPUT).tex;		\
	pdflatex $(OUTPUT).tex;		\
	mv $(OUTPUT).pdf ..

$(LATEXDIR)/$(OUTPUT).tex: *.rst
	rst2latex.py $(OUTPUT).rst > $(LATEXDIR)/$(OUTPUT).tex

clean:
	rm -f $(LATEXDIR)/*

reallyclean: clean
	rm -f *pdf *html

all: latex html

Pitkä tarina, mutta siinä se nyt on. Tuli jotenkin hölmö olo, kun googlasin tuota targetin vaatimuslistan wildcardausta. Kävi ilmi, että pelkkä *.rst toimii aivan hyvin tässä kohtaa. Ilmeisesti jossain toisessa kohtaa se ei toimi. Ainakaan $(wildcard ) -funktion käyttäminen ei toiminut. Onneksi näin on fiksuinta.

ReStructuredText on ihan kiva kevyt merkintäkieli. Fieldlisteillä saa pitkälti tavoittelemaani dialogia kirjoitettua, mistä tulee tuo vaihdettavissa oleva työnimi fieldtest.

Tageja: ,

---
---

---

Aiheen vierestä