Kotti/kotti_blog — pull request #5 by nightmarebadger (2013-12-20 02:37:25+00:00)
Title: Advanced options for kotti_blog

A while ago I tried playing around with kotti_blog a bit and figured out it just isn't (for the lack of a better word) advanced enough to be of any real use as a blogging platform.

Now that I actually have some minor experience with creating / writing a blog, I've decided to work on this a bit :).

I'll put a list of what I would like to see and what I've already implemented here below, but be sure to drop any ideas you have here.

## Sidebar

Create a sidebar that will automatically show your tags/archives etc. (on which you can actually filter).

Right now I parse all children to get the data on each view call (which is bad, I know :) ) - my idea is to keep the needed data saved on the Blog object, then hook into add/edit/delete events of BlogEntry and update the needed parts there. Then we can just show the data in the sidebar without parsing it on every call.

- [x] Create a simple sidebar using kotti.views.slots
- [x] Make sure sidebar only appears on blogs
- [x] Make sure sidebar works well even with multiple blogs
- [x] Automatically create a list of tags out of your posts
- [x] Link tags to their filters
- [x] Automatically create an archives list (year and month) out of your posts
- [x] Link archives to their filters
- [x] Make sure sidebar only shows the tags/dates of posts you can actually see
- [ ] Show number of posts for a filter/archive
- [ ] Optimise the way I'm getting the tags/archives data

## Filtering

Create options for filtering on tags/archives etc.

Filters are currently implemented using GET requests.

Currently I do the extra filtering after we already get all the objects (since I couldn't find a way to write the needed filters for tags/date directly in the SQLAlchemy query) - not sure how this will scale, but I'm hoping it won't be so bad (still, moving all filters inside the query before actually getting the objects would be better)

- [x] Create a tags-based filter
- [x] Create a date-based filter
- [x] Make sure the GET requests don't clash with paging ones
- [ ] Create a "Tags" or "Categories" view (shows all tags)
- [ ] Create an "Archives" view (shows all archives)

## Misc

- [ ] Update the look of the blog a bit and make sure we use the metadata we have (show tags on blog posts etc.) [**some changes done already**]
- [ ] Add basic sharing buttons (facebook, twitter, google+) to posts
- [ ] Add a RSS feed

## Comments

- [ ] Add comments (I guess this could be done using Disqus, but if commends are implemented into Kotti I'd rather use that)

## Settings

I want to extend the **settings** view to also include:

- [ ] Enable/disable sidebar (I guess this will need a server restart since it's a view pushed into the right slot)
- [ ] Enable/disable parts of the sidebar (tags, archives)
- [ ] Limit how many tags you want to show in the sidebar (ordered descending on the number of posts)
- [ ] Limit how many archives you want to show in the sidebar (ordered descending on the date)
- [ ] Enable/disable/choose which sharing buttons you want to have on your posts
- [ ] Enable/disable RSS feed
- [ ] Enable/disable/manage comments

## Extras

Definitely not needed but would be fun extra goodies to have

- [ ] Integrate a syntax highlighter

There are probably more things that could be done, but those were the things that sprung to mind the most. Feel free to check out what I've already done or comment on what you'd like to see.