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>
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 --]

      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).