Skip to content


Categories/tags? #25

girasquid opened this Issue · 11 comments

8 participants


I'd like to switch a Wordpress blog with about 200 posts to Toto - but in order to do that, I would need to be able to categorize and tag my posts. I'm not a Ruby guy - I've been trying to wrap my head around how to make the chances I'm thinking of, but so far I haven't had any luck.

Are these features planned additions to Toto, or are they outside of Toto's scope?


You can add post categorization right now with meta inside text files. For example, on my blog ( I have a couple of posts categorized as book reviews. I show these posts on a different page of the blog. You can select posts by their meta using Ruby like this:

<% {|a| a[:category] == 'book' }[0...10].each do |article| %>
... html here to render book articles ...
<% end %>

Not sure about posts with multiple categories or tags, could probably work something out though. Cloudhead - what do you think?


This is something I'd like to see as well. Perhaps add it to the header info.

categories: Programming, Book Review, Ruby
tags: Ruby, Rails, Design Patterns in Ruby, etc.

Then have a single page that lists everything that falls within those tags. Could probably re-use the index.rhtml for that by passing in some vars.


Categories are planned — they'll essentially just be folders inside articles/.

Tags can be done as shown above, any metadata you add to the article headers can be accessed in the templates.


Awesome, I'll look forward to that.


For tags as shown above using metadata is there a way to view articles by tag. Example: I tag two articles with ruby. If I make a template tagged.rhtml file does toto already have support for something like /tagged/ruby or will this try to find pages/tagged/ruby.rhtml? If it doesn't is something like this planned?


For now, you could do that manually, by fetching the articles, and doing a select: {|a| a.tags.include?('ruby') }
It's all cached after the first load, so there isn't really a performance hit.


I think the main problem is to get the "ruby" tag from e.g. the URL
How would you pass the tag name in a dynamic way to the "tagged.rhtml"?


It's still a bit messy, but: adresses this feature, it might come handy to you. To see it in action, have a look at

Thanks cloudhead for opening the erb renderer to include the ENV data, that mainly did the trick.


I'm going to implement categories for toto (I have already implemented
tags and now want to have categories as well) here's my ideas about how
it will work (comments are appreciated):

files hierarchy

* file: ./articles/2011-08-01-one.txt
  permalink: /2011-08-01-one
  category: nil

* file: ./articles/abc/2011-08-02-two.txt
  permalink: /abc/2011-08-02-two
  category: abc

* file: ./articles/abc/def/2011-08-03-three.txt
  permalink: /abc/def/2011-08-03-three
  category: abc > def

browse categories

* `/category/abc` - will list articles from `abc` category:
** `./articles/abc/2011-08-02-two.txt`
** `./articles/abc/def/2011-08-03-three.txt`

* `/category/abc/def` - will list articles from `abc > def` category:
** `./articles/abc/def/2011-08-03-three.txt`

@cloudhead, will really appreciate your comments and/or wishes about implementation.


@ixti good thing on category...but how about assigning a post to multiple categories?


@seanlin, I have implemented tags before, see pull request #90. So you can mark your post with several tags, but category is always one or nothing :)) I believe that nature is best architecture, so you can put a document only in one File, and one file into anther. But you can label your document with multiple tags (e.g. colored stickers).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.