<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/app/Models/SimplePieCustom.php, branch 1.28.1-custom</title>
<subtitle>Customized version of FreshRSS, a self-hosted RSS feed aggregator</subtitle>
<id>https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.28.1-custom</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.28.1-custom'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2026-02-15T21:05:38+00:00</updated>
<entry>
<title>Don’t break NetNewsWire’s footnote detection</title>
<updated>2026-02-15T21:05:38+00:00</updated>
<author>
<name>Daniel Smith</name>
<email>daniel@rdnlsmith.com</email>
</author>
<published>2026-02-08T22:11:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=97edabb3bb8026d38ba45abc11fc5f17a007dfdd'/>
<id>urn:sha1:97edabb3bb8026d38ba45abc11fc5f17a007dfdd</id>
<content type='text'>
If NetNewsWire detects that a link points to a footnote within the same
post, then tapping on that link will produce a popover displaying the
text of said footnote. Otherwise, it is treated as a regular link and
opened in the default web browser.

Detecting a footnote requires two things:

1. The link URL must consist only of a fragment (i.e. it begins with
   `#`).

2. There must exist another element (typically `&lt;li&gt;`) in the post’s
   HTML with an `id` attribute matching the fragment (that is, the text
   after `#`).

Because FreshRSS’s web frontend can display multiple articles at once,
all relative URLs (including bare fragments) are automatically converted
to absolute URLs at ingestion time, and `id` attributes are replaced
with `data-sanitized-id` attributes. These changes avoid conflicts in
the web UI, but they break NNW’s footnote detection.

Since I use FreshRSS solely as a backend service for NNW (and other
clients), it is reasonable for me to disable those two sanitization
steps in order to take full advantage of NNW’s features.

Remove `id` from the list of attributes to rename, and add it to the
list of allowed attributes (as otherwise, it would be stripped
entirely). Convert the `absolutize_url()` function into a no-op if the
relative URL provided appears to be a local fragment.
</content>
</entry>
<entry>
<title>Use native PHP #[Deprecated] (#8325)</title>
<updated>2025-12-17T09:11:18+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-12-17T09:11:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=00cd5df294c875ea1e00ab2f645a338a6bd92c8e'/>
<id>urn:sha1:00cd5df294c875ea1e00ab2f645a338a6bd92c8e</id>
<content type='text'>
https://php.watch/versions/8.4/Deprecated
And enfore it with PHPUnit + PHPStan.
Especially useful for extensions.</content>
</entry>
<entry>
<title>Better merging of custom HTTP headers (#8251)</title>
<updated>2025-11-27T22:31:03+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-11-27T22:31:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=76f5bee76d4640169d9a506b5b107f787797879c'/>
<id>urn:sha1:76f5bee76d4640169d9a506b5b107f787797879c</id>
<content type='text'>
Alternative to https://github.com/FreshRSS/FreshRSS/pull/8246
See https://github.com/FreshRSS/FreshRSS/issues/8189#issuecomment-3569434305</content>
</entry>
<entry>
<title>Housekeeping lib_rss.php (#8193)</title>
<updated>2025-11-11T07:17:12+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-11-11T07:17:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=a18c35046daee15e7ac5f85db290d54541a03e3c'/>
<id>urn:sha1:a18c35046daee15e7ac5f85db290d54541a03e3c</id>
<content type='text'>
* Housekeeping lib_rss.php
`lib_rss.php` had become much too large, especially after https://github.com/FreshRSS/FreshRSS/pull/7924
Moved most functions to other places.
Mostly no change of code otherwise (see comments).

* Extension: composer run-script phpstan-third-party</content>
</entry>
</feed>
