SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
jekyll
Blogging for Hackers


Curtis Miller / Flatterline
Static Site Generator
Ruby + Liquid + YAML
    = Awesome!
How Does It Work?
• Gathers content from _posts, _includes
  and other files
• Applies a template
• Converts Markdown and Textile to HTML
• Runs Liquid converters
• Outputs static HTML pages
Configurable
   _config.yml
YAML Configuration

• Global configuration options
• Per page / post configuration options
  (YAML Front Matter)
• Add your own key / value pairs and use
  them as you see fit
What’s Built In?

• Pagination
• Custom permalink structure
• Related post extraction
                        (use with GSL for faster generation)


• Syntax highlighting
• Markdown / Textile conversion
Plugin Architecture
     (easily extensible)


         _plugins/*.rb
Need a Custom Generator?
No Problem.
module Jekyll
 class CategoryGenerator < Generator
   def generate(site)
    ...
   end
 end
end
Need a Custom Liquid Tag?
No Problem.
module Jekyll
 class RenderTimeTag < Liquid::Tag
   def render(context)
    ...
   end
 end
end

Liquid::Template.register_tag(
  ‘render_time’,
  Jekyll::RenderTimeTag
)
Deployment

• Heroku free instance
• GitHub Pages
• Directly to Amazon S3
• Anywhere that can serve static pages!
What If I Want Blog
     Comments?
Extend with Disqus, Intense Debate or
        Facebook comments
What If I Need
Something Dynamic?
   Extend with Sinatra
Typical Workflow
$ cd <my blog dir>
$ foreman start

[Runs whatever you specified - e.g., Jekyll, Compass, Sinatra, etc.]

$ mate _posts/2011-12-20-jekyll-blogging-presentation-at-rubyaz.md

[Add content to file...]

$ git add _posts/2011-12-20-jekyll-blogging-presentation-at-rubyaz.md
$ git commit -m “New post about Ruby AZ presentation”
$ git push && git push heroku
Any Gotchas?

• YAML Front Matter means it’s a special file;
  No YAML, no special processing
• Pagination only works with HTML files (i.e.,
  no Markdown or Textile pagination)

• No generator for initial directory structure
A Few Stats
                 (as of 2011-12-20)




• Over 400 documented sites using Jekyll
• ~50 plugins
• >4,500 watchers
• >700 forks
How Do I Get Started?!
gem install jekyll
Thanks!
           Any questions?
Curtis Miller / Flatterline / curtis@flatterline.com

       https://github.com/flatterline/flatterline.com

Mais conteúdo relacionado

Mais procurados

Capybara-Webkit
Capybara-WebkitCapybara-Webkit
Capybara-Webkit
bostonrb
 
Javascript Myths and its Evolution
Javascript Myths and its  EvolutionJavascript Myths and its  Evolution
Javascript Myths and its Evolution
Deepu S Nath
 
React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UI
Marcin Grzywaczewski
 

Mais procurados (20)

Frameworks and webcomponents
Frameworks and webcomponentsFrameworks and webcomponents
Frameworks and webcomponents
 
Wordpress as a Backend
Wordpress as a BackendWordpress as a Backend
Wordpress as a Backend
 
Webcomponents are your frameworks best friend
Webcomponents are your frameworks best friendWebcomponents are your frameworks best friend
Webcomponents are your frameworks best friend
 
JSON REST API for WordPress
JSON REST API for WordPressJSON REST API for WordPress
JSON REST API for WordPress
 
Isomorphic WordPress Applications with NodeifyWP
Isomorphic WordPress Applications with NodeifyWPIsomorphic WordPress Applications with NodeifyWP
Isomorphic WordPress Applications with NodeifyWP
 
Here Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPress
 
Capybara-Webkit
Capybara-WebkitCapybara-Webkit
Capybara-Webkit
 
Using WordPress as a Backend for Your React Project
Using WordPress as a Backend for Your React ProjectUsing WordPress as a Backend for Your React Project
Using WordPress as a Backend for Your React Project
 
The Onion
The OnionThe Onion
The Onion
 
Moving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMSMoving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
 
Javascript Myths and its Evolution
Javascript Myths and its  EvolutionJavascript Myths and its  Evolution
Javascript Myths and its Evolution
 
React.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UIReact.js - and how it changed our thinking about UI
React.js - and how it changed our thinking about UI
 
Best Practices for WordPress in Enterprise
Best Practices for WordPress in EnterpriseBest Practices for WordPress in Enterprise
Best Practices for WordPress in Enterprise
 
PLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring SurfPLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring Surf
 
Neos CMS and SEO
Neos CMS and SEONeos CMS and SEO
Neos CMS and SEO
 
A Day of REST
A Day of RESTA Day of REST
A Day of REST
 
Modern javascript
Modern javascriptModern javascript
Modern javascript
 
Evolution of java script libraries
Evolution of java script librariesEvolution of java script libraries
Evolution of java script libraries
 
Broccoli.js presentation
Broccoli.js presentationBroccoli.js presentation
Broccoli.js presentation
 
Web component driven development
Web component driven developmentWeb component driven development
Web component driven development
 

Semelhante a Jekyll Presentation Slides

Static Sites in Ruby
Static Sites in RubyStatic Sites in Ruby
Static Sites in Ruby
bryanbibat
 
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
BIWUG
 

Semelhante a Jekyll Presentation Slides (20)

Blogging With Jekyll | Blogging Like a Hacker
Blogging With Jekyll | Blogging Like a HackerBlogging With Jekyll | Blogging Like a Hacker
Blogging With Jekyll | Blogging Like a Hacker
 
Static Websites - The Final Frontier
Static Websites - The Final FrontierStatic Websites - The Final Frontier
Static Websites - The Final Frontier
 
Performance (browser)
Performance (browser)Performance (browser)
Performance (browser)
 
Static Site Generation with Hugo and Markdown
Static Site Generation with Hugo and MarkdownStatic Site Generation with Hugo and Markdown
Static Site Generation with Hugo and Markdown
 
#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros#SPSLondon - Session 2 JSLink for IT Pros
#SPSLondon - Session 2 JSLink for IT Pros
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT Pros
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITPros
 
2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio2016 stop writing javascript frameworks by Joe Gregorio
2016 stop writing javascript frameworks by Joe Gregorio
 
Static Sites in Ruby
Static Sites in RubyStatic Sites in Ruby
Static Sites in Ruby
 
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
PyconIE 2016 - Kajiki, the fast and validated template engine your were looki...
 
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
SharePoint Saturday Belgium 2014 - Using JSLink and Display Templates with th...
 
Blogging for hackers (english)
Blogging for hackers (english)Blogging for hackers (english)
Blogging for hackers (english)
 
Spsbe using js-linkanddisplaytemplates
Spsbe   using js-linkanddisplaytemplatesSpsbe   using js-linkanddisplaytemplates
Spsbe using js-linkanddisplaytemplates
 
Web components, so close!
Web components, so close!Web components, so close!
Web components, so close!
 
Fronted From Scratch - Supercharge Magento page speed
Fronted From Scratch - Supercharge Magento page speedFronted From Scratch - Supercharge Magento page speed
Fronted From Scratch - Supercharge Magento page speed
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Metaprogramming with javascript
Metaprogramming with javascriptMetaprogramming with javascript
Metaprogramming with javascript
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrived
 
Famo.us introduction
Famo.us introductionFamo.us introduction
Famo.us introduction
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 

Jekyll Presentation Slides

  • 1. jekyll Blogging for Hackers Curtis Miller / Flatterline
  • 3. Ruby + Liquid + YAML = Awesome!
  • 4. How Does It Work? • Gathers content from _posts, _includes and other files • Applies a template • Converts Markdown and Textile to HTML • Runs Liquid converters • Outputs static HTML pages
  • 5. Configurable _config.yml
  • 6. YAML Configuration • Global configuration options • Per page / post configuration options (YAML Front Matter) • Add your own key / value pairs and use them as you see fit
  • 7. What’s Built In? • Pagination • Custom permalink structure • Related post extraction (use with GSL for faster generation) • Syntax highlighting • Markdown / Textile conversion
  • 8. Plugin Architecture (easily extensible) _plugins/*.rb
  • 9. Need a Custom Generator?
  • 10. No Problem. module Jekyll class CategoryGenerator < Generator def generate(site) ... end end end
  • 11. Need a Custom Liquid Tag?
  • 12. No Problem. module Jekyll class RenderTimeTag < Liquid::Tag def render(context) ... end end end Liquid::Template.register_tag( ‘render_time’, Jekyll::RenderTimeTag )
  • 13. Deployment • Heroku free instance • GitHub Pages • Directly to Amazon S3 • Anywhere that can serve static pages!
  • 14. What If I Want Blog Comments? Extend with Disqus, Intense Debate or Facebook comments
  • 15. What If I Need Something Dynamic? Extend with Sinatra
  • 16. Typical Workflow $ cd <my blog dir> $ foreman start [Runs whatever you specified - e.g., Jekyll, Compass, Sinatra, etc.] $ mate _posts/2011-12-20-jekyll-blogging-presentation-at-rubyaz.md [Add content to file...] $ git add _posts/2011-12-20-jekyll-blogging-presentation-at-rubyaz.md $ git commit -m “New post about Ruby AZ presentation” $ git push && git push heroku
  • 17. Any Gotchas? • YAML Front Matter means it’s a special file; No YAML, no special processing • Pagination only works with HTML files (i.e., no Markdown or Textile pagination) • No generator for initial directory structure
  • 18. A Few Stats (as of 2011-12-20) • Over 400 documented sites using Jekyll • ~50 plugins • >4,500 watchers • >700 forks
  • 19. How Do I Get Started?!
  • 21. Thanks! Any questions? Curtis Miller / Flatterline / curtis@flatterline.com https://github.com/flatterline/flatterline.com