ChangeLog 46 KB

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