git.iko.soy/typeable/pandoc
on master help sign in
ICML writer: Better handling of raw blocks and inlines.
3480189John MacFarlane
src/Text/Pandoc/Writers/ICML.hs+6−4
@@ -70,7 +70,6 @@ linkName = "Link"
70-- block element names (appear in InDesign's paragraph styles pane)
70-- block element names (appear in InDesign's paragraph styles pane)
71paragraphName :: String
71paragraphName :: String
72codeBlockName :: String
72codeBlockName :: String
73−rawBlockName :: String
74blockQuoteName :: String
73blockQuoteName :: String
75orderedListName :: String
74orderedListName :: String
76bulletListName :: String
75bulletListName :: String
@@ -93,7 +92,6 @@ subListParName :: String
93footnoteName :: String
92footnoteName :: String
94paragraphName = "Paragraph"
93paragraphName = "Paragraph"
95codeBlockName = "CodeBlock"
94codeBlockName = "CodeBlock"
96−rawBlockName = "Rawblock"
97blockQuoteName = "Blockquote"
95blockQuoteName = "Blockquote"
98orderedListName = "NumList"
96orderedListName = "NumList"
99bulletListName = "BulList"
97bulletListName = "BulList"
@@ -278,7 +276,9 @@ blockToICML :: WriterOptions -> Style -> Block -> WS Doc
278blockToICML opts style (Plain lst) = parStyle opts style lst
276blockToICML opts style (Plain lst) = parStyle opts style lst
279blockToICML opts style (Para lst) = parStyle opts (paragraphName:style) lst
277blockToICML opts style (Para lst) = parStyle opts (paragraphName:style) lst
280blockToICML opts style (CodeBlock _ str) = parStyle opts (codeBlockName:style) $ [Str str]
278blockToICML 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
282blockToICML opts style (BlockQuote blocks) = blocksToICML opts (blockQuoteName:style) blocks
282blockToICML opts style (BlockQuote blocks) = blocksToICML opts (blockQuoteName:style) blocks
283blockToICML opts style (OrderedList attribs lst) = listItemsToICML opts orderedListName style (Just attribs) lst
283blockToICML opts style (OrderedList attribs lst) = listItemsToICML opts orderedListName style (Just attribs) lst
284blockToICML opts style (BulletList lst) = listItemsToICML opts bulletListName style Nothing lst
284blockToICML opts style (BulletList lst) = listItemsToICML opts bulletListName style Nothing lst
@@ -404,7 +404,9 @@ inlineToICML _ style (Code _ str) = charStyle (codeName:style) $ text $ escap
404inlineToICML _ style Space = charStyle style space
404inlineToICML _ style Space = charStyle style space
405inlineToICML _ style LineBreak = charStyle style $ text lineSeparator
405inlineToICML _ style LineBreak = charStyle style $ text lineSeparator
406inlineToICML _ style (Math _ str) = charStyle style $ text $ escapeStringForXML str --InDesign doesn't really do math
406inlineToICML _ 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
408inlineToICML opts style (Link lst (url, title)) = do
410inlineToICML opts style (Link lst (url, title)) = do
409 content <- inlinesToICML opts (linkName:style) lst
411 content <- inlinesToICML opts (linkName:style) lst
410 state $ \st ->
412 state $ \st ->
tests/writer.icml+1−132
@@ -410,11 +410,6 @@
410 <Properties>
410 <Properties>
411 <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>
411 <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>
412 </Properties>
412 </Properties>
413− </ParagraphStyle>
414− <ParagraphStyle Self="ParagraphStyle/Rawblock" Name="Rawblock" LeftIndent="0">
415− <Properties>
416− <BasedOn type="object">$ID/NormalParagraphStyle</BasedOn>
417− </Properties>
418 </ParagraphStyle>
413 </ParagraphStyle>
419 </RootParagraphStyleGroup>
414 </RootParagraphStyleGroup>
420 <RootTableStyleGroup Self="pandoc_table_styles">
415 <RootTableStyleGroup Self="pandoc_table_styles">
@@ -1389,21 +1384,6 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
1389 <Content>Interpreted markdown in a table:</Content>
1384 <Content>Interpreted markdown in a table:</Content>
1390 </CharacterStyleRange><Br />
1385 </CharacterStyleRange><Br />
1391</ParagraphStyleRange>
1386</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>
1407<ParagraphStyleRange AppliedParagraphStyle="">
1387<ParagraphStyleRange AppliedParagraphStyle="">
1408 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1388 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1409 <Content>This is </Content>
1389 <Content>This is </Content>
@@ -1412,16 +1392,6 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
1412 <Content>emphasized</Content>
1392 <Content>emphasized</Content>
1413 </CharacterStyleRange><Br />
1393 </CharacterStyleRange><Br />
1414</ParagraphStyleRange>
1394</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>
1425<ParagraphStyleRange AppliedParagraphStyle="">
1395<ParagraphStyleRange AppliedParagraphStyle="">
1426 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1396 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1427 <Content>And this is </Content>
1397 <Content>And this is </Content>
@@ -1430,26 +1400,6 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
1430 <Content>strong</Content>
1400 <Content>strong</Content>
1431 </CharacterStyleRange><Br />
1401 </CharacterStyleRange><Br />
1432</ParagraphStyleRange>
1402</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>
1453<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1403<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1454 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1404 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1455 <Content>Here’s a simple block:</Content>
1405 <Content>Here’s a simple block:</Content>
@@ -1497,31 +1447,11 @@ These should not be escaped: \$ \\ \&gt; \[ \{</Content>
1497 <Content>This should just be an HTML comment:</Content>
1447 <Content>This should just be an HTML comment:</Content>
1498 </CharacterStyleRange><Br />
1448 </CharacterStyleRange><Br />
1499</ParagraphStyleRange>
1449</ParagraphStyleRange>
1500−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1501− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1502− <Content>&lt;!-- Comment --&gt;</Content>
1503− </CharacterStyleRange><Br />
1504−</ParagraphStyleRange>
1505<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1450<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1506 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1451 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1507 <Content>Multiline:</Content>
1452 <Content>Multiline:</Content>
1508 </CharacterStyleRange><Br />
1453 </CharacterStyleRange><Br />
1509</ParagraphStyleRange>
1454</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>
1525<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1455<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1526 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1456 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1527 <Content>Code block:</Content>
1457 <Content>Code block:</Content>
@@ -1537,11 +1467,6 @@ Blah
1537 <Content>Just plain comment, with trailing spaces on the line:</Content>
1467 <Content>Just plain comment, with trailing spaces on the line:</Content>
1538 </CharacterStyleRange><Br />
1468 </CharacterStyleRange><Br />
1539</ParagraphStyleRange>
1469</ParagraphStyleRange>
1540−<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Rawblock">
1541− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1542− <Content>&lt;!-- foo --&gt;</Content>
1543− </CharacterStyleRange><Br />
1544−</ParagraphStyleRange>
1545<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1470<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Paragraph">
1546 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1471 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1547 <Content>Code:</Content>
1472 <Content>Code:</Content>
@@ -1557,51 +1482,6 @@ Blah
1557 <Content>Hr’s:</Content>
1482 <Content>Hr’s:</Content>
1558 </CharacterStyleRange><Br />
1483 </CharacterStyleRange><Br />
1559</ParagraphStyleRange>
1484</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>
1605<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">
1485<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">
1606 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1486 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1607 <Content>Inline Markup</Content>
1487 <Content>Inline Markup</Content>
@@ -1980,9 +1860,7 @@ Blah
1980 </CharacterStyleRange><Br />
1860 </CharacterStyleRange><Br />
1981</ParagraphStyleRange>
1861</ParagraphStyleRange>
1982<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">
1862<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList &gt; first" NumberingContinue="false">
1983− <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1863+ <Br />
1984− <Content>\cite[22-23]{smith.1899}</Content>
1985− </CharacterStyleRange><Br />
1986</ParagraphStyleRange>
1864</ParagraphStyleRange>
1987<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1865<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/BulList">
1988 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1866 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
@@ -2097,15 +1975,6 @@ Blah
2097 <Content>Here’s a LaTeX table:</Content>
1975 <Content>Here’s a LaTeX table:</Content>
2098 </CharacterStyleRange><Br />
1976 </CharacterStyleRange><Br />
2099</ParagraphStyleRange>
1977</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>
2109<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">
1978<ParagraphStyleRange AppliedParagraphStyle="ParagraphStyle/Header1">
2110 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
1979 <CharacterStyleRange AppliedCharacterStyle="$ID/NormalCharacterStyle">
2111 <Content>Special Characters</Content>
1980 <Content>Special Characters</Content>