<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2022 Jaakko Keränen <jaakko.keranen@iki.fi> -->
<component type="desktop-application">
    <id>fi.skyjake.Lagrange</id>
    <metadata_license>CC0-1.0</metadata_license>
    <project_license>BSD-2-Clause</project_license>
    <name>Lagrange</name>
    <summary>A Beautiful Gemini Client</summary>
    <description>
        <p>
            Lagrange is a desktop GUI client for browsing Geminispace. 
            It offers modern conveniences familiar from web browsers, 
            such as smooth scrolling, inline image viewing, multiple 
            tabs, visual themes, Unicode fonts, bookmarks, history, and
            page outlines.
        </p>
        <p>
            Like the Gemini protocol, Lagrange has been designed with
            minimalism in mind. It depends on a small number of essential
            libraries. It is written in C and uses SDL for 
            hardware-accelerated graphics. OpenSSL is used for secure
            communications.
        </p>
    </description>
    <content_rating type="oars-1.1" />
    
    <launchable type="desktop-id">fi.skyjake.Lagrange.desktop</launchable>

    <screenshots>
        <screenshot type="default">
            <image>https://gmi.skyjake.fi/lagrange/flathub_screenshot.jpg</image>
        </screenshot>
    </screenshots>

    <url type="homepage">https://gmi.skyjake.fi/lagrange</url>
    <url type="bugtracker">https://github.com/skyjake/lagrange/issues</url>
    <url type="contact">https://skyjake.fi/@jk</url>

    <developer_name>Jaakko Keränen</developer_name>

    <provides>
        <binary>lagrange</binary>
    </provides>

    <update_contact>jaakko.keranen@iki.fi</update_contact>

    <releases>
        <release version="1.18.3" date="2024-10-14">
            <description>
                <ul>
                    <li>TUI: Fixed background colors in reduced color modes (less than 256 colors).</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.18.3</url>
        </release>
        <release version="1.18.2" date="2024-10-13">
            <description>
                <ul>
                    <li>Misfin: URI format has changed to "misfin:address?message" instead of the previously used "misfin://address". The optional query string ("message") is used as the initial message contents if the upload dialog's text editor is empty.</li>
                    <li>Increased number of concurrent feed subscription requests (now 10, was 4).</li>
                    <li>Potential workaround for a crash during feed refresh.</li>
                    <li>Fixed redirection counting (and related warnings) when requesting Titan URIs.</li>
                    <li>Fixed perpetual load spinner animation when redirected to a Titan URL.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.18.2</url>
        </release>
        <release version="1.18.1" date="2024-09-29">
            <description>
                <ul>
                    <li>TUI: Fixed potentially garbled output.</li>
                    <li>TUI: Only link Curses statically when using CMake option `ENABLE_STATIC`.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.18.1</url>
        </release>
        <release version="1.18" date="2024-09-20">
            <description>
                <ul>
                    <li>Support for sending Misfin messages. "misfin://" links are opened in the upload dialog. You must import a Misfin identity before you can send a message.</li>
                    <li>Misfin: Identity sidebar indicates which identities are for Misfin.</li>
                    <li>Support for the Guppy protocol. Contributed by Dima Krasner.</li>
                    <li>Titan: Support for the "edit" parameter in opened Titan links. The target's contents are downloaded and displayed in the upload dialog's text editor. After editing the contents are uploaded back to the server.</li>
                    <li>Option to disable all TLS security warnings.</li>
                    <li>Opus audio playback using libopusfile (optional dependency). Contributed by Martin Chang.</li>
                    <li>The Curses-based `clagrange` can be built in addition to the GUI, not only separately. Removed the TUI build script.</li>
                    <li>Improved UI focus navigation: arrow keys move focus to an adjacent widget.</li>
                    <li>Context menus are keyboard-navigable with arrow keys, and the first letter of labels acts as a shortcut key to move focus on the item.</li>
                    <li>Bookmarked URLs are automatically updated after permanent redirection. (The original URL is still saved in bookmarks.ini.)</li>
                    <li>Line width expands dynamically (up to window size) to account for wide content like preformatted blocks and plain text lines.</li>
                    <li>The file path can be entered manually in the upload dialog. Previously only drag-and-drop was supported.</li>
                    <li>Right-clicking on the site banner shows a link context menu. (Linking to the capsule's root URL.)</li>
                    <li>Show a confirmation popup when saving something to the downloads folder.</li>
                    <li>Menubar: When opened via keyboard, reopen the most recently opened menu instead of "File".</li>
                    <li>The Return key is now a (hardcoded) keyboard shortcut for focusing the navbar URL field.</li>
                    <li>Page Information: Clarified meaning of "fingerprint". The type of hash (SHA-256) and what it was calculated from are specified (full certificate or just the public key).</li>
                    <li>Updated UI symbols for "Go to Root", remote bookmarks, and the navbar bookmark indicator/button.</li>
                    <li>Gopher: Proper parsing of Telnet line types `8` and `T`.</li>
                    <li>Noto Emoji font updated to support Unicode 15.1.</li>
                    <li>TUI: Often needed keyboard shortcuts are shown in place of menubar when the menubar is inactive, to make the UI more approachable.</li>
                    <li>TUI: Improved UI layout, targeting a minimum resolution of 80x25.</li>
                    <li>TUI: Improved text-mode rendering of various widgets.</li>
                    <li>Titan URLs were incorrectly opening the upload dialog when navigating through history.</li>
                    <li>Titan request in an open tab was resubmitted with empty content when launching the app.</li>
                    <li>Default Titan upload identity was sometimes chosen incorrectly; should match the active Gemini identity.</li>
                    <li>Upload dialog was missing a couple of UI strings for drag-and-drop errors.</li>
                    <li>Gopher: Gemtext formatting (headings, quotes, etc.) found on Gopher menu pages is now escaped so it doesn't unintentionally affect the visual presentation.</li>
                    <li>Gopher: Allow port number to be blank on `i` lines.</li>
                    <li>Query shortcuts (bang snippets) that already contain a `?` character were prefixed by a redundant `?`.</li>
                    <li>Link ordinals/letters (when navigating with Alt/Option or home row keys) now start at the actual top of the view.</li>
                    <li>Incorrect event handling order with multiple windows when there is a focused widget.</li>
                    <li>Missing focus indication in empty lists and the Snippets list.</li>
                    <li>Holding down Alt/Option (link number modifier key) while opening a query link would prevent the prompt dialog from having input focus.</li>
                    <li>Incorrect glyph spacing in a mixed-font preformatted block (fallback glyphs from different fonts).</li>
                    <li>Lede paragraph highlighting was misbehaving with monospace body font; now gets disabled.</li>
                    <li>Glyphs were sometimes partially cut off due to excessive background clearing on adjacent lines.</li>
                    <li>TUI: Color escapes were not applied when rendering.</li>
                    <li>TUI: Submenu chevron symbols were missing.</li>
                    <li>TUI: Potential hang when wrapping text.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.18.0</url>
        </release>
        <release version="1.17.6" date="2024-01-16">
            <description>
                <ul>
                    <li>Fixed memory leak: fetched pages were not always released from memory (reference miscount).</li>
                    <li>Fixed minor memory leak in list widgets.</li>
                    <li>Gopher: Autodetect Gemtext files based on file extension.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.17.6</url>
        </release>
        <release version="1.17.5" date="2023-12-04">
            <description>
                <ul>
                    <li>Fixed a few small memory leaks.</li>
                    <li>Fixed unnecessary copying of data while waiting for an audio buffer to become playable.</li>
                    <li>Gopher: Detect audio media type from file extension with the `s` item type (it's not always WAV).</li>
                    <li>Content that uses `charset=utf-8` is checked for validity. If the encoding is invalid, the content is instead decoded as CP437 (if it has ANSI escapes; possibly it's ASCII art) or just Latin-1.</li>
                    <li>Remove ANSI escapes from window titles.</li>
                    <li>Modified rule for when 'text/plain' is assumed to actually be 'text/gemini' based on the file extension.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.17.5</url>
        </release>
        <release version="1.17.4" date="2023-11-19">
            <description>
                <ul>
                    <li>Removed automatic horizontal scrolling of wide preformatted blocks. Instead, hold down the Shift key to scroll horizontally with the mouse wheel.</li>
                    <li>Fixed an event processing issue where some events were not handled as expected, for instance when opening a link into split view the opened link was not highlighted.</li>
                    <li>Fixed links not reacting to mouse hover after jumping to a heading from the Outline.</li>
                    <li>Fixed input prompt behaving strangely after changing font size. (Lines are now forced to rewrap after changing the font.)</li>
                    <li>Fixed mouse cursor not changing its shape in all open windows.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.17.4</url>
        </release>
        <release version="1.17.3" date="2023-11-04">
            <description>
                <ul>
                    <li>Fixed activating a pinned identity when opening a bookmark via the Bookmarks menu.</li>
                    <li>Fixed initial scope of a created identity when using the default selection.</li>
                    <li>Fixed issues with dropdown menus when the menu appears as a popup window.</li>
                    <li>Fixed clearing the pinned identity of a bookmark.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.17.3</url>
        </release>
        <release version="1.17.2" date="2023-10-25">
            <description>
                <ul>
                    <li>Tabs opened in background are immediately added to the URL history.</li>
                    <li>Mouse wheel direction switches back to vertical when a wide block has been scrolled all the way.</li>
                    <li>Fixed current text selection extending during scrolling even after mouse button has been released.</li>
                    <li>Fixed drag-to-select with the mouse being too sensitive to mouse movement.</li>
                    <li>Fixed the numbered links key (default: Alt) while navigating to new pages. It is no longer necessary to release and press the key again on the new page.</li>
                    <li>Fixed long bookmark titles making the Bookmarks menu too wide.</li>
                    <li>ANSI Cursor Forward control sequence ("CSI n C") is converted to a series of spaces, but only in preformatted text.</li>
                    <li>Fixed parsing of ANSI SGR sequences with many attributes concatenated (e.g., 0;1;40;30).</li>
                    <li>Fixed inline image loading indicator overdrawing itself, becoming unreadable.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.17.2</url>
        </release>
        <release version="1.17.1" date="2023-10-21">
            <description>
                <ul>
                    <li>Added "Vibrant Light" color theme.</li>
                    <li>Improved readability of "Colorful Light" headings.</li>
                    <li>Tuned autoscrolling when selecting text to avoid accidental scrolling.</li>
                    <li>Preformatted blocks no longer switch to a smaller font to fit to the page.</li>
                    <li>Mouse wheel scrolls a wide preformatted block when hovering over the block, instead of scrolling vertically. You can hold the Shift key to swap the scroll direction.</li>
                    <li>Fixed horizontal scrolling issues with preformatted blocks: only scroll if needed, allow scrolling anywhere on the block and not just on non-empty text lines, and when scrolling disallow swipe navigation over the area.</li>
                    <li>Fixed visual artifacts around and next to preformatted blocks (e.g., streaking).</li>
                    <li>Fixed potential crash after (un)folding a preformatted block.</li>
                    <li>Fixed links being non-clickable after searching text on a page has scrolled the view.</li>
                    <li>Fixed scroll position being reset when reloading the page.</li>
                    <li>Fixed initial size of the upload dialog when font size has been changed.</li>
                    <li>Fixed "View as Plain Text" context menu item after reloading a page.</li>
                    <li>Strip any null characters from the page source during whitespace normalization.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.17.1</url>
        </release>
        <release version="1.17" date="2023-10-06">
            <description>
                <ul>
                    <li>The Bookmarks menu lists all of your bookmarks and folders.</li>
                    <li>Snippets: A collection of short text segments that can be pasted into any input field via the context menu. For example, useful for your gemlog header/footer and other often-repeated parts.</li>
                    <li>Snippets can be managed in Preferences > Snippets and created by right-clicking on links or selected text on a page.</li>
                    <li>Custom search queries: Snippets whose name starts with a bang (e.g., "!w") can be invoked in the URL field to make customized queries. The snippet content should be a Gemini search URL, for example: "gemini://gemi.dev/cgi-bin/wp.cgi/search".</li>
                    <li>Quick lookup shows matching snippets as a new type of search result.</li>
                    <li>Keyboard shortcut Shift+1/⇧1 for conveniently making a snippet query.</li>
                    <li>Input prompts, upload dialogs, and bookmark editors can be resized by dragging the left or right edge.</li>
                    <li>Text zooming in the upload text editor.</li>
                    <li>Gemtext syntax highlighting in the upload dialog.</li>
                    <li>Recently submitted input prompt contents are saved persistently and can be restored via the Ellipsis utility menu in the prompt dialog.</li>
                    <li>You can force the input prompt to appear before a certain URL is requested so you can enter a query string. This is useful for avoiding an extra request when it is known that a URL will require input (e.g., search engine, game input).</li>
                    <li>When importing links as bookmarks, you can optionally create subfolders from headings. You can also choose a destination folder for the imported bookmarks.</li>
                    <li>Quickly add/move a bookmark into a folder with the navbar bookmark button context menu (right-click on 🏷️).</li>
                    <li>User-selectable feed refresh interval. Previously the interval been hardcoded to four hours. (Based on a patch by Michael Nordmeyer.)</li>
                    <li>Setting to never/always collapse preformatted blocks, disabling the ability to toggle the folding.</li>
                    <li>"Fold All" and "Unfold All" in Bookmarks sidebar context menu.</li>
                    <li>"Search" context menu item on selected text to make a search query with it.</li>
                    <li>"Use as Search URL" in link context menu.</li>
                    <li>"Mark All Links as Visited" in the Tools submenu.</li>
                    <li>Option `--capslock`: enable Caps Lock as a modifier in keybindings.</li>
                    <li>Option `--theme` (`-t`): change UI color theme of open Lagrange windows. Can be used in scripts to switch the theme automatically (for example, see the `darkman` utility; thanks to Jason McBrayer for suggesting this).</li>
                    <li>Support for the Nex protocol (nex://nightfall.city/nex/info/specification.txt).</li>
                    <li>Keyboard shortcut for deleting bookmarks (Backspace). Useful when the Bookmarks list has input focus.</li>
                    <li>Menus can have submenus. Several of the old menus were reorganized accordingly. For example, the page context menu has a Tools submenu for translation, Titan uploads, etc.</li>
                    <li>Show unsupported media types as plain text if the content is valid UTF-8 encoded text.</li>
                    <li>The page scrolls while selecting text near top/bottom.</li>
                    <li>Display a logo graphic in empty windows/tabs as a placeholder.</li>
                    <li>Visualize input focus in lists by drawing a focus rectangle around the current item.</li>
                    <li>Menu separators are taller and more distinct for a clearer item separation.</li>
                    <li>Adjusted colors of the Import Identity dialog.</li>
                    <li>Auto-hide sidebars when resizing a window/split if the document area would become narrower than the sidebar.</li>
                    <li>Tuned theme color palette and improved background colors of "Colorful Light".</li>
                    <li>Newly created client certificates have a default expiration date in the year 9999, which means they won't expire. One can still also set a specific date as before.</li>
                    <li>Periodically save UI state (including each tab's navigation history) to prevent data loss in case the app crashes. These runtime saves do not include any cached page content. The full cache is still saved as before when quitting the app.</li>
                    <li>Potential crash at shutdown when a feed update is ongoing.</li>
                    <li>Problems with window refresh when multiple windows are open. For example, the cursor not blinking in input fields.</li>
                    <li>Incorrect name displayed in page banner when URL query string contains a tilde name.</li>
                    <li>Fixed navbar spinner animation going too fast when both sides of a split view are being loaded.</li>
                    <li>Glitches during swipe navigation (touch screens, macOS trackpad). Behavior is more robust at ends of history and when content is not immediately available in cache.</li>
                    <li>Fixed opening of context menus via keyboard (incorrect click position).</li>
                    <li>Fixed a text rendering issue where glyphs were incorrect when preceded by a Narrow No-Break Space.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.17.0</url>
        </release>
        <release version="1.16.7" date="2023-08-11">
            <description>
                <ul>
                    <li>Workaround for window refresh potentially getting stuck while receiving a streaming response. (Limit update frequency.)</li>
                    <li>Don't navigate back when stopping a streaming request.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.7</url>
        </release>
        <release version="1.16.6" date="2023-07-30">
            <description>
                <ul>
                    <li>Fixed crash on gemini://sdf.org/ where the contents of a link line would fail to be recognized as valid characters.</li>
                    <li>Fixed splitting a long wrapped line in input fields where part of the text would remain on the preceding line. (Mixup between byte and character index.)</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.6</url>
        </release>
        <release version="1.16.5" date="2023-06-23">
            <description>
                <ul>
                    <li>"New Tab" (Ctrl+T/⌘T) and the tab bar [+] button append the tab to the right edge. Previously it was inserted next to the active tab.</li>
                    <li>Fixed crash when opening Preferences.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.5</url>
        </release>
        <release version="1.16.4" date="2023-06-12">
            <description>
                <ul>
                    <li>Context/button menus use a popup window if they would otherwise have to scroll (e.g., "Dark theme:" in Preferences and "Folder:" in the bookmark editor).</li>
                    <li>Improved tab closing order: close all sibling tabs opened from an origin tab before switching back to the origin tab.</li>
                    <li>Center a short title under the icon in the page margin.</li>
                    <li>Fixed navbar URL text selection when opening new tabs (keep all selected).</li>
                    <li>Fixed too much empty space in the input prompt layout.</li>
                    <li>Fixed input field not being updated after cutting text.</li>
                    <li>Fixed stuck mouse button when opening a context menu while performing a drag.</li>
                    <li>Fixed incorrect mouse button state and other potential incorrect behavior after resizing the window.</li>
                    <li>The x86_64 AppImage now uses SDL 2.26.5 built from source, fixing issues with window and popup behavior.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.4</url>
        </release>
        <release version="1.16.3" date="2023-06-04">
            <description>
                <ul>
                    <li>Remove whitespace from ends of a URL pasted into an input field.</li>
                    <li>Fixed links whose label is a single Emoji sometimes not appearing.</li>
                    <li>Fixed zooming not affecting unfocused windows right away.</li>
                    <li>Fixed current zoom level not being applied to newly created windows.</li>
                    <li>Fixed updating of selected text range in navbar URL when changing tabs.</li>
                    <li>Fixed mouse wheel scrolling not working in unfocused windows.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.3</url>
        </release>
        <release version="1.16.2" date="2023-05-29">
            <description>
                <ul>
                    <li>Set input focus to navbar URL field when opening an empty window.</li>
                    <li>The navbar URL field only omits the "gemini:" scheme when the text actually doesn't fit horizontally, and only when the field is inactive.</li>
                    <li>Fixed problems with handling URLs in input fields. For example, copying the URL to the clipboard sometimes had unexpected or incorrect results.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.2</url>
        </release>
        <release version="1.16.1" date="2023-05-22">
            <description>
                <ul>
                    <li>Fixed handling of the AltGr key during text input (again).</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.1</url>
        </release>
        <release version="1.16" date="2023-05-21">
            <description>
                <ul>
                    <li>Input prompt font size can be changed with the Zoom In/Out/Reset keys.</li>
                    <li>Preferences: Option for silently following scheme-changing redirects (Network tab; default: no).</li>
                    <li>Tab creation and closing follows common browser conventions: new tabs are opened next to the most recently opened tab, so they retain the correct left-to-right order.</li>
                    <li>Preferences: Moved cache/memory size settings to Content tab.</li>
                    <li>Page title in margin omits prefix Emoji if it matches the bookmark icon.</li>
                    <li>Adjusted word-wrapping to break at a period inside a word (e.g., domain names).</li>
                    <li>If the page is missing a level 1 heading, use the first content line as the title.</li>
                    <li>Fixed tab order getting reversed when restoring tabs at launch.</li>
                    <li>Fixed order of opened tabs when using "Open in New Tabs" on a bookmark folder.</li>
                    <li>Fixed input focus going to the wrong split when pressing Ctrl+L with an Upload dialog open.</li>
                    <li>Fixed text fields becoming nonresponsive when multiple fields are active.</li>
                    <li>Fixed input query dialogs not being hidden when the tab changes.</li>
                    <li>Fixed incorrect parsing of "hostname:port" in URL field (without `//` or `gemini://`).</li>
                    <li>Fixed potential crash when switching between cached pages while navigating in history.</li>
                    <li>Fixed potential crash when closing split view during a scrolling animation.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.16.0</url>
        </release>
        <release version="1.15.9" date="2023-04-28">
            <description>
                <p>Changes in v1.15.9:</p>
                <ul>
                    <li>Added new UI translation: Basque (euskara).</li>
                    <li>Improved opening and closing of tabs. New tabs now open to the right of the current tab.</li>
                    <li>Allow scaling up small images up to 2x size.</li>
                    <li>Fixed possible crash when closing tabs.</li>
                    <li>Fixed crashes on Wayland due to use of X11-specific code.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.9</url>
        </release>
        <release version="1.15.8" date="2023-04-07">
            <description>
                <p>Changes in v1.15.8:</p>
                <ul>
                    <li>Fixed activation of a pinned identity in inline media requests.</li>
                    <li>Fixed potential crash when changing split view mode during a UI animation.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.8</url>
        </release>
        <release version="1.15.7" date="2023-03-28">
            <description>
                <p>Changes in v1.15.7:</p>
                <ul>
                    <li>Fixed window contents getting frozen after Reset Zoom when zoom level is already at 100%.</li>
                    <li>Fixed key modifiers not being recognized before a text field has been activated. (Affects some versions of SDL.)</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.7</url>
        </release>
        <release version="1.15.6" date="2023-03-22">
            <description>
                <p>Changes in v1.15.6:</p>
                <ul>
                    <li>The Outline tab in the sidebar now uses regular UI colors, like other sidebar tabs.</li>
                    <li>Fixed handling of the AltGr key during text input.</li>
                    <li>Fixed incorrect background colors for Preferences tab buttons with certain themes (e.g., Colorful Light).</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.6</url>
        </release>
        <release version="1.15.5" date="2023-03-16">
            <description>
                <p>Changes in v1.15.5:</p>
                <ul>
                    <li>Added several new translated languages: Azerbaijani, Catalan, Czech, Danish, Dutch, Esperanto, Finnish, Greek, Hebrew, Hungarian, Indonesian, Irish, Korean, Persian, Polish, Slovak, Swedish, Turkish, and Ukrainian. (LibreTranslate server was upgraded to v1.3.10.)</li>
                    <li>Added "Auto-detect" as the default source language for translation.</li>
                    <li>Added option to skip preformatted blocks when translating a page.</li>
                    <li>Fixed translation of link lines. Only the link label is now translated.</li>
                    <li>Fixed lines on translated pages sometimes shifting position and getting the wrong line types.</li>
                    <li>Fixed handling of redirects when fetching subscribed feed pages.</li>
                    <li>Fixed saving the "Split view pinning" setting so it doesn't reset when relaunching the app.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.5</url>
        </release>
        <release version="1.15.4" date="2023-03-09">
            <description>
                <p>Changes in v1.15.4:</p>
                <ul>
                    <li>Fixed crash when trying to open a tab, New Identity dialog, or the Identity menu when the Preferences window is focused.</li>
                    <li>Fixed potential crash if switching focus to a widget being dismissed (e.g., popup going away).</li>
                    <li>Fixed text input becoming unresponsive when focus switches from a popup being dismissed to a new popup.</li>
                    <li>Fixed closing the Preferences window with Ctrl+W or ⌘W.</li>
                    <li>Fixed unnecessary page layout update when closing Preferences.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.4</url>
        </release>
        <release version="1.15.3" date="2023-02-26">
            <description>
                <p>Changes in v1.15.3:</p>
                <ul>
                    <li>Fixed handling of redirects in the inline media player and file downloader.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.3</url>
        </release>
        <release version="1.15.2" date="2023-02-06">
            <description>
                <p>Changes in v1.15.2:</p>
                <ul>
                    <li>Fixed moving input focus to the next window when closing a window.</li>
                    <li>Centered footer info text for better balance.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.2</url>
        </release>
        <release version="1.15.1" date="2023-01-25">
            <description>
                <p>Changes in v1.15.1:</p>
                <ul>
                    <li>Fixed opening multiple Preferences windows at the same time.</li>
                    <li>Fixed the Preferences window missing a window icon.</li>
                    <li>Footer information moved out of the margin area and under the page content.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.1</url>
        </release>
        <release version="1.15" date="2023-01-21">
            <description>
                <p>Changes in v1.15:</p>
                <ul>
                    <li>Preferences dialog opens as a separate window.</li>
                    <li>Option `--prefs-sheet`: open Preferences as a sheet like in previous releases.</li>
                    <li>Reordering tabs: tab buttons can be dragged with the mouse, and tabs can be moved left/right using tab context menu items or keyboard shortcuts.</li>
                    <li>Move a tab to the other side of a split view (tab context menu).</li>
                    <li>Move a tab to a new window (tab context menu).</li>
                    <li>Added a "Window" menu to the menu bar that has actions for manipulating and switching the active window, and duplicating and switching tabs. (On macOS, this menu has already been available.)</li>
                    <li>Gopher: Option to disable Gemini styling on Gopher menu pages. When disabled, whitespace is not normalized and all non-link lines are presented as regular paragraph text.</li>
                    <li>Redesigned Preferences dialog with vertical tabs and a new organization of the settings. "Fonts" and "Colors" are removed, and there is a new "Content" tab.</li>
                    <li>Mouse cursor turns into the I-beam only over selectable text.</li>
                    <li>Indicate that tab autoreloading is enabled by changing the appearance of the navbar reload button.</li>
                    <li>GTK: Request dark window theme if the app UI color theme is dark.</li>
                    <li>Prevent high-resolution mice from flooding event processing with too many motion events and delaying UI refresh.</li>
                    <li>Updated UI translations.</li>
                    <li>New Japanese UI translation (13% complete).</li>
                    <li>Changing the UI scaling factor will now affect all existing and newly created windows.</li>
                    <li>Possible crash when duplicating a tab.</li>
                    <li>Issues with event processing when multiple windows are open.</li>
                    <li>Workaround for a hang when running many parallel requests with MIME filter hooks.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.15.0</url>
        </release>
        <release version="1.14.2" date="2023-01-11">
            <description>
                <p>Changes in v1.14.2:</p>
                <ul>
                    <li>Fixed a potential crash when using musl libc.</li>
                    <li>Fixed a potential crash when closing tabs in split view mode.</li>
                    <li>Fixed inconsistent spacing after level 1 headings.</li>
                    <li>Fixed endless reload animation events if a split view is closed while loading a page.</li>
                    <li>Fixed page load progress indicator that was being obscured by active split marker in split view.</li>
                    <li>Fixed potential crash when trying to reuse a TLS session.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.14.2</url>
        </release>
        <release version="1.14.1" date="2022-11-26">
            <description>
                <p>Changes in v1.14.1:</p>
                <ul>
                    <li>Fixed possible crash when closing a tab with the outline sidebar visible.</li>
                    <li>Fixed hang when setting a folder's parent to itself in the Edit Folder dialog.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.14.1</url>
        </release>
        <release version="1.14" date="2022-11-24">
            <description>
                <p>Changes in v1.14:</p>
                <ul>
                    <li>A bookmark folder can be opened in new tabs, in the same window or a new one, one tab per bookmark.</li>
                    <li>Pinned bookmark identities. A simpler way to use identities. When the "Pinned identity" property is set on a bookmark, opening the bookmark causes the selected identity to be "pinned" to the tab: while you stay on the same site, the identity remains in use when opening links. However, when opening a link to another site, a new tab gets opened. (The old way of per-URL identities is still available, too.)</li>
                    <li>New identities can be created for use in the current directory (as opposed to domain or page).</li>
                    <li>Option `--dump` (`-d`) to print contents of URLs/paths to stdout. Metadata is printed to stderr.</li>
                    <li>Option `--dump-identity` (`-I`) selects the identity to use with `--dump`.</li>
                    <li>Option `--replace-tab URL` opens a URL, replacing contents of the active tab.</li>
                    <li>Option `--user DIR` (`-U`) to set the directory where user data is stored.</li>
                    <li>When creating new identities, make it clearer what the scope of usage will be. The UI actions explicitly say "New Identity for Domain" when the default usage will be the entire domain.</li>
                    <li>URLs opened via system-level handlers always open a new tab, like URLs opened via the command line.</li>
                    <li>MIME types of many new file extensions are recognized (courtesy of John Cowan).</li>
                    <li>The regular expression library PCRE2 is preferred over PCRE, if available. The older library is in maintenance mode.</li>
                    <li>Updated UI translations.</li>
                    <li>Accidental backwards navigation when quickly refreshing the page twice.</li>
                    <li>Page scroll position is kept when loading finishes, if the user already scrolled during loading.</li>
                    <li>Schemeless relative URLs no longer assume "gemini" as the scheme, instead using the current page's scheme as default.</li>
                    <li>Opening a feed entry in a background tab will mark is as read, like opening in the foreground does.</li>
                    <li>ANSI escapes 39 and 49 (reset FG/BG color to default) were not working.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.14.0</url>
        </release>
        <release version="1.13.8" date="2022-11-03">
            <description>
                <p>Changes in v1.13.8:</p>
                <ul>
                    <li>Fixed issues with text selection and range visualization.</li>
                    <li>TUI: Improved POSIX compliance in build-tui script.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.8</url>
        </release>
        <release version="1.13.7" date="2022-06-30">
            <description>
                <p>Changes in v1.13.7:</p>
                <ul>
                    <li>Fixed reporting of errors related to a proxy server certificate.</li>
                    <li>An untrusted proxy server certificate can be trusted via Page Information.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.7</url>
        </release>
        <release version="1.13.6" date="2022-05-26">
            <description>
                <p>Changes in v1.13.6:</p>
                <ul>
                    <li>Added option to split tabs evenly, excluding sidebar widths (default: no).</li>
                    <li>Fixed crash when switching view to plain text.</li>
                    <li>Fixed manually entered image URLs inadvertently opening inline.</li>
                    <li>Fixed mouse event handling in split view mode when a dialog is open on one side. The other side would not receive wheel events unless input focus was first switched over.</li>
                    <li>Fixed issues with popup menu positioning.</li>
                    <li>Fixed drawing of the widget scroll indicator when a widget doesn't fit vertically in the window.</li>
                    <li>Possible workaround for an issue with mouse hover autoscrolling on an external displays.</li>
                    <li>Don't open an endless number of bookmark creation/edit dialogs when holding down the keyboard shortcut (Ctrl+D/⌘D).</li>
                    <li>Percent-encode backslashes in externally opened URLs, for improved compatibility.</li>
                    <li>Custom link icons are allowed with unsupported/unrecognized protocols (i.e., Emoji at the start of link label).</li>
                    <li>Use file name as the tab/window title if the content has no headings.</li>
                    <li>Avoid redundancy in tab/window titles ("Cosmos — Cosmos" → "Cosmos").</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.6</url>
        </release>
        <release version="1.13.5" date="2022-05-19">
            <description>
                <p>Changes in v1.13.5:</p>
                <ul>
                    <li>Parent navigation assumes directory URL is equivalent to index page URL (e.g., "/path/" == "/path/index.gmi"): this now only applies to Gemini URLs, and checks for "index.gemini", too, as per Gemini Best Practices.</li>
                    <li>Fixed crash when determining the name of a ZIP file from a URL.</li>
                    <li>Fixed misparsing of URL to form the name of a downloaded file (`%23` decoded too early).</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.5</url>
        </release>
        <release version="1.13.4" date="2022-05-10">
            <description>
                <p>Changes in v1.13.4:</p>
                <ul>
                    <li>Spartan: Fixed opening URLs in other apps via operating system handlers.</li>
                    <li>Updated language strings.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.4</url>
        </release>
        <release version="1.13.3" date="2022-05-06">
            <description>
                <p>Changes in v1.13.3:</p>
                <ul>
                    <li>Changed URL field bookmark indicator for better consistency.</li>
                    <li>Show a proper error page if server closes the connection before a header is fully received.</li>
                    <li>Spartan: Prefilled prompt input from URL query string is selected by default.</li>
                    <li>Spartan: Fixed composing request content out of the query string.</li>
                    <li>Spartan: Fixed handling of empty path in a request.</li>
                    <li>Spartan: Allow opening URLs from command line.</li>
                    <li>Spartan: .desktop file includes Spartan scheme handling.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.3</url>
        </release>
        <release version="1.13.2" date="2022-05-03">
            <description>
                <p>Changes in v1.13.2:</p>
                <ul>
                    <li>Fixed failure to restore the selected fonts at launch.</li>
                    <li>Fixed window state being reset when quitting the app by closing the last window. (No such problem was occurring when quitting via menu or Ctrl+Q.)</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.2</url>
        </release>
        <release version="1.13.1" date="2022-05-03">
            <description>
                <p>Changes in v1.13.1:</p>
                <ul>
                    <li>Fixed crash when opening Preferences. The text renderer had problems with font lookup.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.1</url>
        </release>
        <release version="1.13" date="2022-05-03">
            <description>
                <p>Changes in v1.13:</p>
                <ul>
                    <li>Curses-based `clagrange` for running the app in the terminal. This is a complete TUI port of the original GUI version including, e.g., UI animations, smooth scrolling, and split view mode. `clagrange` has separate preferences, UI state, and key bindings but the rest of the runtime files are shared with the GUI version.</li>
                    <li>Build option `ENABLE_TUI`: build a text mode version of the app so it can be run in the terminal. Enabling this produces an executable called `clagrange` that is not linked with SDL.</li>
                    <li>URL field indicator 📌 that shows if there's a bookmark for the current page. Clicking on the indicator opens the Add/Edit Bookmark dialog.</li>
                    <li>Checking server certificates using a bundled root CA file.</li>
                    <li>Build option `CACERT_PEM_PATH`: path of a cacert.pem file that contains trusted root CA certificates. This file is included in resources.lgr.</li>
                    <li>Support for the Spartan protocol. Prompt lines will open an input dialog for submitting text. This can be expanded to the full upload dialog using which a file can be uploaded, too.</li>
                    <li>Reopening the last closed tab. The default binding is Shift+Ctrl+T (⇧⌘T).</li>
                    <li>Page context menu item "View as Plain Text": show the page source as plain text.</li>
                    <li>Option to view Markdown as source or as a Gemtext conversion (default: as source).</li>
                    <li>Updated Noto Emoji font with support for Unicode 14. There should be no more missing Emoji glyphs.</li>
                    <li>Improved UI keyboard navigation. The sidebar and all widgets in dialogs are accessible via Tab cycling, and new shortcuts have been added for opening menus. Menu items and lists are cursor-navigable. Opening the sidebar automatically gives it keyboard focus.</li>
                    <li>When bookmarking a page, show the Edit Bookmark dialog if there's already a bookmark for the URL. The Edit Bookmark dialog has a new Duplicate button for actually making a duplicate bookmark.</li>
                    <li>Markdown documents support horizontal rules.</li>
                    <li>TUI: Zoom controls resize the open sidebar (left sidebar if both visible).</li>
                    <li>Sidebar page outline not updated when the current tab changes.</li>
                    <li>The Escape key closes the bookmark editor dialog as intended.</li>
                    <li>Preferences: "Justify" option must be hidden if HarfBuzz is not used.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.13.0</url>
        </release>
        <release version="1.12.2" date="2022-04-22">
            <description>
                <p>Changes in v1.12.2:</p>
                <ul>
                    <li>Fixed positioning of the language translation dialog's progress animation.</li>
                    <li>Fixed hovering on links via the keyboard (default binding: H).</li>
                    <li>Tab buttons use theme background color with light Oceanic to avoid a color clash.</li>
                    <li>Feed refresh indicator uses the accent color.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.12.2</url>
        </release>
        <release version="1.12.1" date="2022-04-06">
            <description>
                <p>Changes in v1.12.1:</p>
                <ul>
                    <li>Updated Help: export/import, user data archives, paragraph justification.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.12.1</url>
        </release>
        <release version="1.12" date="2022-04-04">
            <description>
                <p>Changes in v1.12:</p>
                <ul>
                    <li>Export and import user data as a ZIP archive, including identities, bookmarks, site-specific settings, trusted certificate fingerprints, and browsing history.</li>
                    <li>UI layout options: the navigation/tab bars can be moved to the bottom of the window, and one can have a traditional menu bar instead of the hamburger menu. On macOS, the normal menu bar is used as before.</li>
                    <li>Added style option to justify paragraphs that are at least three lines long.</li>
                    <li>Added new content theme "Oceanic" with support for both dark and light modes.</li>
                    <li>Added new UI accent colors: Red, Green, Blue, Gray.</li>
                    <li>Feeds: Added "Mark Below as Read" context menu item.</li>
                    <li>Site-specific setting for TLS session resumption (enabled by default).</li>
                    <li>Roboto is the new default content/UI font, except on Windows where Segoe UI is the default font.</li>
                    <li>Toggles use symbols instead of YES/NO.</li>
                    <li>UI uses only one accent color at a time.</li>
                    <li>Theme palette tuning: adjusted generated palettes of Colorful Dark/Light, improved the Sepia theme, and added a dark mode Sepia variant.</li>
                    <li>Certain pages like Help open in a new tab. If the page is already open in a tab, that tab is activated instead of opening a new one.</li>
                    <li>Improved word wrapping with more breaking punctuation.</li>
                    <li>Text renderer uses additional subpixel offsets with lower-density displays.</li>
                    <li>Text rendering optimizations: avoid repeated shaping of the same text.</li>
                    <li>UI rendering optimizations.</li>
                    <li>Fixed a possible crash when clicking on the first link of a page with the monospace body text option enabled.</li>
                    <li>Fixed occasional small gaps between glyph backgrounds.</li>
                    <li>Fixed problems with marking feed entries as read/unread.</li>
                    <li>The bookmark dialog doesn't show irrelevant fields when editing a bookmark folder.</li>
                    <li>Spurious spaces are removed from ends of bookmark titles.</li>
                    <li>Pasting text into an input field should not decode reserved URL characters.</li>
                    <li>Percent-encoded spaces (%20) in a file name were not decoded when saving a file.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.12.0</url>
        </release>
        <release version="1.11.2" date="2022-03-18">
            <description>
                <p>Changes in v1.11.2:</p>
                <ul>
                    <li>Added a keybinding for focusing the URL field.</li>
                    <li>Sidebar items (bookmarks, feed entries, history) can be middle-clicked to open in a new tab. Holding Shift will open the tab in the foreground.</li>
                    <li>Flags can be used as link icons. Note that additional fonts and HarfBuzz are required for all the flag symbols to be visible.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.11.2</url>
        </release>
        <release version="1.11.1" date="2022-03-02">
            <description>
                <p>Changes in v1.11:</p>
                <ul>
                    <li>Multiple windows. Windows can be opened via the menu, Ctrl/⌘+N, or link context menus.</li>
                    <li>Restoring tabs at launch is now optional. Added a toggle in Preferences > General.</li>
                    <li>Site-specific settings (Shift+Ctrl/⌘+Comma), with options for theme customization and showing ANSI escape warnings. The custom theme is based on a "seed string" chosen by the user.</li>
                    <li>Fontpack search. Fonts in the skyjake.fi font library have been indexed based on all the glyphs they provide, so one can look up which fontpacks provide any missing glyphs.</li>
                    <li>"Manage Fonts" button on the Preferences > Fonts tab. It opens "about:fonts".</li>
                    <li>"Tab width" setting (default: 8). This controls how TAB characters are displayed on pages.</li>
                    <li>Setting for maximum valid URI length on 'text/gemini' link lines.</li>
                    <li>Option to show images decoded from data URLs immediately after loading a page. This is limited to JPEG, PNG, WebP, and GIF (no animations).</li>
                    <li>"Paste and Go" in the input field context menu.</li>
                    <li>TLS session caching: reduces the need for redundant handshaking by keeping old TLS sessions cached for 10 minutes.</li>
                    <li>UI language for Italian.</li>
                    <li>The input prompt dialog saves entered text persistently, just like the Upload dialog. This prevents losing text if the dialog is closed accidentally.</li>
                    <li>Input field backup is done per window, e.g., "uploadbackup.2.txt".</li>
                    <li>Sidebar context menus have more consistent "open" menu items, now including opening the item in a new window.</li>
                    <li>The missing glyphs warning dialog now shows a list of the missing code points.</li>
                    <li>Downloading the Classic Set fontpack is no longer suggested since fontpacks can be searched as needed.</li>
                    <li>Abbreviate font pack descriptions on "about:fonts". The full description is shown when viewing a single fontpack.</li>
                    <li>The active tab button uses the theme background color if the page color theme has a bright colorful background to avoid clashing with the UI accent color.</li>
                    <li>Adjusted colors of the Gray and Black page themes.</li>
                    <li>Added additional (small) variations to theme hues.</li>
                    <li>Data URLs have their own link icon.</li>
                    <li>Adjusted appearance of context menus.</li>
                    <li>Updated UI translations.</li>
                    <li>Incorrect behavior and UI glitches related to data URLs. The UI will now omit the encoded part of data URLs.</li>
                    <li>Occasional mismatch between page and banner backgrounds. It was due to loss of precision when converting colors to 8-bit RGB.</li>
                    <li>Issues with changing UI metrics when a window moves between displays. Not all UI elements were rescaled properly.</li>
                    <li>Glitches with opening and closing context menus.</li>
                    <li>TAB characters are no longer forcibly normalized to spaces.</li>
                    <li>Pasting LF characters in the URL field should not be possible.</li>
                    <li>Avoid reinitializing fonts more than once during startup.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.11.1</url>
        </release>
        <release version="1.10.6" date="2022-02-19">
            <description>
                <p>Changes in v1.10.6:</p>
                <ul>
                    <li>Added bindings for switching Feeds list to Unread/All mode.</li>
                    <li>Fixed normalization of empty Gemini URL paths to `/` as per the November 2021 spec update.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.10.6</url>
        </release>
        <release version="1.10.5" date="2022-02-11">
            <description>
                <p>Changes in v1.10.5:</p>
                <ul>
                    <li>Added a keybinding for "Paste Preceding Line" (in input prompt menu).</li>
                    <li>The "Miscellaneous Symbols and Arrows" Unicode block (U+2B00...U+2BFF) is accepted as custom link icons.</li>
                    <li>When mixing Emoji into preformatted text (glyphs are from different fonts), lay out the Emoji as double-wide characters to avoid overlapping.</li>
                    <li>Faster hover-scrolling of long popup menus.</li>
                    <li>Fixed sidebars not getting updated after identity addition/deletion.</li>
                    <li>Fixed "Paste Preceding Line" not being undoable.</li>
                    <li>Fixed lookup of missing glyphs. Fontpack priorities are now applied as documented.</li>
                    <li>Fixed animation issue with sidebars in the right side of split view.</li>
                    <li>Fixed a refresh issue that caused the first line of the page to be redrawn continuously, spiking CPU usage.</li>
                    <li>Fixed link numbers showing up next to image captions.</li>
                    <li>Fixed how the link hover popup handles extremely long URLs.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.10.5</url>
        </release>
        <release version="1.10.4" date="2022-02-05">
            <description>
                <p>Changes in v1.10.4:</p>
                <ul>
                    <li>Added missing ANSI background color codes 100-107 (high-intensity VGA).</li>
                    <li>Fixed how the ANSI FG color is adjusted to keep text legible on dark or bright backgrounds when BG color is unset.</li>
                    <li>Fixed possible crash when there are ANSI escapes in the alt text of a preformatted block.</li>
                    <li>Fixed tab/window titles containing ANSI escapes (escapes are removed).</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.10.4</url>
        </release>
        <release version="1.10.3" date="2022-01-30">
            <description>
                <p>Changes in v1.10.3:</p>
                <ul>
                    <li>Unix: Added a lagrange(1) manual page.</li>
                    <li>Hide the [+] button on the tab button row if the navbar has a New Tab button.</li>
                    <li>"/index.gmi" is considered equal to "/" when navigating to parent directory.</li>
                    <li>Site icon ❑ replaced with ⌘ ("place of interest") for a more distinct appearance and to avoid similarity with the ❐ "Open in New Tab" icon.</li>
                    <li>Navigating to parent or root from "about:" pages goes to "about:about" to see overview of all the About pages.</li>
                    <li>Gopher: Fixed navigating to root, e.g., when clicking on the page top banner. Set item type to 1 to show a gophermap and not the plain source.</li>
                    <li>Titan: When navigating to parent/root, switch URL scheme to "gemini". This action occurs on a Titan response page, so initiating a new upload with the parent/root URL is probably not appropriate.</li>
                    <li>Fixed crash when a media player is active and a new download is started.</li>
                    <li>Fixed crash when a line contains nothing but an ANSI escape sequence.</li>
                    <li>Fixed a possible crash when saving state of subscribed feeds.</li>
                    <li>Fixed the right-hand sidebar handling the U and Shift+U key events if it was showing the Feeds tab, even though the sidebar was hidden.</li>
                    <li>Fixed line wrapping at backslashes. They are now considered word-breaking characters.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.10.3</url>
        </release>
        <release version="1.10.2" date="2022-01-24">
            <description>
                <p>Changes in v1.10.2:</p>
                <ul>
                    <li>Fixed cancelling an input query. Now pressing Cancel will navigate back to the previous page as intended.</li>
                    <li>Gopher: Fixed navigating to parent. Set item type to 1 to show a gophermap and not the plain source.</li>
                    <li>Updated Smol Emoji: added the rest of Unicode 8 Emoji glyphs.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.10.2</url>
        </release>
        <release version="1.10.1" date="2022-01-20">
            <description>
                <p>Changes in v1.10.1:</p>
                <ul>
                    <li>Fixed bottom actions of the Feeds sidebar getting hidden when all entries are read. This prevented switching between Unread/All filter modes.</li>
                    <li>Fixed potential crash when downloading a large file (e.g., a fontpack).</li>
                    <li>SDL event handling workaround adjusted to only apply to 2.0.18+.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.10.1</url>
        </release>
        <release version="1.10" date="2022-01-17">
            <description>
                <p>Changes in v1.10:</p>
                <ul>
                    <li>Customizable navbar actions. Right-click on a button to change its action. (Identity and hamburger buttons cannot be changed.)</li>
                    <li>Identity toolbar menu can be used to switch between alternate identities. If you have used multiple identities on one site, this makes it more convenient to switch between them.</li>
                    <li>Added "Edit Page with Titan": opens the upload dialog with current page's content prefilled.</li>
                    <li>Added "Paste Preceding Line" in the input prompt dialog. Potential use cases include user-editable sections on a page and suggested/example input values.</li>
                    <li>Added footer action to open file in another app when the media type is unsupported.</li>
                    <li>Added option to disable cursor blinking in input fields.</li>
                    <li>Added ANSI SGR codes for light and regular font weights (2, 10).</li>
                    <li>Improved image inlining: all responses with an image media type can get inlined, regardless of the file extension in the URL.</li>
                    <li>Inline image metadata goes under the image instead of possibly overlapping the label text.</li>
                    <li>Inline downloads have a context menu for relevant actions, and clicking on the download opens the file.</li>
                    <li>Improved highlighting of open pages. The highlight no longer goes under the side elements on the page.</li>
                    <li>Entry dates in feed links are de-emphasized for improved readability.</li>
                    <li>Revised link hover popup. None of the information appears on the same line any more (which was problematic if there wasn't enough space). Instead, everything is shown in a popup at the bottom/top of the view, including the identity that will be used when opening the link and the date of last visit.</li>
                    <li>Revised layout of the Upload dialog. There is a new edit field that lets you modify the file path of the URL. Identity names are in bold.</li>
                    <li>Optimized UI layout procedure and memory use during UI event processing.</li>
                    <li>Audio subsystem is only initialized when actually needed.</li>
                    <li>Prevent state file corruption if the app happens to get killed while state is being saved.</li>
                    <li>Gempub: Open books in 1:2 split mode instead of 1:1.</li>
                    <li>Minor improvements in page caching.</li>
                    <li>Detect when text is Bengali, Devanagari, Oriya, or Tamil.</li>
                    <li>Fixed a history caching issue: if there were multiple instances of the same URL in history, only the latest one's content would be used when navigating back/forward.</li>
                    <li>Fixed handling of reserved characters in URLs (cf. RFC 3986, section 2.2).</li>
                    <li>Fixed the copy/paste context menu not showing in input fields.</li>
                    <li>Fixed duplicated warnings showing in the page banner.</li>
                    <li>Fixed very narrow input fields causing the app to hang.</li>
                    <li>Fixed initial scroll position in multiline input fields.</li>
                    <li>Fixed layout issues in the sidebar on empty Feeds and Identities tabs.</li>
                    <li>Fixed lookup results list becoming too narrow.</li>
                    <li>Fixed glitches when a widget has multiple simultanous animations.</li>
                    <li>Fixed mixed-language CJK word wrapping.</li>
                    <li>Fixed parsing Atom feed dates with leading whitespace.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.10.0</url>
        </release>
        <release version="1.9.5" date="2022-01-05">
            <description>
                <p>Changes in v1.9.5:</p>
                <ul>
                    <li>Fixed misshapen button borders (SDL 2.0.16 line drawing workaround).</li>
                    <li>Fixed actions being triggered when navigating via home row keys.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.9.5</url>
        </release>

        <release version="1.9.4" date="2022-01-04">
            <description>
                <p>Changes in v1.9.4:</p>
                <ul>
                    <li>Fixed crash when a link is missing both URL and label (just a `=>`).</li>
                    <li>Fixed handling of foreground color escapes in the simple text renderer.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.9.4</url>
        </release>
        <release version="1.9.3" date="2021-12-24">
            <description>
                <p>Changes in v1.9.3:</p>
                <ul>
                    <li>Added UI language for Dutch.</li>
                    <li>Updated UI translations.</li>
                    <li>Fixed the simple text renderer (build error, hanging).</li>
                    <li>Fixed time zone of the "valid from" time in created client certificates.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.9.3</url>
        </release>
        <release version="1.9.2" date="2021-12-07">
            <description>
                <p>Changes in v1.9.2:</p>
                <ul>
                    <li>Fixed possible crash when switching Feeds sidebar filter mode
                        via the popup menu.</li>
                    <li>Shorter label for "Mark All as Read" in Feeds sidebar actions.</li>
                    <li>In popup menus, differentiate between selected item and
                        hover item.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.9.2</url>
        </release>
        <release version="1.9.1" date="2021-11-29">
            <description>
                <p>Changes in v1.9.1:</p>
                <ul>
                    <li>Added "24-Hour Time" preference. Currently it only affects the page
                        timestamp in the bottom left corner.</li>
                    <li>Heading level 3 is indented like regular text lines, making the
                        difference to level 2 evident.</li>
                    <li>Fixed crash when creating a top-level bookmark.</li>
                    <li>Fixed drawing the page timestamp.</li>
                    <li>Fixed layout of tab buttons and other resizing widgets so all
                        available space is used.</li>
                    <li>Fixed tab close buttons preventing activation of very short tab
                        buttons. The close buttons only appear if there is room for
                        them.</li>
                    <li>Fixed very short tab labels not getting truncated.</li>
                    <li>Fixed the New Tab button not staying at the right edge of the
                        window, depending on how many tabs are open.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.9.1</url>
        </release>
        <release version="1.9" date="2021-11-27">
            <description>
                <p>Changes in v1.9:</p>
                <ul>
                    <li>Added a toolbar button for toggling the left sidebar.</li>
                    <li>Added an unsplit button in the toolbar when in split view mode.</li>
                    <li>Choose parent folder when creating or editing a bookmark.</li>
                    <li>Support for 24-bit RGB ANSI color sequences.</li>
                    <li>Support for ANSI background color escapes (disabled by default).</li>
                    <li>UI language for Turkish.</li>
                    <li>Adjusted font styles of heading levels 2 and 3.</li>
                    <li>Sidebar context menus also appear when clicking over the sidebar
                        background. In this case the menu contains general functions not
                        related to any item.</li>
                    <li>Feeds tab in the sidebar has a redesigned action toolbar with "Mark
                        All as Read", and dropdown menu and keyboard shortcuts for changing
                        the filter mode.</li>
                    <li>Feeds tab remembers the unread/all filter mode persistently.</li>
                    <li>ANSI foreground colors are modified to match colored theme
                        backgrounds (e.g., Sepia).</li>
                    <li>Navigating back and forward in history will skip input query prompts
                        (status 1x), showing only the query results.</li>
                    <li>Ctrl+A now selects all text in input fields (except on macOS, where
                        it remains the Emacs-style jump to start/end of line).</li>
                    <li>The resource bundle (resources.lgr) is now a regular ZIP archive.
                        This allows it to do double duty as a fontpack containing the
                        built-in fonts. The archive contains a version number to avoid use
                        of obsolete resources.</li>
                    <li>Fixed layout issues related to footer action buttons. Sometimes the
                        buttons would overlap page content.</li>
                    <li>Fixed handling duplicate feed entries: if multiple entries in 
                        a feed have the same URL, only use the first one.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.9.0</url>
        </release>
        <release version="1.8.3" date="2021-11-21">
            <description>
                <p>Version 1.8 adds a customizable font library and improves warning
                    and errors messages. The bundled hardcoded fonts have been
                    removed, and font configuration is now more flexible. Tabs have
                    close buttons that appear on mouse hover.</p>
                <p>Changes in v1.8.3:</p>
                <ul>
                    <li>Fixed clicking on UI elements that are over the page top
                        banner. The banner would always get clicked instead.</li>
                    <li>Titan upload identity is remembered as a site-specific
                        setting. It is no longer affected by selections in the
                        Identities sidebar.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.8.3</url>
        </release>
        <release version="1.8.2" date="2021-11-13">
            <description>
                <p>Version 1.8 adds a customizable font library and improves warning
                    and errors messages. The bundled hardcoded fonts have been
                    removed, and font configuration is now more flexible. Tabs have
                    close buttons that appear on mouse hover.</p>
                <p>Changes in v1.8.2:</p>
                <ul>
                    <li>Fixed encoding of `+` characters in URLs as per 
                        RFC 3986.</li>
                    <li>Fixed crash when fontpack.ini specifies a file that cannot
                        be found.</li>
                    <li>Fixed incorrect title of some error messages (was showing
                        response meta info).</li>
                    <li>Fixed ambiguous font dropdown menu items if some fonts have
                        the same name. Now the unique font ID will be included in
                        these cases.</li>
                    <li>Made it possible to manually trust a certificate whose
                        subject doesn't match domain name.</li>
                    <li>Updated UI translations.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.8.2</url>
        </release>                
        <release version="1.8.1" date="2021-11-06">
            <description>
                <p>Version 1.8 adds a customizable font library and improves warning
                    and errors messages. The bundled hardcoded fonts have been
                    removed, and font configuration is now more flexible. Tabs have
                    close buttons that appear on mouse hover.</p>
                <p>Changes in v1.8.1:</p>
                <ul>
                    <li>Added UI translations: Hungarian, Czech.</li>
                    <li>Fixed issues scrolling tall popup menus (e.g., UI language
                        selection).</li>
                    <li>Fixed a line spacing artifact in long headings. With some
                        fonts, the lines were clipping each other so the spacing was
                        restored to normal.</li>
                    <li>Fixed a socket I/O issue that caused received data to be
                        ignored when the peer closed the connection prematurely.</li>
                    <li>Gopher: Recognize both LF and CRLF line endings in page
                        content.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.8.1</url>
        </release>                
        <release version="1.8" date="2021-10-30">
            <description>
                <p>Version 1.8 adds a customizable font library and improves warning
                    and errors messages. The bundled hardcoded fonts have been
                    removed, and font configuration is now more flexible. Tabs have
                    close buttons that appear on mouse hover. Added a Ukrainian UI
                    translation.</p>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.8.0</url>
        </release>
        <release version="1.7.3" date="2021-10-19">
            <description>
                <p>Version 1.7 improves bookmark management with folders and manual
                    sorting, and has multiple UI enhancements including unconstrained
                    popup menus, upload identity selection, button focus switching
                    with Tab key, and new UI languages (e.g., Esperanto). A new image
                    colorization option has been added for enforcing a stricter visual
                    style.</p>
                <p>Changes in v1.7.3:</p>
                <ul>
                    <li>Fixed a memory leak in the text renderer.</li>
                    <li>Added option to place new bookmarks to the top of the
                        bookmarks list.</li>
                    <li>Updated UI translations.</li>                    
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.7.3</url>
        </release>
        <release version="1.7.2" date="2021-10-11">
            <description>
                <p>Version 1.7 improves bookmark management with folders and manual
                    sorting, and has multiple UI enhancements including unconstrained
                    popup menus, upload identity selection, button focus switching
                    with Tab key, and new UI languages (e.g., Esperanto). A new image
                    colorization option has been added for enforcing a stricter visual
                    style.</p>
                <p>Fixes in v1.7.2:</p>
                <ul>
                    <li>Regressions in text selection, for example when marking 
                        text leftwards from the start position or when starting from 
                        outside any text run.</li>
                    <li>Crash when clicking on Outline sidebar items before a
                        page has finished loading.</li>
                    <li>Gopher: Handle the "p" line type (PNG image).</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.7.2</url>
        </release>
        <release version="1.7.1" date="2021-10-03">
            <description>
                <p>Version 1.7 improves bookmark management with folders and manual
                    sorting, and has multiple UI enhancements including unconstrained
                    popup menus, upload identity selection, button focus switching
                    with Tab key, and new UI languages (e.g., Esperanto). A new image
                    colorization option has been added for enforcing a stricter visual
                    style.</p>
                <p>Changes and fixes in v1.7.1:</p>
                <ul>
                    <li>Fixed feed entries forgetting their (un)read status after
                        several months.</li>
                    <li>Fixed feed entries being discarded before they are removed
                        from their source feed, causing them to reappear on the next
                        refresh.</li>
                    <li>Fixed failure to parse Atom feed entry timestamps that use
                        space as the date/time separator.</li>
                    <li>Fixed dropdown labels staying visible in the translation
                        dialog.</li>
                    <li>Fixed showing/hiding of the feed update indicator in split
                        view.</li>
                    <li>Fixed a crash when selecting text.</li>
                    <li>Added a small progress bar to the feed update indicator.</li>
                    <li>When adding a bookmark/folder, the bookmarks list scrolls to
                        show the new item.</li>
                    <li>Improved reordering bookmarks in a folder: an item inside a
                        folder can be moved to be the last item in the folder, or out
                        of the folder depending on which side of the boundary marker
                        the mouse cursor is.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.7.1</url>
        </release>
        <release version="1.7" date="2021-09-28">
            <description>
                <p>Version 1.7 improves bookmark management with folders and manual
                    sorting, and has multiple UI enhancements including unconstrained
                    popup menus, upload identity selection, button focus switching
                    with Tab key, and new UI languages (e.g., Esperanto). A new image
                    colorization option has been added for enforcing a stricter visual
                    style.</p>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.7.0</url>
        </release>
        <release version="1.6.5" date="2021-08-29">
            <description>
                <p>Version 1.6 adds support for bidirectional text and complex scripts,
                    right-to-left paragraph layout, uploads using the Titan protocol,
                    and has an improved mechanism for tracking trust in server
                    certificates. Page contents can be fully cached in memory for more
                    efficient backward navigation. There are also UI improvements like
                    a reorganized Preferences and a setting for smooth scrolling
                    speed.</p>
                <p>Changes and fixes in v1.6.5:</p>
                <ul>
                    <li>Audio init errors are no longer fatal. SDL's error message
                        will still be printed.</li>
                    <li>Fixed appearance of tab buttons (should have 
                        no top frame).</li>
                    <li>Fixed a cursor position regression in input fields related
                        to handling of variation selectors (codepoint clusters).
                        Moving the cursor to the start of a wrapped line segment put
                        the cursor in the wrong place.</li>
                    <li>Fixed right-clicking on sidebar tab buttons. 
                        It was showing the wrong context menu when the list had been
                        scrolled down.</li>
                    <li>Fixed crash when using the SDL2 KMSDRM video driver.</li>
                    <li>Fixed minor visual artifacts in preformatted blocks and
                        near the bottom of the page.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.6.5</url>
        </release>
        <release version="1.6.4" date="2021-08-22">
            <description>
                <p>Version 1.6 adds support for bidirectional text and complex scripts,
                    right-to-left paragraph layout, uploads using the Titan protocol,
                    and has an improved mechanism for tracking trust in server
                    certificates. Page contents can be fully cached in memory for more
                    efficient backward navigation. There are also UI improvements like
                    a reorganized Preferences and a setting for smooth scrolling
                    speed.</p>
                <p>Changes and fixes in v1.6.4:</p>
                <ul>
                    <li>Local files containing UTF-8 text can be viewed regardless of
                        their file extension.</li>
                    <li>Fixed input field cursor positioning and insertion problems
                        around Emoji variation selectors.</li>
                    <li>Fixed "Unknown Status Code" shown in Page Information for
                        valid status codes.</li>
                    <li>Fixed an issue with network requests that would make it appear
                        the server was not responding, but the request would not time
                        out.</li>
                    <li>Fixed a potential invalid memory access when clicking on
                        sidebar items.</li>
                    <li>Fixed a potential freeze after a network request is
                        cancelled.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.6.4</url>
        </release>
        <release version="1.6.3" date="2021-08-15">
            <description>
                <p>Version 1.6 adds support for bidirectional text and complex scripts,
                    right-to-left paragraph layout, uploads using the Titan protocol,
                    and has an improved mechanism for tracking trust in server
                    certificates. Page contents can be fully cached in memory for more
                    efficient backward navigation. There are also UI improvements like
                    a reorganized Preferences and a setting for smooth scrolling
                    speed.</p>
                <p>Changes and fixes in v1.6.3:</p>
                <ul>
                    <li>Select all text in an input field using Shift+Ctrl+A.</li>
                    <li>Input fields do not lose focus when the window becomes
                        inactive, making it easier to resume input afterwards.</li>
                    <li>Fixed delay after switching to split view mode.</li>
                    <li>Fixed what gets drawn in an empty tab, before a document is
                        available for rendering (e.g., after switching to split view
                        mode).</li>
                    <li>Fixed highlighting the domain name in URL input fields.</li>
                    <li>Fixed hiding the Gemini URL scheme in input fields when the
                        window is narrow.</li>
                    <li>Fixed the line break key modifier inadvertently affecting URL
                        input fields, where line breaks are not allowed.</li>
                    <li>Fixed the line break key modifier affecting the upload dialog's
                        text field.</li>
                    <li>Fixed a potential hang when closing a socket before the
                        connection is fully opened.</li>
                    <li>Updated translations.</li>                    
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.6.3</url>
        </release>        
        <release version="1.6.2" date="2021-08-03">
            <description>
                <p>Version 1.6 adds support for bidirectional text and complex scripts,
                    right-to-left paragraph layout, uploads using the Titan protocol,
                    and has an improved mechanism for tracking trust in server
                    certificates. Page contents can be fully cached in memory for more
                    efficient backward navigation. There are also UI improvements like
                    a reorganized Preferences and a setting for smooth scrolling
                    speed.</p>
                <p>Changes and fixes in v1.6.2:</p>
                <ul>
                    <li>Added --tab-url to print currently active tab's URL.</li>
                    <li>Upload dialog expands to full window height when the entered
                        text is long.</li>
                    <li>Home/End keys in an input field move to start/end of the
                        wrapped line segment.</li>
                    <li>Scroll with mouse wheel in input fields.</li>
                    <li>Slower cursor blink rate in input fields.</li>
                    <li>Adjusted dark mode colors for focused input fields.</li>
                    <li>Fixed incorrect behavior in input fields when typing or
                        deleting text while holding down the Shift key.</li>
                    <li>Fixed crash in Upload dialog if server responds with a
                        redirect.</li>
                    <li>Fixed buffered graphics (UI, fonts) getting lost under rare
                        circumstances.</li>
                    <li>macOS: Fixed UI not updating when system dark mode is toggled
                        while the window is hidden.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.6.2</url>
        </release>        
        <release version="1.6.1" date="2021-07-30">
            <description>
                <p>Version 1.6 adds support for bidirectional text and complex scripts,
                    right-to-left paragraph layout, uploads using the Titan protocol,
                    and has an improved mechanism for tracking trust in server
                    certificates. Page contents can be fully cached in memory for more
                    efficient backward navigation. There are also UI improvements like
                    a reorganized Preferences and a setting for smooth scrolling
                    speed.</p>
                <p>Version 1.6.1 fixes the following issues:</p>
                <ul>
                    <li>Potential crash when inserting a line break.</li>
                    <li>Cursor positioning in fixed-length input fields.</li>
                    <li>Copying text in input fields (the wrong region was copied).</li>
                    <li>URL input field contents not being selected after opening
                        a new tab.</li>
                    <li>Upload dialog not showing when reloading a Titan URL.</li>                    
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.6.1</url>
        </release>
        <release version="1.6" date="2021-07-26">
            <description>
                <p>Version 1.6 adds support for bidirectional text and complex scripts,
                    right-to-left paragraph layout, uploads using the Titan protocol,
                    and has an improved mechanism for tracking trust in server
                    certificates. Page contents can be fully cached in memory for more
                    efficient backward navigation. There are also UI improvements like
                    a reorganized Preferences and a setting for smooth scrolling
                    speed.</p>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.6.0</url>
        </release>
        <release version="1.5.2" date="2021-06-15">
            <description>
                <p>Bug fixes and tweaks:</p>
                <ul>
                    <li>Fixed pasting a PEM-formatted certificate and/or 
                        private key via clipboard in Import Identity.</li>
                    <li>Possible workaround for a visual glitch in the URL
                        field.</li>
                    <li>Specify `StartupWMClass` in .desktop file.</li>
                    <li>Normalize page contents to avoid the most common issues
                        with diacritics (Unicode NFC).</li>
                    <li>Expanded the set of recognized custom link icons.</li>
                    <li>Updated "Smol Emoji" font with new glyphs.</li>
                    <li>Allow use of TLS cipher "DHE-RSA-AES256-GCM-SHA384".</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.5.2</url>
        </release>
        <release version="1.5.1" date="2021-06-06">
            <description>
                <p>Resource update:</p>
                <ul>
                    <li>Latest UI translation strings.</li>
                    <li>More glyphs in the Smol Emoji font.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.5.1</url>
        </release>
        <release version="1.5" date="2021-05-29">
            <description>
                <p>This release contains several user interface improvements.</p>
                <ul>
                    <li>Improved identity management: revised certificate creation UI,
                        taking a new identity into use immediately, sidebar context
                        menu shows used URLs as clickable menu items, exporting
                        identities.</li>
                    <li>Improved text input: inserting line breaks, input fields use word
                        wrapping and expand vertically, query URL length
                        indicator.</li>
                    <li>Show buttons in the page footer area for performing relevant
                        actions conveniently.</li>
                    <li>Animated showing of sidebars and dialogs.</li>
                    <li>Font updates, setting for custom fallback TrueType font.</li>
                    <li>Gempub: Linear navigation through the book.</li>
                    <li>New UI language: Polish.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.5.0</url>
        </release>
        <release version="1.4.2" date="2021-05-22">
            <description>
                <p>Bug fixes:</p>
                <ul>
                    <li>UI colors were all black on the first run.</li>
                    <li>Right mouse click on an inactive split does not have any
                        effect.</li>
                    <li>Action buttons showing under the Help link in an empty
                        Identities sidebar.</li>
                    <li>Potential crash at shutdown.</li>
                    <li>Minor UI layout issues.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.4.2</url>
        </release>
        <release version="1.4.1" date="2021-05-13">
            <description>
                <p>Bug fixes:</p>
                <ul>
                    <li>Removing the left side split by closing all its tabs. The URL
                        input field got confused about which tab was currently open, and
                        the wrong theme was active.</li>
                    <li>Tab merging when unsplitting the window: keep the currently 
                        active tab open.</li>
                    <li>Sidebars sometimes become unresponsive.</li>
                    <li>Incorrect font was used for visited monospace Gopher links.</li>
                    <li>Incorrectly shown/hidden tab pinning indicator.</li>
                    <li>Scrollbar in Preferences &gt; Keys was hidden until the list 
                        was scrolled.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.4.1</url>
        </release>
        <release version="1.4" date="2021-05-07">
            <description>
                <p>This release introduces a split view mode, support for Gempub
                    files, and optimizes page rendering. Notable changes include:</p>
                <ul>
                    <li>Split view for browsing two tabs at once.</li>
                    <li>Split view pinning for keeping an index page or menu on
                        one side while opening all links on the other side.</li>
                    <li>Viewing contents of local directories and ZIP archives.</li>
                    <li>Basic Gempub support: viewing the book cover page, and opening
                        the contents in a split view.</li>
                    <li>Page renderer buffers content more efficiently.</li>
                    <li>New UI languages: Interlingua, Toki Pona.</li>
                    <li>All lists support smooth scrolling.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.4.0</url>
        </release>
        <release version="1.3.4" date="2021-04-26">
            <description>
                <p>Changes:</p>
                <ul>
                    <li>Allow server certificates with a `*.tld` subject wildcard.</li>
                    <li>Updated the French UI translation.</li>
                </ul>
                <p>Bug fixes:</p>
                <ul>
                    <li>Broken media type check in the audio player. Media types with
                        parameters failed to be recognized.</li>
                    <li>Crash after a redirect.</li>
                    <li>Rare issue with handling multiple rapid network requests.</li>
                    <li>Rare situation where a network connection would fail to open.</li>
                    <li>Minor stability improvements.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.3.4</url>
        </release>
        <release version="1.3.3" date="2021-04-18">
            <description>
                <p>New features/changes:</p>
                <ul>
                    <li>Added UI languages: French, German. (Note that neither is 
                        100% finished yet.)</li>
                    <li>Added environment variable LAGRANGE_OVERRIDE_DPI.</li>
                    <li>Back/forward navigation buttons are disabled if they have 
                        no more pages to switch to.</li>
                    <li>Minor UI color tuning.</li>
                </ul>
                <p>Bug fixes:</p>
                <ul>
                    <li>Disabled IPC in Flatpak builds for compatibility reasons. 
                        Beware of multiple instances overwriting each other's data.</li>
                    <li>Possible crash when closing a tab.</li>
                    <li>Possible crash when restoring application state at launch.</li>
                    <li>Parsing and making requests with literal IPv6 addresses.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.3.3</url>
        </release>
        <release version="1.3.2" date="2021-04-11">
            <description>
                <p>Bug fixes:</p>
                <ul>
                    <li>Crash after updating from v1.2 due to undefined CA file/path
                        configuration.</li>
                    <li>Conflation of pixel ratio and display DPI. Pixel ratio is now
                        always separately detected so mouse events can be correctly
                        positioned. You may find that adjusting the UI scale factor
                        (Preferences &gt; Interface) is necessary after upgrading.</li>
                    <li>Sidebar width changing when moving the window to a different
                        display.</li>
                    <li>Inability to use Tab in keybindings.</li>
                    <li>Opening Gopher URLs via drag-and-drop.</li>
                    <li>"Add bookmark..." does nothing on a feed entry.</li>
                    <li>Keybindings list not being updated immediately when UI language
                        changes.</li>
                    <li>Trimming of link label text when a custom Emoji is used.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.3.2</url>
        </release>
        <release version="1.3.1" date="2021-04-05">
            <description>
                <p>Version 1.3 is a major feature update with improvements for
                    localization, browsing behavior, page content and
                    rendering, UI design, and command line use. Here are some of
                    the highlights:
                </p>
                <ul>
                    <li>New UI language setting: English, Chinese, Finnish, 
                        Interlingue, Russian, Serbian, and Spanish available in this
                        release.</li> 
                    <li>LibreTranslate integration for translating page 
                        content.</li>
                    <li>Viewing alt text of preformatted blocks.</li>
                    <li>Improvements to color themes and page appearance.</li>
                    <li>Rescaling the UI manually or when moving the window
                        to a different display.</li>
                    <li>Word/paragraph selection modes (double/triple click).</li>
                    <li>Controlling a running instance via command line.</li>
                </ul>
                <p>1.3.1 contains minor updates and bug fixes:</p>
                <ul>
                    <li>Added option to disable bold links for light/dark backgrounds.</li>
                    <li>Updated the Nunito font to the latest version.</li>
                    <li>Fixed keybindings overriding the home row key navigation mode.</li>
                    <li>Fixed crash during word wrapping.</li>
                    <li>Fixed kerning in the text renderer.</li>
                    <li>Fixed issue with overlapped drawing of list bullets vs. list
                        items.</li>
                    <li>Fixed cropped list bullets when using Literata.</li>
                    <li>Fixed whitespace normalization in plain text files (tab
                        characters).</li>
                    <li>Fixed issues buffering window contents, possibly causing missing
                        font glyphs.</li>
                </ul>
                <p>The full release notes can be viewed inside the app by opening
                    the "about:version" page.
                </p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.3.1</url>
        </release>
        <release version="1.3" date="2021-03-31">
            <description>
                <p> This is a major feature update with improvements for
                    localization, browsing behavior, page content and
                    rendering, UI design, and command line use. Here are some of
                    the highlights:
                </p>
                <ul>
                    <li>New UI language setting: English, Chinese, Finnish,
                        Russian, and Spanish available in this release.</li> 
                    <li>LibreTranslate integration for translating page 
                        content.</li>
                    <li>Viewing alt text of preformatted blocks.</li>
                    <li>Improvements to color themes and page appearance.</li>
                    <li>Rescaling the UI manually or when moving the window
                        to a different display.</li>
                    <li>Word/paragraph selection modes (double/triple click).</li>
                    <li>Controlling a running instance via command line.</li>
                </ul>
                <p> The full release notes can be viewed inside the app by opening
                    the "about:version" page.
                </p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.3.0</url>
        </release>
        <release version="1.2.3" date="2021-03-14">
            <description>
                <p>Bug fixes:</p>
                <ul>
                    <li>Fixed XML parser hanging on numeric character entities.</li>
                    <li>Fixed "Monospace Body" option causing Gemtext line 
                        markup to be visible.</li>
                    <li>Fixed bookmarking a wrapped link. Now the entire label 
                        text gets used instead of just the clicked segment.</li>
                    <li>Fixed handling of non-advancing monospace glyphs.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.2.3</url>
        </release>
        <release version="1.2.2" date="2021-03-07">
            <description>
                <ul>
                    <li>Stability improvements.</li>
                    <li>Whitespace is no longer normalized when using the monospace body setting.</li>
                    <li>Fixed issues with percent-encoded Gopher paths.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.2.2</url>
        </release>
        <release version="1.2.1" date="2021-02-27">
            <description>
                <p> This is a major feature update that also has a number of user 
                    interface design changes.
                </p>
                <p> New features include viewing and subscribing to Atom feeds,
                    downloading any link as a file, editable bookmark icons,
                    search engine integration, tab auto-reloading, fullscreen mode,
                    and new font options for page content.
                </p>
                <p> UI enhancements include improved navbar and sidebar appearance,
                    setting for UI accent color, and placement of dialog
                    buttons.
                </p>
                <p> The full release notes can be viewed inside the app by opening
                    the "about:version" page.
                </p>
                <p>v1.2.1 fixes a crash when creating a bookmark.</p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.2.1</url>
        </release>
        <release version="1.2" date="2021-02-27">
            <description>
                <p> This is a major feature update that also has a number of user 
                    interface design changes.
                </p>
                <p> New features include viewing and subscribing to Atom feeds,
                    downloading any link as a file, editable bookmark icons,
                    search engine integration, tab auto-reloading, fullscreen mode,
                    and new font options for page content.
                </p>
                <p> UI enhancements include improved navbar and sidebar appearance,
                    setting for UI accent color, and placement of dialog
                    buttons.
                </p>
                <p> The full release notes can be viewed inside the app by opening
                    the "about:version" page.
                </p>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.2.0</url>          
        </release>
        <release version="1.1.4" date="2021-02-22">
            <description>
                <p>Bug fixes:</p>
                <ul>
                    <li>Broken Gopher menu links.</li>
                    <li>Incorrect feed entry highlight/read status in the sidebar.</li>
                    <li>Vertical alignment of short pages: top banner is excluded 
                        because it is not part of the content.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.1.4</url>
        </release>
        <release version="1.1.3" date="2021-02-14">
            <description>
                <p>Bug fixes:</p>
                <ul>
                    <li>Crash when deleting a bookmark that was being used as 
                        a remote bookmark source.</li>
                    <li>Potential crash at shutdown.</li>
                    <li>URL path decoding not respecting reserved characters.</li>
                </ul>
            </description>
            <url>https://github.com/skyjake/lagrange/releases/tag/v1.1.3</url>
        </release>
    </releases>
</component>
