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 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 incorrect flag for expanding rulesets to rules.
Add support for generating Clash rule-providers in Rule mode.
Rework Clash script generator.
Change global UDP/TFO/Skip Cert Verify settings in pref configuration to comments.
Optimize codes.
Add 1MB file download size limit to prevent feeding a large file to the processor.
Add file scope limit to rule_base options in external config to prevent loading sensitive files as rule base.
Add support for generating Clash DOMAIN/IP-CIDR rule-providers.
Optimize codes.
Fix compiler warnings.
Add detailed description for some settings in pref configuration.
Add passing arguments of alias name to alias target.
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 exporting broken configuration file in some occasions.
Fix directly treating not-exist ruleset file as URL.
Fix group fallback not working on Quantumult X configurations.
Fix typo in example profile.
Add specifying default external configuration file to use when none is provided.
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 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 broken /sub2clashr and /surge2clash interface.
Add template support for base configurations.
Add support for exporting HTTP/Socks 5 nodes to Quantumult configurations.
Add support for VMess HTTP nodes in Clash configurations.
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.
Fix compiler warnings.
Add group type fallback when only one node is found for an auto group in Quantumult(X) configuration.
Tweak default Emoji rules.
Optimize codes.
Fix stream/time node matcher not working with YAML configuration.
Add PCRE2 JIT optimization for filtering nodes.
Add space after adding proxy type to node remarks.
Add displaying Subscription User Info when generating artifacts in generator mode.
Add support for another type of time node.
Optimize codes.
Fix filename option in web interface.
Fix when failed to download any files, the program still treat it as succeeded.
Add --artifact startup option to specify which artifact(s) should be generated.
Tweak Emoji matching rules.
Update local rulesets and configurations.
Fix a bug that Clash may interpret pure number password as float64 type (Issue [#58](https://github.com/tindy2013/subconverter/issues/58)).
Fix support for parsing some non-standard Clash configurations.
Add generator-only mode to save configurations to files or upload to Gists.
Optimize codes.
Fix typo.
Fix potential segmentation fault error due to some incorrect copy assignments.
Fix potential crash due to incorrect usage of cURL library.
Fix potential memory leak causing memory usage to be too high.
Add /qx-rewrite and /qx-script interface to add device ID to scripts for some version of Quantumult X.
Add policy-path parsing support for /surge2clash interface.
Add interval/strict options support for managed config.
Add filename option for setting file name when downloading exported subscriptions.
Optimize codes.
Add insert_url option to add node(s) before all exported subscriptions.
Add /getprofile interface for easy access.
Add an option to control whether to add Subscription-UserInfo or not.
Add include/exclude settings to external configurations.
Allow loading local subscriptions in API mode if the right token is provided.
Optimize codes.
Add Edge header support for Surge/Quantumult/Clash.
Fix configuration file not found when start up via right-click menu on some platform.
Optimize codes.
Clean up unused files.
Fix when a request without User-Agent was received, the program will crash.
Fix Emoji matching rules.
Add an interface to serve/convert local/remote rulesets.
Fix when processing duplicated node name for Surge, the program will crash.
Add an interface to directly convert Surge config to Clash config.
Add Netease Music IP ruleset.
Clean up codes.
Update build scripts.
Fix when generating configurations with external configuration file with rule generator disabled, generated rules will still be added.
Add support for configuration files in YAML format.
Optimize codes.