Feed
For Hatsu to work, your site needs to have one of the valid JSON / Atom / RSS feeds.
These feeds should be auto-discoverable on the homepage:
<!-- https://example.com -->
<!DOCTYPE html>
<html>
<head>
...
<link rel="alternate" type="application/feed+json" href="https://example.com/feed.json" />
<link rel="alternate" type="application/atom+xml" href="https://example.com/atom.xml" />
<link rel="alternate" type="application/rss+xml" href="https://example.com/rss.xml" />
</head>
<body>
...
</body>
</html>
Hatsu detects all available feeds and prioritizes them in order of JSON > Atom > RSS
.
JSON Feed
Hatsu uses serde
to parse JSON Feed directly, so you can expect it to have first-class support.
Please make sure your feed is valid in JSON Feed Validator first.
JSON Feed Items
Hatsu infers object id from item.url
and item.id
.
It will use the item.url
first, and if it doesn't exist, it will try to convert the item.id
to an absolute url.
https://example.com/foo/bar => https://example.com/foo/bar
/foo/bar => https://example.com/foo/bar
foo/bar => https://example.com/foo/bar
Ideally, your item.id
and item.url
should be consistent absolute links:
{
"id": "https://example.com/foo/bar",
"url": "https://example.com/foo/bar",
"title": "...",
"content_html": "...",
"date_published": "..."
}
JSON Feed Extension
If you can customize your site's JSON Feed, you might also want to check out the Hatsu JSON Feed Extension.
Atom / RSS
Hatsu uses feed-rs
to parse XML feeds and convert them manually.
This section is currently lacking testing, so feel free to report bugs.