public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: Kolen Cheung <christian.kolen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: pandoc-discuss <pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: Filter with arguments
Date: Fri, 6 Jan 2017 15:10:02 -0800 (PST)	[thread overview]
Message-ID: <1239e0f1-2538-4781-8a75-90c59f86aabc@googlegroups.com> (raw)
In-Reply-To: <20170106114647.GG791-BKjuZOBx5Kn2N3qrpRCZGbhGAdq7xJNKhPhL2mjWHbk@public.gmane.org>


[-- Attachment #1.1: Type: text/plain, Size: 3539 bytes --]



Oops! Sorry again to have a duplicated post… a post on the same topic is in pandoc-discuss/support 
arguments on filters 
<https://groups.google.com/d/msg/pandoc-discuss/Wb20JhBlQLE/72zsvBbEU4sJ>.

To compensate, let me wrote a combined summary of both posts (please expand 
or correct if incomplete/incorrect):
<#>Current method 
   
   1. pipe it through
      - Cons: 
         - the filter would not know the output format without duplication
            - related question: how to pass output format when using pandoc 
            -t json | filter1 ... | ...? e.g. I often see filters checking 
            the output format from the json rather than the 1st arg. 
         - ugly, “unnecessary” pipe 
      - Questions: how about Windows users? Does it work the same way? 
   2. Metadata, either through YAML or -M command line option
      - Cons:
         - treated as Markdown 
         - metadata key collision (e.g. hierarchy of metadata key is 
         needed, which make it uglier) 
      3. panzer 
      - Cons:
         - extra dependency 
         - written in Python (for filter not written in Python it is not 
         desirable) 
         - it has its own rules (which some *might* not like) 
      4. environmental variables
      - Cons: suffer the same deficiency of -M option in (2) 
      - Questions: how about Windows users? Does it work the same way? 
      (@bpj has mentioned it is a pain to do so.) 
   
Comments:

As as filter writer, one would want their filter as easy to use as 
possible, and as few extra dependencies as possible. These criteria 
eliminates (1, 4) for easiness and (3) for dependencies. This leaves (2) as 
the only viable solution, which still has some cons needed to be dealt 
with. I personally don’t worry too much about things treated as Markdown, 
but metadata key collision is unavoidable if one want short, easy to 
remember keys (e.g. pantable -s -t csv, anyone used to pandoc will almost 
be able to remember this.).

In addition, the above discussion hasn’t covered the case that one might 
want to write a program that can acts as both a filter and a standalone 
cli. e.g. I am thinking about using -s to indicate it is a standalone cli 
(and without it, a pandoc filter). Using -M means the options is parsed 
differently (and duplicated) in these 2 cases.
<#>Suggested method 
   
   1. -O key=value/--filter-option=KEY:VAL/--filter-args/--filter-arguments
      - Cons
         - what if there’s multiple filters? special ordering is needed. 
      2. -F "filter --split --on --hyphens"/-F filter --split --on --space
      - Cons:
         - pandoc is already passing the output format as the 1st arg 
         - potentially break existing ill-named filters 
      
Comments:

Just for the sake of letting the -F option be backward compatible, (1) 
might be better. But either way it will be fine with me.
​

-- 
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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/1239e0f1-2538-4781-8a75-90c59f86aabc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

[-- Attachment #1.2: Type: text/html, Size: 21206 bytes --]

  parent reply	other threads:[~2017-01-06 23:10 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-06  4:32 [Feature Request] " Kolen Cheung
     [not found] ` <e8cf9c92-7aa7-4841-85d0-7464c771cf6e-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2017-01-06 11:46   ` John MacFarlane
     [not found]     ` <20170106114647.GG791-BKjuZOBx5Kn2N3qrpRCZGbhGAdq7xJNKhPhL2mjWHbk@public.gmane.org>
2017-01-06 12:27       ` Joost Kremers
     [not found]         ` <8760ls8jby.fsf-97jfqw80gc6171pxa8y+qA@public.gmane.org>
2017-01-06 12:58           ` John MacFarlane
     [not found]             ` <20170106125852.GA1662-BKjuZOBx5Kn2N3qrpRCZGbhGAdq7xJNKhPhL2mjWHbk@public.gmane.org>
2017-01-06 18:32               ` BPJ
     [not found]                 ` <CADAJKhCPn81DsWpzWSQHv59ii+SLXmz4Ww5ru1mSmP4eRQozow-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-06 18:42                   ` Matthew Pickering
     [not found]                     ` <CALuQ0m8Jx2N_nKKOL5i5pNM9houf_iUe2Z54uWeajm2oVEZW5w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-06 19:47                       ` BPJ
2017-01-06 21:11                       ` John MacFarlane
     [not found]                         ` <20170106211115.GA30105-l/d5Ua9yGnxXsXJlQylH7w@public.gmane.org>
2017-01-06 21:36                           ` BPJ
2017-01-08 19:40               ` Joost Kremers
2017-01-06 23:10       ` Kolen Cheung [this message]
     [not found]         ` <1239e0f1-2538-4781-8a75-90c59f86aabc-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2017-01-07 19:05           ` BP Jonsson
     [not found]             ` <c21c773d-c958-2e55-725d-90863f5f9792-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-01-07 20:51               ` Kolen Cheung
     [not found]                 ` <de2e97b1-17a4-4f70-8c17-b3cd960dceb2-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2017-01-07 22:53                   ` BP Jonsson
     [not found]                     ` <CAFC_yuTR=2UQZPN4EFbKTCOAwR9tOoS1+sYy5rLRViNo908s-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-08  9:09                       ` John MacFarlane
     [not found]                         ` <CADAJKhAwBq+mxsimD83aefMEUCm025i5QaNvfpGBzrAWrB7atQ@mail.gmail.com>
     [not found]                           ` <CADAJKhACOpd-yQHTBTrL4VbCg8zyGiJX7WwECsifGtihbyyzCA@mail.gmail.com>
     [not found]                             ` <CADAJKhACOpd-yQHTBTrL4VbCg8zyGiJX7WwECsifGtihbyyzCA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-01-08 11:21                               ` Melroch
2017-01-08 20:51   ` [Feature Request] " Kolen Cheung
     [not found]     ` <434dc10f-02a1-4bbc-a41c-3a29398ca635-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2017-01-09 11:26       ` BP Jonsson
     [not found]         ` <CAFC_yuRuuDDfbok7Gds-kdj_ySqvpF0psnTUn0-TRvdEhRUs+Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-08-06 23:33           ` Kolen Cheung
2018-06-20 14:58   ` Peter Zagubisalo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1239e0f1-2538-4781-8a75-90c59f86aabc@googlegroups.com \
    --to=christian.kolen-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).