Whisper
Whisper is a lightweight, simple weblaaagh server. Whisper is around 1400
lines of code, requires no database, can serve over 1500 requests per
second, and can output HTML, RSS, and text.
Features:
-
No RDBMS. Because storing your blog entries in a RDBMS is like driving to
work in the Space Shuttle.
-
YAML+Textile, sitting on a disk. Blog posts and comments are stored on
disk in regular files, using a mix of YAML and Textile. This means you can
keep your content under version control, and you can edit it with whatever
editor you desire.
-
Sits directly on top of Thin. No intermediate layer to slow
things down. For benchmarks, see http://all-thing.net/whisper-benchmarks.
-
Lazy cached dependency graph: every bit of content is cached, built
lazily, and a part of a big dependency graph. That means almost every
request is served directly from memory, and making a change, like adding
or updating an entry, forces a regeneration of only those bits that
require it. Infrequently-requested bits of content eventually expire.
-
Markup enhancements: Whisper has extra processing on top of Textile to
syntax highlight ruby code, and turn LaTeX math expressions are turned
into MathML (via RiTeX). Write pretty Ruby code and pretty math without
any extra effort.
-
Fully threaded comments. Why would you not have this?
-
Blog post as micro mailing list. Comments can be made by entering your email
address, and replying to the resulting email. You can choose to have
future replies emailed to you, and replying to them automatically adds a
comment. This allows you to quote, thread, and generally have a
reasonable discussion, which is what email is good at, and what typing
shit into little text areas on your web browser is not.
-
Multiformat support. In addition to HTML and RSS output, there’s a plain
text mode for the hard-core.
-
Pagination, labels, per-label and per-author indices, etc.
Caveats
Whisper currently only supports comments via email. Textboxes are for the
birds.
Usage
-
gem sources -a http://masanjin.net/ (you only need to do this once)
-
gem install whisper
-
whisper-init <blog directory>
- Follow the instructions!
To run whisper in production mode (probably what you want
for serving your blog), use --production.
Whisper is brought to you by William Morgan.