|
@@ -0,0 +1,24 @@
|
|
|
+id: 'idea--feed-reader'
|
|
|
+content: |
|
|
|
+ There's no reason for a feed reader to be a single program. Instead,
|
|
|
+ one could build an architecture in which each component is a distinct
|
|
|
+ program that doesn't need to care about the details of the others.
|
|
|
+ For now, I'm going to refer to this system as _lektor_.
|
|
|
+
|
|
|
+ The `lektordir` format is inspired by the `maildir` format for email
|
|
|
+ but modified for feed readers. It similarly includes three
|
|
|
+ subdirectories: `tmp`, `new`, and `cur`. File name generation works
|
|
|
+ similarly.
|
|
|
+
|
|
|
+ However, instead of writing email files, we need a standard way of
|
|
|
+ describing a feed entry. Therefore, instead of writing _files_ to
|
|
|
+ a `lektordir`, update daemons will write _directories_. A given
|
|
|
+ feed entry consists of a directory containing at least four
|
|
|
+ files: `title`, `url`, `id`, and `content`. Other optional files can
|
|
|
+ exist, including `author`, `subtitle`, `summary`, and so forth.
|
|
|
+
|
|
|
+ With this system, adding a new feed type—such as a Twitter feed or
|
|
|
+ an ActivityStream serialization—becomes a simple matter, and an
|
|
|
+ _lektor_ front-end can be created without having to worry about how
|
|
|
+ that data was delivered there in the first place.
|
|
|
+related: []
|