From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.text.pandoc/28318 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: BPJ Newsgroups: gmane.text.pandoc Subject: Re: AST segments replacement Date: Sun, 9 May 2021 20:19:45 +0200 Message-ID: References: Reply-To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000362aef05c1e9b569" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33861"; mail-complaints-to="usenet@ciao.gmane.io" To: pandoc-discuss Original-X-From: pandoc-discuss+bncBCWMVYEK54FRBTGP4CCAMGQEPA2ZRGY-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Sun May 09 20:20:00 2021 Return-path: Envelope-to: gtp-pandoc-discuss@m.gmane-mx.org Original-Received: from mail-lj1-f187.google.com ([209.85.208.187]) by ciao.gmane.io with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lfo23-0008ee-CQ for gtp-pandoc-discuss@m.gmane-mx.org; Sun, 09 May 2021 20:19:59 +0200 Original-Received: by mail-lj1-f187.google.com with SMTP id e20-20020a2ea5540000b02900d5ea7fbff4sf8111844ljn.23 for ; Sun, 09 May 2021 11:19:59 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1620584399; cv=pass; d=google.com; s=arc-20160816; b=GaVoFDfAyXgZJZmuJ8kNomB5YxquDg0w2+xzAVA5fi0sQludp/VXfhCs+KuFGetxdR 6Q62ywKlvYYbsTqoMG0oCSTOfKf/4otezwbuBIudOuMRdkfLgUiCX80OoVponAMow/20 PZQmHXXL8OtZ6KCUfK8s0G8rl4FJl1WYX+qiHGD1ZeNBYwyD6XC7P/zvQ5lwtqhYWp12 dq9N2q75q6KR/ICv7R4oxrgy1hygS4tLk91Uct0tgK4+/FShFrRj/w6RmsjRk8ciFFr/ 03vFCGmlygaazbFyfzqdqJhH4zHVh+NpMHuj9TrS3kZy5RAGt4iDK2OqzddNk5BqL3JG xPOw== 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:to:subject:message-id:date :from:in-reply-to:references:mime-version:sender:dkim-signature :dkim-signature; bh=FIS2Wlw2kaDU9U5Zzgzzp0I+FpsbF763qFuG44SkAYQ=; b=VhZEk2+gRIGfedxClzKT1tz1pgZ7p6JmGdWLn2+g1EDclqU84aNQ2eHPylh/xViClK ZrPTk7NaR4WURr0vOh735gV/3cAG31HCu0Wj7p2hXd0R9SrS8gCU+IU/qubMVFwF7XgM +96plHwi5uilNKGa/X7nR3sHtWVfxtbGcR0NMXygMR46jyuyXJUYiIky6w9/lXjmoX2K hencIeGb5tGb36v36RcIQxdZtOfwPVkMgADmChD8y+4Db/Y7V+M4IkbEeecgctfA9hql kX2P+qSpEoPbWZxeksnv1m9JtmOqOYImB9Qb5Bcu4WkALV6j0YR8YTLwQ+xAd355llNT rFxA== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=g9f256bN; spf=pass (google.com: domain of melroch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2a00:1450:4864:20::231 as permitted sender) smtp.mailfrom=melroch-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=20161025; h=sender:mime-version:references:in-reply-to:from:date:message-id :subject:to:x-original-sender:x-original-authentication-results :reply-to:precedence:mailing-list:list-id:list-post:list-help :list-archive:list-subscribe:list-unsubscribe; bh=FIS2Wlw2kaDU9U5Zzgzzp0I+FpsbF763qFuG44SkAYQ=; b=p5skyC3VepNlu2qHPa5zcZz+uF/1sMxF+cHfRqM0KRGOgdpwO3rKb/1MohR9NyEGat lqRSZkC30KWVSjtFG8y/9CBQVaU/HGQRT9jTTTxbMQkKL/0B9Flvh0yRRaf8NTfooxax mA/Xb9EwcssCLkeQEdJte2aVt0Bt0nY36p77dMt7ijrqjrw5/hJ084nnU2XIOWcNvEQG hmGC+F5Og8sTUTRD25KyM9omux8XyWJw5SBtW3tPblDBZnPEmdGcTmGrJOHpHGGnLmbx YFbyfFNLDWKg8p0LVFudTkPcxToUNYijGA2kwIK+t/0F1sEesWs6kA9SqWTyb6WmEcR7 zKSg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :x-original-sender:x-original-authentication-results:reply-to :precedence:mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=FIS2Wlw2kaDU9U5Zzgzzp0I+FpsbF763qFuG44SkAYQ=; b=PlhwMRkzqU2OYy5N9J67UiC9Msayf9OmqOEuFycll8fPraGUp/EUSd5YYKv/BuB5L7 IDKsQz0x8mLApWgAuuwoAud1X7KfayKw8ER46xtB//9sEutiYmXCWVtP9Pgzjhhc7/17 tKVa9CfqqfXVm8TDqbPJ+RYLgIbMcPmKVrAkn6v9/5c3oWGSrsIS8qRrISTcVxgh63j3 RWO9DY30E3KCHvBcj7INqezaDJB87oUp9sKoV6nw0GSLAIkfcThe0WnVSTZJvxgrNOOL 18J6kFp0392jPJzFsSOiSCoZH92T66CFU8+p+Je0M6bM+ylxY40II6zdqo3/pqi43nz3 c2tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:mime-version:references:in-reply-to:from :date:message-id:subject:to:x-original-sender :x-original-authentication-results:reply-to:precedence:mailing-list :list-id:x-spam-checked-in-group:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=FIS2Wlw2kaDU9U5Zzgzzp0I+FpsbF763qFuG44SkAYQ=; b=ByB+Nr6pHeY6B08INaBeU7RGkabAXj05iZYoR4Lm+JLvqlYkourRyQULXZ4G0yaWr5 0aaEkeK3/2hdWNbT6/RLEN1hMFGmbrw+iQR2AGliVqAOp/Hw68W3xgogklZ9Pr1KqrLu J/b3vyttkhXlaozrazqgmJ5LIDIg4KBS5JEHdRUTePLkRgNBa//5e9qz0jc4Bl+FwlGS fdWLm6a27SZLTiAokSUsb93A7ca48I3Xi1jAZRDl28aamtoakboBjgkgnCY+geXTKdr8 NnuxtxfCKoGyOq/HtHfZlhDZe55QEC+wbzpLbU5I0z5bKBbE5YlA2zT4Ny0keowCXqut Hb0w== Original-Sender: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org X-Gm-Message-State: AOAM533yXyksKxT0adlhsu7FAUKOOy0RXOtSYLpfk67qU92TyOaT4bcy Wxo7I9dDqo6zz2MxRLRpAn4= X-Google-Smtp-Source: ABdhPJxf6x5I0JAITKpgdpYIz9+kQf14rHgt6nwzDJYCk3P3POY7ms7nafh3RvOAK2eICQzxdYTBJg== X-Received: by 2002:a05:6512:20f:: with SMTP id a15mr13963970lfo.531.1620584398839; Sun, 09 May 2021 11:19:58 -0700 (PDT) X-BeenThere: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org Original-Received: by 2002:a2e:bf0f:: with SMTP id c15ls2489421ljr.9.gmail; Sun, 09 May 2021 11:19:55 -0700 (PDT) X-Received: by 2002:a2e:9c07:: with SMTP id s7mr17243345lji.26.1620584395679; Sun, 09 May 2021 11:19:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620584395; cv=none; d=google.com; s=arc-20160816; b=rCly34jG1KUS++yCSgNcaufurgDAegOIWo7M91KBiHT/J9UOIJWt8+h3TP7I2IZ+Ds Yw4u1YaBjr8A9xLpAzRc1IU/Cxc9x7zGlpRn8x1J94AXI8QBU486Dj8HbS39QcKvPo4I fKpYNdPR0PnPOuhvQHTE19m6JdoefzjwL4PHCWbaO3jPoP+4vSFmbIiZ1rciN+3cmLLB xB0CiuY8xgLeCaXeFYBEEygUCJPCgI7iZAUg/ukhuSXx9RhkmqRTsNmIdtMDjpqQuhkh n/9xJlKcwfzqlkMRwJrA1B3U8tTRC98/t+yVzeCkYwoTBFad4+DGDbvUnb99npiOImqY 9ptw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=851LgDfA7sEPBWsta48KcjqWgqilkzCLWDh0/of2fY0=; b=SD8JnvQF6tN+dc0kniWpvomym64CqVj4GBn2dnQQ1DtKh23WvIgm06shnlfnprJlCS ZOpVwZOYYb5PgKshGSId55NPhdf/n0fJd2D+q9Oh8tQPzipgb7WUYPPuGJoDmWjfWBl7 CW3Lur3GMh0/EKU49OJwtPg9oLK3deKQgzZi3DNuq4gc9coKiPubVq4434QMaQp2QmYX TeNRYYeQIXgvAhArKU6QQWQdqcCQ3wDwJ1jGS4/wwXtHp0kB2UkvqXXiFTmFRq2I5Y67 bqBNaXcRMOHf38aP8X5r/EEs+9JPLIQMR8C/e5c9MLlxVlDSpNfeblIFWj4PTicuaRU6 QNKA== ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=g9f256bN; spf=pass (google.com: domain of melroch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2a00:1450:4864:20::231 as permitted sender) smtp.mailfrom=melroch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Original-Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com. [2a00:1450:4864:20::231]) by gmr-mx.google.com with ESMTPS id u22si644581lfu.7.2021.05.09.11.19.55 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 09 May 2021 11:19:55 -0700 (PDT) Received-SPF: pass (google.com: domain of melroch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2a00:1450:4864:20::231 as permitted sender) client-ip=2a00:1450:4864:20::231; Original-Received: by mail-lj1-x231.google.com with SMTP id b21so17980818ljf.11 for ; Sun, 09 May 2021 11:19:55 -0700 (PDT) X-Received: by 2002:a2e:894e:: with SMTP id b14mr17421487ljk.170.1620584395319; Sun, 09 May 2021 11:19:55 -0700 (PDT) In-Reply-To: X-Original-Sender: melroch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=g9f256bN; spf=pass (google.com: domain of melroch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org designates 2a00:1450:4864:20::231 as permitted sender) smtp.mailfrom=melroch-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:28318 Archived-At: --000000000000362aef05c1e9b569 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable You might find this filter of mine useful: https://github.com/bpj/pandoc-list-table Den s=C3=B6n 9 maj 2021 18:24Anton Sharonov skre= v: > Hi all, > > Working in markdown as primary input and using pandoc to generate > my target output formats, I have some inconveniences with > formatting my tables in markdown and would appreciate ideas how > to solve them. (For what it worth, the output in my case is > exclusively docx but that doesn't really matter I guess). > > # Problem definition > > ## Replacement of individual words in the table > > Sometimes it is tempting to use some macro pre-processing of the > source markdown file to substitute individual words (like name of > customer, postal addresses or phone numbers). It is very easy to > do using some python or perl scripting (my personal favorites for > such things are m4 and sed). It woks very nice in all "normal" > parts of the markdown source. However if such replacement is made > inside markdown table, it usually destroy table layout, making parsing > of the table incorrect. > > ## "Word" is too long > > Sometimes "Word" is just too long for the table column to fit. > > Disclaimer: perhaps there is some syntax existing already in some > of pandoc extensions of plain markdown format, which would permit > to "concatenate" the "word", started on one line, with > continuation of that word, defined on another line. If such > syntax already exits, please excuse my ignorance. I tried to find > such syntax in docs and via internet - without success. > > Examples of such "words" are often happen to me in German writing > ("Qualit=C3=A4tssicherungsma=C3=9Fnahmen" for example alone eats 28 chars > already, in some of the narrow columns of an average table in > markdown this word has no chances to fit into). Another example > can be full qualified file names, which are often used in > technical documentation: > > /usr/x86_64-pc-cygwin/lib/ldscripts/i386pe.xbn > > I think sooner or later everybody who work with markdown > documents will stumble on such problem. > > ## Complications by cell content growing over time > > After table is created initially, there are often need to append > or re-phrase something. In all those steps it is pretty hard to > maintain. Especially big pain in such operation if cell contain > something not trivial formatting, like lists. > > Of course one can imagine some plug-ins for text editors (my live > changed when I learned "Table Mode" vim plug-in). Another > strategy: it is possible to convert your intermediate markdown > version to your favorite office tool format, extend table with > some WYSIWYG tool of your choice, convert again to markdown. In > all those cases you however miss the power of plain markdown > editing. As a result, you tend to avoid using tables or reduce > their usage to the minimum. By the way, sometimes converting back > from office tool format to markdown you will experience those > "Word is too long" effect in the generated markdown, which you > need to quickly fix somehow, to proceed with your main task at > hands. > > # Proposed solution > > Idea is to permit some syntax for definition of named segments of > Abstract Syntax Tree (AST) ("Definition of AST segments"), and > provide some way to "inject" those segments inside the AST > ("Definition of replacement pointers"). Definition of segments as > well as pointers has to be removed after "injection" of segments > is done from the final AST representation, so that the end > document (pdf or whatever) has everything substituted and all > foreign markup removed. > > Proof-of-concept version of that solution is implemented and > seems to work via lua script. It actually uses ugly, but easy to > parse syntax to definite AST segments and replacement pointers in > source markdwon. Now I am looking forward for more elegant > definition and would very appreciate any thoughts or feedback, to > compensate for my ignorance of many markdown syntax extensions > existing so far, which may conflict with my syntax. Specifically, > my preference is for the moment with inline Math syntax > (identifier enclosed in pair of \$-signs). May be some Math > experts out there will tell immediately that it is bad idea, who > knows. > > Or even perhaps whole problem and specifically listed use cases > has some easier and more elegant existing solution. > > Anyway, here we go. The details of the syntax proposed below. > > ## Definition of replacement pointers > > Replacement pointer for "AST-segments" replacement can be defined > within normal markdown content using inline Math expression. Such > expression has to contain without any blanks single identifier. > Rules for identifier naming are described in **Definition of > "AST-segments"** / **Rules for identifier naming**. Same > identifier has to be used in segment definition know, what to > "inject" at the position of every replacement pointer. > > Example table which demo the syntax of replacement pointers: > > > +------------------------------+---------------+---------------+---------= -----------+ > | Change log | Author #1 | Author #2 | > Date | > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D+ > | Some long text in Cell 2:1, | Fred | Wilma | 3000 > Y.b.C. | > | which do not contain | Flinstone | Flinstone > | | > | anything interesting | | > | | > > +------------------------------+---------------+---------------+---------= -----------+ > | Almost $ALM_NTH_H1$ nothing | Yabba-Dabba-D | Wilma F. | 2999 > Y.b.C | > | happened | | > | | > > +------------------------------+---------------+---------------+---------= -----------+ > | Here $ALMOST_NTH_H2$, but we | $YABBDBBD_S$ | $YABBDBBD3$ | 2998.5 > Y.b.C | > | had a dedicated revision for | | > | | > | that last time and now we | | > | | > | have it again | | > | | > > +------------------------------+---------------+---------------+---------= -----------+ > > Same table, after AST segments are "injected" (injection is just > approximately demonstrated, AST state is almost like this but not > exactly like this: broken words are continued on next line using > =E2=86=92 symbol, as in "Yabba-Dabba-Doo, Senior" substitution, otherwise > we would need to dramatically increase column width to fit them): > > > +------------------------------+---------------+---------------+---------= -----------+ > | Change log | Author #1 | Author #2 | > Date | > > +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D+ > | Some long text in Cell 2:1, | Fred | Wilma | 3000 > Y.b.C. | > | which do not contain | Flinstone | Flinstone > | | > | anything interesting | | > | | > > +------------------------------+---------------+---------------+---------= -----------+ > | Almost nothing happened, | Yabba-Dabba-D | Wilma F. | 2999 > Y.b.C | > | except for: | | > | | > | | | > | | > | - Wilma was biten by a snake | | > | | > | - Fred invented fire | | > | | > > +------------------------------+---------------+---------------+---------= -----------+ > | Here almost nothing | Yabba-Dabba-D | Yabba-Dabba-D | 2998.5 > Y.b.C | > | happened, but we had a | =E2=86=92oo, Senior | =E2=86=92oo, III= (and > | | > | dedicated revision for that | | greatest) > | | > | last time and now we have it | | > | | > | again | | > | | > > +------------------------------+---------------+---------------+---------= -----------+ > > ## Definitions of AST segments > > Here we have for our example table corresponding definition of > AST segments for replacement. They will be removed from the final > state of AST and by that from final representation of the document. > > $ALM_NTH_H1$ =3D Almost nothing happened, except for: > > - Wilma was biten by a snake > - Fred invented fire > > $ALMOST_NTH_H2$ =3D almost nothing happened $END$. Everything past > \$END\$ segment finishing identifier till the end of paragraph > is ignored. > > This text is not part of any segment definiton - definition > of \$ALMOST_NTH_H2\$ is explicitly terminated. > > $YABBDBBD_S$ =3D Yabba-Dabba-Doo, Senior > > $YABBDBBD3$ =3D Yabba-Dabba-Doo, III (and greatest) > > $END$ > > Every segment definition has to start in the new paragraph and be > the first element of it. > > Segment definition is introduced by an inline Math expression, > containing without any blanks single identifier. > > **Rules for identifier naming** > > Rules for identifier naming are like in Java or C - start by non > digit followed by any number of underscore '\_' or letters or > digits. Identifiers are case sensitive. > > Segment definition has to be either explicitly finalized by > reserved identifier \$END\$, or it is finalized implicitly when > next segment definition is started. > > Everything, what is situated after \$END\$ identifier in segment > definition till the end of current paragraph is completely > ignored. > > If segment definition contains only one paragraph, segment > content will be inserted instead of segment replacement pointer > into source paragraph, allowing for replacement of individual > words or groups of words (as in $ALMOST_NTH_H2$ example). > > If segment definition contains more than one paragraph (as in > $ALM_NTH_H1$ example), replacement is done for the complete > paragraph, which mentions replacement pointer. This way we can > put numbered or ordered lists conveniently into markdown table. > Also we can "outsource" content of some heavy cells, which could > save lot of time especially when maintaining existing markdown > tables. > > With best regards, Anton > > -- > 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 > email 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/d29c90a4-0f89-45c7-ad33-= 4a59b8ab0c33n%40googlegroups.com > > . > --=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/CADAJKhA4R6F-%2Bo24Z6PCfPbVi-Nrm0rc7e0vxQpDei6AsiRBOQ%40mail= .gmail.com. --000000000000362aef05c1e9b569 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
You might find this filter of mine useful:


