# TODO.txt

- all database tables, except blogentry, need to be replaced by config
  files. entry screens stay (but will change internally, of course.)

- add comments to template (using YACCS or rateyourmusic or something)

- add nifty wrappers like, look word up on dictionary.com, or on everything2,
  etc... or on Google maybe...
  e.g. www.dictionary.com/search?q=daiquiri&r=3

- entry preferences can also be used to make an entry "invisible", i.e.
  it will not be published.

- button creation should be wrapped in a new widget ButtonBar or Toolbar or
  something.

- do we need a more sophisticated macro system than HTML macros? Probably not.
  For (much) more power, use embedded Python. For a macro-like feel, write your
  own module with variables and functions, then use that module wherever you
  want. Easy as pie.

- Kaa needs a license (compatible with Gadfly, BTW).

- function (blog.something) that returns a list of links to recent posts, and 
  their names.

- messages need anchors, so you can link to them. (Hmm, but if that's on the
  front page, then the message may disappear. So it should really link to an
  archive. Would that be possible?)

- insertion of things in the Blog and Entry instances is a big old mess. Take
  for example blog.current_page. There should be one, central place where we
  do this... except for attributes that only make sense in certain contexts
  (like previous_page and such, only useful for archives).

- option to set the number of messages for the "front page"

- generating "custom" archives?

- a "preview" option would be nice (simply open the favorite browser with the
  first page)

- maybe we can add cute little emoticons? like, press a button/key or select
  from a list, and a link to a certain picture is included...

- what about categories? or, more general, adding entry attributes?

- option to set the archive method (and store it in the database)

- more text editing stuff

- non-Python stuff: this blog needs a better template

- add a .count field to the entry instance, so we can keep track of the
  count... this is useful for various purposes, e.g. giving posts alternate
  colors

- users should be able to add names of Python modules, which are imported upon
  page generation, so they can be used with embedded code

- embedded code should be allowed in entries as well

- start using the preferences (or is it misc?) fields of the tables (e.g. for
  archiving maybe)

- store the last publishing date somewhere, maybe?

- "minimal" upload should be possible

- implicit (!) deletion should be possible as well, but only if we do that
  explicitly with an option

- maybe blogs should have an author name. it's not a multi-user blogging tool,
  but still...

- there should be a way to dump the entries to a different file format... maybe
  simple text, maybe pickled, maybe XML (?). If Kaa screws up, you'd still have
  your data.
  
- macros that allow for "capitalizing" the first letter of an entry, or any
  letter for that matter, and e.g. replacing it with a picture. (This is what I
  want to do for my TOTM blog.) Any powerful macro system that could do this is
  welcome. I could do {X} for example, and have a macro that scans the entries,
  recognizes this, and replaces this with an <img> link to the appropriate
  image. Maybe we'll need regexen for that. We need a system that is a bit
  sophisticated though...
  
  2003.01.12: A problem with the above is that the resulting text would not
  look good in RSS; it lacks the first letter!

- There must be a single place where we inject stuff in the blog object. After
  that, any page makers can use this info, without having to create it again.
  Also, we can use it in the embedded weblog code. (For example, a list of
  archives.)
  
- refactoring to separate GUI from the rest. We really should have the GUI
  stuff in a separate object, call it KaaGUI or KaaApp or KaaFrame or whatever,
  and this uses other stuff, like the Kaa object, etc. Kaa would be a
  high-level intermediary between the GUI and the rest.

- a test suite.

- soup up my blog a little... add links that differ per category, etc. the main
  page could have a "blogroll", the categories could point to any site.

- make the program less dependent on the console window. That is, put as much
  as possible elsewhere. The 'progress report' when generating pages can be
  shown in a dialog, for example. Errors must appear in a dialog too
  (preferably with full traceback etc), so they won't appear to be "silent" to
  those who can't see the console window.

- From diveintomark: When linking to your own posts, why not make it easy,
  with a little dialog to choose the post? And then it inserts a link with the
  title as an alt attribute.

- BUG: When I added an icon to the html_totm directory, it wasn't uploaded
  automatically. Somewhere there's a bug in the code that handles this. Maybe
  the date of the icon file was old.

- It seems that list.html is updated even when it shouldn't be. Maybe we don't
  use the "has it been changed?" check here?
  
- Generate a more 'verbose' RSS with the full message text (in HTML).
