Frog - a blogging system | ideas
for a new version
Current old version has been running for a couple of years already. Here are
some ideas for a newer version I want to write:
multi-blog?
Most of these ideas came from playing with a blogging tool called http://www.dotclear.net/ - the site is mostly in French but there
is an English forum). It's not very appealing to me to hack on (it's PHP because I was looking
for something to run on a basic hosting site) but it's well done and has some nice features that
could benefit Frog.
A very interesting one is - not sure how to call it - the "multi-blog" :
instead of creating a separate blog for each user, you create a blog and then add users to it,
and all their posts go to the common list. User names work a bit like categories : you can have a
list of posters in the side bar, and when you click on a name you get only the posts by that
user.
Now add to this the ability to create "closed" blogs -- ie all users must
login, even to only see the pages... probably very easy with Snakelets. Then add the very nifty
file manager (which is lacking right now in dotclear), maybe with an "admin" module for security
(like setting a common root for all user home dirs etc.). Then add a nice and simple picture
manager (gallery) like dotclear has...
...and suddenly what you have is not just a blog anymore, but potentially a
great collaborative space for small groups of users (like a club or a clan or just a bunch of
friends), that's easier to use for non-geeks than a CMS or Wiki or Groupware app, but just as
effective for sharing news and files and photos when that is all that's needed.
blogging API
See RSD: Discoverability of Blog APIs.
Basically, in the html a tag like
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://host.com/blogapi?rsd" />
The blogapi.rsd link should return a RSD document containing, amongst others, a list of
api entries such as
<p;api name="WordPress" blogID="1" preferred="true" apiLink="http://host.com/blogapi" />
The blogapi is the url where the xmlrpc calls are made on.
Future version
- Running in a modern web server: cherrypy (as a wsgi app)
- Use Jinja2 templates
- Mobile phone alternate layout
- Proper database storage backend (sqlite?)
-
Use many ideas from http://annevankesteren.nl/2004/08/weblog-system
- Use multiple tags per post (instead of 1 single category)
- Add autogenerated 'related posts' links (that you can edit before submitting) - use bayesian classifier? (see below, Reverend)
- Reverend: Reverend bayesian classifier
- Start off by using Disqus for comments, maybe add a custom comment system later. But: can you restrict access to Disqus comments?
- Simple user registration (with activation link in email)
- Allow users to sign in with openID instead of a new username/password
- A moderation system for comments and posts.
- Allow anonymous posting (or just providing a name and/or website). Possibly force moderation in this case.
- Spam blacklist editable online in admin mode
- Allow cookieless operation for the front pages at least
- Allow javascript-less operation (graceful degradation)
- Friendly urls based on article subject 'slug'
- Start using a more common blog template language such as Markdown
(Python implementation,
Another -fast- Python implementation, Javascript implementation)
- Add the MarkItUp for easy markdown
editing in textarea. Combine with Showdown for realtime preview (hmm MarkItUp has its own preview it seems?),
so no need for preview button
- 'popular': improve this, show most viewed articles but also the articles with the most comments
- scan for 'bad links' in all articles (useful when you move/rename files and images around)
- Use Pygments to
syntax-color source codes (need attribute to code tag to tell what type it is...) Or
maybe a javascript based one to reduce server load? SyntaxHighlighter, or Google code prettyfy
- blogger
API , to allow remote blogging (using tools such as wbloggar or smartphone blogging apps)
- secured articles (only accessible for specific users/groups/password protected)
- secured download links (only accessible for specific users/groups/password protected/available for only X minutes
- make main pages static or cached, otherwise a lot of memory is wasted in abandoned sessions (one per request) generated by things such as web robots