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.confin theinputFilesarray as:"Example/Example.pillar"support/latex/book.texin\graphicspathas{Example/}EnterprisePharo.pillaras${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