static site generation for the masses
play

STATIC SITE GENERATION FOR THE MASSES Denis Defreyne FOSDEM 2013 - PowerPoint PPT Presentation

STATIC SITE GENERATION FOR THE MASSES Denis Defreyne FOSDEM 2013 1 Me 2 Me Denis Defreyne 2 Me Denis Defreyne twitter.com/ddfreyne 2 Me Denis Defreyne twitter.com/ddfreyne github.com/ddfreyne 2 Me Denis Defreyne


  1. Filters – Custom class ¡CensorFilter ¡< ¡Nanoc::Filter identifier ¡:censor def ¡run(content, ¡params={}) content.gsub('nanoc ¡sucks', ¡'nanoc ¡rocks') end end 53

  2. Rules 54

  3. Rules compile ¡'*' ¡do if ¡@item[:kind] ¡== ¡'article' filter ¡:bluecloth end layout ¡'default' end 55

  4. Rules compile ¡'/images/*/' ¡do ¡ ¡filter ¡:img_optimize end 56

  5. Rules compile ¡'/images/*/' ¡do ¡ ¡filter ¡:img_optimize end compile ¡'/images/*/', ¡:rep ¡=> ¡:thumbnail ¡do ¡ ¡filter ¡:scale, ¡:width ¡=> ¡140 end 57

  6. Rules compile ¡'/blog/*/', ¡:rep ¡=> ¡:mp3 ¡do ¡ ¡filter ¡:say ¡ ¡filter ¡:lame end 58

  7. Rules versus Makefiles 59

  8. Rules versus Makefiles Push vs. pull ‣ 59

  9. Rules versus Makefiles Push vs. pull ‣ Cleaner syntax ‣ 59

  10. Rules versus Makefiles Push vs. pull ‣ Cleaner syntax ‣ Automatic dependency tracking ‣ 59

  11. Helpers 60

  12. module ¡Nanoc::Helpers::Tagging # ¡Find ¡all ¡items ¡with ¡the ¡given ¡tag. # # ¡ @param ¡[String] ¡tag ¡The ¡tag ¡for ¡which ¡to ¡find ¡all ¡items # # ¡ @return ¡[Array] ¡All ¡items ¡with ¡the ¡given ¡tag def ¡items_with_tag(tag) @items.select ¡do ¡|i| (i[:tags] ¡|| ¡[]).include?(tag) end end end 61

  13. Helpers – example < h1 >Tags ¡for ¡<%= ¡@item[:tag] ¡%></ h1 > < ul > <% ¡items_with_tag(@item[:tag]).each ¡do ¡|i| ¡%> < li ><%= ¡link_to(@item[:tag], ¡i) ¡%></ li > <% ¡end ¡%> </ ul > 62

  14. Workflow 63

  15. Workflow 1. Development 63

  16. Workflow 1. Development 1. Version controlled 63

  17. Workflow 1. Development 1. Version controlled 2. Branched development 63

  18. Workflow 1. Development 1. Version controlled 2. Branched development 3. Pull requests 63

  19. Workflow 1. Development 1. Version controlled 2. Branched development 3. Pull requests 2. Release 63

  20. Workflow 1. Development 1. Version controlled 2. Branched development 3. Pull requests 2. Release 1. Preview 63

  21. Workflow 1. Development 1. Version controlled 2. Branched development 3. Pull requests 2. Release 1. Preview 2. Check 63

  22. Workflow 1. Development 1. Version controlled 2. Branched development 3. Pull requests 2. Release 1. Preview 2. Check 3. Deploy 63

  23. Data Sources 64

  24. Data Sources – nanoc 65

Recommend


More recommend