so 1. 12. 2018 v 22:11 odesílatel Daniel Verite <dan...@manitou-mail.org> napsal:
> Lætitia Avrot wrote: > > > But as Vik said earlier, maybe it's not worth it to provide a markdown > > output as pandoc can generate the markdown from the HTML output. > > And if you need the markdown output to generate HTML why don't you use > the > > HTML output ? > > The round-trip through pandoc does not do any miracle. > The end result is readable to the human eye but structurally > broken. If converted back to html, it's no longer a table. > > Anyway I tend to agree with Vik on this: > "Markdown isn't standardized enough to support and please everyone." > > BTW github has independently started to support '|' in the cells > by accepting the quoted version '\|' : > https://help.github.com/articles/organizing-information-with-tables/ > > Now that we have csv as an output format, we can suggest > custom csv-to-markdown converters to produce markdown > rather than implementing one particular flavor of markdown > in psql, or several flavors through flags. The popular script > languages have solid CSV parsers that make this relatively easy > and safe. > I agree with you about importance of CSV. On second hand, I don't see a reason why we should not to support some very popular markdown formats - although there can be a discussion - which maybe github and JIRA, CONFLUENCE Regards Pavel > Personally I'd use Perl with something like below, which looks > short/simple enough to be shared on wiki.postgresql.org, > along with versions in other languages. > > #!/usr/bin/perl > > # Usage > # inside psql: > # \pset format csv > # \o |csvtomarkdown >/tmp/output.md > # SQL commands... > # \o > > # or psql --csv -c "...query..." | csvtomarkdown > > use Text::CSV; > use open qw( :std :encoding(UTF-8) ); > > my $csv = Text::CSV->new({ binary => 1, eol => $/ }); > > sub do_format { > # customize to your needs > s/&/&/g; > s/</</g; > s/>/>/g; > s/\n/<br>/g; > s/\|/|/g; > return $_; > } > > my $header = $csv->getline(STDIN); > for (@{$header}) { > $_ = do_format($_); > } > print join ('|', @{$header}), "\n"; > print join ('|', map { "---" } @{$header}), "\n"; > > while (my $row = $csv->getline(STDIN)) { > my @contents = map { do_format($_) } @{$row}; > print join('|', @contents), "\n"; > } > > > Best regards, > -- > Daniel Vérité > PostgreSQL-powered mailer: http://www.manitou-mail.org > Twitter: @DanielVerite > >