thomhos / process

A static site generator with nunjucks, stylus and rollup
MIT License
5 stars 0 forks source link

Hoe krijg ik 'em aan de praat? #1

Open stefthoen opened 7 years ago

stefthoen commented 7 years ago

Hoi Tom,

Probeer het aan de praat te krijgen, maar mis iets van een stappenplan. Ik ga er vanuit dat ik npm install moet doen, maar wat doe ik daarna? Je geeft een voorbeeld van een config file, maar heb geen idee hoe die moet heten en waar hij moet staan. En hoe run ik de boel? node index.js geeft een foutmelding. In de package.json lees ik dat dat de 'bin' is?

Verder:

Lijkt me leuk om je generator te gebruiken!

thomhos commented 7 years ago

Hi Stef,

Ik heb inderdaad nog heel weinig aan documentatie geschreven, ook is het nog niet af :)

Ik zou het liefst even een voorbeeldje willen posten, maar die kan ik nu niet even snel in elkaar zetten (ben op werk). Maar in het kort moet je dit doen;

4 folders; data - waar al je json files gaan voor de site en de content html - waar al je html templates en modules gaan (momenteel alleen nunjucks) styles - waar al je style bestanden gaan (momenteel alleen stylus) scripts - al je js bestanden (wordt met rollup gebundled, dus gewoon es6 schrijven)

In je config bestand zorg je dat alle entry files en paden kloppen. Hoop dat het voorbeeldje hiervoor duidelijk genoeg is.

Vervolgens maak je een json bestand aan, dit kan op twee plekken; data/site - hier gaat al je algemene site info. Bijv menu, header, footer, meta info etc. data/content - hier kun je alle content per pagina kwijt.

Je maakt vervolgens per pagina een json bestand aan in de data/content map. Hierin moet je verplicht 1 property zetten; 'template'. Deze mapt naar de naam van een template in de html folder die je in de config hebt gezet. Dus bijv;

{
  "template": "default"
}

bovenstaande json zou gaan zoeken naar een default.tpl in je templates folder.

Vervolgens wordt iedere property die je in de json zet beschikbaar in dat template onder de page variabele. Bijv. "title" in de json kun je gebruiken als {{ page.title }}.

Ik laat het even weten als ik een voorbeeld heb gepost. Heb het namelijk ook werkend met modules, dat gaat wel lekker. Dan heb je namelijk een property modules (array) en daarin objecten met een key wat de naam van een module is. Zo kun je die key gebruiken om de juiste module in te laden in nunjucks, en de data eraan te binden. Zo kan je template gewoon bestaan uit een loopje door alle modules. En je json is een array van modules. Dat is dan ook de reden waarom het een static site generator kan zijn; je maakt json bestanden aan en vervolgens komt er html uit :D

Spreek je!

thomhos commented 7 years ago

Note to self;

stephanedemotte commented 7 years ago

+100 for example project :)