ChangeLog 44 KB

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