~chrisppy/barefeed.org

8f78ded7e2953f54210a2c77fd9807e4433ed3d3 — Chris Palmer 11 days ago 3bef9e9
updated barefeed definition
1 files changed, 24 insertions(+), 39 deletions(-)

M content/index.gmi
M content/index.gmi => content/index.gmi +24 -39
@@ 5,35 5,27 @@ disable rss
template index
***
barefeed is a BARE-based format that allows for easy portability of rss and 
atom feeds.
atom feeds.  A barefeed file is an archived directory of subdirectories of each
feed and it's entries.

Note: this schema is still subject to change.

The following is the currently defined schema:
```
type Timestamp i64

enum FeedType {
	ATOM
	RSS
}

enum TextType {
	TEXT
	HTML
	XHTML
}
type Time string

type Text {
	textType: TextType
	textType: string
	value: string
}

type Link {
	url: string
	linkType: string
	rel: string
	length: i64
	href: string
	rel: optional<string?
	linkType: optional<string>
	lang: optional<string>
	title: optional<string>
	length: optional<string>
}

type Person {


@@ 42,40 34,33 @@ type Person {
	uri: optional<string>
}

type FeedV1 {
	path: string
	id: string
	generator: optional<string>
	feedType: FeedType
type Entry {
	feedID: string
	entryID: string
	read: bool
	liked: bool
	title: Text
	updated: Timestamp
	description: optional<Text>
	entries: []string
	content: Text
	updated: Time
	published: optional<Time>
	authors: []Person
	links: []Link
}

type EntryV1 {
type Feed {
	feedPath: string
	id: string
	feedID: string
	title: Text
	content: Text
	published: Timestamp
	updated: Timestamp
	updated: Time
	authors: []Person
	links: []Link
}

type Feed (FeedV1)
type Entry (EntryV1)
type Content (Feed | Entry)

type Message {
	created: Timestamp
type Barefeed {
	generator: string
	feeds: map[string]Feed
	entries: map[string]Entry
	unread: map[string]i64
	favorite: map[string]Timestamp
	content: Content
}

```