Miniflux 2.2.10
Release date:
Changes
- test(sanitizer): add unit test for 0x0 pixel tracker
- test(sanitizer): add test case to cover Vimeo iframe rewrite without query string
- refactor(youtube): Remove a regex and make use of
fetchWatchTime
- refactor(youtube): initialize two maps to the proper length
- refactor(tests): use
b.Loop()
instead of for rangeb.N
- refactor(server): avoid double call to
Sprintf
- refactor(sanitizer): use global variables to avoid recreating slices on every call
- refactor(sanitizer): use a map for iframe allow-list
- refactor(sanitizer): remove two useless
www.
prefixes - refactor(sanitizer): make
isValidAttribute()
check O(1) - refactor(rewrite): rename
Rewriter
function toApplyContentRewriteRules
- refactor(processor): simplify Bilibili processing
- refactor(processor): remove a useless type declaration
- refactor(processor): remove a duplicated function call
- refactor(processor): refactor common code into a
fetchWatchTime
function - refactor(processor): move filters to a
filter
package - refactor(processor): move
FilterEntryMaxAgeDays
filter to filter package - refactor(processor): move
RewriteEntryURL
function torewrite
package - refactor(processor): minor simplification of a loop
- refactor(internal): add an
urllib.DomainWithoutWWW
function - refactor(http): rename package from
httpd
toserver
for consistency - refactor(http): don’t hardcode TLS configuration
- refactor(filter): avoid code duplication between
IsBlockedEntry
andIsAllowedEntry
functions - refactor(database): drop 3 columns in a single transaction
- refactor(crypto): use
rand.Text()
instead of a custom implementation - refactor(config): remove deprecated config options
- refactor(js): no need to check if always present elements are always present
- perf(xml): optimized
NewXMLDecoder
- perf(xml): optimize XML filtering
- perf(validator): slightly optimize a regex
- perf(timezone): cache
getLocation
’s results - perf(storage): pre-allocate a slice in
RefreshFeedEntries
- perf(storage): optimize away two
Sprintf
calls - perf(sanitizer): use a switch-case instead of a map
- perf(sanitizer): minor simplifications of the sanitizer
- perf(sanitizer): extract a call to
url.Parse
and make intensive use of it - perf(rss): optimize a bit
BuildFeed
- perf(rss): early return when looking for an item’s author
- perf(rewrite): make
getPredefinedRewriteRules
O(1) - perf(reader): use a non-cryptographic hash when possible
- perf(reader): optimize
RemoveTrackingParameters
- perf(readability): minor regex improvement
- perf(media): minor regex simplification
- perf(fetcher): pre-allocate the
cipherSuites
- perf(database): use
TRUNCATE
instead ofDELETE FROM
in migrations - perf(database): marginally speeds migrations up
- perf(api): use
math/rand/v2
instead ofmath/rand
for better performance - fix(readability): do not remove elements within code blocks
- fix(karakeep): correct method name and improve error handling in
SaveURL
- fix(filter): skip invalid rules instead of exiting the loop
- feat(ui): display external link in single entry view because the URL was not visible on mobile (no mouse over)
- feat(ui): avoid showing an excessive number of tags
- feat(ui): add user setting to control
target="_blank"
on links - feat(sanitizer): validate MathML XML namespace
- feat(sanitizer): consider images of size 0x0 as pixel trackers
- feat(sanitizer): add validation for empty
width
andheight
attributes in img tags - feat(sanitizer): add support for
fetchpriority
anddecoding
attributes in img tags - feat(rewrite): add support for YouTube Shorts video URL pattern
- feat(rewrite): add
parkablogs.com
to the referer override list - feat(oidc): use
preferred_username
first instead ofemail
claim - feat(locale): update Polish translations
- feat(locale): update locales using machine translation
- feat(locale): update Indonesian translations
- feat(locale): update German translations
- feat(locale): update Chinese translations
- feat(integration)!: remove Pocket integration (Pocket will no longer be available after July 8, 2025)
- feat(filter): add
EntryDate=max-age:duration
filter - feat(css): add margin-bottom to input for consistent spacing
- feat(config)!: remove
SERVER_TIMING_HEADER
config option - feat: allow multiple listen addresses
- feat: adding support for saving entries to Karakeep
- feat: add entry filters at the feed level
- docs(readme): document a couple of nifty features
- docs: add
CONTRIBUTING.md
file - chore(template): remove
X-UA-Compatible
meta tag specific to Internet Explorer - build(go): bump to go 1.24
- build(deps): bump
library/alpine
in/packaging/docker/alpine
- build(deps): bump
golang.org/x/net
from0.40.0
to0.41.0
- build(deps): bump
golang.org/x/image
from0.27.0
to0.28.0
- build(deps): bump
golang.org/x/crypto
from0.38.0
to0.39.0
Attachments
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-darwin-amd64
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-darwin-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-darwin-arm64
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-darwin-arm64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-freebsd-amd64
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-freebsd-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-amd64
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-arm64
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-arm64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-armv5
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-armv5.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-armv6
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-armv6.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-armv7
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-linux-armv7.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-openbsd-amd64
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-openbsd-amd64.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-windows-amd64.exe
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-windows-amd64.exe.sha256
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux-2.2.10-1.0.x86_64.rpm
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux_2.2.10_amd64.deb
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux_2.2.10_arm64.deb
- https://github.com/miniflux/v2/releases/download/2.2.10/miniflux_2.2.10_armhf.deb