git.iko.soy/typeable/pandoc
on master help sign in
ICML writer: Better handling of raw blocks and inlines.

Previously these were always escaped and printed verbatim. Now they are ignored unless the format is "icml", in which case they are passed through unescaped. Closes #1951.

commit3480189e8e3edce51351629444e5ed0db2c21eef authorJohn MacFarlane <jgm@berkeley.edu> dateTue 17 Feb 2015, 08:50 (12 years ago) parente8cd53d
2 files changed+7−136
src/Text/Pandoc/Writers/ICML.hs+6−4 tests/writer.icml+1−132
src/Text/Pandoc/Writers/ICML.hs+6−4
@@ -70,7 +70,6 @@ linkName = "Link"
7070-- block element names (appear in InDesign's paragraph styles pane)
7171paragraphName :: String
7272codeBlockName :: String
73−rawBlockName :: String
7473blockQuoteName :: String
7574orderedListName :: String
7675bulletListName :: String
@@ -93,7 +92,6 @@ subListParName :: String
9392footnoteName :: String
9493paragraphName = "Paragraph"
9594codeBlockName = "CodeBlock"
96−rawBlockName = "Rawblock"
9795blockQuoteName = "Blockquote"
9896orderedListName = "NumList"
9997bulletListName = "BulList"
@@ -278,7 +276,9 @@ blockToICML :: WriterOptions -> Style -> Block -> WS Doc
278276blockToICML opts style (Plain lst) = parStyle opts style lst
279277blockToICML opts style (Para lst) = parStyle opts (paragraphName:style) lst
280278blockToICML opts style (CodeBlock _ str) = parStyle opts (codeBlockName:style) $ [Str str]
281−blockToICML opts style (RawBlock _ str) = parStyle opts (rawBlockName:style) $ [Str str]
279+blockToICML _ _ (RawBlock f str)
280+ | f == Format "icml" = return $ text str
281+ | otherwise = return empty
282282blockToICML opts style (BlockQuote blocks) = blocksToICML opts (blockQuoteName:style) blocks
283283blockToICML opts style (OrderedList attribs lst) = listItemsToICML opts orderedListName style (Just attribs) lst
284284blockToICML opts style (BulletList lst) = listItemsToICML opts bulletListName style Nothing lst
@@ -404,7 +404,9 @@ inlineToICML _ style (Code _ str) = charStyle (codeName:style) $ text $ escap
404404inlineToICML _ style Space = charStyle style space
405405inlineToICML _ style LineBreak = charStyle style $ text lineSeparator
406406inlineToICML _ style (Math _ str) = charStyle style $ text $ escapeStringForXML str --InDesign doesn't really do math
407−inlineToICML _ style (RawInline _ str) = charStyle style $ text $ escapeStringForXML str
407+inlineToICML _ _ (RawInline f str)
408+ | f == Format "icml" = return $ text str
409+ | otherwise = return empty
408410inlineToICML opts style (Link lst (url, title)) = do
409411 content <- inlinesToICML opts (linkName:style) lst
410412 state $ \st ->
tests/writer.icml+1−132
@@ -410,11 +410,6 @@
410410 <Properties>
411411 <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>
412412 </Properties>
413− </ParagraphStyle>
414− <ParagraphStyle Self="ParagraphStyle/Rawblock" Name="Rawblock" LeftIndent="0">
415− <Properties>
416− <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>
417− </Properties>
418413 </ParagraphStyle>
419414 </RootParagraphStyleGroup>
420415 <RootTableStyleGroup Self="pandoc_table_styles">
@@ -1389,21 +1384,6 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
13891384 <Content>Interpreted markdown in a table:</Content>
13901385 </CharacterStyleRange><Br />
13911386</ParagraphStyleRange>
1392−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1393− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1394− <Content>&lt;table&gt;</Content>
1395− </CharacterStyleRange><Br />
1396−</ParagraphStyleRange>
1397−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1398− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1399− <Content>&lt;tr&gt;</Content>
1400− </CharacterStyleRange><Br />
1401−</ParagraphStyleRange>
1402−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1403− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1404− <Content>&lt;td&gt;</Content>
1405− </CharacterStyleRange><Br />
1406−</ParagraphStyleRange>
14071387<ParagraphStyleRange AppliedParagraphStyle="">
14081388 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
14091389 <Content>This is </Content>
@@ -1412,16 +1392,6 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
14121392 <Content>emphasized</Content>
14131393 </CharacterStyleRange><Br />
14141394</ParagraphStyleRange>
1415−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1416− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1417− <Content>&lt;/td&gt;</Content>
1418− </CharacterStyleRange><Br />
1419−</ParagraphStyleRange>
1420−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1421− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1422− <Content>&lt;td&gt;</Content>
1423− </CharacterStyleRange><Br />
1424−</ParagraphStyleRange>
14251395<ParagraphStyleRange AppliedParagraphStyle="">
14261396 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
14271397 <Content>And this is </Content>
@@ -1430,26 +1400,6 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
14301400 <Content>strong</Content>
14311401 </CharacterStyleRange><Br />
14321402</ParagraphStyleRange>
1433−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1434− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1435− <Content>&lt;/td&gt;</Content>
1436− </CharacterStyleRange><Br />
1437−</ParagraphStyleRange>
1438−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1439− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1440− <Content>&lt;/tr&gt;</Content>
1441− </CharacterStyleRange><Br />
1442−</ParagraphStyleRange>
1443−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1444− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1445− <Content>&lt;/table&gt;</Content>
1446− </CharacterStyleRange><Br />
1447−</ParagraphStyleRange>
1448−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1449− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1450− <Content>&lt;script type=&quot;text/javascript&quot;&gt;document.write('This *should not* be interpreted as markdown');&lt;/script&gt;</Content>
1451− </CharacterStyleRange><Br />
1452−</ParagraphStyleRange>
14531403<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
14541404 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
14551405 <Content>Here’s a simple block:</Content>
@@ -1497,31 +1447,11 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
14971447 <Content>This should just be an HTML comment:</Content>
14981448 </CharacterStyleRange><Br />
14991449</ParagraphStyleRange>
1500−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1501− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1502− <Content>&lt;!-- Comment --&gt;</Content>
1503− </CharacterStyleRange><Br />
1504−</ParagraphStyleRange>
15051450<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
15061451 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
15071452 <Content>Multiline:</Content>
15081453 </CharacterStyleRange><Br />
15091454</ParagraphStyleRange>
1510−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1511− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1512− <Content>&lt;!--
1513−Blah
1514−Blah
1515−--&gt;</Content>
1516− </CharacterStyleRange><Br />
1517−</ParagraphStyleRange>
1518−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1519− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1520− <Content>&lt;!--
1521− This is another comment.
1522−--&gt;</Content>
1523− </CharacterStyleRange><Br />
1524−</ParagraphStyleRange>
15251455<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
15261456 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
15271457 <Content>Code block:</Content>
@@ -1537,11 +1467,6 @@ Blah
15371467 <Content>Just plain comment, with trailing spaces on the line:</Content>
15381468 </CharacterStyleRange><Br />
15391469</ParagraphStyleRange>
1540−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1541− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1542− <Content>&lt;!-- foo --&gt;</Content>
1543− </CharacterStyleRange><Br />
1544−</ParagraphStyleRange>
15451470<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
15461471 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
15471472 <Content>Code:</Content>
@@ -1557,51 +1482,6 @@ Blah
15571482 <Content>Hr’s:</Content>
15581483 </CharacterStyleRange><Br />
15591484</ParagraphStyleRange>
1560−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1561− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1562− <Content>&lt;hr&gt;</Content>
1563− </CharacterStyleRange><Br />
1564−</ParagraphStyleRange>
1565−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1566− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1567− <Content>&lt;hr /&gt;</Content>
1568− </CharacterStyleRange><Br />
1569−</ParagraphStyleRange>
1570−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1571− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1572− <Content>&lt;hr /&gt;</Content>
1573− </CharacterStyleRange><Br />
1574−</ParagraphStyleRange>
1575−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1576− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1577− <Content>&lt;hr&gt;</Content>
1578− </CharacterStyleRange><Br />
1579−</ParagraphStyleRange>
1580−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1581− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1582− <Content>&lt;hr /&gt;</Content>
1583− </CharacterStyleRange><Br />
1584−</ParagraphStyleRange>
1585−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1586− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1587− <Content>&lt;hr /&gt;</Content>
1588− </CharacterStyleRange><Br />
1589−</ParagraphStyleRange>
1590−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1591− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1592− <Content>&lt;hr class=&quot;foo&quot; id=&quot;bar&quot; /&gt;</Content>
1593− </CharacterStyleRange><Br />
1594−</ParagraphStyleRange>
1595−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1596− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1597− <Content>&lt;hr class=&quot;foo&quot; id=&quot;bar&quot; /&gt;</Content>
1598− </CharacterStyleRange><Br />
1599−</ParagraphStyleRange>
1600−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1601− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1602− <Content>&lt;hr class=&quot;foo&quot; id=&quot;bar&quot;&gt;</Content>
1603− </CharacterStyleRange><Br />
1604−</ParagraphStyleRange>
16051485<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">
16061486 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
16071487 <Content>Inline Markup</Content>
@@ -1980,9 +1860,7 @@ Blah
19801860 </CharacterStyleRange><Br />
19811861</ParagraphStyleRange>
19821862<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">
1983− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1984− <Content>\cite[22-23]{smith.1899}</Content>
1985− </CharacterStyleRange><Br />
1863+ <Br />
19861864</ParagraphStyleRange>
19871865<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
19881866 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
@@ -2097,15 +1975,6 @@ Blah
20971975 <Content>Here’s a LaTeX table:</Content>
20981976 </CharacterStyleRange><Br />
20991977</ParagraphStyleRange>
2100−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
2101− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
2102− <Content>\begin{tabular}{|l|l|}\hline
2103−Animal &amp; Number \\ \hline
2104−Dog &amp; 2 \\
2105−Cat &amp; 1 \\ \hline
2106−\end{tabular}</Content>
2107− </CharacterStyleRange><Br />
2108−</ParagraphStyleRange>
21091978<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">
21101979 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
21111980 <Content>Special Characters</Content>