I created this project because I needed a generator for a static website - not just a blog.
To accomplish this, the website structure matches the source structure exactly. In a subdirectory, you use the index.md file to specify the content, either explicitly by listing it, or implicitly by specifying the ordering key and direction. A blog would be reverse order by date, but any other scheme is possible.
In addition, this structure makes it possible to refer to other pages in the project using a wiki-like syntax. Basically, Urubu resolves the Markdown syntax for reference links over the project, instead of just within a page. This is a unique feature afaik.
Furthermore, there is support for tags, search, and templating constructs within pages. And it works well with Bootstrap.
It works great for a number of sites that I manage.
This is very similar to Hugo http://gohugo.io, my current website solution. The content organization is virtually identical. The approach of viewing a website as more than a blog is the same. Hugo also benefits from tons of themes, a large community and a ton of additional features.
How exactly does one specify / configure which content fields exist on a page? The problem I run into with most static site generators and flat-file CMS's is that even the ones claiming to "not be for blogging" still assume a very blog-like "one main content area per page"... which just doesn't fit the use-case of most sites I've built.
Didn't see anything in the docs about defining the content fields per page/template type, so figured I'd ask.
It is correct that there is "one main content" per page, available in the 'body' attribute.
However, to me the distinctive feature of a blog is not that, but the way entries are ordered (i.e. reverse order by date). For a manual, faq, feature requests,... I need a different ordering scheme, but I am happy with the "one main content" concept.
That having said, there is of course a need combine content in a single page. A layout (aka template) can combine content as needed. It can use other attributes of the page, specified in the front matter. Or it can use the content from other pages. One could put subpages in a subdirectory, and use some filename convention so that a layout can access them.
Urubu has support for pages that are only present for content, and not for being rendered themselves: you can specify a 'null' layout in the front matter.
How do you handle multilanguage content? Also, may I suggest implementing autopulling on github webhooks (if you haven't already)? It's a great way to keep a site in sync with what people push to a repository or even edit in the github web interface.
Pelican is another Python-based static site generator with a large userbase[0]. It has these features plus a few more years worth of development, in many cases adapting from an original author's narrow set of use cases to fit more general needs (that seems like how these pieces of software tend to evolve). It has a kind community, lots more good development plans, and many useful plugins. I believe a lot of people pass it by, simply because it still needs some help putting its best foot forward[1].
A showstopper feature for me is that it should be straightforward to use the tool to write its own manual. Surprisingly few static generators, including Pelican, do that however.
So I need to support content like a manual, a faq, news, feature requests, essays, and yes, also a blog. I also want good navigation support, and an easy way to refer to other project pages. Furthermore, I want programmatorial flexibility, which because of my background means Python and Jinja2 templates.
I wrote this because I didn't find an existing solution that met those requirements. I am not claiming it is "better" in a general sense than anything else - I think it all depends on your requirements and background.
It is heavily inspired by some Jekyll features, and I have tried to add recognition for this in the docs. However, it is not blog-oriented and it is in Python ;-).
The distinguishing feature is that the the website structure matches the source structure exactly, which enables a number of other features such as flexible ordering and wiki-links.
Yeah, and not only. Urubu is the brazilian name for the black vulture [1], a scavenger bird commonly seen when there are dead animals.
Urubu as an insult can also mean two things: first, as they eat corpses people presume they are smelly themselves hence people can be called one as an insult for smelly; then, as they are black, it can also be used as a racially charged insult.
But they are also a synonymous for doing something without effort as they fly for hours using as little energy as they can, gliding in circles in the hot air drifts.
They are also portrayed in fiction as a street smart hustler, preying on the innocent protagonists, like Buzz Buzzard [2], named in Brazil "Zeca Urubu".
A majestic bird, if you ask me, and I doubt naming the CMS after it would carry any negative connotation.
I created this project because I needed a generator for a static website - not just a blog.
To accomplish this, the website structure matches the source structure exactly. In a subdirectory, you use the index.md file to specify the content, either explicitly by listing it, or implicitly by specifying the ordering key and direction. A blog would be reverse order by date, but any other scheme is possible.
In addition, this structure makes it possible to refer to other pages in the project using a wiki-like syntax. Basically, Urubu resolves the Markdown syntax for reference links over the project, instead of just within a page. This is a unique feature afaik.
Furthermore, there is support for tags, search, and templating constructs within pages. And it works well with Bootstrap.
It works great for a number of sites that I manage.
Interested to hear your feedback!