Open stefthoen opened 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!
Note to self;
+100 for example project :)
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 depackage.json
lees ik dat dat de 'bin' is?Verder:
Lijkt me leuk om je generator te gebruiken!