ChangeLog 56 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267
  1. Version 2.0.50 (November 12, 2023)
  2. ----------------------------------
  3. * Add WebAuthn / Passkey integration
  4. * Add RSS-Bridge integration
  5. * Take RSS TTL field into consideration to schedule next check date
  6. * Show number of visible entries instead of number of read entries in feed list
  7. * OpenID Connect: Redirect to configured user home page after successful authentication
  8. * Google Reader API fixes:
  9. * `user/{userID}/state/com.google/read` is missing in categories section for read entries
  10. * Take `ExcludeTargets` into consideration in feed stream handler
  11. * Allow iframes pointing to Twitch videos
  12. * Filter feed entries based on URL or title
  13. * Take into consideration `hide_globally` property defined for categories in `/v1/entries` API endpoint
  14. * Add category ID to webhooks request body
  15. * Update date parser to parse more invalid date formats
  16. * Refactor feed discovery handler, and avoid an extra HTTP request if the URL provided is the feed
  17. * Refactor HTTP Client and `LocalizedError` packages
  18. * Refactor Batch Builder, and prevent accidental and excessive refreshes from the web UI
  19. * Refactor icon finder:
  20. - Continue the discovery process when the feed icon is invalid
  21. - Search all icons from the HTML document and do not stop on the first one
  22. * Add support for SVG icons with data URL without encoding
  23. * Expose `next_check_at` in the web ui and API
  24. * Add database indexes to improve performance
  25. * Change log level to warning for failed feeds refresh in cronjob
  26. * Do not log website without icon as warning
  27. * Add GitHub workflow to build binaries
  28. * Add GitHub extensions to devcontainer
  29. * Make sure to pull the latest base image when building the Docker image
  30. * Strip version prefix when building Debian package
  31. * Add `github-cli` and `docker-outside-of-docker` features to devcontainer
  32. * Bump `golang.org/x/*` dependencies
  33. * Bump `github.com/gorilla/mux` from `1.8.0` to `1.8.1`
  34. * Bump `github.com/tdewolff/minify/v2` from `2.19.9` to `2.20.6`
  35. * Bump `github.com/yuin/goldmark` from `1.5.6` to `1.6.0`
  36. * Bump `github.com/coreos/go-oidc/v3` from `3.6.0` to `3.7.0`
  37. Version 2.0.49 (October 15, 2023)
  38. ---------------------------------
  39. * Implement structured logging using `log/slog` package. New config options available:
  40. * `LOG_FORMAT`: `json` or `text`
  41. * `LOG_LEVEL`: `debug`, `info`, `warning`, or `error`
  42. * `LOG_FILE`: `sdterr`, `stdout`, or a file path
  43. * The `DEBUG` option is now deprecated in favor of `LOG_LEVEL`
  44. * API Improvements:
  45. * Add endpoint `/v1/version`
  46. * Add endpoint `PUT /v1/entries` to update entry title and content
  47. * Add endpoint `/v1/icons/{iconID}`
  48. * Add endpoint `/v1/flush-history` to flush history
  49. * Make the category optional when creating feeds for API clients who don't support categories
  50. * Add enclosures to `GET /v1/entries` endpoint
  51. * Add `published_after`, `published_before`, `changed_after` and `changed_before` options to `/v1/entries` endpoint
  52. * Telegram integration improvements:
  53. * Replace feed HTML link with a button to avoid page preview issues
  54. * Add the possibility to disable buttons
  55. * Add Bruno Miniflux API collection in `contrib` folder (Bruno is an open source alternative to Postman/Insomnia)
  56. * Add command line argument to export user feeds as OPML
  57. * Add new rewrite rules `add_hn_links_using_hack` and `add_hn_links_using_opener` to open HN comments with iOS apps
  58. * Fix timestamp format for `Expires` response header
  59. * Fix Javascript error when reading time option is disabled
  60. * Fix Apprise logic to handle feed service URLs
  61. * Fix missing word in force refresh message
  62. * Remove deprecated `PreferServerCipherSuites` TLS option
  63. * Replace `github.com/rylans/getlang` with `github.com/abadojack/whatlanggo` because `getlang` doesn't seems to be updated anymore
  64. * Bump `github.com/mccutchen/go-httpbin/v2` from `2.11.0` to `2.11.1`
  65. * Bump `golang.org/x/*` dependencies
  66. Version 2.0.48 (September 15, 2023)
  67. -----------------------------------
  68. * Add generic webhook integration
  69. * Send webhook events when new entries are detected
  70. * Send wehbook events when saving an entry
  71. * Sign the outgoing requests with HMAC-SHA256
  72. * Improve Telegram integration
  73. * Add built-in Telegram client
  74. * Remove dependency on `go-telegram-bot-api` library
  75. * Add new options:
  76. * Optional topic ID
  77. * Disable page preview
  78. * Disable notifications
  79. * Add new button to go to article
  80. * Improve Matrix integration
  81. * Add built-in Matrix client
  82. * Remove dependency on `gomatrix` library
  83. * Send HTML formatted messages to Matrix
  84. * OpenID Connect authentication improvements:
  85. * Add OAuth2 PKCE support
  86. * Add `profile` scope to OIDC integration to support accounts without email address
  87. * Prevent empty username when using the OIDC integration
  88. * Add `factor` for `entry_frequency` scheduler:
  89. * Allow the user to increase the frequency of the `entry_frequency`
  90. scheduler by a configurable factor in order to shorten the time between
  91. updates.
  92. * Fix: status bar is unreadable when using PWA in dark mode on Firefox Android
  93. * Group form fields into fieldsets to improve page layout
  94. * Update Russian translation
  95. * Make sure icon URLs are always absolute
  96. * Add Apprise service URLs per feed
  97. * Trim `username` and `password` form fields
  98. * Strip HTML tags from DublinCore Creator tags
  99. * Fix scroll up behavior on Firefox Android
  100. * Add missing `return` statement in `fetchContent` UI handler
  101. * Add `replace_title` rewrite rule to adjust entry titles
  102. * Fix Pocket integration redirect URL and Google Reader API HREF
  103. * Fix feed `hide_globally` property to use it with third-party clients.
  104. Version 2.0.47 (August 20, 2023)
  105. --------------------------------
  106. * Update rules for `webtoons.com`
  107. * Use HTTP client from the standard library for third-party integrations
  108. * Rename internal `url` package to `urllib` to avoid overlap with `net/url`
  109. * Add Shaarli integration
  110. * Add Shiori integration
  111. * Add Apprise integration
  112. * Add Readwise Reader integration
  113. * Consider base path when generating third-party services API endpoint
  114. * Use podcast duration tag as reading time
  115. * Move internal packages to an `internal` folder
  116. * For reference: <https://go.dev/doc/go1.4#internalpackages>
  117. * Rename Miniflux package name to follow Go module naming convention
  118. * For reference: <https://go.dev/ref/mod#major-version-suffixes>
  119. * Update RockyLinux image from 8 to 9 (used to build RPM package)
  120. * Add force refresh in feed edit and feed entries page
  121. * Use Odysee video duration as read time
  122. * Upgrade to Go 1.21
  123. * Use details disclosure element to show the list of third-party services
  124. * Use Web Share API for sharing entry
  125. * Add a workaround for parsing some invalid date format
  126. * Add Thunder Client API collection into contrib folder
  127. * Add new API endpoint: `/entries/{entryID}/save`
  128. * Trigger Docker and packages workflows only for semantic tags
  129. * Go module versioning expect Git tags to start with the letter v.
  130. * The goal is to keep the existing naming convention for generated artifacts and
  131. have proper versioning for the Go module.
  132. * Bump `golang.org/x/*` dependencies
  133. * Bump `github.com/yuin/goldmark`
  134. * Bump `github.com/tdewolff/minify/v2`
  135. * Bump `github.com/mccutchen/go-httpbin/v2`
  136. Version 2.0.46 (July 21, 2023)
  137. ------------------------------
  138. * Add scraper and rewrite rules for Webtoons
  139. * Fix regression in integration page and simplify SQL query
  140. * Wallabag integration: add more information in log messages
  141. * Add support for custom Youtube embed URL
  142. * Fix accessibility issues in modal component
  143. * Fix modal aria role
  144. * Trap focusing with tab / shift+tab inside the modal
  145. * Restore keyboard focus when closing modal
  146. * Automatically move keyboard focus to first focusable element unless specified otherwise
  147. * Keyboard shortcut help modal: move keyboard focus to modal title
  148. * Keyboard shortcut help modal: change close control from link to button
  149. * Add Notion integration
  150. * Update `golang.org/x/*` dependencies and `go-oidc` to v3.6.0
  151. * Improve responsive design
  152. * Add user setting for marking entry as read on view
  153. * Improve Russian translation
  154. * Add the possibility to run cleanup tasks from the command line
  155. * Add the possibility to run Miniflux as a cronjob
  156. * Use `go-httpbin` to run tests locally and avoid remote calls to `httpbin.org`
  157. * Display tags when viewing entries
  158. * Update categories API endpoint to return `total_unread` and `feed_count`
  159. * Improve date parser to handle various broken date formats
  160. * Avoid `pq: time zone displacement out of range` errors
  161. * Improve entry existance check to make better use of index
  162. * Add unique index `enclosures_user_entry_url_idx`
  163. * Add mark as unread for Linkding integration
  164. * Add sub-folder support for Wallabag integration
  165. * Use RockyLinux to build RPM package
  166. * Disable CGO when building RPM package
  167. * Disable CGO when building Docker images
  168. Version 2.0.45 (June 21, 2023)
  169. ------------------------------
  170. * Add media player to listen to audio and video podcasts with the possiblity to resume to last playback position
  171. * Add default tag names for Linkding integration
  172. * Mark only globally visible entries when marking all entries from UI
  173. * Use image included in feed as feed icon when available
  174. * Order history by `changed_at` and `published_at`
  175. * Remove title attribute from entry title links
  176. * Fix reading time that is not aligned correctly with the latest version of Safari
  177. * Use glyphs of the same size on keyboard shortcuts page
  178. * Add maskable versions of the PWA icon
  179. * Replace copyright header with SPDX identifier
  180. * Remove the "í" letter from the Portuguese "lido" word
  181. * Increase golangci-lint timeout value
  182. * Bump `github.com/tdewolff/minify/v2`, `github.com/prometheus/client_golang`, `golang.org/x/*` dependencies
  183. Version 2.0.44 (May 6, 2023)
  184. ----------------------------
  185. * Add link to the URL rewrite rules documentation
  186. * Update scraping rules for `ilpost.it`
  187. * Update rewrite rules for `theverge.com`
  188. * Add a rewrite rule to remove clickbait titles
  189. * Make sure `PROXY_IMAGES` option is backward compatible with `PROXY_OPTION` and `PROXY_MEDIA_TYPES`
  190. * Add new rule to remove tables
  191. * Add support for searching well-known URLs in subdirectory
  192. * Add CSS `word-wrap` rule to break very long entry title into multiple lines
  193. * Add swipe as option for gesture navigation between entries. There are now 3 possible choices: `none`, `double-tap`, and `swipe`.
  194. * Prefer typographic punctuation in English translation
  195. * Process older entries first:
  196. - Feed entries are usually ordered from most to least recent.
  197. - Processing older entries first ensures that their creation timestamp
  198. is lower than that of newer entries.
  199. - This is useful when we order by creation, because then we get a
  200. consistent timeline.
  201. * Fix Grafana dashboard
  202. * Push Docker images to `Quay.io` (RedHat)
  203. * Bump `golang.org/x/*`, `github.com/lib/pq`, `mvdan.cc/xurls/v2` and `github.com/prometheus/client_golang` dependencies
  204. Version 2.0.43 (March 16, 2023)
  205. -------------------------------
  206. * Avoid XSS when opening a broken image due to unescaped ServerError in proxy handler (CVE-2023-27592)
  207. Creating an RSS feed item with the inline description containing an `<img>` tag
  208. with a `srcset` attribute pointing to an invalid URL like
  209. `http:a<script>alert(1)</script>`, we can coerce the proxy handler into an error
  210. condition where the invalid URL is returned unescaped and in full.
  211. This results in JavaScript execution on the Miniflux instance as soon as the
  212. user is convinced to open the broken image.
  213. * Use `r.RemoteAddr` to check `/metrics` endpoint network access (CVE-2023-27591)
  214. HTTP headers like `X-Forwarded-For` or `X-Real-Ip` can be easily spoofed. As
  215. such, it cannot be used to test if the client IP is allowed.
  216. The recommendation is to use HTTP Basic authentication to protect the
  217. metrics endpoint, or run Miniflux behind a trusted reverse-proxy.
  218. * Add HTTP Basic authentication for `/metrics` endpoint
  219. * Add proxy support for several media types
  220. * Parse feed categories from RSS, Atom and JSON feeds
  221. * Ignore empty link when discovering feeds
  222. * Disable CGO explicitly to make sure the binary is statically linked
  223. * Add CSS classes to differentiate between category/feed/entry view and icons
  224. * Add rewrite and scraper rules for `blog.cloudflare.com`
  225. * Add `color-scheme` to themes
  226. * Add new keyboard shortcut to toggle open/close entry attachments section
  227. * Sanitizer: allow `id` attribute in `<sup>` element
  228. * Add Indonesian Language
  229. * Update translations
  230. * Update Docker Compose examples:
  231. - Run the application in one command
  232. - Bring back the health check condition to `depends_on`
  233. - Remove deprecated `version` element
  234. * Update scraping rules for `ilpost.it`
  235. * Bump `github.com/PuerkitoBio/goquery` from `1.8.0` to `1.8.1`
  236. * Bump `github.com/tdewolff/minify/v2` from `2.12.4` to `2.12.5`
  237. * Bump `github.com/yuin/goldmark` from `1.5.3` to `1.5.4`
  238. * Bump `golang.org/x/*` dependencies
  239. Version 2.0.42 (January 29, 2023)
  240. ---------------------------------
  241. * Fix header items wrapping
  242. * Add option to enable or disable double tap
  243. * Improve PWA display mode label in settings page
  244. * Bump `golang.org/x/*` dependencies
  245. * Update translations
  246. * Add scraping rule for `ilpost.it`
  247. * Update reading time HTML element after fetching the original web page
  248. * Add category feeds refresh feature
  249. Version 2.0.41 (December 10, 2022)
  250. ----------------------------------
  251. * Reverted PR #1290 (follow the only link) because it leads to several panics/segfaults that prevent feed updates
  252. * Disable double-tap mobile gesture if swipe gesture is disabled
  253. * Skip integrations if there are no entries to push
  254. * Enable TLS-ALPN-01 challenge for ACME
  255. - This type of challenge works purely at the TLS layer and is compatible
  256. with SNI proxies. The existing HTTP-01 challenge support has been left
  257. as-is.
  258. * Preconfigure Miniflux for GitHub Codespaces
  259. * Updated `golang.org/x/net/*` dependencies
  260. Version 2.0.40 (November 13, 2022)
  261. ----------------------------------
  262. * Update dependencies
  263. * Pin Postgres image version in Docker Compose examples to avoid unexpected upgrades
  264. * Make English and Spanish translation more consistent:
  265. - Use "Feed" everywhere instead of "Subscription"
  266. - Use "Entry" instead of "Article"
  267. * Allow Content-Type and Accept headers in CORS policy
  268. * Use dirs file for Debian package
  269. * Use custom home page in PWA manifest
  270. * Fix scraper rule that could be incorrect when there is a redirect
  271. * Improve web scraper to fetch the only link present as workaround to some landing pages
  272. * Add Matrix bot integration
  273. * Proxify images in API responses
  274. * Add new options in user preferences to configure sorting of entries in the category page
  275. * Remove dependency on `github.com/mitchellh/go-server-timing`
  276. * Add support for the `continuation` parameter and result for Google Reader API ID calls
  277. * Use automatic variable for build target file names
  278. * Add rewrite rule for `recalbox.com`
  279. * Improve Dutch translation
  280. Version 2.0.39 (October 16, 2022)
  281. ---------------------------------
  282. * Add support for date filtering in Google Reader API item ID calls
  283. * Handle RSS entries with only a GUID permalink
  284. * Go API Client: Accept endpoint URLs ending with `/v1/`
  285. * CORS API headers: Allow `Basic` authorization header
  286. * Log feed URL when submitting a subscription that returns an error
  287. * Update `make run` command to execute migrations automatically
  288. * Add option to send only the URL to Wallabag
  289. * Do not convert anchors to absolute links
  290. * Add config option to use a custom image proxy URL
  291. * Allow zoom on mobile devices
  292. * Add scraping rules for `theverge.com`, `royalroad.com`, `swordscomic.com`, and `smbc-comics.com`
  293. * Add Ukrainian translation
  294. * Update `golang.org/x/*` dependencies
  295. * Bump `github.com/tdewolff/minify/v2` from `2.12.0` to `2.12.4`
  296. * Bump `github.com/yuin/goldmark` from `1.4.13` to `1.5.2`
  297. * Bump `github.com/lib/pq` from `1.10.6` to `1.10.7`
  298. Version 2.0.38 (August 13, 2022)
  299. --------------------------------
  300. * Rename default branch from master to main
  301. * Update GitHub Actions
  302. * Bump `github.com/prometheus/client_golang` from `1.12.2` to `1.13.0`
  303. * Fix some linter issues
  304. * Handle Atom links with a text/html type defined
  305. * Add `parse_markdown` rewrite function
  306. * Build RPM and Debian packages automatically using GitHub Actions
  307. * Add `explosm.net` scraper rule
  308. * Make default home page configurable
  309. * Add title attribute to entry links because text could be truncated
  310. * Highlight categories with unread entries
  311. * Allow option to order by title and author in API entry endpoint
  312. * Update Russian translation
  313. * Make reading speed user-configurable
  314. * Added translation for Hindi language used in India
  315. * Add rewrite rules for article URL before fetching content
  316. * Bump `github.com/tdewolff/minify/v2` from `2.11.7` to `2.12.0`
  317. * Support other repo owners in GitHub Docker Action
  318. * Proxify empty URL should not crash
  319. * Avoid stretched image if specified width is larger than Miniflux's layout
  320. * Add support for OPML files with several nested outlines
  321. * sanitizer: handle image URLs in `srcset` attribute with comma
  322. * Allow `width` and `height` attributes for `img` tags
  323. * Document that `-config-dump` command line argument shows sensitive info
  324. * Add System-V init service in contrib folder
  325. * Fix syntax error in `RequestBuilder.getCsrfToken()` method
  326. Version 2.0.37 (May 27, 2022)
  327. -----------------------------
  328. * Add rewrite rule to decode base64 content
  329. * Add Linkding integration
  330. * Add comment button to Telegram message
  331. * Add API endpoint to fetch unread and read counters
  332. * Fixes logic bug in Google Reader API sanity check
  333. * Reduce number of CORS preflight check to save network brandwidth
  334. * Add Espial integration
  335. * Allow API search for entries which are not starred
  336. * Try to use outermost element text when title is empty
  337. * Make swipe gestures feel more natural
  338. - Removes opacity transition when swiping an article read/unread
  339. - Adds "resistance" to the swiped entry when the 75px threshold is
  340. reached
  341. - Fixes an issue in which a swiped article couldn't be moved <15px
  342. * Add support for feed streams to Google Reader API IDs API
  343. * Fix invalid parsing of icon data URL
  344. * Add Traditional Chinese translation
  345. * Add distroless Docker image variant
  346. * Add Go 1.18 to GitHub Action
  347. * Bump `github.com/tdewolff/minify/v2` from `2.10.0` to `2.11`
  348. * Bump `github.com/prometheus/client_golang` from `1.12.1` to `1.12.2`
  349. * Bump `github.com/lib/pq` from `1.10.4` to `1.10.6`
  350. Version 2.0.36 (March 8, 2022)
  351. ------------------------------
  352. * Gray out pagination buttons when they are not applicable
  353. * Use truncated entry description as title if unavailable
  354. * Do not fallback to InnerXML if XHTML title is empty
  355. * Add `+` keyboard shortcut for new subscription page
  356. * Add `(+)` action next to Feeds to quickly add new feeds
  357. * Fix unstar not working via Google Reader API
  358. * Remove circles in front of page header list items
  359. * Fix CSS hover style for links styled as buttons
  360. * Avoid showing `undefined` when clicking on read/unread
  361. * Add new keyboard shortcut `M` to toggle read/unread, and go to previous item
  362. * Add several icons to menus according to their roles
  363. * Add missing event argument to `onClick()` function call
  364. * Add links to scraper/rewrite/filtering docs when editing feeds
  365. * Add a rewrite rule for Castopod episodes
  366. * Fix regression: reset touch-item if not in `/unread` page
  367. * Add API endpoint to fetch original article
  368. * Show the category first in feed settings
  369. * Add pagination on top of all entries
  370. * Display Go version in "About" page
  371. * Bump `mvdan.cc/xurls/v2` from 2.3.0 to 2.4.0
  372. * Bump `github.com/prometheus/client_golang` from 1.11.0 to 1.12.1
  373. * Bump `github.com/tdewolff/minify/v2` from 2.9.28 to 2.10.0
  374. Version 2.0.35 (January 21, 2022)
  375. ---------------------------------
  376. * Set `read-all` permission to `GITHUB_TOKEN` for GitHub Actions
  377. * Pin `jshint` version in linter job
  378. * Fix incorrect conversion between integer types
  379. * Add new GitHub Actions workflows: CodeQL and Scorecards analysis
  380. * Handle Atom feeds with space around CDATA
  381. * Bump `github.com/tdewolff/minify/v2` from 2.9.22 to 2.9.28
  382. * Add Documentation directive to Systemd service
  383. * Do not reset `touch-item` if successfully swiped
  384. * Add support for multiple authors in Atom feeds
  385. * Omit `User-Agent` header in image proxy to avoid being blocked
  386. * Use custom feed user agent to fetch website icon
  387. * Make default Invidious instance configurable
  388. * Add new rewrite rule `add_youtube_video_from_id` to add Youtube videos in Quanta articles
  389. * Add scrape and rewrite rules for `quantamagazine.org`
  390. * Expose entry unshare link in the entry and list views
  391. * Add Google Reader API implementation (experimental)
  392. * Add `Content-Security-Policy` header to feed icon and image proxy endpoints
  393. - SVG images could contain Javascript. This CSP blocks inline script.
  394. - Feed icons are served using `<img>` tag and Javascript is not interpreted.
  395. * Add Finnish translation
  396. * Add scraper rule for `ikiwiki.iki.fi`
  397. * Remove `SystemCallFilter` from `miniflux.service`
  398. * Fix minor typo in French translation
  399. Version 2.0.34 (December 16, 2021)
  400. ----------------------------------
  401. * Add rewrite rule for comics website http://monkeyuser.com
  402. * Add `<head>` tag to OPML export
  403. * Tighten Systemd sandboxing and update comments in `miniflux.service`
  404. * Add `RuntimeDirectory` to Systemd service
  405. * Order disabled feeds at the end of the list
  406. * Add support for theme color based on preferred color scheme of OS
  407. * Bump `github.com/lib/pq` from 1.10.3 to 1.10.4
  408. * Bump `github.com/PuerkitoBio/goquery` from 1.7.1 to 1.8.0
  409. * Fix typos in `model/icon.go`
  410. * Add `data-srcset` support to `add_dynamic_image rewrite` rewrite rule
  411. * Fix Docker Compose example files compatibility to v3
  412. * Added the `role="article"` to `<article>` elements for better accessibility with screen readers
  413. * Redact secrets shown on the about page
  414. * Handle `srcset` images with no space after comma
  415. * Hide the logout link when using auth proxy
  416. * Fix wrong CSS variable
  417. * Change `-config-dump` command to use `KEY=VALUE` format
  418. Version 2.0.33 (September 25, 2021)
  419. -----------------------------------
  420. * Build RPM and Debian package with PIE mode enabled
  421. * Add CSS rule to hide `<template>` tag in old browsers
  422. * Bump `github.com/tdewolff/minify/v2 from 2.9.21 to 2.9.22`
  423. * Bump `github.com/lib/pq from 1.10.2 to 1.10.3`
  424. * Remove `RequestURI()` hack
  425. * Improve `zh_CN` translation
  426. * Add ability to change entry sort order in the UI
  427. * Add minor improvements in integration package
  428. * Add Telegram integration
  429. * Add rewrite rule to remove DOM elements
  430. * Add proxy argument to `scraper.Fetch()`
  431. * Add mime type `application/feed+json` to discover JSON Feed v1.1
  432. * Update scraper rule for `theregister.com`
  433. * Add Go 1.17 to GitHub Actions
  434. * Display option to hide feed only when category is not already hidden
  435. * Add option to hide feeds from the global Unread list
  436. Version 2.0.32 (August 14, 2021)
  437. --------------------------------
  438. * Bump `github.com/tdewolff/minify/v2` from 2.9.17 to 2.9.21
  439. * Bump `mvdan.cc/xurls/v2` from 2.2.0 to 2.3.0
  440. * Bump `github.com/PuerkitoBio/goquery` from 1.6.1 to 1.7.1
  441. * Bump `github.com/prometheus/client_golang` from 1.10.0 to 1.11.0
  442. * Add `/rss/` to the list of well known URLs during feed discovery
  443. * Use `authors` entry for JSON 1.1 feeds
  444. * Added Greek translation
  445. * Added the ability to mark an entire category as read in the web ui
  446. * Added "in" in "logged in" for en_US `tooltip.logged_user`
  447. * Added option to hide categories from the global unread list
  448. * Show "saving" labels for entry status button
  449. * Golang client: Try to parse response body on `InternalServerError` errors
  450. * contrib: Add support for a $MINIFLUX_IMAGE env var in docker-compose
  451. * contrib: Bump docker-compose version to 3.4
  452. Version 2.0.31 (June 6, 2021)
  453. -----------------------------
  454. * Expose comments_url entry field in Golang API client
  455. * Use unique file names for cache busting instead of query string
  456. * Highlight and sort feeds with unread entries in feeds list
  457. * Mark items as read on click/middle click of external links
  458. * Fix: Firefox on Windows does not show the active link as bold
  459. * Avoid extra HTTP request for fetching custom stylesheet
  460. * Remove invalid CSRF HTML meta tag
  461. * Add lang attribute to root HTML tag
  462. * Use runes instead of bytes to truncate JSON feed titles (avoid breaking Unicode strings)
  463. * Expose changed_at time through the API
  464. * Add new config option CLEANUP_ARCHIVE_BATCH_SIZE
  465. * Add new option DATABASE_CONNECTION_LIFETIME
  466. * Add database stats to Prometheus exporter
  467. * Add Systemd watchdog
  468. * Avoid custom stylesheet to be cached by third-party CDN
  469. * Update a shared entry label translation in zh_CN
  470. * Bump github.com/tdewolff/minify/v2 from 2.9.16 to 2.9.17
  471. * Bump github.com/lib/pq from 1.10.1 to 1.10.2
  472. Version 2.0.30 (May 7, 2021)
  473. ----------------------------
  474. * Security fix: any user can delete any feed (Regression introduced in commit 51fb949)
  475. * Fix password reset via CLI
  476. * Increase default batch size value
  477. * Handle RSS feed title with encoded Unicode entities
  478. * Show number of unread per category in category list instead of number of feeds
  479. * Bump github.com/lib/pq from 1.10.0 to 1.10.1
  480. * Filtering doesn't work when selecting from multiple found feeds
  481. * Bump github.com/tdewolff/minify/v2 from 2.9.15 to 2.9.16
  482. * Use an appropriate color for visited links on dark theme
  483. * Fix typo in reader/json/doc.go
  484. * Create SECURITY.md
  485. * Setup golangci-lint Github Action
  486. * Add per feed cookies option
  487. * Bump github.com/prometheus/client_golang from 1.9.0 to 1.10.0
  488. * Bump github.com/tdewolff/minify/v2 from 2.9.13 to 2.9.15
  489. Version 2.0.29 (Mar 21, 2021)
  490. -----------------------------
  491. * Miniflux requires at least Go 1.16 now
  492. * Improved support of Atom text constructs
  493. - Improve handling of CDATA in text elements
  494. - Omit XHTML root element because it should not be part of the content
  495. - Fix incorrect parsing of HTML elements
  496. * Handle RDF feed with HTML encoded entry title
  497. * Add Turkish language
  498. * Improve deletion of feeds with lots of entries
  499. * Add support of Systemd readiness notification using the sd_notify protocol
  500. * Remove feed_icons service worker cache because it's causing more problems than it solves (and HTTP cache seems faster)
  501. * Add basic PWA offline page
  502. - Add basic offline mode when using the service worker
  503. - Starting in Chrome 93, offline mode is going to be a requirement to install the PWA
  504. * Replace icon for "Add to home screen" button
  505. * Use SVG icons for "toast" notifications
  506. * Use SVG sprite for icons instead of inline elements
  507. * Reset scroll position on mark page as read
  508. * Add link to mark all feed entries as read
  509. * Make web app display mode configurable (The change is visible after reinstalling the web app)
  510. * Handle RSS feeds with CDATA in author item element
  511. * Add read time on the article page
  512. * Avoid showing a broken image when there is no feed icon
  513. * Add option to allow self-signed or invalid certificates
  514. * Add new config option to scrape YouTube's website to get video duration as read time (disabled by default)
  515. * Send full article content to Wallabag
  516. * Add more extensive health check support
  517. - Improve endpoint to test database connection
  518. - Add new cli argument: -healthcheck
  519. - Update Docker Compose examples
  520. * Update iframe "allow list" to support Bilibili videos
  521. * Remove completely generated files and use embed package to bundle JS/CSS/Images/Translations files into the final binary
  522. * Remove deprecated io/ioutil package
  523. * Show Postgres version in "About" page
  524. Version 2.0.28 (Feb 15, 2021)
  525. -----------------------------
  526. * Add HTTP header "Referrer-Policy: no-referrer"
  527. * Handle entry title with double encoded entities
  528. * Add Open Containers annotations to Docker image
  529. * Remove iframe inner HTML contents (iframe element never has fallback content)
  530. * Update date parser to fix another time zone issue
  531. * Update German translation for blocklist and keeplist
  532. * Validate Keep list and Block list rules syntax
  533. * Add support for IPv6 with zone index
  534. * Allow images with data URLs
  535. * Limit full-text search indexation to first 500K characters (tsvector has a size limit of 1MB)
  536. * Change PWA display mode to standalone
  537. * ETag value is not set correctly in HTTP client (regression)
  538. * Add database backed Let's Encrypt certificate cache
  539. * Add global option POLLING_PARSING_ERROR_LIMIT
  540. * Update systemd service file comments to use `systemctl edit` for editing
  541. * Update Go version to 1.15 in go.mod
  542. * Don't discard the "Fetch via Proxy" option
  543. * Update man page to show the default values
  544. * Add PostgreSQL indices
  545. * Add API endpoints to get feeds and entries of a category
  546. * Create feed query builder
  547. * Bump github.com/PuerkitoBio/goquery from 1.6.0 to 1.6.1
  548. * Show global options in the about page
  549. * Update man page to mention -1 can be used for CLEANUP_ARCHIVE_* options
  550. Version 2.0.27 (Jan 9, 2021)
  551. ----------------------------
  552. * Add spellcheck="false" to input fields
  553. * Refactoring of entry, feed, category, and user validation
  554. * Avoid stripping tags for entry title
  555. * Add the possibility to subscribe to feeds with the Android Share menu
  556. * API improvements:
  557. - Change feed creation request to allow setting most fields via API
  558. - Allow regular users to change settings via API
  559. - Make user fields editable via API
  560. - Renaming non-existent category via API should return a 404
  561. * Update Systemd service file:
  562. - Add capability CAP_NET_BIND_SERVICE (allow the process to listen on privileged ports)
  563. - Enable a private /tmp for $CERT_CACHE (required when using Let's Encrypt)
  564. * Update read/star icons to SVGs
  565. * Add autocomplete="username" to HTML forms
  566. * Improve user mass delete to use fewer Goroutines
  567. * Use SQL transaction when creating user sessions and users
  568. * Remove extra column (HSTORE field) from users table and migrate key/value pairs to specific columns
  569. * Bump github.com/prometheus/client_golang from 1.8.0 to 1.9.0
  570. * Bump github.com/lib/pq from 1.8.0 to 1.9.0
  571. * Add styles for <abbr> HTML tag
  572. * Refactor SQL migrations:
  573. - Avoid embedding SQL files into binary
  574. - Allow more flexible changes by using Go functions
  575. * Add Server-Timing header to unread page
  576. * Show correct User Agent in input placeholders
  577. * Add autocomplete attribute to login form
  578. * Add Grafana dashboard in contrib folder
  579. Version 2.0.26 (Dec 5, 2020)
  580. ----------------------------
  581. * Use created_at instead of published_at for archiving entries
  582. * Add created_at field for entries
  583. * Handle invalid feeds with relative URLs
  584. * Add API routes for "mark all as read"
  585. * Add support for setting a global default User-Agent
  586. * Add rewrite rule "replace" for custom search and replace
  587. * Calculate reading time during feed processing
  588. * Handle various invalid dates
  589. * systemd: keep /run writeable
  590. * debian package: add missing post-install script
  591. * Do not follow redirects when trying known feed URLs
  592. * Trim spaces around icon URLs
  593. * Reinstate EXPOSE instruction in Dockerfile
  594. * Update German and Portuguese translations
  595. Version 2.0.25 (Nov 3, 2020)
  596. ----------------------------
  597. * Rename "original" link to be more explicit
  598. * Do not escape HTML for Atom 1.0 text content during parsing (Avoid HTML entities issues)
  599. * Do not use charset.NewReader if the body is a valid UTF-8 document
  600. * Restore the ability to use a proxy for all HTTP requests (see https://golang.org/pkg/net/http/#ProxyFromEnvironment)
  601. * Show Git commit in about page
  602. * Publish Docker images to GitHub Container Registry
  603. * Added few Docker Compose examples in contrib folder
  604. * Added Ansible Role + Playbook for Miniflux in contrib folder
  605. * Add rewrite rule to use noscript content for images rendered with Javascript
  606. * Bump github.com/prometheus/client_golang from 1.7.1 to 1.8.0
  607. * Update contributor link and Godoc badge for API client
  608. * Move Debian package builder to main repository
  609. * Move RPM build files to main repository
  610. * Add GitHub Action to generate Docker images
  611. * Build multi-platform images with Docker Buildx
  612. * Add keyboard shortcut to scroll current item to the top
  613. * Add feed filters (Keeplist and Blocklist)
  614. * Do not proxy image with a data URL
  615. * Bump github.com/PuerkitoBio/goquery from 1.5.1 to 1.6.0
  616. * Proxify articles crawled manually
  617. * Proxify images defined in srcset attribute
  618. * Remove plaintext Fever password from database
  619. * Add keyboard shortcut to jump to an item's feed page
  620. * Add option for swipe gesture on entries on mobile
  621. Version 2.0.24 (Oct 3, 2020)
  622. ----------------------------
  623. * Add rewrite rule to fix Medium.com images
  624. * Update sanitizer to support responsive images:
  625. - Add support for picture HTML tag
  626. - Add support for srcset, media, and sizes attributes to img and source tags
  627. * Enhance man page formatting
  628. * Add Prometheus exporter
  629. * Remove dependency on global config options in HTTP client
  630. * API:
  631. - Avoid database lookup if empty credentials are provided
  632. - Add the possibility to filter entries by category ID
  633. - Add the possibility to filter entries by a list of statuses
  634. * Add Feed ID in worker error logs
  635. * Tweak default HTTP client transport timeout values to reduce the number of file descriptors
  636. * CSS tweaks and optimizations:
  637. - Prevent sub and sup from affecting line-height
  638. - Set touch-action on .items to prevent browser navigation
  639. - Move font-family specific CSS to the appropriate file
  640. - Update primary font-family for UI to be even more compatible with various operating systems
  641. - Make .entry-content font-weight variable depending on font-family used
  642. * Avoid Javascript minifier to break keyboard shortcuts
  643. * Rename service worker script to avoid being blocked by uBlock
  644. * Update date parser to handle Pacific Daylight Time in addition to Pacific Standard Time
  645. * Create index to speed up bookmark page
  646. * Do not try to update a duplicated feed after a refresh
  647. * Use a transaction to refresh and create entries
  648. * Speed up entries clean up with an index and a goroutine
  649. * Avoid the accumulation of enclosures by keeping only what is referenced in the feed
  650. * Add workarounds for parsing an invalid date
  651. * Archive older entries first
  652. * Update API client to support more filters
  653. * Avoid duplication between get feed entries and get entries API endpoints
  654. * Enable strict slash to avoid a page not found (404) when using a trailing slash in the URLs
  655. * Add a submit button to each section of the integration page
  656. * Reload page after making page as read when showing unread entries
  657. * Add option to archive unread entries
  658. * Add option to enable maintenance mode
  659. * Add HTTP proxy option for subscriptions
  660. * Make add_invidious_video rule applicable for different invidious instances
  661. * Fix reading time for jp, ko and zh languages
  662. * Update POLLING_SCHEDULER description in man page
  663. * Bump gorilla/mux from 1.7.4 to 1.8.0
  664. * Add link to mark a feed as read
  665. Version 2.0.23 (Aug 15, 2020)
  666. -----------------------------
  667. * Try known URLs when discovering subscriptions
  668. * Add workarounds to find YouTube channel feeds (YouTube doesn't expose RSS links anymore for new-style URLs)
  669. * Increase HTTP server timeout values
  670. * Use stdlib constants for HTTP methods instead of strings
  671. * Add support for RTL feed content
  672. * Ignore <media:title> to avoid overriding the default title if they are different
  673. * Add support for secret keys exposed as a file (useful for containerized environments)
  674. * Display recent entries first in search results
  675. * Do not archive shared items
  676. * Add option to change the number of entries per page
  677. * Add Brazilian Portuguese (pt_BR) translation
  678. * Add reading time for entries
  679. * Redirect to login page if CSRF token is expired
  680. * Fever API:
  681. - Use getEntryIDs instead of getEntries to reduce memory consumption
  682. - Fix max_id argument logic to follow the specs
  683. - Improve logging
  684. - Do not send articles to external services when unsaving an item
  685. - Create index to speed up API calls
  686. - Log client IP in middleware
  687. * API client: Do not return body for response with no content
  688. * REST API:
  689. - Delete users asynchronously (Deleting large users might lock the tables)
  690. - Add CORS support
  691. * Align entry actions to the left
  692. - Attempt to avoid awkward alignment on smartphone screens
  693. - Keep the read/star actions aligned to the left
  694. - Remove CSS flex to allow easier override with custom CSS
  695. * Upgrade Postgres client library
  696. * Upgrade CI checks to Go 1.15
  697. Version 2.0.22 (Jun 19, 2020)
  698. -----------------------------
  699. * Remove child-src CSP policy (deprecated)
  700. * Add /version endpoint
  701. * Add the ability to use custom css
  702. * Handle more invalid dates
  703. * Add CSS styles for textarea
  704. * Add index to speed up slow query
  705. * Speed up feed list page rendering
  706. * Add alternative scheduler based on the number of entries
  707. * Setup Dependabot on GitHub
  708. * Update Docker image to Alpine 3.12
  709. * Add feed option to ignore HTTP cache
  710. * Fix some Italian and German translations
  711. * Added scraper rule for RayWenderlich.com, TheOatmeal.com, financialsamurai.com, dilbert.com and turnoff.us
  712. * Replace link to categories by a link to the list of entries in "Category > Feeds" page
  713. * Change feed title to a link to the original website
  714. * Add icons to feeds and categories list
  715. * Update dependencies and remove vendor folder
  716. Version 2.0.21 (Mar 28, 2020)
  717. -----------------------------
  718. * Add SVG icons to entry actions
  719. * Add support for Invidious
  720. - Embed Invidious player for invidio.us feeds
  721. - Add new rewrite rule to use Invidious player for Youtube feeds
  722. * Check during application startup if the database schema is up to date
  723. * Change default theme for public pages to "System Serif"
  724. * Add feature to share an article (create a public link of a feed entry)
  725. * Fix SQL injection in full-text search rank ordering
  726. * Add generic OpenID Connect provider (OAuth2)
  727. * Use more secure TLS configuration for autocert server (increase SSL Labs score from B to A+)
  728. * Add feature to create per-application API Keys
  729. * Add Go 1.14 to GitHub Actions
  730. * Add scraper rule for wdwnt.com
  731. * Add API client function to refresh all feeds
  732. * Add API endpoint to refresh all feeds
  733. * Add Auth Proxy authentication
  734. * Use rel=prev/next on pagination links
  735. Version 2.0.20 (Feb 15, 2020)
  736. -----------------------------
  737. * Add Japanese translation
  738. * History: show entries in the order in which they were read
  739. * Add button to add to Home screen
  740. * Ignore enclosures without URL
  741. * Correct spelling of "toggle"
  742. * List view: align information to the left side, and the actionable buttons to the right
  743. * Redirect to /unread when getting a 404 for an unread expired entry
  744. * Do not advance to the next item when using the 'v' shortcut on the list of starred items
  745. * Wrap around when navigating with keyboard shortcuts on a list view
  746. * Remove unused Feed.Entries and Entry.Category from API client
  747. * Add comments link keyboard shortcut
  748. * Allow application/xhtml+xml links as comments URL in Atom replies
  749. * Allow only absolute URLs in comments URL
  750. * Use internal XML workarounds to detect feed format
  751. * Make menu consistent across feed pages
  752. * Make sure external URLs are not encoded incorrectly by Go template engine
  753. * Make sure whitelisted URI schemes are handled properly by the sanitizer
  754. * Use white background for favicon (Improve legibility when using a dark theme)
  755. * Remove dependency on Sed to build Docker images
  756. * Normalize URL query string before executing HTTP requests
  757. * Improve Dublin Core support for RDF feeds
  758. * Improve Podcast support (iTunes and Google Play feeds)
  759. * Add support for Atom 0.3
  760. * Add support for Atom "replies" link relation
  761. * Return outer HTML when scraping elements
  762. * Update scraper rule for "Le Monde"
  763. * Filter valid XML characters for UTF-8 XML documents before decoding
  764. * Trim spaces for RDF entry links
  765. Version 2.0.19 (Dec 1, 2019)
  766. ----------------------------
  767. * Add shortcut "V" to open original link in current tab
  768. * Add the possibility to add rules during feed creation
  769. * Wrap attachments into <details> disclosure element
  770. * Show attachment size on entry page
  771. * Add support of RSS Media elements (group, description, peer link, and thumbnails)
  772. * Add rewrite functions: convert_text_link and nl2br
  773. * Add scraper rule for openingsource.org
  774. * Add Makefile target to build only amd64 Docker image
  775. * Make sure to remove integration settings when removing a user
  776. * Add API parameter to filter entries by category
  777. * Display list of feeds per category
  778. * Show the number of read and unread entries for each feed
  779. * Make sure settings menu is consistent
  780. * Remove fixed table-layout for entry content
  781. * Update autocert lib because ACME v1 is EOL
  782. * Do not lighten blockquote font color
  783. * Update de_DE translation
  784. * Send a response when changing status of removed entries in Fever API
  785. * Add meta tag to disable Google Translate
  786. * Improve storage module
  787. * Improve XML decoder to remove illegal characters
  788. * Compare Fever token case-insensitively
  789. * Make sure integration tests are marked as failed in Github Actions
  790. * Add new formats to date parser
  791. * Add notification message when using keyboard shortcuts: f, s, and m.
  792. * Avoid keyboard shortcuts to conflict with Firefox’s "Find as you type" feature
  793. Version 2.0.18 (Sep 25, 2019)
  794. -----------------------------
  795. * Add Docker image variant for arm32v7
  796. * Add theme variants
  797. - Use CSS variables instead of inherence
  798. - Rename default theme to "Light - Serif"
  799. - Rename Black theme to "Dark - Serif"
  800. - Rename "Sans-Serif" theme to "Light - Sans Serif"
  801. - Add "System" theme that use system preferences: Dark or Light
  802. - Add Serif and Sans-Serif variants for each color theme
  803. * Avoid constraint error when having duplicate entries during feed creation
  804. * Disable strict XML parsing
  805. * Ignore invalid content type
  806. * Update man page
  807. * Replace Travis by GitHub Actions
  808. * Rename cleanup config variables and deprecate old ones
  809. - CLEANUP_FREQUENCY_HOURS instead of CLEANUP_FREQUENCY
  810. - CLEANUP_ARCHIVE_READ_DAYS instead of ARCHIVE_READ_DAYS
  811. * Make configurable the number of days to remove old sessions
  812. * Add native lazy loading for images and iframes
  813. * Do not buffer responses in the image proxy
  814. * Update dependencies
  815. * Add Go 1.13 to test matrix
  816. * Replace link border by outline to avoid slight content shift
  817. * New rewrite function: add_mailto_subject
  818. * Import OPML from URL
  819. * Fix HTML injection in addImageTitle
  820. * Accept HTML entities when parsing XML
  821. Version 2.0.17 (Aug 3, 2019)
  822. ----------------------------
  823. * Update Docker image to Alpine Linux 3.10.1
  824. * Pass auth header to manifest request (crossorigin attribute)
  825. * Sort feed categories before serialization
  826. * Fix syntax errors in man page
  827. * Add .search margin-right
  828. * Ask for confirmation before flushing history, marking page as read, and mark all as read
  829. * Add option to disable feeds
  830. Version 2.0.16 (Jun 8, 2019)
  831. ----------------------------
  832. * Add option to toggle date/time in log messages
  833. * Add optional config file parser in addition to environment variables
  834. * Make HTTP Client timeout and max body size configurable
  835. * Refactor config package:
  836. - Parse configuration only once during startup time
  837. - Store configuration values in a global variable
  838. * Flip behavior of j and k keyboard shortcuts
  839. * Bump Postgresql client library to v1.1.1 to bring in SCRAM-SHA-256 authentication
  840. * Add option to enable/disable keyboard shortcuts
  841. * Add missing translation
  842. * Improve page reload when showing unread/all entries:
  843. - Show only unread entries = refresh current page
  844. - Show all entries = go to next page
  845. * Always display feed entries even when there is a feed error
  846. * Use loading label instead of saving when submitting login form
  847. * Add OPML v1 support during importation
  848. * Add 'allow-popups' to iframe sandbox permissions
  849. Version 2.0.15 (Mar 16, 2019)
  850. -----------------------------
  851. * Move Dockerfile to main repo
  852. * Change location of the binary from /usr/local/bin to /usr/bin in Docker image
  853. * Add double tap detection for next/previous page navigation
  854. * Allow users to disable auto-remove
  855. * Make parser compatible with Go 1.12
  856. * Add Golang 1.12 to CI
  857. * Use feed ID instead of user ID to check entry URLs presence
  858. * Fix typo in stylesheet
  859. * Sort search results by relevance
  860. * Use preferably the published date for Atom feeds
  861. * Add Spanish translation
  862. * Rename session cookies
  863. * Handle the case when application session is expired and not user session
  864. Version 2.0.14 (Jan 13, 2019)
  865. -----------------------------
  866. * Only attempt to change password if the confirmation field is filled in (Firefox)
  867. * Remove URL from client user agent
  868. * Make the feed list order case-insensitive
  869. * Handle XHTML Summary elements for Atom feeds
  870. * Make UTF-8 the default encoding for XML feeds
  871. * Add more targets to Makefile
  872. * Add -mod=vendor in Makefile
  873. * Move health check endpoint from ui package to httpd service
  874. * Add workaround for non GMT dates (RFC822, RFC850, and RFC1123)
  875. * Make sure `<strong>` elements are bold
  876. * Show scrollbars only when necessary for <pre> elements
  877. * Add Italian translation
  878. * Allow to switch between unread only and all entries on category/feed views
  879. * Add function storage.UpdateFeedError()
  880. * Add BBC News scraping rule
  881. * Ignore JSON feeds from EnsureUnicode()
  882. * Preserve category selection when no feed is found
  883. * Update XML encoding regex to take single quotes into consideration
  884. * Send cli errors to stderr
  885. * Update dependencies
  886. * Make password prompt compatible with Windows
  887. * Make configurable the number of days to archive read items
  888. * Change log level to debug when starting workers
  889. * Do not show $DATABASE_URL warning when showing application info
  890. * Move image proxy filter to template functions
  891. * Update scraper rule for lemonde.fr
  892. * Refactor manual entry scraper
  893. * Apply rewriter rules on manual "Fetch Original Content"
  894. * Add Makefile target for current OS and architecture
  895. * Improve Makefile
  896. Version 2.0.13 (Nov 25, 2018)
  897. -----------------------------
  898. * Add man page
  899. * Add support for Systemd Socket Activation (experimental)
  900. * Add the possibility to listen on Unix sockets
  901. * Add config options to disable HTTP and scheduler services
  902. * Archive more read entries in cleanup job
  903. * Change default database connection string (backward compatible)
  904. * Improve logging messages in ui package
  905. * Improve overall Simplified Chinese translations
  906. * Improve time since post date displays:
  907. - "15 days" now is "15 days" rather than "3 weeks" ago
  908. - "32 days" is now "1 month" rather than "2 months" ago
  909. - "366 days" is now "1 year" rather than "2 years" ago
  910. * Allow the scraper to parse XHTML documents
  911. * Remove charset=utf-8 from JSON responses
  912. * Ignore hotkeys containing Control, Alt or Meta keys
  913. * Handle more encoding conversion edge cases
  914. * Disable go test caching
  915. * Avoid duplication of ldflags in Makefile
  916. * Fix wrong translation key for category pages
  917. * Code refactoring:
  918. - Simplify application HTTP middlewares
  919. - Replace daemon and scheduler package with service package
  920. - Move UI middlewares and routes to ui package
  921. - Move API middleware and routes to api package
  922. - Move Fever middleware and routes to fever package
  923. Version 2.0.12 (Oct 26, 2018)
  924. -----------------------------
  925. * Add OpenBSD build
  926. * Improve logging for OAuth2 callback
  927. * Make "g f" go to feed, or list of feeds
  928. * Add more details in feed storage errors to facilitate debugging
  929. * Add entries storage error to feed errors count
  930. * Set arbitrary maximum size for tsvector column
  931. * Unsubscribe from feed through link or "#"
  932. * Simplify feed entries filtering
  933. * Simplify feed fetcher
  934. * Simplify feed parser and format detection
  935. * Improve unit tests in url package
  936. * Add short cli flags -i and -v
  937. * Convert text links and line feeds to HTML in YouTube channels
  938. * Change link state when marking all entries as read
  939. * Add missing package descriptions for GoDoc
  940. * Fix typo in license header
  941. * Refactor HTTP response builder
  942. * Improve Fever API performances when marking a feed or group as read
  943. * Set focus on article link when pressing prev/next hotkeys
  944. * Improve request package and add more unit tests
  945. * Add more unit tests for config package
  946. * Simplify locale package usage (refactoring)
  947. * Translate application in Russian
  948. * Use disclosure widget <details> for advanced feed options
  949. * Use unique translation IDs instead of English text as key
  950. * Add more unit tests for template functions
  951. * Fix invalid output when truncating Unicode text in templates
  952. * Add the possibility to override default user agent for each feed
  953. * Split Makefile linux targets by architecture
  954. * Add compiler, Arch, and OS to info command
  955. * Avoid line break between emoji and (un)read/(un)star links
  956. * Build Docker image for multiple architectures (amd64, arm32v6, arm64v8)
  957. Version 2.0.11 (Sep 11, 2018)
  958. -----------------------------
  959. * Set cookie flag `SameSite` to Lax mode
  960. * Use predefined ciphers when TLS is configured
  961. * Avoid displaying an error when shutting down the daemon
  962. * Add "Mark this page as read" to the bottom
  963. * Store client IP address in request context
  964. * Refactor HTTP context handling
  965. * Make user creation via environment variables idempotent
  966. * Use regular text version of ✔︎ instead of emoji version on iOS
  967. * Add toggle status button to entry page
  968. * Migrate to Go Modules and Go 1.11
  969. * Show count of feeds with permanent errors in header menu
  970. * Display remote client IP in logs when having a login failure (Fail2Ban)
  971. * Add remove button in feed edit page
  972. * Split integration tests into multiple files
  973. * Update scraper rule for heise.de
  974. * Expose real error messages for internal server API errors
  975. * Move Golang API client in project source tree (the separate project is deprecated)
  976. * Use canonical imports
  977. * Add Procfile
  978. * Create database package (refactoring)
  979. * Update user agent with new website URL
  980. * Update German translation
  981. Version 2.0.10 (July 22, 2018)
  982. ------------------------------
  983. * Avoid browser caching issues when assets changes
  984. * Add Gzip/Deflate compression for HTML, JSON, CSS and Javascript responses
  985. * Improve themes handling
  986. * Store user theme in session
  987. * Logged out users will keep their theme
  988. * Add theme background color to web manifest and meta tag
  989. * Update application icon with different sizes
  990. * Add support for published tag in Atom feeds
  991. * Add tooltip to feed domain in feeds list (title attribute)
  992. * Prevent vertical scrolling on swipe
  993. * Show feed title instead of domain in items list
  994. * Add service worker to cache feed icons
  995. * Make image proxy configurable via IMAGE_PROXY environment variable:
  996. * none = No proxy
  997. * http-only = Proxy only non-HTTPS images (default)
  998. * all = Proxy everything
  999. * Add alt attribute for feed icons
  1000. * Update CI jshint check
  1001. * Add embedly.com to iframe whitelist
  1002. * Use passive event listeners for touch events
  1003. * Add `add_dynamic_image` rewriter for JavaScript-loaded images
  1004. * Change feed password field type to text to avoid auto-completion with Firefox
  1005. * Using autocomplete="off" or autocomplete="new-password" doesn't change anything
  1006. * Changing the input ID doesn't change anything
  1007. * Using a different input name doesn't change anything
  1008. * Only Chrome supports autocomplete="new-password"
  1009. * Add base URL validation
  1010. * Update default stylesheet name in HTML layout
  1011. * Pre-generate themes stylesheets at build time
  1012. * Update vendor dependencies
  1013. * Refactor assets bundler and split Javascript files
  1014. * Run sanitizer after all processing and entry content rewrite
  1015. * Remove timestamp from generated files
  1016. * Add support for protocol relative YouTube URLs
  1017. * Add Postgres full-text search for entries
  1018. * Add search form in user interface
  1019. * Add search parameter to the API
  1020. * Improve Dutch locales
  1021. * Sandbox iframes when sanitizing
  1022. * Keep consistent text size on mobile orientation change
  1023. * Change permission of /etc/miniflux.conf to 600 instead of 644 in RPM package
  1024. * Add tzdata package to Docker image
  1025. * Update Docker image to Alpine Linux 3.8
  1026. Version 2.0.9 (July 1, 2018)
  1027. ----------------------------
  1028. * Avoid Chrome to autocomplete no-login password fields
  1029. * Add cli flag to reset all feed errors
  1030. * Do not ignore errored feeds when a user refresh feeds manually
  1031. * Add specific 404 and 401 error messages
  1032. * Strip binaries to reduce size
  1033. * Make sure we always get the pagination in unread mode
  1034. * Fix incorrect data value when toggling bookmark flag on entry page
  1035. * Set opener to null when opening original URL with JavaScript
  1036. * Remove unnecessary style
  1037. * Refactor AddImageTitle rewriter
  1038. * Only processes images with `src` **and** `title` attributes (others are ignored)
  1039. * Processes **all** images in the document (not just the first one)
  1040. * Wraps the image and its title attribute in a `figure` tag with the title attribute's contents in a `figcaption` tag
  1041. * Improve sanitizer to remove `style`, `noscript` and `script` tag contents
  1042. * Improve feed and user API updates with optional values
  1043. * Add new fields for feed username/password
  1044. * Improve memory usage debug log
  1045. * Disable keep-alive for HTTP client
  1046. * Close HTTP response body even for failed requests
  1047. * Add Sans-Serif theme
  1048. * Rewrite iframe Youtube URLs to https://www.youtube-nocookie.com
  1049. * Add more filters for API call `/entries`:
  1050. * before (unix timestamp)
  1051. * before_entry_id (int64)
  1052. * after (unix timestamp)
  1053. * after_entry_id (int64)
  1054. * starred (boolean)
  1055. * Rewrite individual entry pagination SQL queries
  1056. * Simplify entry query builder
  1057. * Prevent items from sticking on touchend
  1058. * Extended horizontal overflow to feed and category views
  1059. * Translate missing strings
  1060. * Update German translation
  1061. Version 2.0.8 (June 4, 2018)
  1062. ----------------------------
  1063. * Add Pocket integration
  1064. * Rewrite RealIP() to avoid returning an empty string
  1065. * Convert IP field from text to inet type
  1066. * Improve error handling in integration clients
  1067. * Make unread counter clickable
  1068. * Archive read entries automatically after 60 days
  1069. * Hide horizontal overflow when swiping articles on touch devices
  1070. * Add API endpoint to get logged user
  1071. * Fever API: Return response with an empty list if there is no item
  1072. * Handle feeds with dates formatted as Unix timestamp
  1073. Version 2.0.7 (May 7, 2018)
  1074. ---------------------------
  1075. * Add API endpoint to import OPML file
  1076. * Make sure to close request body in HTTP client
  1077. * Do not show save link if no integration is configured
  1078. * Make sure integrations are configured before to make any HTTP requests
  1079. * Avoid people to unlink their OAuth2 account without having a local password
  1080. * Do not use shared variable to translate templates (avoid concurrency issue)
  1081. * Use vanilla HTTP handlers (refactoring)
  1082. * Move HTTP client to its own package (refactoring)
  1083. * Add middleware to read X-Forwarded-Proto header (refactoring)
  1084. * Use Gorilla middleware (refactoring)
  1085. * Scrape parent element for iframe
  1086. * Add SoundCloud and Bandcamp iframe sources
  1087. Version 2.0.6 (Apr 20, 2018)
  1088. ----------------------------
  1089. * Improve graceful shutdown
  1090. * Simplify Heroku deployment
  1091. * Display memory usage and some metrics in logs
  1092. * Increase read/write timeout for HTTP server
  1093. * Add support for Dublin Core date in RDF feeds
  1094. * Do not return an error if the user session is not found
  1095. * Handle some non-english date formats
  1096. * Add missing French translation
  1097. * Rename RSS parser getters
  1098. * Get the right comments URL when having multiple namespaces
  1099. * Ignore caching headers for feeds that send "Expires: 0"
  1100. * Update translations
  1101. Version 2.0.5 (Apr 7, 2018)
  1102. ---------------------------
  1103. * Avoid unread counter to be off by one when reading an entry
  1104. * Add Comments URL to entries
  1105. * Add FreeBSD build target
  1106. * Handle RSS author elements with inner HTML
  1107. * Fix typo in translations
  1108. * Add Dutch translation
  1109. * Convert enclosure size field to bigint
  1110. * Switch CI to Go v1.10
  1111. * Fix broken OPML import when compiling with Go 1.10
  1112. Version 2.0.4 (Mar 5, 2018)
  1113. ---------------------------
  1114. * Add Simplified Chinese translation
  1115. * Add Nunux Keeper integration
  1116. * Filter the list of timezones
  1117. * Add timezone to entries dates for REST and Fever API
  1118. * Show last login and session creation date in current timezone
  1119. * Fix typo in edit user template
  1120. * Improve parser error messages
  1121. * Remove parentheses around feed error messages
  1122. * Support localized feed errors generated by background workers
  1123. * Print info message if DATABASE_URL is not set
  1124. Version 2.0.3 (Feb 19, 2018)
  1125. ----------------------------
  1126. * Add Polish translation
  1127. * Change color of <q> tags for black theme
  1128. * Add database indexes (don't forget to run database migrations)
  1129. * Handle Atom feeds with HTML title
  1130. * Strip invalid XML characters to avoid parsing errors
  1131. * Improve error handling for HTTP client
  1132. Version 2.0.2 (Feb 5, 2018)
  1133. ---------------------------
  1134. * Add support for Let's Encrypt http-01 challenge
  1135. * Move template functions outside engine (refactoring)
  1136. * Take timezone into consideration when calculating relative time
  1137. * Add support for HTTP Strict Transport Security header
  1138. * Add support for base URLs with subfolders
  1139. * Add missing about menu in settings
  1140. * Show API URL endpoints in user interface
  1141. * Do not update entry date while refreshing a feed
  1142. * Add flag to toggle debug logging
  1143. * Improve unread counter updates
  1144. Version 2.0.1 (Jan 22, 2018)
  1145. ----------------------------
  1146. * Change user agent (People are blocking the crawler with mod_security)
  1147. * Move environment variables to config package (refactoring)
  1148. * Add build targets for all ARM architectures
  1149. * Do not crawl existing entry URLs
  1150. * Show translated login page in user language when logged out
  1151. * Handle more encoding edge cases:
  1152. - Feeds with charset specified only in Content-Type header and not in XML document
  1153. - Feeds with charset specified in both places
  1154. - Feeds with charset specified only in XML document and not in HTTP header
  1155. * Add German translation
  1156. * Add mark as read/unread link on list items
  1157. * Add API endpoint for OPML export
  1158. Version 2.0.0 (Jan 11, 2018)
  1159. ----------------------------
  1160. * Initial release of Miniflux 2.