From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id UFapFGzU1mLjMwEAbAwnHQ (envelope-from ) for ; Tue, 19 Jul 2022 17:57:32 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id 4C2dE2zU1mJpEwEAG6o9tA (envelope-from ) for ; Tue, 19 Jul 2022 17:57:32 +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 284729703 for ; Tue, 19 Jul 2022 17:47:50 +0200 (CEST) Received: from localhost ([::1]:45656 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oDoQg-0003Xu-OY for larch@yhetil.org; Tue, 19 Jul 2022 10:42:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34370) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oDoPZ-0003Wb-HC for emacs-orgmode@gnu.org; Tue, 19 Jul 2022 10:41:21 -0400 Received: from out3-smtp.messagingengine.com ([66.111.4.27]:53445) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oDoPX-00034z-Ev for emacs-orgmode@gnu.org; Tue, 19 Jul 2022 10:41:21 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 77A8F5C010B; Tue, 19 Jul 2022 10:41:16 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Tue, 19 Jul 2022 10:41:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ypei.org; h=cc :cc:content-type:date:date:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:sender:subject :subject:to:to; s=fm1; t=1658241676; x=1658328076; bh=liXWdyGS2o rTsh7V7oCYQ5HEqXPnRLVJUGxhndz+l3A=; b=bndfbh5AYEUr8LPzykIqXvCiMt 5Vamdk2AnytcRf9yz7s9VEF4U608flThHVypWsClB+Ba/pYszOIBWS5NauKlXBuS 6yTY1T5LsIYB1v/8r2+3gmn/QR+sJcgguOMJ02OJq8TmR8OLifr/zdMC55Aw9Tna 75XKy1AiLG7+S8FYBKBOuoZKHHo4O//L/5MTn9wJdfMyDrezG+hEeJBAiED3vZFy vWyh9XF8w2n4nlzZTGbDQqFEhER9DJpHhXaO6NMZLSqZ8LO8QwolCIzjjqfrWjX2 WHtfwGNgn24uobOb1+2bkUZskvDElZ0BebmA3LjYnvezvcsA8PzdsVwKW0Ew== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1658241676; x=1658328076; bh=liXWdyGS2orTsh7V7oCYQ5HEqXPn RLVJUGxhndz+l3A=; b=fAO0GyBE5o6OPKHiq6DhL7pjT1tbR2aWpDQR1f7deipC DH4l2hFi7iez0/ZUQ3DL/ocv54/LrzELwh/w+qss/TWjNCFW0wTY9UQQ/++qkV3A q1pz5RXNgUxNNeMfHHw0knE6/uoT5jEe11uW0eUZn3kMA40NmWPoaJgr/BT+1pCl qopl/6ci2yyhYhTikhsvFc+aEgqI27kJ9L2H100pw37BZSnGTCF2lUYgH/0oVH83 zVv3ZnoEy+kdU8AJHMvGM8KiiitvfUBVydXMgmhyd70dmRWKXBaAnfs3XSyj8kBV 7wEDEUHrhJ6FlXOxRmdd3jx4nxYG7Z6Enmyj4Jdx3w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudeltddgjeelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufhffjgfkfgggtgesthdtredttdertdenucfhrhhomhepjghutghh vghnucfrvghiuceoihguseihphgvihdrohhrgheqnecuggftrfgrthhtvghrnhepfffgie euteffuefgtddvudevjeevieehhfelhfehffduhfekhfehleffgfeivdehnecuffhomhgr ihhnpeihphgvihdrmhgvpdhmohguuhhlvgdrnhgrmhgvpdihphgvihdrohhrghenucevlh hushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehiugeshihpvghi rdhorhhg X-ME-Proxy: Feedback-ID: i51b146f9:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 19 Jul 2022 10:41:14 -0400 (EDT) From: Yuchen Pei To: Ihor Radchenko Cc: emacs-orgmode mailing list , haskell-cafe Subject: Re: An org backend to Haddock References: <87k08azl1d.fsf@ypei.me> <87sfmx4325.fsf@localhost> Date: Wed, 20 Jul 2022 00:41:10 +1000 In-Reply-To: <87sfmx4325.fsf@localhost> (Ihor Radchenko's message of "Tue, 19 Jul 2022 21:58:26 +0800") Message-ID: <87pmi1w4ft.fsf@ypei.me> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=66.111.4.27; envelope-from=id@ypei.org; helo=out3-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 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-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1658245670; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=liXWdyGS2orTsh7V7oCYQ5HEqXPnRLVJUGxhndz+l3A=; b=SpLEXcxjINQwn2rWMjqMiKKaF2/aQzzH75QZrWC90lHHwHfjL7DM9SX69xo65B99wPFPgW kfpDCJ7ljtzIBVaiVydl7Qq2GOdpOEFvg07WJYV+DtGaLEdjt3WOdjkfYBbZXNTZw5FzCC gd0pTPc4Z2rlBX5aMfZ4GAxRY6SgpCdTfCgfvnAxuzCNqm8qjedWqtVMF3b4srLXeIeqEK FooN/wrmxWB3xWg0/q1iKjTInGdzMW7IOc+Pd3eUdk98QLfKU9eT4pfXji7GnNvhP52MpQ kmclPP/SMHEXS2466vsQIR2sHWduOAtQo1hjeZ8mDEghYQhrbup48FlEWkACMA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1658245670; a=rsa-sha256; cv=none; b=L1Szf904ckInrPNLdp3jK7SpWYT8SLL++XdeSubUGE6oN5DiSc2V4sTXk6SIa+wUgoM9ld G4NXmQYch5YB6HiIDGz357Wci21ye70t23NRlVWQXGzBAk/ioytFM2xml9hDoqFYzC2kIx MdgyTr8L8syOoC9sYow8NarQZbInE042xB18REvtREp+AaB1eeer8Y0HGHh/XckuwiHWJl bZdF5zF7DUwAmy5VJNpaFhqOYFNDK227WmBMNwJlbN1LCx2VNlH1nQh70skEHmWh7Qm7vz qxdpuBUY/xeazhOgFfv5n55+YjSlBjlqpkR2bfkxBxCoE9EjUiYtHZTbLr4NHQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=ypei.org header.s=fm1 header.b=bndfbh5A; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm3 header.b=fAO0GyBE; dmarc=none; 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: 0.87 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=ypei.org header.s=fm1 header.b=bndfbh5A; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm3 header.b=fAO0GyBE; dmarc=none; 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: 284729703 X-Spam-Score: 0.87 X-Migadu-Scanner: scn0.migadu.com X-TUID: 9wqha2Ysr2L0 On Tue 2022-07-19 21:58:26 +0800, Ihor Radchenko wrote: > Yuchen Pei writes: > >> Given this is not the official version of haddock and my changes are in >> haddock-api, I'm calling it haddorg-api, for lack of a better name / >> approach. I'll be happy to contribute my changes upstream if a >> different license covering my contribution (AGPLv3+) is accepted. >> >> Let me know what you think. > > I am pretty sure that you are asking the Haskell people for upstreaming > ;) Yes - I sent the email to both haskell-cafe and emacs-orgmode, but upstream here means haddock / haddock-api indeed, thanks for clarifying. > > From Org side, it is always welcome when other Free software projects > are making use of Org. > > Also, I looked into > https://g.ypei.me/haddock.git/tree/haddock-api/src/Haddock/Backends/Org/Types.hs > > Beware of possible edge cases with "*/~|" in formatting. I am not > sure if text containing such symbols is possible as an input for your > library, but if it is, things may get formatted wrongly. > > For example, text containing "|" anywhere inside a table field must have > "|" escaped using \vert entity. The markup can be escaped using > zero-width space. True. I have not addressed these edge cases in my code, except a quick hack to prepend a space whenever any line a src block / result block has a leading star. Tables on the other hand are extremely rare in Haskell package documentation strings, and having a | in them is even rarer. I do wonder what is the best way to handle cross-package links. Currently I'm using CUSTOM_ID in the format of package-name-x.y.z.Module.Name.IdentifierName, as well as Module.Name.IdentifierName. But this is a "one big org file" approach, and can make navigation slow when say the org file reaches 15+MB in size. Ideally one should be able to navigate the a hackage worth of documentations easily, with working cross-package links and low latency org-goto to jump to any identifier or module, but I don't see how to achieve that. To be further investigated. > > Best, > Ihor Best, Yuchen -- PGP Key: 47F9 D050 1E11 8879 9040 4941 2126 7E93 EF86 DFD0