Visit our site to listen to past episodes, comment on the show or find out more about us.
Summary
In this episode we had the opportunity to discuss the world of static site generators with Roberto Alsina of the Nikola project and Justin Mayer of the Pelican project. They explained what static site generators are and why you might want to use one. We asked about why you should choose a Python based static site generator, theming and markup support as well as metadata formats and documentation. We also debated what makes Pelican and Nikola so popular compared to other projects.
Brief Introduction
Welcome to Podcast.__init__ the podcast about Python and the people who make it greatFollow us on iTunes, Stitcher or TuneInGive us feedback on iTunes, Twitter, email or DisqusWe donate our time to you because we love Python and its community. If you would like to return the favor you can send us a donation}. Everything that we don’t spend on producing the show will be donated to the PSF to keep the community alive.Date of recording – August 08, 2015Hosts Tobias Macey and Chris PattiToday we are interviewing the core developers of Nikola and Pelican about static site generatorsInterview
IntroductionsMonitorial.net <- JustinUpriise <- JustinWorks for Canonical <- RobertoHow did you get introduced to Python? Justin:Needed a way to get order data to payment processor for commerce company1996 got involved with LinuxFound XFormsWrote Python bindings
For our listeners who might not know, what are static site generators and what are some of the advantages they bring to the table over other similar systems that perform the same function? RobertoRemove all the effort from the computer that serves the websiteServer runs no codeSmaller ssurface area for security purposesBetter performance – important for responsiveness and uptimeEasier deployment and maintenanceEasier versioning and migrationCan version both input and output
There are a number of static site generators available in virtually every language. Why would a user want to leverage a Python solution vs Ruby, javascript, Go, etc.? ReStructured TeXT is best supported in PythonGood language for supporting various markup syntaxesMost static site generators seem to have a primary focus on blogging. What is it about these tools that lend themselves so well to that use case? The author of the tools shape the purpose of the toolMost popular among programmers which is a demographic that is likely to have a blogWorkflow is similar to what programmers are used toStill useful for non-chronological pages due to templating system
Something that struck me comparing the two systems is that they have largely the same kinds of data going into the metadata block for each post, but it’s expressed in a different / incompatible way in each. Have you ever considered agreeing on a standard and even advertising it as such so all static site generators could make use of it?
Challenging because of the idiosyncratic way problems are solved in each system
Wouldn’t end up with the same site even if metadata were identical
Roberto & Justin are talking, this may happen!
The themes in Pelican and Nikola have very different feels and one of the things that initially drew me to Pelican is the larger catalog of themes available. What are some of the challenges involved in creating a theme for a static site generator?
Many programmers who write SSGs aren’t amazing at HTML
Pelican and Nikola seem to be the most widely used projects for creating static sites using Python. What do you think is the key to that popularity? Frequent updates, good documentation and large communityEasy to get up and runningNeed to be productive inside of 2 minutesGood first impressions are key
Importance of extensibility
Core modularity and availability of plugins
A lot of people have written about the importance (and difficulty) of writing and maintaining good documentation in open source projects. Nikola’s documentation is excellent. How did Nikola manage this in its development process and what can other open source projects learn from this? No secrets – just do it and keep it updated.Need to look at the tool as if using it for the first timeWhat are some specific examples of unique and interesting uses your site generators have been put to? Justin:kernel.org, Debian, Chicago Linux Users, TransFX (translation house) all use PelicanEmbedding Jupyter notebooks and MathML rendering in postsSite search pluginBig adoption in the sciences (Jupyter notebook embedding supported in core)Output is foreverPlugin to trigger internet archive to reindex site
Nikola’s flexible deployment architecture (e.g. the use of doit tasks) seems to lend itself to some interesting use cases. What was the inspiration for this? Build was taking 1 1/2 hours, doit allowed for incremental generationDoit is a generic task system. Nikola has no “main” it’s a collection of doit tasks.Is there any specific help that you would like to ask of the audience? Contribute themesHelp with reviewing issues and pull requestsPicks
TobiasTermuxMagic WormholeArrowEmacs Lisp Introduction3D Cellular Automata in MinecraftPrompt 2Monitorial.netUpriiseErgodoxJarvis Bamboo Sit/Stand DeskTalky.ioFish shellTackleboxiTerm v3.0 beta
Brother Thelonious Belgian Ale
Frog’s Leap Winery
PyCon Italia and Italy in general
Neal StephensonDocoptFried PicklesPyAr Python Argentina User GroupPyCon Argentina in MendosaPyCampKeep In Touch
JustinPersonalPelicanNikolaForums and mailing list