#+title: url-rewrite #+author: Yuchen Pei #+language: en * Introduction :PROPERTIES: :UPDATED: [2023-10-30 Mon 21:45] :END: ~url-rewrite~ is an elisp library for rewriting URLs. Usecases include redirecting to an random alternative client (e.g. invidious and nitter), removing tracking queries (e.g. utm parameters), replace a link by its redirect url which is encoded in one of its queries, converting a zoom link to a dial-in number, etc, etc. * Usage :PROPERTIES: :UPDATED: [2023-10-30 Mon 21:41] :END: One way to use it would be utilising the collection of building block functions for URL rewriting, like ~url-rw-replace-random-host~ and ~url-rw-remove-query~. Another, more streamlined usage would be: 1. Declare rewriting rules in ~url-rw-rules~ (see ~url-rw-example-rules~ for example) 2. Then declare some ad-hoc rewriting functions and add them to ~url-rw-extra-rewriters~. An example is ~url-rw-example-zoom-to-dial~. 3. Eval ~(url-rw-refresh)~ to populate the rewrite function list ~url-rw-rewriters~. 4. The function ~url-rw~ can now be used on any url you wish to rewrite. * Copyright and contact :PROPERTIES: :UPDATED: [2023-10-30 Mon 21:39] :END: ~url-rewrite~ is maintained by Yuchen Pei and covered by [[https://www.gnu.org/licenses/agpl-3.0.en.html][GNU AGPLv3+]]. You may find the license text in a file named COPYING.agpl3 in the project tree. For comments, bug reports or patches, please use the mailing list [[https://lists.sr.ht/~ycp/gym][~ycp/gym@lists.sr.ht]].