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 --]
next prev 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).