aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md66
-rw-r--r--rss.php8
2 files changed, 71 insertions, 3 deletions
diff --git a/README.md b/README.md
index e0328d3..8f4bfe1 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# rss_dot_php
-A minimal configurable RSS/Atom reader in about 200 lines of PHP.
+A minimal configurable RSS/Atom reader in about 400 lines of PHP.
This tool isn't intended for standalone reading, instead it's
intended to be used as an aggregator for personal feeds, that can be
@@ -8,6 +8,15 @@ embedded into a website via an <iframe>.
You can see it in action [on my homepage][me].
+## Features
+
+- RSS/Atom autodetection
+- Multiple feeds
+- Caching
+- Lives in just one file
+- Renders post contents
+- Renders media files
+
## Usage
To use this tool, just download the main [`rss.php`][php] file and edit it.
@@ -22,6 +31,7 @@ The following options are supported per-feed:
- `"title"`: The default. Shows the title as a link to the article.
- `"content"`: Shows the title and content.
- `"no_title"`: Hides the title, displays the content. A link to the source is put at the bottom.
+- `$feeds[feed]["media"]`: Whether or not to render media files in the feed. Boolean. Defaults to true.
- `$feeds[feed]["allow_html"]`: Whether or not to allow html in the content area, stripped. Boolean. Defaults to true.
- `$feeds[feed]["ttl"]`: How long to cache the feed for, in seconds. Defaults to 1 hour.
- `$feeds[feed]["linkrel"]`: For Atom, which `rel=` value to prefer when getting a link. Defaults to alternate.
@@ -40,6 +50,60 @@ URLs overlap.
[`aleteoryx.css`][css] contains an example stylesheet.
+The HTML tree looks like this:
+
+```html
+<main>
+ <!-- if $feeds[feed]["mode"] is "no_title" -->
+ <article data-source="<!-- the key in $feeds this post comes from -->">
+ <div class="rss-content">
+ <div><!-- text content of the entry --></div>
+ </div>
+ <span class="rss-source">
+ <a href="<!-- $feeds[feed]['home'] -->">
+ <!-- the key in $feeds this post comes from -->
+ </a>
+ </span>
+ •
+ <a href="<!-- post URL -->">Source</a>
+ •
+ <time datetime="<!-- post date -->"><!-- post date --></time>
+ </article>
+
+ <!-- otherwise -->
+ <article data-source="<!-- the key in $feeds this post comes from -->">
+ <div class="rss-content">
+ <h1 class="rss-title"><a href="<!-- post URL -->"><!-- post title --></a></h1>
+ <div><!-- text content of the entry, if set to render --></div>
+ </div>
+ <span class="rss-source">
+ <a href="<!-- $feeds[feed]['home'] -->">
+ <!-- the key in $feeds this post comes from -->
+ </a>
+ </span>
+ •
+ <time datetime="<!-- post date -->"><!-- post date --></time>
+ </article>
+</main>
+```
+
+## Support
+
+rss_dot_php has been tested to work with...
+
+- Youtube
+- Status.Cafe
+- Tumblr
+- Dreamwidth
+- Mastodon
+
+If you use it with something other than these 5, and it works, let me know!
+If you use it with something other than these 5, and it breaks, let me know!
+
+I can be contacted on Bluesky as [@aleteoryx.me][bsky] and on the Fediverse as [@aleteoryx@labyrinth.zone][fedi]
+
[me]: https://aleteoryx.me
[php]: https://git.aleteoryx.me/cgit/rss_dot_php/tree/rss.php
[css]: https://git.aleteoryx.me/cgit/rss_dot_php/tree/aleteoryx.css
+[bsky]: https://bsky.app/profile/aleteoryx.me
+[fedi]: https://labyrinth.zone/aleteoryx
diff --git a/rss.php b/rss.php
index 29e7568..dee7576 100644
--- a/rss.php
+++ b/rss.php
@@ -109,6 +109,7 @@ function load_rss(string $uri, string $linkrel = "alternate", ?bool $allow_html
$data["date"]->setTimezone($config["timezone"]);
$parsed[] = $data;
+ unset($data);
}
} else {
// assume atom
@@ -169,6 +170,7 @@ function load_rss(string $uri, string $linkrel = "alternate", ?bool $allow_html
$data["date"]->setTimezone($config["timezone"]);
$parsed[] = $data;
+ unset($data);
}
}
@@ -381,7 +383,9 @@ $base = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
</article>
<?php endforeach; ?>
</main>
- <!-- generated by rss_dot_php <?= VERSION ?>
- https://git.aleteoryx.me/cgit/rss_dot_php -->
+<!--
+ generated by rss_dot_php <?= VERSION ?>
+ <https://git.aleteoryx.me/cgit/rss_dot_php>
+-->
</body>
</html>