From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id yCB9BofCRWNwKwEAbAwnHQ (envelope-from ) for ; Tue, 11 Oct 2022 21:22:47 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id +HdnBYfCRWPWHQAA9RJhRA (envelope-from ) for ; Tue, 11 Oct 2022 21:22:47 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 5018C22682 for ; Tue, 11 Oct 2022 21:22:32 +0200 (CEST) Received: from localhost ([::1]:41818 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oiKpj-0002P0-1u for larch@yhetil.org; Tue, 11 Oct 2022 15:22:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35628) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oiKnQ-0002Os-TA for emacs-orgmode@gnu.org; Tue, 11 Oct 2022 15:20:08 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]:56143) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oiKnO-0004eT-VO for emacs-orgmode@gnu.org; Tue, 11 Oct 2022 15:20:08 -0400 Received: by mail-wm1-x32d.google.com with SMTP id t4so9199574wmj.5 for ; Tue, 11 Oct 2022 12:20:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5QSIowXDXN5xhuhu2ugIHu+PMJw4209OHYiDVcK805A=; b=MhQbjHbbOzq0roed2l1xFEu26nhhyxOnE0fY2sFcP+1g9W/2N9uZQb8R3yxiT4oUqQ poD7ClNShn9GIwdOd9NYo3pccDxfNp3o8O/X5nsvQ2tGgC/R5elVEVuVa2ei/9yFEi1+ 0pc+mZPN/UnReCQw+S9xB+jru9OGzjbet0xdFOWvITetc9xDqTcPiMIFzF8zQOS0vB8C 8s7OreyS+qYFmmvjfCxh72SdmVKxqGJcT1elqW5XvNz2/xW1oZhw6dYCnSaknxS3BPOt eS3EEADSxZqlZPBWzA/gv9S0oTrhuPlY9MNMOSu9nzT/zbVvrYA0zQTJCOxJRO61N5ea NqRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:user-agent:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=5QSIowXDXN5xhuhu2ugIHu+PMJw4209OHYiDVcK805A=; b=Fj2V7kL4ls6lslOm2Ynapb4UI0TfG99TgjZz9vS1nEinWbouni8UvnMEpgtll/p8XO SNyZeV5laPwfr2154S6sGXXCkI/ycKe35pd6Q/4dhN8mPUAetf1V5nxq98YzYSz70aYA NMX5P7KU5ptpuwrRxbK2fD0tN2XgAyNfy2F74NvCSQu7Vvx8Uh3/zccos794cDclCeUX jy0maDVIQuq4HnrX0dWAIcf1jDcNVvTEEjVFqlij71aLp6QKpT0nQcpuYWqvs8JPwF7M voveaNl1b5zDfwYJNHwQPtef4MMTS3/z4UxMSOS9tDCKo6fDDAApVLcMd3euTRqu+dl+ 73dQ== X-Gm-Message-State: ACrzQf0m2rQ8wN6UIvR7pBmbpdr5w+WN86uud1gk3yxq/k5QLFUPKFS9 OKxlelkEAD52CPVQqhxvC+c= X-Google-Smtp-Source: AMsMyM5frff6bZIrH660wSP6EGvks7HyhGYijgD1o2YvzRg+6Rji7b54IJPv1E/Mg4yJem/NtXSXdw== X-Received: by 2002:a05:600c:19d2:b0:3b4:cbad:e541 with SMTP id u18-20020a05600c19d200b003b4cbade541mr402108wmq.106.1665516003753; Tue, 11 Oct 2022 12:20:03 -0700 (PDT) Received: from amdahl30 ([2a01:e0a:253:fe0:2ef0:5dff:fed2:7b49]) by smtp.gmail.com with ESMTPSA id iv14-20020a05600c548e00b003b4c40378casm20891388wmb.39.2022.10.11.12.20.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Oct 2022 12:20:02 -0700 (PDT) From: =?utf-8?Q?K=C3=A9vin_Le_Gouguec?= To: Ihor Radchenko Cc: Timothy , Nicolas Goaziou , Tim Cross , emacs-orgmode@gnu.org, Samuel Loury Subject: Re: [FR] [Revived] Human readable / customizable link anchors during export In-Reply-To: <87fsfutwin.fsf@localhost> (Ihor Radchenko's message of "Tue, 11 Oct 2022 19:44:32 +0800") References: <87y2dc82ct.fsf@nicolasgoaziou.fr> <87sg3j4vbl.fsf@gmail.com> <33fd87ff1332b56114909973804df669@isnotmyreal.name> <87h7joibxc.fsf@gmail.com> <87pmycay41.fsf@gmail.com> <87h7jouiuk.fsf@nicolasgoaziou.fr> <875z03igpf.fsf@gmail.com> <87tunmskap.fsf@nicolasgoaziou.fr> <87fsz6boxa.fsf@gmail.com> <87fsz6sik0.fsf@nicolasgoaziou.fr> <87czuabm6w.fsf@gmail.com> <871raqsfzp.fsf@nicolasgoaziou.fr> <87a6pebkk8.fsf@gmail.com> <875z019w0r.fsf@nicolasgoaziou.fr> <8735v4hoxl.fsf@gmail.com> <87fsfutwin.fsf@localhost> Date: Tue, 11 Oct 2022 21:20:01 +0200 Message-ID: <87v8oq9nha.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=kevin.legouguec@gmail.com; helo=mail-wm1-x32d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1665516152; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=5QSIowXDXN5xhuhu2ugIHu+PMJw4209OHYiDVcK805A=; b=FlYtbi18msTgxqhMRr/EuTJUYQOzca2QMUl2kQp5p1xddkA3qDD7kAkjguMnXWrdaDa5vl BtQX8YUSsfUAernDTpvHKy1lLVvDSeXJtU3Lw+QEGPXdDvAnVxJJ0Wb2HK17UT4yASsYzi GEQn4UzIWPKURaFK1TYW6da42sOdYaGl+WVKx/+QyJhBDMIglzG4ozVXhIAHW/K33giOuC V/fQ4kUDDS4WXmvb+Ak3KuCt8sK6KI0Ct90H9uS3Qj3bHKp4ErZu7uYm7KjCZB47Gny6kf 0a5+NxRZH/b6syEdOBCdxiDLMWO3ZIulo2vBOnQE45hx3e6G750bcXGJ7inMBg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1665516152; a=rsa-sha256; cv=none; b=IduwubSsIt6/L/Ocx8XzZ1grxU0VUJza79zGsHh2e0aOKp8KFNrxf33iuFO8zBJQIwPUTK s/t44Vkx6GjKrB3N2amBzhBk6dCM+VuPsp4Wry6IcOfj1mDGVNlos0GxhMaOprWZdwRtOJ 33iQhE7kYZ/tUDWaqlQQv4bdUmTGgCxa8v3Ix9ahaD6YVPh1IowlIqhTUfccyyJd/CoElL zIcBs6uMPL36NZYTAzQNm2I3RNII8PRAwK6LsZ26eknlzOBkiHmAsi9N7UERfotQNmq53B pf3OCPeYCIUyFXHJLmv2Vrt9fwo4hR3GhHcXbyHlTehsiu1Vk9LFj0xlRK+jwg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=MhQbjHbb; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -2.39 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=MhQbjHbb; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 5018C22682 X-Spam-Score: -2.39 X-Migadu-Scanner: scn1.migadu.com X-TUID: IlMToQO+aOOq Ihor Radchenko writes: > 3. Instead of trying to find a silver bullet for human-readable anchor > generator, we allow users to customize it. The default will be > constant "org" yielding "org-Ajjq"-type anchors, just like we have > now. But we can also provide other generators, like the one Timothy > proposed, or better versions contributed in future if there is > demand. Personally, I'd be wholly satisfied with a customization option; the grail for me would be [pandoc's algorithm], which doesn't look too hard to reimplement in one's config. (Although the collision-handling logic could be tricky: since it revolves around appending a counter to the ID, it needs to keep track of how many times the same ID has been generated for the whole document. If the generator API is just {heading =E2=86=A6 ID}, i.e. there is no extra "context" argument, one will need to do some bookkeeping "on the side"=E2=80=A6) [pandoc's algorithm]: https://pandoc.org/MANUAL.html#extension-auto_identif= iers