Fix compatibility problem with some non-standard v2rayN subscription.
Fix running program from directory other than program folder may cause not using pref.yml as default.
Optimize codes.
Fix not adding local rulesets as Clash rule-providers.
Add "nullnode" as node placeholder to export configurations without adding any real node.
Add support for using !!import in source subscription URLs.
Add support for allowInsecure and tfo argument in Trojan links.
Optimize codes.
Fix data URIs not correctly parsed.
Fix downloading files may be caught in infinite redirect loops.
Add experimental JavaScript support for providing subscriptions, filtering nodes, sorting nodes and generating groups.
Add tag support for adding group name to a specific link.
Add complete matcher support for Emoji and rename match rule.
Optimize codes.
Update build scripts.
Fix not correctly handle nodes with only Emojis as remarks.
Fix not correctly handle nodes with port 0.
Fix not correctly handle rename patterns that may make remarks empty.
Fix broken SSID group exported to Quantumult X configurations. (#167)
Fix compatibility with some V2Ray-Core configurations.
Add support for using CORS proxy in downloading.
Optimize codes.
Fix support for parsing some subscriptions with complex passwords.
Add replacing all match when using rename_node.
Remove support for std::regex for now.
Optimize codes.
Fix not correctly loading configuration file when api_mode is false.
Add support for exporting Surge DOMAIN-SET.
Add INSERT group match flag to match insert_url only.
Optimize codes.
Add URL aliasing support to shorten request URL.
Add support for parsing and exporting Snell server in configurations.
Add numbering system to process duplicated node names.
Optimize codes.
Fix support for parsing some Surge configurations.
Fix adding extra blank line to section end when exporting some configurations.
Fix adding real internal link as MANAGED-CONFIG URL when using profile.
Fix not filtering load-balance group in Surfboard configurations. (Issue [#128](https://github.com/tindy2013/subconverter/issues/128)).
Fix rule type filter not working properly.
Add support for using template in external configurations.
Add relay group support for Clash configurations.
Optimize codes.
Fix error when parsing some Surge configurations.
Fix not filtering USER-AGENT and URL-REGEX rules for Surfboard configurations. (Issue [#127](https://github.com/tindy2013/subconverter/issues/127)).
Add support for specifying tolerance and timeout for some proxy groups. (Issue [#121](https://github.com/tindy2013/subconverter/issues/121)).
Add keeping comments and blank lines for more sections in Quantumult X configurations.
Add rule type match to filter rules.
Optimize codes.
Fix trying to fetch a ruleset when adding it as a RULE-SET rule to configuration files.
Add URL Decode to username and password field in Telegram-link-style HTTP/Socks 5 links.
Add more function callbacks to template renderer.
Add basic Jinja2Cpp template library support.
INIReader: Add keeping comments and blank lines in direct-save sections.
Fix inconsistent argument name in HTTP and Socks 5 single link.
Fix support for some non-standard ShadowsocksD subscription.
Fix include/exclude option in URL argument not overriding former settings.
Fix template system interpreting some comments in YAML files as line statement.
inja: re-implement variable accessing to catch exceptions on using not-exist variable and return an empty value.
Optimize codes.
Fix TLS settings missing when parsing Clash configurations.
Add support for adding route settings to Shadowsocks Android subscriptions.
Add serve_cache_on_fetch_fail option to determine whether to serve cached content when failed to download a file.
Optimize codes.