From: Kolen Cheung <christian.kolen-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: pandoc-discuss <pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Cc: mf-+Z+QprJ1jbpwFuiNLMe2Ig@public.gmane.org
Subject: Re: Markdown, tables and CSV
Date: Tue, 29 Nov 2016 18:06:40 -0800 (PST) [thread overview]
Message-ID: <e6213b58-11e9-4948-80c2-650347e26c2e@googlegroups.com> (raw)
In-Reply-To: <7e398825-a285-4e73-ad3d-908f1f141589-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
[-- Attachment #1.1: Type: text/plain, Size: 3056 bytes --]
Idempotent in this case means pantable and pantable2csv are “inverse” to
each other. e.g. pandoc -t markdown -F pantable -F pantable2csv test.md
should be identical to test.md. This can be done because pantable2csv
losslessly represents all info in the pandoc’s AST into YAML+CSV in
code-block. The only cases it ain’t lossless are
1.
when pandoc parses the markdown in each cell to AST, and pantable2csv
passes those AST back into markdown by using pandoc. i.e. whether this is
idempotent or not depends on pandoc’s markdown -> AST -> markdown
conversion.
2.
Potentially the width might have some truncation error, especially when
the to-format and from-format are not the same.
When I say I achieve [image: P^3=P^2], it means that pandoc -t native -F
pantable -F pantable2csv -F pantable -F pantable2csv -F pantable -F
pantable2csv csv_table.md = pandoc -t native -F pantable -F pantable2csv -F
pantable -F pantable2csv csv_table.md (which is part of the unit test). The
diff between [image: P^2] and [image: P] is exactly from (1).
A corollary to (1) is that it is kind of slow, since each table cells call
pandoc for the conversion once. Probably nothing can be improved except to
reinvent the parsing of tables (probably there’s no way to tell pandoc to
ignore markdown in cell, while not escaping character sequences). (And
tables has [image: m \times n] cells so inherently it will be slow.) But I
don’t quite worry about the performance aspect if it is going to solve a
workflow problem.
Eventually I think I’m going to make a thin wrapper of both to provide a
cli version. And then automator scripts can be created. Then basically I
can select the table in text editors and call system services to convert it
in place. i.e. highlight table, convert to csv, edit, highlight and convert
to table. This system-service-part won’t be cross-platform though. (By the
way, a sad news is Apple just fired the one responsible for Automator and
Applescripts, and kill the whole team! This used be the forte of OS X!)
In a sense, pantable2csv gives one the power to edit the table “in AST
directly” easily, while pantable provide a way to pretty-print it back in
native markdown. Note that after commit 298e6f3, all pandoc table’s info
has a markdown representation (grid_tables only misses alignment which is
added in that commit).
--
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/e6213b58-11e9-4948-80c2-650347e26c2e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
[-- Attachment #1.2: Type: text/html, Size: 14462 bytes --]
prev parent reply other threads:[~2016-11-30 2:06 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <047d7b86ebe83c062b05332eab9b@google.com>
[not found] ` <047d7b86ebe83c062b05332eab9b-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2016-05-20 9:38 ` Martin Fenner
[not found] ` <20BF19CB-A2B0-4B19-A749-D750CDD89736-+Z+QprJ1jbpwFuiNLMe2Ig@public.gmane.org>
2016-05-20 17:55 ` John Gabriele
[not found] ` <1463766905.1918988.613990665.6CD67781-2RFepEojUI2N1INw9kWLP6GC3tUn3ZHUQQ4Iyu8u01E@public.gmane.org>
2016-05-20 19:15 ` BP Jonsson
2016-05-25 14:18 ` Frank Colcord
[not found] ` <471daa3c-e2ec-4445-b4fd-44e5c8a3fd6b-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-26 5:42 ` Sergio Correia
[not found] ` <b9147aed-bf8e-4136-8fd2-949dea1034ea-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-26 8:04 ` Martin Fenner
[not found] ` <B4779237-F368-454A-8E43-93EBCDFDF8AB-i39mICoz+qVg9hUCZPvPmw@public.gmane.org>
2016-05-26 11:48 ` Frank Colcord
[not found] ` <CADZiF+X6AuYJEnnNCs1M=spfbp9Fn4X2GBVkxXKp9g9SSNH16A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-05-27 6:33 ` John Gabriele
[not found] ` <1464330807.2727387.620260561.2CC32090-2RFepEojUI2N1INw9kWLP6GC3tUn3ZHUQQ4Iyu8u01E@public.gmane.org>
2016-05-27 10:24 ` Frank Colcord
[not found] ` <e1ffce2d-9cc0-4367-a652-a46fa5c141a6-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-27 14:02 ` John Gabriele
2016-05-27 15:48 ` 'Jason White' via pandoc-discuss
2016-05-26 12:50 ` BPJ
2016-05-20 18:36 ` John MACFARLANE
[not found] ` <20160520183616.GB95956-nFAEphtLEs/fysO+viCLMa55KtNWUUjk@public.gmane.org>
2016-05-20 19:05 ` John Muccigrosso
2016-05-20 19:30 ` John Gabriele
[not found] ` <1463772643.1938448.614055033.793EA897-2RFepEojUI2N1INw9kWLP6GC3tUn3ZHUQQ4Iyu8u01E@public.gmane.org>
2016-05-20 19:37 ` BP Jonsson
2016-05-20 19:32 ` BP Jonsson
2016-05-21 17:03 ` kurt.pfeifle via pandoc-discuss
[not found] ` <fbcb1ece-48c7-4451-be2f-1b6cd70b2969-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-29 12:45 ` mb21
[not found] ` <f0058def-bd69-40c1-82b4-e7bdd151c46c-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-29 15:59 ` kurt.pfeifle via pandoc-discuss
[not found] ` <001833c9-e40d-4079-ba79-c88c852780a5-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-30 7:47 ` mb21
[not found] ` <27f2fe62-8115-4513-b13a-c995f625f60d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-31 14:28 ` kurt.pfeifle via pandoc-discuss
2016-05-23 4:42 ` Martin Fenner
[not found] ` <a1503704-4f58-47f7-a9e8-1c60dad8e935-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-05-23 20:22 ` John MACFARLANE
2016-05-27 19:50 ` D L
2016-11-14 7:40 ` Kolen Cheung
[not found] ` <14b8fa54-dc04-4874-bf47-fb268fc9f298-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-14 14:38 ` Melroch
[not found] ` <CADAJKhBcAxdQxytFdiug2iqxL+VxwECtWD-nMH4qPcfUUZUzUA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-11-14 23:32 ` Kolen Cheung
2016-11-15 1:33 ` Sergio Correia
[not found] ` <12c01cfd-f9de-4dd9-bb80-fcac75c808be-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-15 6:03 ` Kolen Cheung
[not found] ` <38bfec67-90f0-4d71-b054-1eedfd853d96-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-15 9:07 ` BP Jonsson
[not found] ` <CAFC_yuQU3BRFaJW7QQof_bvU7muAUZGKg7DRc4gEp=4ZibAjHw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-11-15 9:29 ` Kolen Cheung
[not found] ` <d4c5aaa1-4bb7-4b6c-82bc-e0763555651d-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-16 8:46 ` Kolen Cheung
2016-11-18 9:22 ` mb21
[not found] ` <78b88082-90cb-4ec8-ab45-9e2be24d6dc4-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-18 10:39 ` Kolen Cheung
[not found] ` <d847d3af-73fd-41d1-96e8-2c3a0dc9d70a-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-23 10:52 ` Kolen Cheung
2016-12-04 12:59 ` Kolen Cheung
[not found] ` <40e755f4-b03d-453e-90d6-13d1ba596f60-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2017-08-01 9:10 ` Kolen Cheung
[not found] ` <6ad9a315-1887-4e88-af53-99eaa87d39fa-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2017-08-01 13:43 ` Sergio Correia
2016-11-29 22:13 ` Kolen Cheung
[not found] ` <a668593c-b4f2-4f57-909b-3f16dfb40990-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-29 22:30 ` Sergio Correia
[not found] ` <7e398825-a285-4e73-ad3d-908f1f141589-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2016-11-30 2:06 ` Kolen Cheung [this message]
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=e6213b58-11e9-4948-80c2-650347e26c2e@googlegroups.com \
--to=christian.kolen-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=mf-+Z+QprJ1jbpwFuiNLMe2Ig@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).