From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.text.pandoc/31811 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Duncan Murdoch Newsgroups: gmane.text.pandoc Subject: Match \pagebreak in commonmark_x+sourcepos Date: Mon, 28 Nov 2022 14:42:19 -0500 Message-ID: Reply-To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8"; format=flowed Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27481"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 To: pandoc-discuss Original-X-From: pandoc-discuss+bncBCZ4LFFHXQDRBHU6SSOAMGQE5EGQQIQ-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Mon Nov 28 20:42:26 2022 Return-path: Envelope-to: gtp-pandoc-discuss@m.gmane-mx.org Original-Received: from mail-yb1-f192.google.com ([209.85.219.192]) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1ozk1K-0006wT-EB for gtp-pandoc-discuss@m.gmane-mx.org; Mon, 28 Nov 2022 20:42:26 +0100 Original-Received: by mail-yb1-f192.google.com with SMTP id c188-20020a25c0c5000000b006d8eba07513sf11124908ybf.17 for ; Mon, 28 Nov 2022 11:42:26 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669664545; cv=pass; d=google.com; s=arc-20160816; b=NChtv5/JH2THC/Ez66qn9FG0j0zyLSUXTeVrwbIZLvxjwGAcLlkbH/tQxokRuyg/p5 zE7VTbM5UiI165ROL59xbRgOj4wkDjH1zyw6pgtNAPzPHkvni/+SnTuwN+Q08jROjt10 0wlbyJFkzM9jMoL8V5apQ2Y67InKUmsS5ouvaq5trGosfuQOSfhG0aS0GiD1kw/1YhZd fBwXV+SZGfBljtWyUXI4mCrG8z8QEil80TZTzRj+MYMLRdFvCG7IS/cgn8aPZWwez32T VIgJij8NDfRG6HBO72TO0BEAD1aXLyqHzkLV5M755nQ/rQEkzpSInwW9l07jbLGBMA6Y eiQA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:subject:from :content-language:to:user-agent:mime-version:date:message-id:sender :dkim-signature:dkim-signature; bh=3dBHV1xlXFDFuo+ZFiILpqG0g6qUXnf4m3G2k8rySAw=; b=YmMTvuo3rsS3I3b7HTLuRU9ViAJ707JJJgoI7uC2lKX93QQAXgkkBIf67XdOKZ1gtw Kp735+E4ce0AzTirMeq/M+4zgjbZx2P2lVOqxRX4/PUiO8FJPcepZuIGL0WUaPjOkpdg BPg2nlhkY98YnSFROIX8x9HZiO8f+MbxYCiZzFXRZm5bwfzSj5H5CQPAoIcBZ4wyCrYn uA19znE2Tl7mCNDk5cUjuDRu7GLiW7EQzkTg43Pym/2kBB/xS1HMwOXK6r2rUakonfQ+ Rn66hY484cPM2qt/dnF5PZSiMhuTrP3phpei71bKuxROMHlk3PihIPp9vKUwNXu+ArI9 TNYQ== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=XFun5Y+y; spf=pass (google.com: domain of murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2607:f8b0:4864:20::729 as permitted sender) smtp.mailfrom=murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:subject:from :content-language:to:user-agent:mime-version:date:message-id:sender :from:to:cc:subject:date:message-id:reply-to; bh=3dBHV1xlXFDFuo+ZFiILpqG0g6qUXnf4m3G2k8rySAw=; b=iET7OUxYg9HKKL2jRhks8BYgFRn9JCmWy8kEgjH/oDXKvyXxBW83RMjym4VAXaCr/t QqfjjqEWTI6bX47btz5xQK3EuBPdTUiJu91fDdF3NB4s9jVUaMpa2E2wprZmGQuaPBTj bfYOFh+HI37azx+z0uFSd4aximQ5lESCuQMmqWwoQKxiTbuWnB7Et3GVbPwqtTD77eBB yiEYvAOrY9l/joo932HiduKwrezerCtFyHHVC7wmlkJfCxcDm5P/yXocTRyJ+x7geXs3 +7A1m5HcHAU7w/YA+Bwe//SrssNh7MHUEeJq8gWyt1o1jsB46fObnoOQY440dUTc1O9B NapQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:subject:from :content-language:to:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=3dBHV1xlXFDFuo+ZFiILpqG0g6qUXnf4m3G2k8rySAw=; b=UDijD+hDYbt7We+93aE3vNbwzUd5BVKtJ4L99Zpy7fwH4h94AerxP/nCz/SOCBpdjt R7GO5WsqMzdY8ub8HNcUKCq6ggKC4mAul7cgbCVEOyS2bSnGqYH7LDw5UHiCnJbiQwmJ OsnF5/DQlRv6P7ev32HIDpakwIWnT0M86YWLPv7QxDHW1wQwAfu9R7bT/LeFScwIqO99 +Q1g4YrdlqOlRIkNMXWcYi77kSAeRa+MyWwhuPhk00R1JY8C0h9E0eyC5Dmv7vntASiA +wnND9aNRDru9LQCHmvSkN59LAy6W9DuXNINxbvgYicClHjICg1Rzq6BTfFZF7sLPCHf qtUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:subject:from :content-language:to:user-agent:mime-version:date:message-id :x-gm-message-state:sender:from:to:cc:subject:date:message-id :reply-to; bh=3dBHV1xlXFDFuo+ZFiILpqG0g6qUXnf4m3G2k8rySAw=; b=eDLJgwxIPx1cSomTR++Scd4ziEk8FMIA1BXu6KhQMN8qiH8wHVo6TjAjR1LYN1/KON W7ykb1Rw5/sRQnhB0IpFqJM+nSlka+6IjQi7qO29oFsFcSFqDQbL9VZ7zBPOLYLRKb41 3ALY2dNe6RTY2omesHK7TWC9kP1O+DGhg1Ndz4OpLILRIfdka/PaDmg4Qh7WaGGSQK+D tABM2e8d3S08niS0tNhMIkTrCfPlvaP7CqmlSbzOw4kDKSOYSDGNcYEErCT332wlsbB9 VDpM7UW0DT11qHls7m/42cN6X3ytAzW4nOxwxHWHb Original-Sender: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org X-Gm-Message-State: ANoB5plu2geYr/LgIN8IOtKW/XUbTUALCFz16Ba9qR8OWIQDFVmOZKk4 46yJdx8RuzM3tZrbIsAObiw= X-Google-Smtp-Source: AA0mqf5RHlhga0+hYUILKWM8rUHwNAJEjFckhX1L3GPuCbkStlEhCfqiZpfjcHnHRjTS/MCJKDfcGQ== X-Received: by 2002:a81:6d0c:0:b0:3bf:f2a6:9284 with SMTP id i12-20020a816d0c000000b003bff2a69284mr11426073ywc.68.1669664545370; Mon, 28 Nov 2022 11:42:25 -0800 (PST) X-BeenThere: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Original-Received: by 2002:a05:690c:11:b0:36a:2cc6:5e7e with SMTP id bc17-20020a05690c001100b0036a2cc65e7els5058353ywb.7.-pod-prod-gmail; Mon, 28 Nov 2022 11:42:22 -0800 (PST) X-Received: by 2002:a05:690c:b81:b0:36a:1c12:b60f with SMTP id ck1-20020a05690c0b8100b0036a1c12b60fmr35226383ywb.45.1669664542473; Mon, 28 Nov 2022 11:42:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669664542; cv=none; d=google.com; s=arc-20160816; b=br7irjhQv0gEi7hH7/S+BOQZhEKRaQxzUe1OSu8Is84Ei45Q0NMm6dbfI4tlEtmrre if0JtAJYVzQy3BYETvj7xmwkAxGjcGNMCyO40ZEx4brfJl+MHnlDYrBRp0fNTYgbnpem W7pbcVme5UI8ZkTKmoak2laI3w89pUpD5oRF7JVWiRHLxvs18dajyoU6MS8IiKvxljnC lnjL+dz4GKwup2/LObY6he0KzrDXsGOsTyeM/KlFmzhDEgG5KYmnViodHdPIUzdbTmBB 6I+VIEfAp6WiX9krsirOa4yz3ctfuPKK0It5r0P6iHW74s5lJfTtV4ur1HSMr3p1u3v6 zPMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:subject:from:content-language:to :user-agent:mime-version:date:message-id:dkim-signature; bh=baX3j7keXO/0lh92+e46d3JG9Q9hxdvNTdf4QB9pOWs=; b=QE+oYdPemIW2QuYT8aVKxlqjI7FKmpq87fWL+X98nN1RAwJbi8X2+q2TAVQKSdozgm k+In11bT65yXK5r7h0siAvUxoCe4hy2vVMEZRis3cLz8HS8rv0KsLax1yZklCSfmR64n oUIgg1JM/X7XwB4napRRnuRtNYI3TZO5hm/6eweaUue8aBdAP8CzX7vLcs4MA8CrKpAL l47wg54/C0fGmIw2vKv/6WkGE8QDcOUqJgT+P6jZjGl7BLVtM4w2iEVSGuz8Bnml/GZ3 NE97ipoA+5JALegqxAj6pMTywzPEkjsTXzX3UMl18ndrG9g514fAurc9V8T5rMpFT60H TwRw== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=XFun5Y+y; spf=pass (google.com: domain of murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2607:f8b0:4864:20::729 as permitted sender) smtp.mailfrom=murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Original-Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com. [2607:f8b0:4864:20::729]) by gmr-mx.google.com with ESMTPS id a132-20020a25ca8a000000b006ddea715dd2si792264ybg.0.2022.11.28.11.42.22 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Nov 2022 11:42:22 -0800 (PST) Received-SPF: pass (google.com: domain of murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2607:f8b0:4864:20::729 as permitted sender) client-ip=2607:f8b0:4864:20::729; Original-Received: by mail-qk1-x729.google.com with SMTP id c2so8122213qko.1 for ; Mon, 28 Nov 2022 11:42:22 -0800 (PST) X-Received: by 2002:a37:356:0:b0:6fb:d806:303b with SMTP id 83-20020a370356000000b006fbd806303bmr32618270qkd.471.1669664541846; Mon, 28 Nov 2022 11:42:21 -0800 (PST) Original-Received: from [192.168.0.100] (135-23-172-182.cpe.pppoe.ca. [135.23.172.182]) by smtp.gmail.com with ESMTPSA id m21-20020a05620a24d500b006ee8874f5fasm9076691qkn.53.2022.11.28.11.42.20 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 28 Nov 2022 11:42:21 -0800 (PST) Content-Language: en-US X-Original-Sender: murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=XFun5Y+y; spf=pass (google.com: domain of murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2607:f8b0:4864:20::729 as permitted sender) smtp.mailfrom=murdoch.duncan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Precedence: list Mailing-list: list pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org; contact pandoc-discuss+owners-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org List-ID: X-Google-Group-Id: 1007024079513 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , Xref: news.gmane.io gmane.text.pandoc:31811 Archived-At: R Markdown normally uses Pandoc Markdown with the raw_tex extension, so text like \pagebreak is recognized as Latex, and translated to a different format by the pagebreak.lua filter here: https://github.com/rstudio/rmarkdown/blob/main/inst/rmarkdown/lua/pagebreak.lua That filter relies on the fact that the \pagebreak has already become a single RawBlock. This filter doesn't work with commonmark_x+sourcepos, because that reader outputs this from \pagebreak in the source: Div ( "" , [] , [ ( "data-pos" , "test.knit.md@27:3-28:1" ) ] ) [ Para [ Span ( "" , [] , [ ( "data-pos" , "test.knit.md@27:3-27:4" ) ] ) [ Str "\\" ] , Span ( "" , [] , [ ( "data-pos" , "test.knit.md@27:4-27:13" ) ] ) [ Str "pagebreak" ] ] ] So it appears the test I need to use is to look for a Para containing two Spans whose content is "\\" and "pagebreak", and replace that with whatever is appropriate for the output. This function works, but I wonder if it could be simplified: function Para (el) if #el.content == 2 and el.content[1].content == pandoc.Span('\\').content and (el.content[2].content == pandoc.Span('pagebreak').content or el.content[2].content == pandoc.Span('newpage').content) then return newpage(FORMAT) end end Do I really need to construct those Spans to do the test? I'm happy it works, but it seems like there should be simpler right hand sides in the comparisons. Duncan Murdoch