Static site generator.
NOTE: This is under heavy construction and right now I would not recommend anyone to try this out. Try Jekyll/Octopress (Ruby), Pelican (Python), or Assemble (NodeJS) instead. I love all of them and they inspired this project quite a bit.
Also note that this is more like a wish-list than actual documentation :P
Odin is yet another static site generator, but with an approach that is slightly different.
There are lots of static site/blog generators out there in most of the commonly used languages:
- Octopress (Ruby)
- Jekyll (Ruby)
- Pelican (Python)
- Hyde (Python)
And about two dozen written in PHP. I tried most of those who went through the effort of documenting their project (which already excludes more than half of those) and even some of those who didn't. They just don't compare to the Ruby/Python alternatives. The two most famous ones are Phrozn and Sculpin. Both are well written, but Phrozn is not flexible and requires a lot of handy work to roll a blog and Sculpin is not documented at all.
Some people don't want to go through the effort of setting up another language and besides, PHP is the most commonly used language on the web. The should be a site generator who can compete with the lesser used alternatives. This is my attempt at creating one.
What I love about Octopress is that the default theme is pretty sweet. It looks decent enough, is widget ready (which are also provided with Octopress) and is search engine friendly. It's just really really convenient for those who want to get started right away.
But I'm missing a bootstrap tool that gets me started even faster without opening the config and the theme is not separated from the content, making a switch much more difficult.
All it takes to get started is one command, the rest is easy as pie. The default theme will provide you with almost everything you need and maybe more.
I tried to keep using Odin as simple as possible, but made sure to comment all of the use cases I could think about. Disagree? Let me know
Odin does whatever you tell him to. Blog like a maniac, compile documentation or create a basic website for a small business.
Yes, Odin actually provides a CMS. This is for when you want to quickly create a website or a small business using static site generation, while still giving your customer limited control over the content. We're not talking Wordpress here, but most of the time, that's not what people are looking for. Change a promotion, raise prices, remove an old staff member form the about page etc.
Have it your way:
Prefer using a command line tool instead of playing around in YAML files? You can adjust most of the basic settings on the fly using the command line tool. If you rather tinker with your site using a configuration file under VCS, you can also do just that. Or if you want you could just stick to a couple of conventions and avoid having to do any configuration.
I'm assuming you are familiar with Composer and it is installed globally. If you are not, you can read more about it here.
I tried to make the install as simple as possible, so all it takes is one command:
$ composer create-project mihaeu/odin-blog [/var/www/myNewBlog]
Odin is flexible and easily bends to your will, yet there is one design decision that should always be kept in mind and that is the specificity of configuration and convention (from lowest to highest):
- convention (e.g. filename includes title and date
- global configuration (e.g.
- local configuration (e.g. Frontmatter property
- command line arguments (e.g. setting different blog URL via
odin --blog_url="http://localhost:1234" ...)
Therefore the file
2014-01-01-awesome-post.md with the Frontmatter
--- title: Awesomererer post ---
Will be compiled to carry the title
Awesomererer post. And most of the basic blog settings can be overwritten using command line arguments (this is to make testing and deploying easier).
So for those who don't like to meddle around config files: you don't have to. You can set up the blog using the odin tool and compose your content using a few very simple conventions.
generators that produce content
setup wizard for odin and odin-plugins
different input formats