* table plugin: Actually specify the delimiter when parsing CSV.

* table plugin: The previous version broke WikiLinks inside quoted values.
  Fix this by linkifying CSV data after parsing it, while DSV data is still
  linkified before parsing.
master
joey 2007-09-16 19:35:16 +00:00
parent 6bcc3339d9
commit 9f87bd8d7d
3 changed files with 21 additions and 16 deletions

View File

@ -23,10 +23,6 @@ sub preprocess (@) { #{{{
}
$params{data} = readfile(srcfile($params{file}));
}
else {
$params{data} = IkiWiki::linkify($params{page},
$params{destpage}, $params{data});
}
if (lc $params{format} eq 'auto') {
# first try the more simple format
@ -42,8 +38,24 @@ sub preprocess (@) { #{{{
if (lc $params{format} eq 'csv') {
@data=split_csv($params{data},
defined $params{delimiter} ? $params{delimiter} : ",",);
# linkify after parsing since html link quoting can
# confuse CSV parsing
if (! exists $params{file}) {
@data=map {
[ map {
IkiWiki::linkify($params{page},
$params{destpage}, $_);
} @$_ ]
} @data;
}
}
elsif (lc $params{format} eq 'dsv') {
# linkify before parsing since wikilinks can contain the
# delimiter
if (! exists $params{file}) {
$params{data} = IkiWiki::linkify($params{page},
$params{destpage}, $params{data});
}
@data=split_dsv($params{data},
defined $params{delimiter} ? $params{delimiter} : "|",);
}

7
debian/changelog vendored
View File

@ -8,9 +8,12 @@ ikiwiki (2.8) UNRELEASED; urgency=low
be shown in the page footer. HTML will also be inserted that should
support the rel=license microformat as well as the HTML spec's
rel=copyright.
* table plugin: Actually specify the delimiter.
* table plugin: Actually specify the delimiter when parsing CSV.
* table plugin: The previous version broke WikiLinks inside quoted values.
Fix this by linkifying CSV data after parsing it, while DSV data is still
linkified before parsing.
-- Joey Hess <joeyh@debian.org> Sun, 16 Sep 2007 15:07:35 -0400
-- Joey Hess <joeyh@debian.org> Sun, 16 Sep 2007 15:34:17 -0400
ikiwiki (2.7) unstable; urgency=low

View File

@ -6,16 +6,6 @@ or DSV (delimiter-separated values) format.
It needs the perl module [[cpan Text::CSV]] for the CSV data.
[[table data="""
"foo",[[joey]],"bar"
"bar",[[joeyno]], foo"
"""]]
[[table data="""
foo|[[joey]]|bar
bar|[[joeyno]]|foo
"""]]
## examples
\[[table data="""