From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.text.pandoc/32830 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: H Newsgroups: gmane.text.pandoc Subject: Understanding traversal directive and customizing filters Date: Thu, 15 Jun 2023 20:51:21 -0400 Message-ID: <0bb80078-e128-4a1d-064e-8be88b4c42d4@meddatainc.com> Reply-To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="35705"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 To: Pandoc Mailing List Original-X-From: pandoc-discuss+bncBCEIZSNSZ4IRBDPEV2SAMGQEEAYGU3A-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Fri Jun 16 02:51:28 2023 Return-path: Envelope-to: gtp-pandoc-discuss@m.gmane-mx.org Original-Received: from mail-qt1-f186.google.com ([209.85.160.186]) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1q9xgW-00098a-9I for gtp-pandoc-discuss@m.gmane-mx.org; Fri, 16 Jun 2023 02:51:28 +0200 Original-Received: by mail-qt1-f186.google.com with SMTP id d75a77b69052e-3f9da2a3dc8sf2637711cf.2 for ; Thu, 15 Jun 2023 17:51:28 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1686876687; cv=pass; d=google.com; s=arc-20160816; b=anEnwtKp3uao6+4epSh7XFH6yMP5Xp9YpYTsxRwynfNj4V81IXwuj/OIKHHb0bZdGO sz9awm7ruWFCX6RmdoVExgxfXGQ9vyFGkiKt9S+wF2OFaz2egl7xTjYCfT71WIm5bO96 fWR0W9Nu4oYtMSgI9Ufvy7AtBl8bx4UqOvs9iJ3X1YoVF2mNwgB+owXgs+mmj/7uRHHU s8hXDyP1JH2R2UEqRuxzUpzs9aoGNt50moudHTeNX80ju062R9c8aZxij3ReAwc2vMNW 7hDREHgxTjDnlHkpgpYFqL+9h95rtCUG7B1fSV+32eOKwn3jEShlzFJe6JpbXqydaI97 z+ng== 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:ui-outboundreport :content-language:content-transfer-encoding:mime-version:user-agent :date:message-id:subject:from:to:sender:dkim-signature; bh=vmzdYCiIa1k5WlYBGwNEetdiMalmGJK6VYGNjO86O2M=; b=zKlHXUyQz/O5q+gbWMGNuV0gKoVnJNL3Rpee6tVKMT3qSWvS3y/L0ycQt36CrPWPfg 53waB9wtuNnh0x3Vom03+Eb+ENFimoCIzMy93KWB1uEZ2shkwdH/yyfZXk7gEUZ60btF pj2YattHfRKzF9Xr+cvWVu0vWNe7k+aVj5txuBlNRhBbknUajOK2JfExE6hgQzXZvtU+ WYr2EUbMXjZPLd64skisWF03ykKQR3t3dQtslU8jlCr2XmOe2KzWiLmiU5Jqqh61tEL4 8nxuJElC2vft8T3OWxKXkBzyFZHLmwVj3E5VNzaYERmmnjxwh/mYYhWcx1EiywcNu0WM gTKw== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=pass (google.com: domain of agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org designates 74.208.4.196 as permitted sender) smtp.mailfrom=agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=meddatainc.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20221208; t=1686876687; x=1689468687; 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 :ui-outboundreport:content-language:content-transfer-encoding :mime-version:user-agent:date:message-id:subject:from:to:sender:from :to:cc:subject:date:message-id:reply-to; bh=vmzdYCiIa1k5WlYBGwNEetdiMalmGJK6VYGNjO86O2M=; b=U6f1SKV1NvOIEBtkmqrsTxtHZbfIXYqwLE7INuAYeNYGIx946vAVk12AL56IS36l2N tgArPaKPOFZryw7pCYWb/zEsSvoK71LeThQQBp8egixAa+j6/+B1mAkFXNP6NWhvLu8c 0r0FR0bdcMSLiPO2v9kIe18aVsSCg0+9/h8XTCsWQoLhp04DgGkiBMH3/emVlcza5W3o 6AJPz/YB7tt6V430ytggEJ6NdXm6g9vBk1rpz2osrm0tUM9MpFg8fKzquGqS6FeVEqGr uVk/HiOJJj7tQG X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686876687; x=1689468687; 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 :ui-outboundreport:content-language:content-transfer-encoding :mime-version:user-agent:date:message-id:subject:from:to:x-beenthere :x-gm-message-state:sender:from:to:cc:subject:date:message-id :reply-to; bh=vmzdYCiIa1k5WlYBGwNEetdiMalmGJK6VYGNjO86O2M=; b=PFPhLRqMdYl+73i6+mMWoJHa1epBW0mdmtsIhePtiHqJSafOOVUHczJFcvw30mIyTi f2ewC7xIddzd9PWkFnV8/q3DszoucQZKxe6+xA/UvKzeIEhpM6xnUFyim87L7mfKCyEJ mAoZSBfPNYsIJyz4ox2UnU++Cu8f6pnAUofyXEy7326RX5gkgwIx0+CFd5dTSkqrO6+A lfoYbV7TbJrFCG1uIS/7Vt+FY Original-Sender: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org X-Gm-Message-State: AC+VfDxYsrLMmShY2xw96xZbp2dw9Q+0hmvkh4TMxbcd6GMCLN4IuKBC WA10fY8pSz7uSqHA8xmVGWs= X-Google-Smtp-Source: ACHHUZ4IR+9xO6o4GxFLX+QFOR/asxz2586TuVNF/Z/ia46VZuvqQduc0uusUVycjSqfxUB57b7VyQ== X-Received: by 2002:a05:622a:54d:b0:3f6:aff0:6dec with SMTP id m13-20020a05622a054d00b003f6aff06decmr841951qtx.32.1686876687286; Thu, 15 Jun 2023 17:51:27 -0700 (PDT) X-BeenThere: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Original-Received: by 2002:ac8:73d6:0:b0:3f6:824f:575b with SMTP id v22-20020ac873d6000000b003f6824f575bls580144qtp.0.-pod-prod-08-us; Thu, 15 Jun 2023 17:51:24 -0700 (PDT) X-Received: by 2002:a05:622a:b:b0:3d8:2352:a661 with SMTP id x11-20020a05622a000b00b003d82352a661mr1053724qtw.3.1686876684519; Thu, 15 Jun 2023 17:51:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686876684; cv=none; d=google.com; s=arc-20160816; b=AY+/6rdjQY1w8kjtOmJV7PN51JS5Gzk5tCUAp+2XHvXqEWUiyLBJ5SjmrFMXWcz1Lf ICMvm4XkWDTnZHwljYkvTtX0TAU8+M5ZMY5VKHlLI/iH3QHV2cw04xS8eu48paaJXEPz zPG4O4+Q9na6eiweuHLEFjU6SW+ZYnfeD1b/W3VCA+pEvlNrUgrF/mOpyGKAWbCGmQsl oKCuDYpJnC6nNhLGJO4znxghp5WOZeeUJlgmhoscVrZq4tRmci1vycbCGlW2NX8ucBNe +4tTW1lMyszLVxMYtndDcIKVAOj+rEFE3zAq/2rMTSRxNHcF6hKHCbtn4YubfylUuWsS Pr2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=ui-outboundreport:content-language:content-transfer-encoding :mime-version:user-agent:date:message-id:subject:from:to; bh=cBBcn5cQygDdOUbdYYFAQ3cmWRXQZNAcskUHZ20O3ss=; b=TO6tgsA3XJbEn3Dk4NGUZR55XUAZj2JUtCwM8vg+/mSCvk3lzqEHkEgbE8cY1gOVyY LzDnZbyyOMMwnqd766KXYOpjjma3Z8RXUKZ/GNVwGsd7Wcb1c2VtuCO0ArPMt560UsIq cYdDF2m9/q4zLQ6HcuM2YhiISE4HXl5k7iMSa4wHO2jV+ckxwo8TyZzj+1xbhnLMiNdY 3wjkCk3bYE7fOAwawh/5GaBeWHgdWQZeFmX9zHZBYoW+aoxCMKXin9+Kkkmh2zac9dlV NI20Aodhi/3VgR9Q9HzFOO5ZfG+uMcpjL9osqSEcjdz8SYyOVxEN3JBNXhT6zJCIZ5xm 77cg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org designates 74.208.4.196 as permitted sender) smtp.mailfrom=agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=meddatainc.com Original-Received: from mout.perfora.net (mout.perfora.net. [74.208.4.196]) by gmr-mx.google.com with ESMTPS id g14-20020a056102158e00b0043f8d83fd30si171666vsv.2.2023.06.15.17.51.24 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Jun 2023 17:51:24 -0700 (PDT) Received-SPF: pass (google.com: domain of agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org designates 74.208.4.196 as permitted sender) client-ip=74.208.4.196; Original-Received: from [192.168.1.17] ([72.94.51.172]) by mrelay.perfora.net (mreueus003 [74.208.5.2]) with ESMTPSA (Nemesis) id 0MXrmL-1qf3VM2Bt9-00WoGt for ; Fri, 16 Jun 2023 02:51:23 +0200 Content-Language: en-US X-Provags-ID: V03:K1:n5NdgLrlosSSTv7x3qPzw3xuNFsyE4hNJYcslutFjL5cnGdLrkA XsHSsjqU05Dlcql/UX3lU2MYRdAvRir3EWRBHkD3+0iScrAUC57LPZl7mezed7IrbJ+/RIb mMcwKo2TkI6LkWTq5a2pPQY4FtjogtBPPxKAk+n3lp1aQVvVr1x+vLoWHqi58RFdEjkZNDE HRggJHNvxT5Pt7pcB5BQQ== UI-OutboundReport: notjunk:1;M01:P0:HgSg2kwoyAU=;EbXLWUwX+xkKmQHeXUbHJfdNx44 9egF6Ml/BIXK2IS/9DRrjUpfk448tcsQI3paVJi/J8XVQLOu0bW8JXS4g8iM3fHNO7L+lAnX7 CiwfVsKYWgXgpj1ZgW8wPBxtfWQzlrpyCwJm5NFMMTjgGJ7CjWmFewFYpUqCmrQRwmT+vLnno zeLjHbgXnr7hvmgHW730GKEdIPgiexISo5Ej3kpUulJekIVqwAVnbQqmfOWHkj2dqe1Xm5xPu jQb6CaB/XfLXisG6+z1+gVaSwY7RGo5jdoqroglS9eRBPwr3kDwyq73I6coi9bzIpIdwIzuPK Fa+zYtzFFa2Lp7rTBlpWOqmjRYL6u3WNqDXJosWNARGzw3MQ8V1MReY/a15E89FExKyg6qoBN Q9dlslhcP4Ntbxhftsc4cDpUPv8Y1nfxnyrgz+vxtKcVcUqCXiuSgLK3DIqD8ZiblrTH4GICI ZVXrUR5YopZRCsdZQKzSOJalB8Q+NWsnXjvZf2H+NUEORC8edmKcIhixN+Hr2C5jfCInLlPaQ Ttt8PVYj/Kv48t+h3ydsE7Bld+gcHHaCsCO2Uj2dNCKkRGIxhEu3VBxOJDX351y5DMwcNbgkR m4LkqwaMzUVh+J8nVwoZtVWunk2IVBIZjHw0cOHF22XaJtQz3CV66JeJLoy2GZsN77kYlWYfc xJTk0qSP39EIs7vLurGNeUtC95vRpU/dbSI03139MQ== X-Original-Sender: agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org X-Original-Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org designates 74.208.4.196 as permitted sender) smtp.mailfrom=agents-FcZObrvlYduBUy7/sJONFg@public.gmane.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=meddatainc.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:32830 Archived-At: I decided to rewrite the custom html-filter I have been working on. Althoug= h it works pretty well, it does some convoluted processing of my markdown d= ocument. So, in the interest of furthering my understanding of writing lua code for = pandoc and improving my code quality, I decided to experiment using the tra= versal directive 'topdown' and allowing for different processing depending = on some variable. I found the following code for a filter on the 'net and d= ecided to cut it down and start experimenting: https://stackoverflow.com/questions/72752648/pandoc-lua-how-to-walk-inside-= a-div The filter code I am experimenting with is: local div1filter =3D { =C2=A0=C2=A0=C2=A0 traverse =3D 'topdown', =C2=A0=C2=A0=C2=A0 Header =3D function(el) =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 el.identifier =3D {} =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 return el =C2=A0=C2=A0=C2=A0 end, =C2=A0=C2=A0=C2=A0 Div =3D function(div) =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 local filter =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 if (div.level =3D=3D 1) then =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 filter =3D div2fil= ter =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 else =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 filter =3D div1fil= ter =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 end =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 return div:walk(filter), false =C2=A0=C2=A0=C2=A0 end } local div2filter =3D { =C2=A0=C2=A0=C2=A0 traverse =3D 'topdown', =C2=A0=C2=A0=C2=A0 Header =3D function(el) =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 el.identifier =3D 'test' =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 return el =C2=A0=C2=A0=C2=A0 end } --=C2=A0=C2=A0=C2=A0 pandoc main function Pandoc =3D function(doc) =C2=A0=C2=A0=C2=A0 return doc:walk(div1filter) end My code above simply removes the header identifier if a header is level 1 a= nd if the header has any other level it replaces the identifier with 'test'= . The only purpose of the code is to increase my understanding of selective= filter processing and using the 'topdown' directive. However, despite the Pandoc function being identical to on the webpage, it = fails on the return statement complaining that it expected a string but got= a table. I am sure there is some very simple error that I as a beginning pandoc code= r have yet to pick up... --=20 You received this message because you are subscribed to the Google Groups "= pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/= pandoc-discuss/0bb80078-e128-4a1d-064e-8be88b4c42d4%40meddatainc.com.