Den s=C3=B6n= 9 maj 2021 18:24Anton Sharonov <anton.sharonov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> skrev:
Hi all,

Working in markdown as primary input and using pan= doc to generate
my target output formats, I have some inconveniences wit= h
formatting my tables in markdown and would appreciate ideas how
to = solve them. (For what it worth, the output in my case is
exclusively doc= x but that doesn't really matter I guess).

# Problem definition<= br>
## Replacement of individual words in the table

Sometimes it = is tempting to use some macro pre-processing of the
source markdown file= to substitute individual words (like name of
customer, postal addresses= or phone numbers). It is very easy to
do using some python or perl scri= pting (my personal favorites for
such things are m4 and sed). It woks ve= ry nice in all "normal"
parts of the markdown source. However = if such replacement is made
inside markdown table, it usually destroy ta= ble layout, making parsing
of the table incorrect.

## "Word&= quot; is too long

Sometimes "Word" is just too long for th= e table column to fit.

Disclaimer: perhaps there is some syntax exis= ting already in some
of pandoc extensions of plain markdown format, whic= h would permit
to "concatenate" the "word", started = on one line, with
continuation of that word, defined on another line. If= such
syntax already exits, please excuse my ignorance. I tried to find<= br>such syntax in docs and via internet - without success.

Examples = of such "words" are often happen to me in German writing
(&quo= t;Qualit=C3=A4tssicherungsma=C3=9Fnahmen" for example alone eats 28 ch= ars
already, in some of the narrow columns of an average table in
mar= kdown this word has no chances to fit into). Another example
can be full= qualified file names, which are often used in
technical documentation:<= br>
/usr/x86_64-pc-cygwin/lib/ldscripts/i386pe.xbn

I think sooner= or later everybody who work with markdown
documents will stumble on suc= h problem.

## Complications by cell content growing over time
After table is created initially, there are often need to append
or re-= phrase something. In all those steps it is pretty hard to
maintain. Espe= cially big pain in such operation if cell contain
something not trivial = formatting, like lists.

Of course one can imagine some plug-ins for = text editors (my live
changed when I learned "Table Mode" vim = plug-in). Another
strategy: it is possible to convert your intermediate = markdown
version to your favorite office tool format, extend table with<= br>some WYSIWYG tool of your choice, convert again to markdown. In
all t= hose cases you however miss the power of plain markdown
editing. As a re= sult, you tend to avoid using tables or reduce
their usage to the minimu= m. By the way, sometimes converting back
from office tool format to mark= down you will experience those
"Word is too long" effect in th= e generated markdown, which you
need to quickly fix somehow, to proceed = with your main task at
hands.

# Proposed solution

Idea is = to permit some syntax for definition of named segments of
Abstract Synta= x Tree (AST) ("Definition of AST segments"), and
provide some = way to "inject" those segments inside the AST
("Definitio= n of replacement pointers"). Definition of segments as
well as poin= ters has to be removed after "injection" of segments
is done f= rom the final AST representation, so that the end
document (pdf or whate= ver) has everything substituted and all
foreign markup removed.

P= roof-of-concept version of that solution is implemented and
seems to wor= k via lua script. It actually uses ugly, but easy to
parse syntax to def= inite AST segments and replacement pointers in
source markdwon. Now I am= looking forward for more elegant
definition and would very appreciate a= ny thoughts or feedback, to
compensate for my ignorance of many markdown= syntax extensions
existing so far, which may conflict with my syntax. S= pecifically,
my preference is for the moment with inline Math syntax
= (identifier enclosed in pair of \$-signs). May be some Math
experts out = there will tell immediately that it is bad idea, who
knows.

Or ev= en perhaps whole problem and specifically listed use cases
has some easi= er and more elegant existing solution.

Anyway, here we go. The detai= ls of the syntax proposed below.

## Definition of replacement pointe= rs

Replacement pointer for "AST-segments" replacement can = be defined
within normal markdown content using inline Math expression. = Such
expression has to contain without any blanks single identifier.
= Rules for identifier naming are described in **Definition of
"AST-s= egments"** / **Rules for identifier naming**. Same
identifier has t= o be used in segment definition know, what to
"inject" at the = position of every replacement pointer.

Example table which demo the = syntax of replacement pointers:

+------------------------------+----= -----------+---------------+--------------------+
| Change log=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 | Author #1=C2=A0=C2=A0=C2=A0=C2=A0 | Author #2=C2= =A0=C2=A0=C2=A0=C2=A0 | Date=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
+=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
= | Some long text in Cell 2:1,=C2=A0 | Fred=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 | Wilma=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 | 3000 Y.b.C.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| which do= not contain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | Flinstone=C2= =A0=C2=A0=C2=A0=C2=A0 | Flinstone=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 |
| anything interesting=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 |
+------------------------------+---------------+---= ------------+--------------------+
| Almost $ALM_NTH_H1$ nothing=C2=A0 |= Yabba-Dabba-D | Wilma F.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 2999 Y.b.C=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| happened=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 |
+------------------------------+---------------+= ---------------+--------------------+
| Here $ALMOST_NTH_H2$, but we | $= YABBDBBD_S$=C2=A0 | $YABBDBBD3$=C2=A0=C2=A0 | 2998.5 Y.b.C=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 |
| had a dedicated revision for |=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| that last time and = now we=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 |
| have it again=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
+--------------------------= ----+---------------+---------------+--------------------+

Same tabl= e, after AST segments are "injected" (injection is just
approx= imately demonstrated, AST state is almost like this but not
exactly like= this: broken words are continued on next line using
=E2=86=92 symbol, a= s in "Yabba-Dabba-Doo, Senior" substitution, otherwise
we woul= d need to dramatically increase column width to fit them):

+--------= ----------------------+---------------+---------------+--------------------= +
| Change log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | Author #1=C2=A0=C2=A0= =C2=A0=C2=A0 | Author #2=C2=A0=C2=A0=C2=A0=C2=A0 | Date=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
+= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D+
| Some long text in Cell 2:1,=C2=A0 | Fred=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | Wilma=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | 3000 Y.b.C.=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 |
| which do not contain=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 | Flinstone=C2=A0=C2=A0=C2=A0=C2=A0 | Flinstone=C2=A0=C2=A0= =C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| anything inte= resting=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
+-----------------------= -------+---------------+---------------+--------------------+
| Almost n= othing happened,=C2=A0=C2=A0=C2=A0=C2=A0 | Yabba-Dabba-D | Wilma F.=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0 | 2999 Y.b.C=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0 |
| except for:=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
|=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= |
| - Wilma was biten by a snake |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| - Fred invented fire=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 |
+------------------------------+---------------+= ---------------+--------------------+
| Here almost nothing=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | Yabba-Dabba-D | Yabba-Dabba-D = | 2998.5 Y.b.C=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| happened, but we = had a=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | =E2=86=92oo, Senior=C2=A0=C2=A0= | =E2=86=92oo, III (and |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| d= edicated revision for that=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | greatest)=C2=A0=C2=A0=C2=A0= =C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
| last time and now w= e have it |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= |
| again=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |
= +------------------------------+---------------+---------------+-----------= ---------+

## Definitions of AST segments

Here we have for ou= r example table corresponding definition of
AST segments for replacement= . They will be removed from the final
state of AST and by that from fina= l representation of the document.

$ALM_NTH_H1$ =3D Almost nothing ha= ppened, except for:

- Wilma was biten by a snake
- Fred invented = fire

$ALMOST_NTH_H2$ =3D almost nothing happened $END$. Everything p= ast
\$END\$ segment finishing identifier till the end of paragraph
is= ignored.

This text is not part of any segment definiton - definitio= n
of \$ALMOST_NTH_H2\$ is explicitly terminated.

$YABBDBBD_S$ =3D= Yabba-Dabba-Doo, Senior

$YABBDBBD3$ =3D Yabba-Dabba-Doo, III (and g= reatest)

$END$

Every segment definition has to start in the n= ew paragraph and be
the first element of it.

Segment definition i= s introduced by an inline Math expression,
containing without any blanks= single identifier.

**Rules for identifier naming**

Rules for= identifier naming are like in Java or C - start by non
digit followed b= y any number of underscore '\_' or letters or
digits.=C2=A0 Iden= tifiers are case sensitive.

Segment definition has to be either expl= icitly finalized by
reserved identifier \$END\$, or it is finalized impl= icitly when
next segment definition is started.

Everything, what= is situated after \$END\$ identifier in segment
definition till the end= of current paragraph is completely
ignored.

If segment definitio= n contains only one paragraph, segment
content will be inserted instead = of segment replacement pointer
into source paragraph, allowing for repla= cement of individual
words or groups of words (as in $ALMOST_NTH_H2$ exa= mple).

If segment definition contains more than one paragraph (as in=
$ALM_NTH_H1$ example), replacement is done for the complete
paragrap= h, which mentions replacement pointer. This way we can
put numbered or o= rdered lists conveniently into markdown table.
Also we can "outsour= ce" content of some heavy cells, which could
save lot of time espec= ially when maintaining existing markdown
tables.

= With best regards, Anton

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pandoc-discuss+unsubscribe-/JYPxA39Uh4Ykp1iOSErHA@public.gmane.org= m.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/d29c90a4-0= f89-45c7-ad33-4a59b8ab0c33n%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups &= quot;pandoc-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to pand= oc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To view this discussion on the web visit https://group= s.google.com/d/msgid/pandoc-discuss/CADAJKhA4R6F-%2Bo24Z6PCfPbVi-Nrm0rc7e0v= xQpDei6AsiRBOQ%40mail.gmail.com.
--000000000000362aef05c1e9b569--