This book is written in Pillar markup. If you are not familiar with it please read the Pillar chapter.
###Prerequisites
####Install LaTeX
The book requires TeX Live 2015 to generate the PDFs. Linux distributions often require to install several packages, please refer to the SBAbook description.
Mac OS X users: download and install MacTeX
(the 2.4Gb MacTeX.pkg
file), and add its binaries to your system path
(don't forget to start a new terminal session, for the path changes to take
effect):
echo /usr/texbin > TeX
sudo mv TeX /etc/paths.d
####Download Pillar
Run ./download.sh
to obtain the required Pillar executable. This will also
download the required Pharo image and VM and install it locally in the book's
directory.
###Generating the book
To generate the individual book chapters, execute ./compile.sh
. This will
place the rendered chapters in book-result/
.
To compose the chapters into the full book, after running ./compile.sh
,
execute ./compileBook.sh
.
To generate a single chapter (for example, the Teapot
chapter):
./pillar export Teapot/Teapot.pillar
bash pillarPostExport.sh
###Adding a chapter
To add a chapter create a directory for it (named, e.g., Example
) and put
there a .pillar
file (named, e.g., Example.pillar
) which will contain the
chapter itself. Put images in the figures
subdirectory of the new chapter
directory.
Add your chapter to:
pillar.conf
in theinputFiles
array as:"Example/Example.pillar"
support/latex/book.tex
in\graphicspath
as{Example/}
EnterprisePharo.pillar
as${inputFile:Example/Example.pillar}$
###Caveats
- You must neither use spaces nor underscores (
_
) in file names.
Chapter | Latest | Link reference |
---|---|---|
1 - Teapot | html pdf | Chapter *@cha:teapot* link: *Teapot>../Teapot/Teapot.pillar@cha:teapot* |
2 - Handling CSV with NeoCSV | html pdf | Chapter *@cha:neoCSV* link: *NeoCSV>../NeoCSV/NeoCSV.pillar@cha:neoCSV* |
3 - JSON | html pdf | Chapter *@cha:JSON* link: *JSON>../NeoJSON/NeoJSON.pillar@cha:JSON* |
4 - STON: a Smalltalk Object Notation | html pdf | Chapter *@cha:ston* link: *STON>../STON/STON.pillar@cha:ston* |
5 - Serializing Complex Objects with Fuel | html pdf | Chapter *@cha:fuel* link: *Fuel>../Fuel/Fuel.pillar@cha:fuel* |
6 - Persisting Objects with Voyage | html pdf | Chapter *@cha:voyage* link: *Voyage>../Voyage/Voyage.pillar@cha:voyage* |
7 - Mustache Templates for Pharo | html pdf | Chapter *@cha:mustache* link: *Mustache>../Mustache/Mustache.pillar@cha:mustache* |
8 - Cascading Style Sheets with RenoirSt | html pdf | Chapter *@cha:renoirst* link: *RenoirST>../RenoirST/RenoirST.pillar@cha:renoirst* |
9 - Documenting your Project with Pillar | html pdf | Chapter *@cha:pillar* link: *Pillar>../PillarChap/Pillar.pillar@cha:pillar* |
10 - Generate PDF documents with Artefact | html pdf | Chapter *@cha:artefact* link: *Artefact>../Artefact/Artefact.pillar@cha:artefact* |
11 - Character Encoding and Resource Meta Description | html pdf | Chapter *@cha:zincEncoding* link: *Zinc Encoding Meta>../Zinc-Encoding-Meta/Zinc-Encoding-Meta.pillar@cha:zincEncoding* |
12 - Zinc HTTP: The Client-side | html pdf | Chapter *@cha:zinc-client* link: *Zinc Client>../Zinc-HTTP-Client/Zinc-HTTP-Client.pillar@cha:zinc-client* |
13 - Zinc HTTP: The server side | html pdf | Chapter *@cha:zinc-server* link: *Zinc Server>../Zinc-HTTP-Server/Zinc-HTTP-Server.pillar@cha:zinc-server* |
14 - REST Web Services | html pdf | Chapter *@cha:zinc-rest* link: *Zinc Rest>../Zinc-REST/Zinc-REST.pillar@cha:zinc-rest* |
15 - Building and deploying your first web app with Pharo | html pdf | Chapter *@cha:webApp* link: *WebApp>../WebApp/WebApp.pillar@cha:webApp* |
16 - WebSockets | html pdf | Chapter *@cha:webSockets* link: *WebSockets>../WebSockets/WebSockets.pillar@cha:webSockets* |
There are mods/bundles/packages for text editors, that provide improvements for pillar files editing:
- Emacs: pillar-mode
- Vim: vim-pillar
- TextMate: Pillar.tmbundle
- ATOM: language-pillar