<feed xmlns='http://www.w3.org/2005/Atom'>
<title>FreshRSS (Customized)/docs/en, branch 1.28.0</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.0</id>
<link rel='self' href='https://git.rdnlsmith.com/fresh-rss-custom/atom?h=1.28.0'/>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/'/>
<updated>2025-12-04T19:06:21+00:00</updated>
<entry>
<title>Improve layout of documentation page and add search feature (#8247)</title>
<updated>2025-12-04T19:06:21+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-12-04T19:06:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=5e9c3617cac1e3eac246e2ae7df6f4b71c33d37c'/>
<id>urn:sha1:5e9c3617cac1e3eac246e2ae7df6f4b71c33d37c</id>
<content type='text'>
* Improve layout of documentation page and add search feature

Closes https://github.com/FreshRSS/FreshRSS/issues/7915, https://github.com/FreshRSS/FreshRSS/issues/5325

Also: anchor headings and fix building site locally

* Further improvements

* Set color of hyperlinks
* Consistent styling of close aside button across devices
* Mobile layout 600px -&gt; 1200px
* Add suffix to docs `&lt;title&gt;`
    * Note: titles of pages probably need to be improved, since currently they are just derived from the names of the first heading on every page
* Add favicon

* Improve font

* Try to fix favicon not loading correctly on GH pages

* Use local font

* Attempt to fix GH pages

* Final improvements

* Copy to clipboard button
* Support for nojs search
* Dark mode
* Load search.json (200KB json) only on search input focus
* Keep scroll state of sidebar across navigations

* Clickable images and CSP

CSP so we avoid hotlinking resources and clickable images are useful for zooming on mobile for example

* Fix typos

* Disable Dark Reader extension if dark mode CSS is loaded

* Support internationalisation (via language dropdown)

* Add Gemfile.lock

* Make CI build work with the custom plugin

* Make menus closable with Esc

* Fix typos CI

* Suggestions

* Use `ruby/setup-ruby` action in workflow for installing and caching gems.

* Run build only when there are changes to `docs/`

See: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows?versionId=free-pro-team%40latest&amp;productId=actions#running-your-workflow-only-when-a-push-to-specific-branches-occurs

* Change font to `Open Sans`

* Increase line height

* Fix Liquid syntax error</content>
</entry>
<entry>
<title>Fix MariaDB updateCachedValues (#8255)</title>
<updated>2025-11-26T22:47:29+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-11-26T22:47:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=5e0093aa00a6b52df88f526a5b6f737eff057e0b'/>
<id>urn:sha1:5e0093aa00a6b52df88f526a5b6f737eff057e0b</id>
<content type='text'>
Changed syntax for an even wider compatibility.
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/8254
Regression from https://github.com/FreshRSS/FreshRSS/pull/6957
MariaDB images on Docker Hub go back to 10.6, so changed documentation to indicate support from that version, as I cannot easily test even older versions.</content>
</entry>
<entry>
<title>OPML export/import of unicity criteria (#8243)</title>
<updated>2025-11-24T21:01:46+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-11-24T21:01:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=06d34f9b8ed81854baaaea3a4a7f4e247cab31a0'/>
<id>urn:sha1:06d34f9b8ed81854baaaea3a4a7f4e247cab31a0</id>
<content type='text'>
Found during https://github.com/FreshRSS/FreshRSS/discussions/8242#discussioncomment-15052838</content>
</entry>
<entry>
<title>Fix link to Minz docs in 05_Extensions.md (#8229)</title>
<updated>2025-11-18T14:16:14+00:00</updated>
<author>
<name>matthew-neavling</name>
<email>matthew.neavling@proton.me</email>
</author>
<published>2025-11-18T14:16:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=9522e8f95018550122276fae746d136f125397db'/>
<id>urn:sha1:9522e8f95018550122276fae746d136f125397db</id>
<content type='text'>
The link to the Minz docs works on GitHub but 404's on the [live site](https://freshrss.github.io/FreshRSS/en/developers/03_Backend/05_Extensions.html). Replacing the absolute path with a relative path should correct the 404.</content>
</entry>
<entry>
<title>Add new translate action: `move`, `make i18n-move-key` (#8214)</title>
<updated>2025-11-16T17:44:07+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-11-16T17:44:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=b9abe706902c666d85cf60eb828a72c4f3062297'/>
<id>urn:sha1:b9abe706902c666d85cf60eb828a72c4f3062297</id>
<content type='text'>
So that renaming something like `conf.shortcut.toggle_sidebar` to `conf.shortcut.toggle_aside` can be done easily even after already having added `conf.shortcut.toggle_sidebar` and translated it in multiple languages.

Example of usage:
```console
./cli/manipulate.translation.php -a move -k conf.shortcut.toggle_sidebar -n conf.shortcut.toggle_aside
```
```console
make i18n-move-key key="conf.shortcut.toggle_sidebar" new-key="conf.shortcut.toggle_aside"
```

The key will be moved and all values/states will be kept.</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>
<entry>
<title>Implement whitelist for SimplePie sanitizer (#7924)</title>
<updated>2025-11-01T23:28:35+00:00</updated>
<author>
<name>Inverle</name>
<email>inverle@proton.me</email>
</author>
<published>2025-11-01T23:28:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=500d05f3c5ec3a3dffa7791f7447bc0d31d6f7e0'/>
<id>urn:sha1:500d05f3c5ec3a3dffa7791f7447bc0d31d6f7e0</id>
<content type='text'>
* Implement whitelist for SimplePie sanitizer

ref: https://github.com/FreshRSS/FreshRSS/pull/7770#issuecomment-3140334326

https://github.com/FreshRSS/simplepie/pull/53
https://github.com/simplepie/simplepie/pull/947

* Remove `&lt;plaintext&gt;` from whitelist

* Improve order

* Remove some tags from whitelist

* Revert partially

* sync

* Display contents of `&lt;noscript&gt;` and `&lt;noembed&gt;`

* sync

* Allow use of `&lt;track&gt;`

* sync again

* Sync to SimplePie fork
https://github.com/FreshRSS/simplepie/pull/53

* Alphabetic order

* Reduce list of stripped attributes

* Temporarily strip some attributes

---------

Co-authored-by: Alexandre Alapetite &lt;alexandre@alapetite.fr&gt;</content>
</entry>
<entry>
<title>OPML export/import frss:priority (#8158)</title>
<updated>2025-10-26T14:07:38+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-26T14:07:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1217b6de34cc5f23cc73d8d37a51c4616a3780ab'/>
<id>urn:sha1:1217b6de34cc5f23cc73d8d37a51c4616a3780ab</id>
<content type='text'>
Follow-up of https://github.com/FreshRSS/FreshRSS/pull/7583</content>
</entry>
<entry>
<title>PostgreSQL: compatibility with PCRE word boundary (#8141)</title>
<updated>2025-10-22T19:21:17+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-22T19:21:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=1282d3a2709064cb847b8757409a7153449faa9d'/>
<id>urn:sha1:1282d3a2709064cb847b8757409a7153449faa9d</id>
<content type='text'>
Allow the use of regex `\b` for word boundary (and `\B` for the opposite) even when using PostgreSQL.
Follow up of:
* https://github.com/FreshRSS/FreshRSS/pull/6706

For instance, `intitle:/\bnew\B/` will find *newest* but not *new* nor *renewal*.

Useful in particular to minimise the differences between PHP and database in:
* https://github.com/FreshRSS/FreshRSS/pull/7959
</content>
</entry>
<entry>
<title>Filter on last user modified (#8093)</title>
<updated>2025-10-14T22:12:19+00:00</updated>
<author>
<name>Alexandre Alapetite</name>
<email>alexandre@alapetite.fr</email>
</author>
<published>2025-10-14T22:12:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rdnlsmith.com/fresh-rss-custom/commit/?id=7e72033859f60f529d4d985da1e9cac0a691b2dc'/>
<id>urn:sha1:7e72033859f60f529d4d985da1e9cac0a691b2dc</id>
<content type='text'>
Example: `userdate:PT1H` to select only articles modified by user during the last hour
Fix https://github.com/FreshRSS/FreshRSS/issues/4280#issuecomment-3393078024

Useful for instance to bulk mark as unread recently marked articles by error:
1. Click on the toggle button to show the read articles (making sure the toggle for the unread articles is off)
2. Sort by *User modified 9→1*
3. Filter by *user modified date*, for instance to the last 3 hours by typing `userdate:PT3H`
4. Click in the drop-down menu *Mark selection as unread*

P.S.: I have added at the same time a bunch of unit tests for date-related logic
</content>
</entry>
</feed>
