From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id QLekGK0vqmGRtQAAgWs5BA (envelope-from ) for ; Fri, 03 Dec 2021 15:54:37 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id MEx0FK0vqmEnPQAAB5/wlQ (envelope-from ) for ; Fri, 03 Dec 2021 14:54:37 +0000 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 C90EE20DB1 for ; Fri, 3 Dec 2021 15:54:36 +0100 (CET) Received: from localhost ([::1]:55138 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mt9xL-0007cX-4M for larch@yhetil.org; Fri, 03 Dec 2021 09:54:35 -0500 Received: from eggs.gnu.org ([209.51.188.92]:57578) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mt9wz-0007cE-EO for emacs-orgmode@gnu.org; Fri, 03 Dec 2021 09:54:13 -0500 Received: from ciao.gmane.io ([116.202.254.214]:35118) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mt9wy-0000L0-3r for emacs-orgmode@gnu.org; Fri, 03 Dec 2021 09:54:13 -0500 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mt9wv-0006SK-TQ for emacs-orgmode@gnu.org; Fri, 03 Dec 2021 15:54:09 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: Org-syntax: Intra-word markup Date: Fri, 3 Dec 2021 21:53:59 +0700 Message-ID: References: <4897bc60-b74f-ccfd-e13e-9b89a1194fdf@mailbox.org> <87fsrbp673.fsf@gmail.com> <1ef0e093-c165-2a5f-954d-6a33b64c8ee9@mailbox.org> <87r1avgnpi.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0 In-Reply-To: Content-Language: en-US Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 19 X-Spam_score: 1.9 X-Spam_bar: + X-Spam_report: (1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, NICE_REPLY_A=-0.938, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no 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=1638543277; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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; bh=AM8etuzhZ/TLaV0lgDwWXxhr5E95nqk1EJnAzZHeY0s=; b=UHWhqmlqq8v6HVbiItb774QqnCuvRUPqTXRSa+/aoDc93WigLPY6hYoi9qgiXVbbVklCbD Xm8vkxmmV5x+yRmxXid4iRdHKbm2iHMAU8+9Nx104YBgKOJcLBo/AZVTZfU2MrppH59Edm W9X76tCkDFm1E5GqiUA0EI2q8+U+6o27WmJ4+oeL8hLMoYJ4y++rpPDnB9Dnd3NjdzMKo4 fGAENzxRCOZvDpnShlF4zys34uXxatlK8JI9m6WmcHprLB2iPsGfNtXRwnQUh/xuuuIKin REh6C7sqoMsAZedy7tvPYF49EpdTOycqv5zCF1TS45/08JNbXnDRHKweH8LMuQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1638543277; a=rsa-sha256; cv=none; b=WS8g8Rlpu65heyCKp1qeC5ATWUfxe+Z1ugbUl9kr+pjLwCHhND7BsbrFyU9HWOKg2ySINI lE9+8yKb2xxCh67sApUQMa65sJxKN9AVJYndFbMnC8mqq899Es9YJVfTXS25S+d/eKgOZg Z25PWM/Ag/6e090pnaSMGF5e0v2vCBB1DruPgSLMukgPCb7vOyGHr/0OTfl/ybvBilqoVZ mxNTQ8FBUr3/at65shWzQE6RomoOg+R0U4XUCkRjaj2JpdmTuuvZY9M7OVYexQxaUq3jNG MhayT+Dj43LZ5SvjzVJVvY4CPlYlPJFwd/VqQE0cuG6SyHI7auJxOzFeqIoXdQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=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: -2.32 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=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: C90EE20DB1 X-Spam-Score: -2.32 X-Migadu-Scanner: scn0.migadu.com X-TUID: hTjAdSdrxKQR On 03/12/2021 01:11, Tom Gillespie wrote: > > I recommend anyone suggesting solutions try to implement > something that can parse the markup unambiguously with > lots of nasty test cases. You will likely find that it is impossible > to consistently tokenize markup, and that you have to hand > write a whole bunch of heuristics, making Org syntax even > harder to implement correctly. Tom, I see and share you point, however sometimes more specific and convincing arguments are necessary. Why unconstrained markup ("//") does not cause problems in asciidoc? Maybe it does but they are not immediately obvious. I don know since I have never used asciidoc. Maybe parser behaves in a different way than org-element. Maybe plain text links are not allowed at all. Almost any URL contains such pair of markers: https://orgmode.org/, so it should be addressed somehow. Examples of corner cases that are used for tests should be more visible to users otherwise it is hard to use such samples in discussions. They should be annotated (arbitrary examples from recent discussions): - input: [[https://first/-/url/][pre]] text [[https://second-url/?][post]] parsed: ( (link :target "https://first/-/url/" :description "pre") " text " (link :target "https://second-url/?" :description "post")) comment: "Regexp-based syntax highlighting falsely finds italic text because URLs have slashes similar start and end of italics" - input: A _b =c_ d= e_ f parsed: ( "A " (underline "b =c") " d= e_ f") comment: "Users of markdown may falsely expect that c_ is protected by verbatim markers and underlined text is ended at e_"