Skip to content

SquareBracketAssociates/EnterprisePharo

Repository files navigation

Enterprise Pharo (english version) Build Status Build Status

How to write a book

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 the inputFiles 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.

Chapters

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*

Tools

There are mods/bundles/packages for text editors, that provide improvements for pillar files editing: