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.
Add support for adding update interval to Clash rule-providers.
Optimize performance.
INIReader: Fix key value trimming error.
INIReader: Fix not processing escape character when dumping.
Fix missing classical providers when exporting Clash rule-providers.
Fix not correctly process some rulesets when generating Clash scripts.
Fix typo in pref.ini.
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 ruleset types other than Surge Ruleset not correctly expanded to rules.
Fix trying to limit upload file size.
Fix when no GEOIP rule is added, the Clash Script will not be able to generate.
Add "mixed" target to generate subscriptions with all types of standard subscriptions.
Add passing X-User-Agent and X-Client-IP header to subscription downloader.
Optimize codes.
Fix support for parsing keyword type in Clash domain rule-provider.
Fix potential error on reading configuration files.
Fix not processing remarks with comma when exporting some subscriptions.
Add geoip as script function.
Add support for using script to rename nodes and add Emojis to remarks.
Add independent option for adding/removing Emojis in URL argument.
Add support for reading API_MODE/API_TOKEN/MANAGED_PREFIX from environment variables.
Optimize codes.
Add support for adding proxy provider to custom group in Clash configurations.
Add and, or, bool as template function.
Add support for any amount of argument for template function join.
inja: Add variadic function callback support.
Add support for suffix tag in Clash rule provider.
Add request._args variable to templates to read all arguments passed from URL.
Add startsWith/endsWith as template functions.
Add reporting HTTP status code when failed to upload to Gist.
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 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.
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 program crash when processing broken template variables passed.
Fix trying to load other arguments when no supported target is provided.
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 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.