1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 9496 9497 9498 9499 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 9510 9511 9512 9513 9514 9515 9516 9517 9518 9519 9520 9521 9522 9523 9524 9525 9526 9527 9528 9529 9530 9531 9532 9533 9534 9535 9536 9537 9538 9539 9540 9541 9542 9543 9544 9545 9546 9547 9548 9549 9550 9551 9552 9553 9554 9555 9556 9557 9558 9559 9560 9561 9562 9563 9564 9565 9566 9567 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 9578 9579 9580 9581 9582 9583 9584 9585 9586 9587 9588 9589 9590 9591 9592 9593 9594 9595 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 9610 9611 9612 9613 9614 9615 9616 9617 9618 9619 9620 9621 9622 9623 9624 9625 9626 9627 9628 9629 9630 9631 9632 9633 9634 9635 9636 9637 9638 9639 9640 9641 9642 9643 9644 9645 9646 9647 9648 9649 9650 9651 9652 9653 9654 9655 9656 9657 9658 9659 9660 9661 9662 9663 9664 9665 9666 9667 9668 9669 9670 9671 9672 9673 9674 9675 9676 9677 9678 9679 9680 9681 9682 9683 9684 9685 9686 9687 9688 9689 9690 9691 9692 9693 9694 9695 9696 9697 9698 9699 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 9712 9713 9714 9715 9716 9717 9718 9719 9720 9721 9722 9723 9724 9725 9726 9727 9728 9729 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 9740 9741 9742 9743 9744 9745 9746 9747 9748 9749 9750 9751 9752 9753 9754 9755 9756 9757 9758 9759 9760 9761 9762 9763 9764 9765 9766 9767 9768 9769 9770 9771 9772 9773 9774 9775 9776 9777 9778 9779 9780 9781 9782 9783 9784 9785 9786 9787 9788 9789 9790 9791 9792 9793 9794 9795 9796 9797 9798 9799 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 9810 9811 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 9822 9823 9824 9825 9826 9827 9828 9829 9830 9831 9832 9833 9834 9835 9836 9837 9838 9839 9840 9841 9842 9843 9844 9845 9846 9847 9848 9849 9850 9851 9852 9853 9854 9855 9856 9857 9858 9859 9860 9861 9862 9863 9864 9865 9866 9867 9868 9869 9870 9871 9872 9873 9874 9875 9876 9877 9878 9879 9880 9881 9882 9883 9884 9885 9886 9887 9888 9889 9890 9891 9892 9893 9894 9895 9896 9897 9898 9899 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 9910 9911 9912 9913 9914 9915 9916 9917 9918 9919 9920 9921 9922 9923 9924 9925 9926 9927 9928 9929 9930 9931 9932 9933 9934 9935 9936 9937 9938 9939 9940 9941 9942 9943 9944 9945 9946 9947 9948 9949 9950 9951 9952 9953 9954 9955 9956 9957 9958 9959 9960 9961 9962 9963 9964 9965 9966 9967 9968 9969 9970 9971 9972 9973 9974 9975 9976 9977 9978 9979 9980 9981 9982 9983 9984 9985 9986 9987 9988 9989 9990 9991 9992 9993 9994 9995 9996 9997 9998 9999 10000 10001 10002 10003 10004 10005 10006 10007 10008 10009 10010 10011 10012 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 10025 10026 10027 10028 10029 10030 10031 10032 10033 10034 10035 10036 10037 10038 10039 10040 10041 10042 10043 10044 10045 10046 10047 10048 10049 10050 10051 10052 10053 10054 10055 10056 10057 10058 10059 10060 10061 10062 10063 10064 10065 10066 10067 10068 10069 10070 10071 10072 10073 10074 10075 10076 10077 10078 10079 10080 10081 10082 10083 10084 10085 10086 10087 10088 10089 10090 10091 10092 10093 10094 10095 10096 10097 10098 10099 10100 10101 10102 10103 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 10114 10115 10116 10117 10118 10119 10120 10121 10122 10123 10124 10125 10126 10127 10128 10129 10130 10131 10132 10133 10134 10135 10136 10137 10138 10139 10140 10141 10142 10143 10144 10145 10146 10147 10148 10149 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 10760 10761 10762 10763 10764 10765 10766 10767 10768 10769 10770 10771 10772 10773 10774 10775 10776 10777 10778 10779 10780 10781 10782 10783 10784 10785 10786 10787 10788 10789 10790 10791 10792 10793 10794 10795 10796 10797 10798 10799 10800 10801 10802 10803 10804 10805 10806 10807 10808 10809 10810 10811 10812 10813 10814 10815 10816 10817 10818 10819 10820 10821 10822 10823 10824 10825 10826 10827 10828 10829 10830 10831 10832 10833 10834 10835 10836 10837 10838 10839 10840 10841 10842 10843 10844 10845 10846 10847 10848 10849 10850 10851 10852 10853 10854 10855 10856 10857 10858 10859 10860 10861 10862 10863 10864 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 10912 10913 10914 10915 10916 10917 10918 10919 10920 10921 10922 10923 10924 10925 10926 10927 10928 10929 10930 10931 10932 10933 10934 10935 10936 10937 10938 10939 10940 10941 10942 10943 10944 10945 10946 10947 10948 10949 10950 10951 10952 10953 10954 10955 10956 10957 10958 10959 10960 10961 10962 10963 10964 10965 10966 10967 10968 10969 10970 10971 10972 10973 10974 10975 10976 10977 10978 10979 10980 10981 10982 10983 10984 10985 10986 10987 10988 10989 10990 10991 10992 10993 10994 10995 10996 10997 10998 10999 11000 11001 11002 11003 11004 11005 11006 11007 11008 11009 11010 11011 11012 11013 11014 11015 11016 11017 11018 11019 11020 11021 11022 11023 11024 11025 11026 11027 11028 11029 11030 11031 11032 11033 11034 11035 11036 11037 11038 11039 11040 11041 11042 11043 11044 11045 11046 11047 11048 11049 11050 11051 11052 11053 11054 11055 11056 11057 11058 11059 11060 11061 11062 11063 11064 11065 11066 11067 11068 11069 11070 11071 11072 11073 11074 11075 11076 11077 11078 11079 11080 11081 11082 11083 11084 11085 11086 11087 11088 11089 11090 11091 11092 11093 11094 11095 11096 11097 11098 11099 11100 11101 11102 11103 11104 11105 11106 11107 11108 11109 11110 11111 11112 11113 11114 11115 11116 11117 11118 11119 11120 11121 11122 11123 11124 11125 11126 11127 11128 11129 11130 11131 11132 11133 11134 11135 11136 11137 11138 11139 11140 11141 11142 11143 11144 11145 11146 11147 11148 11149 11150 11151 11152 11153 11154 11155 11156 11157 11158 11159 11160 11161 11162 11163 11164 11165 11166 11167 11168 11169 11170 11171 11172 11173 11174 11175 11176 11177 11178 11179 11180 11181 11182 11183 11184 11185 11186 11187 11188 11189 11190 11191 11192 11193 11194 11195 11196 11197 11198 11199 11200 11201 11202 11203 11204 11205 11206 11207 11208 11209 11210 11211 11212 11213 11214 11215 11216 11217 11218 11219 11220 11221 11222 11223 11224 11225 11226 11227 11228 11229 11230 11231 11232 11233 11234 11235 11236 11237 11238 11239 11240 11241 11242 11243 11244 11245 11246 11247 11248 11249 11250 11251 11252 11253 11254 11255 11256 11257 11258 11259 11260 11261 11262 11263 11264 11265 11266 11267 11268 11269 11270 11271 11272 11273 11274 11275 11276 11277 11278 11279 11280 11281 11282 11283 11284 11285 11286 11287 11288 11289 11290 11291 11292 11293 11294 11295 11296 11297 11298 11299 11300 11301 11302 11303 11304 11305 11306 11307 11308 11309 11310 11311 11312 11313 11314 11315 11316 11317 11318 11319 11320 11321 11322 11323 11324 11325 11326 11327 11328 11329 11330 11331 11332 11333 11334 11335 11336 11337 11338 11339 11340 11341 11342 11343 11344 11345 11346 11347 11348 11349 11350 11351 11352 11353 11354 11355 11356 11357 11358 11359 11360 11361 11362 11363 11364 11365 11366 11367 11368 11369 11370 11371 11372 11373 11374 11375 11376 11377 11378 11379 11380 11381 11382 11383 11384 11385 11386 11387 11388 11389 11390 11391 11392 11393 11394 11395 11396 11397 11398 11399 11400 11401 11402 11403 11404 11405 11406 11407 11408 11409 11410 11411 11412 11413 11414 11415 11416 11417 11418 11419 11420 11421 11422 11423 11424 11425 11426 11427 11428 11429 11430 11431 11432 11433 11434 11435 11436 11437 11438 11439 11440 11441 11442 11443 11444 11445 11446 11447 11448 11449 11450 11451 11452 11453 11454 11455 11456 11457 11458 11459 11460 11461 11462 11463 11464 11465 11466 11467 11468 11469 11470 11471 11472 11473 11474 11475 11476 11477 11478 11479 11480 11481 11482 11483 11484 11485 11486 11487 11488 11489 11490 11491 11492 11493 11494 11495 11496 11497 11498 11499 11500 11501 11502 11503 11504 11505 11506 11507 11508 11509 11510 11511 11512 11513 11514 11515 11516 11517 11518 11519 11520 11521 11522 11523 11524 11525 11526 11527 11528 11529 11530 11531 11532 11533 11534 11535 11536 11537 11538 11539 11540 11541 11542 11543 11544 11545 11546 11547 11548 11549 11550 11551 11552 11553 11554 11555 11556 11557 11558 11559 11560 11561 11562 11563 11564 11565 11566 11567 11568 11569 11570 11571 11572 11573 11574 11575 11576 11577 11578 11579 11580 11581 11582 11583 11584 11585 11586 11587 11588 11589 11590 11591 11592 11593 11594 11595 11596 11597 11598 11599 11600 11601 11602 11603 11604 11605 11606 11607 11608 11609 11610 11611 11612 11613 11614 11615 11616 11617 11618 11619 11620 11621 11622 11623 11624 11625 11626 11627 11628 11629 11630 11631 11632 11633 11634 11635 11636 11637 11638 11639 11640 11641 11642 11643 11644 11645 11646 11647 11648 11649 11650 11651 11652 11653 11654 11655 11656 11657 11658 11659 11660 11661 11662 11663 11664 11665 11666 11667 11668 11669 11670 11671 11672 11673 11674 11675 11676 11677 11678 11679 11680 11681 11682 11683 11684 11685 11686 11687 11688 11689 11690 11691 11692 11693 11694 11695 11696 11697 11698 11699 11700 11701 11702 11703 11704 11705 11706 11707 11708 11709 11710 11711 11712 11713 11714 11715 11716 11717 11718 11719 11720 11721 11722 11723 11724 11725 11726 11727 11728 11729 11730 11731 11732 11733 11734 11735 11736 11737 11738 11739 11740 11741 11742 11743 11744 11745 11746 11747 11748 11749 11750 11751 11752 11753 11754 11755 11756 11757 11758 11759 11760 11761 11762 11763 11764 11765 11766 11767 11768 11769 11770 11771 11772 11773 11774 11775 11776 11777 11778 11779 11780 11781 11782 11783 11784 11785 11786 11787 11788 11789 11790 11791 11792 11793 11794 11795 11796 11797 11798 11799 11800 11801 11802 11803 11804 11805 11806 11807 11808 11809 11810 11811 11812 11813 11814 11815 11816 11817 11818 11819 11820 11821 11822 11823 11824 11825 11826 11827 11828 11829 11830 11831 11832 11833 11834 11835 11836 11837 11838 11839 11840 11841 11842 11843 11844 11845 11846 11847 11848 11849 11850 11851 11852 11853 11854 11855 11856 11857 11858 11859 11860 11861 11862 11863 11864 11865 11866 11867 11868 11869 11870 11871 11872 11873 11874 11875 11876 11877 11878 11879 11880 11881 11882 11883 11884 11885 11886 11887 11888 11889 11890 11891 11892 11893 11894 11895 11896 11897 11898 11899 11900 11901 11902 11903 11904 11905 11906 11907 11908 11909 11910 11911 11912 11913 11914 11915 11916 11917 11918 11919 11920 11921 11922 11923 11924 11925 11926 11927 11928 11929 11930 11931 11932 11933 11934 11935 11936 11937 11938 11939 11940 11941 11942 11943 11944 11945 11946 11947 11948 11949 11950 11951 11952 11953 11954 11955 11956 11957 11958 11959 11960 11961 11962 11963 11964 11965 11966 11967 11968 11969 11970 11971 11972 11973 11974 11975 11976 11977 11978 11979 11980 11981 11982 11983 11984 11985 11986 11987 11988 11989 11990 11991 11992 11993 11994 11995 11996 11997 11998 11999 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 12012 12013 12014 12015 12016 12017 12018 12019 12020 12021 12022 12023 12024 12025 12026 12027 12028 12029 12030 12031 12032 12033 12034 12035 12036 12037 12038 12039 12040 12041 12042 12043 12044 12045 12046 12047 12048 12049 12050 12051 12052 12053 12054 12055 12056 12057 12058 12059 12060 12061 12062 12063 12064 12065 12066 12067 12068 12069 12070 12071 12072 12073 12074 12075 12076 12077 12078 12079 12080 12081 12082 12083 12084 12085 12086 12087 12088 12089 12090 12091 12092 12093 12094 12095 12096 12097 12098 12099 12100 12101 12102 12103 12104 12105 12106 12107 12108 12109 12110 12111 12112 12113 12114 12115 12116 12117 12118 12119 12120 12121 12122 12123 12124 12125 12126 12127 12128 12129 12130 12131 12132 12133 12134 12135 12136 12137 12138 12139 12140 12141 12142 12143 12144 12145 12146 12147 12148 12149 12150 12151 12152 12153 12154 12155 12156 12157 12158 12159 12160 12161 12162 12163 12164 12165 12166 12167 12168 12169 12170 12171 12172 12173 12174 12175 12176 12177 12178 12179 12180 12181 12182 12183 12184 12185 12186 12187 12188 12189 12190 12191 12192 12193 12194 12195 12196 12197 12198 12199 12200 12201 12202 12203 12204 12205 12206 12207 12208 12209 12210 12211 12212 12213 12214 12215 12216 12217 12218 12219 12220 12221 12222 12223 12224 12225 12226 12227 12228 12229 12230 12231 12232 12233 12234 12235 12236 12237 12238 12239 12240 12241 12242 12243 12244 12245 12246 12247 12248 12249 12250 12251 12252 12253 12254 12255 12256 12257 12258 12259 12260 12261 12262 12263 12264 12265 12266 12267 12268 12269 12270 12271 12272 12273 12274 12275 12276 12277 12278 12279 12280 12281 12282 12283 12284 12285 12286 12287 12288 12289 12290 12291 12292 12293 12294 12295 12296 12297 12298 12299 12300 12301 12302 12303 12304 12305 12306 12307 12308 12309 12310 12311 12312 12313 12314 12315 12316 12317 12318 12319 12320 12321 12322 12323 12324 12325 12326 12327 12328 12329 12330 12331 12332 12333 12334 12335 12336 12337 12338 12339 12340 12341 12342 12343 12344 12345 12346 12347 12348 12349 12350 12351 12352 12353 12354 12355 12356 12357 12358 12359 12360 12361 12362 12363 12364 12365 12366 12367 12368 12369 12370 12371 12372 12373 12374 12375 12376 12377 12378 12379 12380 12381 12382 12383 12384 12385 12386 12387 12388 12389 12390 12391 12392 12393 12394 12395 12396 12397 12398 12399 12400 12401 12402 12403 12404 12405 12406 12407 12408 12409 12410 12411 12412 12413 12414 12415 12416 12417 12418 12419 12420 12421 12422 12423 12424 12425 12426 12427 12428 12429 12430 12431 12432 12433 12434 12435 12436 12437 12438 12439 12440 12441 12442 12443 12444 12445 12446 12447 12448 12449 12450 12451 12452 12453 12454 12455 12456 12457 12458 12459 12460 12461 12462 12463 12464 12465 12466 12467 12468 12469 12470 12471 12472 12473 12474 12475 12476 12477 12478 12479 12480 12481 12482 12483 12484 12485 12486 12487 12488 12489 12490 12491 12492 12493 12494 12495 12496 12497 12498 12499 12500 12501 12502 12503 12504 12505 12506 12507 12508 12509 12510 12511 12512 12513 12514 12515 12516 12517 12518 12519 12520 12521 12522 12523 12524 12525 12526 12527 12528 12529 12530 12531 12532 12533 12534 12535 12536 12537 12538 12539 12540 12541 12542 12543 12544 12545 12546 12547 12548 12549 12550 12551 12552 12553 12554 12555 12556 12557 12558 12559 12560 12561 12562 12563 12564 12565 12566 12567 12568 12569 12570 12571 12572 12573 12574 12575 12576 12577 12578 12579 12580 12581 12582 12583 12584 12585 12586 12587 12588 12589 12590 12591 12592 12593 12594 12595 12596 12597 12598 12599 12600 12601 12602 12603 12604 12605 12606 12607 12608 12609 12610 12611 12612 12613 12614 12615 12616 12617 12618 12619 12620 12621 12622 12623 12624 12625 12626 12627 12628 12629 12630 12631 12632 12633 12634 12635 12636 12637 12638 12639 12640 12641 12642 12643 12644 12645 12646 12647 12648 12649 12650 12651 12652 12653 12654 12655 12656 12657 12658 12659 12660 12661 12662 12663 12664 12665 12666 12667 12668 12669 12670 12671 12672 12673 12674 12675 12676 12677 12678 12679 12680 12681 12682 12683 12684 12685 12686 12687 12688 12689 12690 12691 12692 12693 12694 12695 12696 12697 12698 12699 12700 12701 12702 12703 12704 12705 12706 12707 12708 12709 12710 12711 12712 12713 12714 12715 12716 12717 12718 12719 12720 12721 12722 12723 12724 12725 12726 12727 12728 12729 12730 12731 12732 12733 12734 12735 12736 12737 12738 12739 12740 12741 12742 12743 12744 12745 12746 12747 12748 12749 12750 12751 12752 12753 12754 12755 12756 12757 12758 12759 12760 12761 12762 12763 12764 12765 12766 12767 12768 12769 12770 12771 12772 12773 12774 12775 12776 12777 12778 12779 12780 12781 12782 12783 12784 12785 12786 12787 12788 12789 12790 12791 12792 12793 12794 12795 12796 12797 12798 12799 12800 12801 12802 12803 12804 12805 12806 12807 12808 12809 12810 12811 12812 12813 12814 12815 12816 12817 12818 12819 12820 12821 12822 12823 12824 12825 12826 12827 12828 12829 12830 12831 12832 12833 12834 12835 12836 12837 12838 12839 12840 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863 12864 12865 12866 12867 12868 12869 12870 12871 12872 12873 12874 12875 12876 12877 12878 12879 12880 12881 12882 12883 12884 12885 12886 12887 12888 12889 12890 12891 12892 12893 12894 12895 12896 12897 12898 12899 12900 12901 12902 12903 12904 12905 12906 12907 12908 12909 12910 12911 12912 12913 12914 12915 12916 12917 12918 12919 12920 12921 12922 12923 12924 12925 12926 12927 12928 12929 12930 12931 12932 12933 12934 12935 12936 12937 12938 12939 12940 12941 12942 12943 12944 12945 12946 12947 12948 12949 12950 12951 12952 12953 12954 12955 12956 12957 12958 12959 12960 12961 12962 12963 12964 12965 12966 12967 12968 12969 12970 12971 12972 12973 12974 12975 12976 12977 12978 12979 12980 12981 12982 12983 12984 12985 12986 12987 12988 12989 12990 12991 12992 12993 12994 12995 12996 12997 12998 12999 13000 13001 13002 13003 13004 13005 13006 13007 13008 13009 13010 13011 13012 13013 13014 13015 13016 13017 13018 13019 13020 13021 13022 13023 13024 13025 13026 13027 13028 13029 13030 13031 13032 13033 13034 13035 13036 13037 13038 13039 13040 13041 13042 13043 13044 13045 13046 13047 13048 13049 13050 13051 13052 13053 13054 13055 13056 13057 13058 13059 13060 13061 13062 13063 13064 13065 13066 13067 13068 13069 13070 13071 13072 13073 13074 13075 13076 13077 13078 13079 13080 13081 13082 13083 13084 13085 13086 13087 13088 13089 13090 13091 13092 13093 13094 13095 13096 13097 13098 13099 13100 13101 13102 13103 13104 13105 13106 13107 13108 13109 13110 13111 13112 13113 13114 13115 13116 13117 13118 13119 13120 13121 13122 13123 13124 13125 13126 13127 13128 13129 13130 13131 13132 13133 13134 13135 13136 13137 13138 13139 13140 13141 13142 13143 13144 13145 13146 13147 13148 13149 13150 13151 13152 13153 13154 13155 13156 13157 13158 13159 13160 13161 13162 13163 13164 13165 13166 13167 13168 13169 13170 13171 13172 13173 13174 13175 13176 13177 13178 13179 13180 13181 13182 13183 13184 13185 13186 13187 13188 13189 13190 13191 13192 13193 13194 13195 13196 13197 13198 13199 13200 13201 13202 13203 13204 13205 13206 13207 13208 13209 13210 13211 13212 13213 13214 13215 13216 13217 13218 13219 13220 13221 13222 13223 13224 13225 13226 13227 13228 13229 13230 13231 13232 13233 13234 13235 13236 13237 13238 13239 13240 13241 13242 13243 13244 13245 13246 13247 13248 13249 13250 13251 13252 13253 13254 13255 13256 13257 13258 13259 13260 13261 13262 13263 13264 13265 13266 13267 13268 13269 13270 13271 13272 13273 13274 13275 13276 13277 13278 13279 13280 13281 13282 13283 13284 13285 13286 13287 13288 13289 13290 13291 13292 13293 13294 13295 13296 13297 13298 13299 13300 13301 13302 13303 13304 13305 13306 13307 13308 13309 13310 13311 13312 13313 13314 13315 13316 13317 13318 13319 13320 13321 13322 13323 13324 13325 13326 13327 13328 13329 13330 13331 13332 13333 13334 13335 13336 13337 13338 13339 13340 13341 13342 13343 13344 13345 13346 13347 13348 13349 13350 13351 13352 13353 13354 13355 13356 13357 13358 13359 13360 13361 13362 13363 13364 13365 13366 13367 13368 13369 13370 13371 13372 13373 13374 13375 13376 13377 13378 13379 13380 13381 13382 13383 13384 13385 13386 13387 13388 13389 13390 13391 13392 13393 13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425 13426 13427 13428 13429 13430 13431 13432 13433 13434 13435 13436 13437 13438 13439 13440 13441 13442 13443 13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 13473 13474 13475 13476 13477 13478 13479 13480 13481 13482 13483 13484 13485 13486 13487 13488 13489 13490 13491 13492 13493 13494 13495 13496 13497 13498 13499 13500 13501 13502 13503 13504 13505 13506 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 13551 13552 13553 13554 13555 13556 13557 13558 13559 13560 13561 13562 13563 13564 13565 13566 13567 13568 13569 13570 13571 13572 13573 13574 13575 13576 13577 13578 13579 13580 13581 13582 13583 13584 13585 13586 13587 13588 13589 13590 13591 13592 13593 13594 13595 13596 13597 13598 13599 13600 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 13615 13616 13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 13642 13643 13644 13645 13646 13647 13648 13649 13650 13651 13652 13653 13654 13655 13656 13657 13658 13659 13660 13661 13662 13663 13664 13665 13666 13667 13668 13669 13670 13671 13672 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 13694 13695 13696 13697 13698 13699 13700 13701 13702 13703 13704 13705 13706 13707 13708 13709 13710 13711 13712 13713 13714 13715 13716 13717 13718 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 13780 13781 13782 13783 13784 13785 13786 13787 13788 13789 13790 13791 13792 13793 13794 13795 13796 13797 13798 13799 13800 13801 13802 13803 13804 13805 13806 13807 13808 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 13847 13848 13849 13850 13851 13852 13853 13854 13855 13856 13857 13858 13859 13860 13861 13862 13863 13864 13865 13866 13867 13868 13869 13870 13871 13872 13873 13874 13875 13876 13877 13878 13879 13880 13881 13882 13883 13884 13885 13886 13887 13888 13889 13890 13891 13892 13893 13894 13895 13896 13897 13898 13899 13900 13901 13902 13903 13904 13905 13906 13907 13908 13909 13910 13911 13912 13913 13914 13915 13916 13917 13918 13919 13920 13921 13922 13923 13924 13925 13926 13927 13928 13929 13930 13931 13932 13933 13934 13935 13936 13937 13938 13939 13940 13941 13942 13943 13944 13945 13946 13947 13948 13949 13950 13951 13952 13953 13954 13955 13956 13957 13958 13959 13960 13961 13962 13963 13964 13965 13966 13967 13968 13969 13970 13971 13972 13973 13974 13975 13976 13977 13978 13979 13980 13981 13982 13983 13984 13985 13986 13987 13988 13989 13990 13991 13992 13993 13994 13995 13996 13997 13998 13999 14000 14001 14002 14003 14004 14005 14006 14007 14008 14009 14010 14011 14012 14013 14014 14015 14016 14017 14018 14019 14020 14021 14022 14023 14024 14025 14026 14027 14028 14029 14030 14031 14032 14033 14034 14035 14036 14037 14038 14039 14040 14041 14042 14043 14044 14045 14046 14047 14048 14049 14050 14051 14052 14053 14054 14055 14056 14057 14058 14059 14060 14061 14062 14063 14064 14065 14066 14067 14068 14069 14070 14071 14072 14073 14074 14075 14076 14077 14078 14079 14080 14081 14082 14083 14084 14085 14086 14087 14088 14089 14090 14091 14092 14093 14094 14095 14096 14097 14098 14099 14100 14101 14102 14103 14104 14105 14106 14107 14108 14109 14110 14111 14112 14113 14114 14115 14116 14117 14118 14119 14120 14121 14122 14123 14124 14125 14126 14127 14128 14129 14130 14131 14132 14133 14134 14135 14136 14137 14138 14139 14140 14141 14142 14143 14144 14145 14146 14147 14148 14149 14150 14151 14152 14153 14154 14155 14156 14157 14158 14159 14160 14161 14162 14163 14164 14165 14166 14167 14168 14169 14170 14171 14172 14173 14174 14175 14176 14177 14178 14179 14180 14181 14182 14183 14184 14185 14186 14187 14188 14189 14190 14191 14192 14193 14194 14195 14196 14197 14198 14199 14200 14201 14202 14203 14204 14205 14206 14207 14208 14209 14210 14211 14212 14213 14214 14215 14216 14217 14218 14219 14220 14221 14222 14223 14224 14225 14226 14227 14228 14229 14230 14231 14232 14233 14234 14235 14236 14237 14238 14239 14240 14241 14242 14243 14244 14245 14246 14247 14248 14249 14250 14251 14252 14253 14254 14255 14256 14257 14258 14259 14260 14261 14262 14263 14264 14265 14266 14267 14268 14269 14270 14271 14272 14273 14274 14275 14276 14277 14278 14279 14280 14281 14282 14283 14284 14285 14286 14287 14288 14289 14290 14291 14292 14293 14294 14295 14296 14297 14298 14299 14300 14301 14302 14303 14304 14305 14306 14307 14308 14309 14310 14311 14312 14313 14314 14315 14316 14317 14318 14319 14320 14321 14322 14323 14324 14325 14326 14327 14328 14329 14330 14331 14332 14333 14334 14335 14336 14337 14338 14339 14340 14341 14342 14343 14344 14345 14346 14347 14348 14349 14350 14351 14352 14353 14354 14355 14356 14357 14358 14359 14360 14361 14362 14363 14364 14365 14366 14367 14368 14369 14370 14371 14372 14373 14374 14375 14376 14377 14378 14379 14380 14381 14382 14383 14384 14385 14386 14387 14388 14389 14390 14391 14392 14393 14394 14395 14396 14397 14398 14399 14400 14401 14402 14403 14404 14405 14406 14407 14408 14409 14410 14411 14412 14413 14414 14415 14416 14417 14418 14419 14420 14421 14422 14423 14424 14425 14426 14427 14428 14429 14430 14431 14432 14433 14434 14435 14436 14437 14438 14439 14440 14441 14442 14443 14444 14445 14446 14447 14448 14449 14450 14451 14452 14453 14454 14455 14456 14457 14458 14459 14460 14461 14462 14463 14464 14465 14466 14467 14468 14469 14470 14471 14472 14473 14474 14475 14476 14477 14478 14479 14480 14481 14482 14483 14484 14485 14486 14487 14488 14489 14490 14491 14492 14493 14494 14495 14496 14497 14498 14499 14500 14501 14502 14503 14504 14505 14506 14507 14508 14509 14510 14511 14512 14513 14514 14515 14516 14517 14518 14519 14520 14521 14522 14523 14524 14525 14526 14527 14528 14529 14530 14531 14532 14533 14534 14535 14536 14537 14538 14539 14540 14541 14542 14543 14544 14545 14546 14547 14548 14549 14550 14551 14552 14553 14554 14555 14556 14557 14558 14559 14560 14561 14562 14563 14564 14565 14566 14567 14568 14569 14570 14571 14572 14573 14574 14575 14576 14577 14578 14579 14580 14581 14582 14583 14584 14585 14586 14587 14588 14589 14590 14591 14592 14593 14594 14595 14596 14597 14598 14599 14600 14601 14602 14603 14604 14605 14606 14607 14608 14609 14610 14611 14612 14613 14614 14615 14616 14617 14618 14619 14620 14621 14622 14623 14624 14625 14626 14627 14628 14629 14630 14631 14632 14633 14634 14635 14636 14637 14638 14639 14640 14641 14642 14643 14644 14645 14646 14647 14648 14649 14650 14651 14652 14653 14654 14655 14656 14657 14658 14659 14660 14661 14662 14663 14664 14665 14666 14667 14668 14669 14670 14671 14672 14673 14674 14675 14676 14677 14678 14679 14680 14681 14682 14683 14684 14685 14686 14687 14688 14689 14690 14691 14692 14693 14694 14695 14696 14697 14698 14699 14700 14701 14702 14703 14704 14705 14706 14707 14708 14709 14710 14711 14712 14713 14714 14715 14716 14717 14718 14719 14720 14721 14722 14723 14724 14725 14726 14727 14728 14729 14730 14731 14732 14733 14734 14735 14736 14737 14738 14739 14740 14741 14742 14743 14744 14745 14746 14747 14748 14749 14750 14751 14752 14753 14754 14755 14756 14757 14758 14759 14760 14761 14762 14763 14764 14765 14766 14767 14768 14769 14770 14771 14772 14773 14774 14775 14776 14777 14778 14779 14780 14781 14782 14783 14784 14785 14786 14787 14788 14789 14790 14791 14792 14793 14794 14795 14796 14797 14798 14799 14800 14801 14802 14803 14804 14805 14806 14807 14808 14809 14810 14811 14812 14813 14814 14815 14816 14817 14818 14819 14820 14821 14822 14823 14824 14825 14826 14827 14828 14829 14830 14831 14832 14833 14834 14835 14836 14837 14838 14839 14840 14841 14842 14843 14844 14845 14846 14847 14848 14849 14850 14851 14852 14853 14854 14855 14856 14857 14858 14859 14860 14861 14862 14863 14864 14865 14866 14867 14868 14869 14870 14871 14872 14873 14874 14875 14876 14877 14878 14879 14880 14881 14882 14883 14884 14885 14886 14887 14888 14889 14890 14891 14892 14893 14894 14895 14896 14897 14898 14899 14900 14901 14902 14903 14904 14905 14906 14907 14908 14909 14910 14911 14912 14913 14914 14915 14916 14917 14918 14919 14920 14921 14922 14923 14924 14925 14926 14927 14928 14929 14930 14931 14932 14933 14934 14935 14936 14937 14938 14939 14940 14941 14942 14943 14944 14945 14946 14947 14948 14949 14950 14951 14952 14953 14954 14955 14956 14957 14958 14959 14960 14961 14962 14963 14964 14965 14966 14967 14968 14969 14970 14971 14972 14973 14974 14975 14976 14977 14978 14979 14980 14981 14982 14983 14984 14985 14986 14987 14988 14989 14990 14991 14992 14993 14994 14995 14996 14997 14998 14999 15000 15001 15002 15003 15004 15005 15006 15007 15008 15009 15010 15011 15012 15013 15014 15015 15016 15017 15018 15019 15020 15021 15022 15023 15024 15025 15026 15027 15028 15029 15030 15031 15032 15033 15034 15035 15036 15037 15038 15039 15040 15041 15042 15043 15044 15045 15046 15047 15048 15049 15050 15051 15052 15053 15054 15055 15056 15057 15058 15059 15060 15061 15062 15063 15064 15065 15066 15067 15068 15069 15070 15071 15072 15073 15074 15075 15076 15077 15078 15079 15080 15081 15082 15083 15084 15085 15086 15087 15088 15089 15090 15091 15092 15093 15094 15095 15096 15097 15098 15099 15100 15101 15102 15103 15104 15105 15106 15107 15108 15109 15110 15111 15112 15113 15114 15115 15116 15117 15118 15119 15120 15121 15122 15123 15124 15125 15126 15127 15128 15129 15130 15131 15132 15133 15134 15135 15136 15137 15138 15139 15140 15141 15142 15143 15144 15145 15146 15147 15148 15149 15150 15151 15152 15153 15154 15155 15156 15157 15158 15159 15160 15161 15162 15163 15164 15165 15166 15167 15168 15169 15170 15171 15172 15173 15174 15175 15176 15177 15178 15179 15180 15181 15182 15183 15184 15185 15186 15187 15188 15189 15190 15191 15192 15193 15194 15195 15196 15197 15198 15199 15200 15201 15202 15203 15204 15205 15206 15207 15208 15209 15210 15211 15212 15213 15214 15215 15216 15217 15218 15219 15220 15221 15222 15223 15224 15225 15226 15227 15228 15229 15230 15231 15232 15233 15234 15235 15236 15237 15238 15239 15240 15241 15242 15243 15244 15245 15246 15247 15248 15249 15250 15251 15252 15253 15254 15255 15256 15257 15258 15259 15260 15261 15262 15263 15264 15265 15266 15267 15268 15269 15270 15271 15272 15273 15274 15275 15276 15277 15278 15279 15280 15281 15282 15283 15284 15285 15286 15287 15288 15289 15290 15291 15292 15293 15294 15295 15296 15297 15298 15299 15300 15301 15302 15303 15304 15305 15306 15307 15308 15309 15310 15311 15312 15313 15314 15315 15316 15317 15318 15319 15320 15321 15322 15323 15324 15325 15326 15327 15328 15329 15330 15331 15332 15333 15334 15335 15336 15337 15338 15339 15340 15341 15342 15343 15344 15345 15346 15347 15348 15349 15350 15351 15352 15353 15354 15355 15356 15357 15358 15359 15360 15361 15362 15363 15364 15365 15366 15367 15368 15369 15370 15371 15372 15373 15374 15375 15376 15377 15378 15379 15380 15381 15382 15383 15384 15385 15386 15387 15388 15389 15390 15391 15392 15393 15394 15395 15396 15397 15398 15399 15400 15401 15402 15403 15404 15405 15406 15407 15408 15409 15410 15411 15412 15413 15414 15415 15416 15417 15418 15419 15420 15421 15422 15423 15424 15425 15426 15427 15428 15429 15430 15431 15432 15433 15434 15435 15436 15437 15438 15439 15440 15441 15442 15443 15444 15445 15446 15447 15448 15449 15450 15451 15452 15453 15454 15455 15456 15457 15458 15459 15460 15461 15462 15463 15464 15465 15466 15467 15468 15469 15470 15471 15472 15473 15474 15475 15476 15477 15478 15479 15480 15481 15482 15483 15484 15485 15486 15487 15488 15489 15490 15491 15492 15493 15494 15495 15496 15497 15498 15499 15500 15501 15502 15503 15504 15505 15506 15507 15508 15509 15510 15511 15512 15513 15514 15515 15516 15517 15518 15519 15520 15521 15522 15523 15524 15525 15526 15527 15528 15529 15530 15531 15532 15533 15534 15535 15536 15537 15538 15539 15540 15541 15542 15543 15544 15545 15546 15547 15548 15549 15550 15551 15552 15553 15554 15555 15556 15557 15558 15559 15560 15561 15562 15563 15564 15565 15566 15567 15568 15569 15570 15571 15572 15573 15574 15575 15576 15577 15578 15579 15580 15581 15582 15583 15584 15585 15586 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 15607 15608 15609 15610 15611 15612 15613 15614 15615 15616 15617 15618 15619 15620 15621 15622 15623 15624 15625 15626 15627 15628 15629 15630 15631 15632 15633 15634 15635 15636 15637 15638 15639 15640 15641 15642 15643 15644 15645 15646 15647 15648 15649 15650 15651 15652 15653 15654 15655 15656 15657 15658 15659 15660 15661 15662 15663 15664 15665 15666 15667 15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 15680 15681 15682 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 15709 15710 15711 15712 15713 15714 15715 15716 15717 15718 15719 15720 15721 15722 15723 15724 15725 15726 15727 15728 15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 15743 15744 15745 15746 15747 15748 15749 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 15768 15769 15770 15771 15772 15773 15774 15775 15776 15777 15778 15779 15780 15781 15782 15783 15784 15785 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795 15796 15797 15798 15799 15800 15801 15802 15803 15804 15805 15806 15807 15808 15809 15810 15811 15812 15813 15814 15815 15816 15817 15818 15819 15820 15821 15822 15823 15824 15825 15826 15827 15828 15829 15830 15831 15832 15833 15834 15835 15836 15837 15838 15839 15840 15841 15842 15843 15844 15845 15846 15847 15848 15849 15850 15851 15852 15853 15854 15855 15856 15857 15858 15859 15860 15861 15862 15863 15864 15865 15866 15867 15868 15869 15870 15871 15872 15873 15874 15875 15876 15877 15878 15879 15880 15881 15882 15883 15884 15885 15886 15887 15888 15889 15890 15891 15892 15893 15894 15895 15896 15897 15898 15899 15900 15901 15902 15903 15904 15905 15906 15907 15908 15909 15910 15911 15912 15913 15914 15915 15916 15917 15918 15919 15920 15921 15922 15923 15924 15925 15926 15927 15928 15929 15930 15931 15932 15933 15934 15935 15936 15937 15938 15939 15940 15941 15942 15943 15944 15945 15946 15947 15948 15949 15950 15951 15952 15953 15954 15955 15956 15957 15958 15959 15960 15961 15962 15963 15964 15965 15966 15967 15968 15969 15970 15971 15972 15973 15974 15975 15976 15977 15978 15979 15980 15981 15982 15983 15984 15985 15986 15987 15988 15989 15990 15991 15992 15993 15994 15995 15996 15997 15998 15999 16000 16001 16002 16003 16004 16005 16006 16007 16008 16009 16010 16011 16012 16013 16014 16015 16016 16017 16018 16019 16020 16021 16022 16023 16024 16025 16026 16027 16028 16029 16030 16031 16032 16033 16034 16035 16036 16037 16038 16039 16040 16041 16042 16043 16044 16045 16046 16047 16048 16049 16050 16051 16052 16053 16054 16055 16056 16057 16058 16059 16060 16061 16062 16063 16064 16065 16066 16067 16068 16069 16070 16071 16072 16073 16074 16075 16076 16077 16078 16079 16080 16081 16082 16083 16084 16085 16086 16087 16088 16089 16090 16091 16092 16093 16094 16095 16096 16097 16098 16099 16100 16101 16102 16103 16104 16105 16106 16107 16108 16109 16110 16111 16112 16113 16114 16115 16116 16117 16118 16119 16120 16121 16122 16123 16124 16125 16126 16127 16128 16129 16130 16131 16132 16133 16134 16135 16136 16137 16138 16139 16140 16141 16142 16143 16144 16145 16146 16147 16148 16149 16150 16151 16152 16153 16154 16155 16156 16157 16158 16159 16160 16161 16162 16163 16164 16165 16166 16167 16168 16169 16170 16171 16172 16173 16174 16175 16176 16177 16178 16179 16180 16181 16182 16183 16184 16185 16186 16187 16188 16189 16190 16191 16192 16193 16194 16195 16196 16197 16198 16199 16200 16201 16202 16203 16204 16205 16206 16207 16208 16209 16210 16211 16212 16213 16214 16215 16216 16217 16218 16219 16220 16221 16222 16223 16224 16225 16226 16227 16228 16229 16230 16231 16232 16233 16234 16235 16236 16237 16238 16239 16240 16241 16242 16243 16244 16245 16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 16299 16300 16301 16302 16303 16304 16305 16306 16307 16308 16309 16310 16311 16312 16313 16314 16315 16316 16317 16318 16319 16320 16321 16322 16323 16324 16325 16326 16327 16328 16329 16330 16331 16332 16333 16334 16335 16336 16337 16338 16339 16340 16341 16342 16343 16344 16345 16346 16347 16348 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 16364 16365 16366 16367 16368 16369 16370 16371 16372 16373 16374 16375 16376 16377 16378 16379 16380 16381 16382 16383 16384 16385 16386 16387 16388 16389 16390 16391 16392 16393 16394 16395 16396 16397 16398 16399 16400 16401 16402 16403 16404 16405 16406 16407 16408 16409 16410 16411 16412 16413 16414 16415 16416 16417 16418 16419 16420 16421 16422 16423 16424 16425 16426 16427 16428 16429 16430 16431 16432 16433 16434 16435 16436 16437 16438 16439 16440 16441 16442 16443 16444 16445 16446 16447 16448 16449 16450 16451 16452 16453 16454 16455 16456 16457 16458 16459 16460 16461 16462 16463 16464 16465 16466 16467 16468 16469 16470 16471 16472 16473 16474 16475 16476 16477 16478 16479 16480 16481 16482 16483 16484 16485 16486 16487 16488 16489 16490 16491 16492 16493 16494 16495 16496 16497 16498 16499 16500 16501 16502 16503 16504 16505 16506 16507 16508 16509 16510 16511 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 16528 16529 16530 16531 16532 16533 16534 16535 16536 16537 16538 16539 16540 16541 16542 16543 16544 16545 16546 16547 16548 16549 16550 16551 16552 16553 16554 16555 16556 16557 16558 16559 16560 16561 16562 16563 16564 16565 16566 16567 16568 16569 16570 16571 16572 16573 16574 16575 16576 16577 16578 16579 16580 16581 16582 16583 16584 16585 16586 16587 16588 16589 16590 16591 16592 16593 16594 16595 16596 16597 16598 16599 16600 16601 16602 16603 16604 16605 16606 16607 16608 16609 16610 16611 16612 16613 16614 16615 16616 16617 16618 16619 16620 16621 16622 16623 16624 16625 16626 16627 16628 16629 16630 16631 16632 16633 16634 16635 16636 16637 16638 16639 16640 16641 16642 16643 16644 16645 16646 16647 16648 16649 16650 16651 16652 16653 16654 16655 16656 16657 16658 16659 16660 16661 16662 16663 16664 16665 16666 16667 16668 16669 16670 16671 16672 16673 16674 16675 16676 16677 16678 16679 16680 16681 16682 16683 16684 16685 16686 16687 16688 16689 16690 16691 16692 16693 16694 16695 16696 16697 16698 16699 16700 16701 16702 16703 16704 16705 16706 16707 16708 16709 16710 16711 16712 16713 16714 16715 16716 16717 16718 16719 16720 16721 16722 16723 16724 16725 16726 16727 16728 16729 16730 16731 16732 16733 16734 16735 16736 16737 16738 16739 16740 16741 16742 16743 16744 16745 16746 16747 16748 16749 16750 16751 16752 16753 16754 16755 16756 16757 16758 16759 16760 16761 16762 16763 16764 16765 16766 16767 16768 16769 16770 16771 16772 16773 16774 16775 16776 16777 16778 16779 16780 16781 16782 16783 16784 16785 16786 16787 16788 16789 16790 16791 16792 16793 16794 16795 16796 16797 16798 16799 16800 16801 16802 16803 16804 16805 16806 16807 16808 16809 16810 16811 16812 16813 16814 16815 16816 16817 16818 16819 16820 16821 16822 16823 16824 16825 16826 16827 16828 16829 16830 16831 16832 16833 16834 16835 16836 16837 16838 16839 16840 16841 16842 16843 16844 16845 16846 16847 16848 16849 16850 16851 16852 16853 16854 16855 16856 16857 16858 16859 16860 16861 16862 16863 16864 16865 16866 16867 16868 16869 16870 16871 16872 16873 16874 16875 16876 16877 16878 16879 16880 16881 16882 16883 16884 16885 16886 16887 16888 16889 16890 16891 16892 16893 16894 16895 16896 16897 16898 16899 16900 16901 16902 16903 16904 16905 16906 16907 16908 16909 16910 16911 16912 16913 16914 16915 16916 16917 16918 16919 16920 16921 16922 16923 16924 16925 16926 16927 16928 16929 16930 16931 16932 16933 16934 16935 16936 16937 16938 16939 16940 16941 16942 16943 16944 16945 16946 16947 16948 16949 16950 16951 16952 16953 16954 16955 16956 16957 16958 16959 16960 16961 16962 16963 16964 16965 16966 16967 16968 16969 16970 16971 16972 16973 16974 16975 16976 16977 16978 16979 16980 16981 16982 16983 16984 16985 16986 16987 16988 16989 16990 16991 16992 16993 16994 16995 16996 16997 16998 16999 17000 17001 17002 17003 17004 17005 17006 17007 17008 17009 17010 17011 17012 17013 17014 17015 17016 17017 17018 17019 17020 17021 17022 17023 17024 17025 17026 17027 17028 17029 17030 17031 17032 17033 17034 17035 17036 17037 17038 17039 17040 17041 17042 17043 17044 17045 17046 17047 17048 17049 17050 17051 17052 17053 17054 17055 17056 17057 17058 17059 17060 17061 17062 17063 17064 17065 17066 17067 17068 17069 17070 17071 17072 17073 17074 17075 17076 17077 17078 17079 17080 17081 17082 17083 17084 17085 17086 17087 17088 17089 17090 17091 17092 17093 17094 17095 17096 17097 17098 17099 17100 17101 17102 17103 17104 17105 17106 17107 17108 17109 17110 17111 17112 17113 17114 17115 17116 17117 17118 17119 17120 17121 17122 17123 17124 17125 17126 17127 17128 17129 17130 17131 17132 17133 17134 17135 17136 17137 17138 17139 17140 17141 17142 17143 17144 17145 17146 17147 17148 17149 17150 17151 17152 17153 17154 17155 17156 17157 17158 17159 17160 17161 17162 17163 17164 17165 17166 17167 17168 17169 17170 17171 17172 17173 17174 17175 17176 17177 17178 17179 17180 17181 17182 17183 17184 17185 17186 17187 17188 17189 17190 17191 17192 17193 17194 17195 17196 17197 17198 17199 17200 17201 17202 17203 17204 17205 17206 17207 17208 17209 17210 17211 17212 17213 17214 17215 17216 17217 17218 17219 17220 17221 17222 17223 17224 17225 17226 17227 17228 17229 17230 17231 17232 17233 17234 17235 17236 17237 17238 17239 17240 17241 17242 17243 17244 17245 17246 17247 17248 17249 17250 17251 17252 17253 17254 17255 17256 17257 17258 17259 17260 17261 17262 17263 17264 17265 17266 17267 17268 17269 17270 17271 17272 17273 17274 17275 17276 17277 17278 17279 17280 17281 17282 17283 17284 17285 17286 17287 17288 17289 17290 17291 17292 17293 17294 17295 17296 17297 17298 17299 17300 17301 17302 17303 17304 17305 17306 17307 17308 17309 17310 17311 17312 17313 17314 17315 17316 17317 17318 17319 17320 17321 17322 17323 17324 17325 17326 17327 17328 17329 17330 17331 17332 17333 17334 17335 17336 17337 17338 17339 17340 17341 17342 17343 17344 17345 17346 17347 17348 17349 17350 17351 17352 17353 17354 17355 17356 17357 17358 17359 17360 17361 17362 17363 17364 17365 17366 17367 17368 17369 17370 17371 17372 17373 17374 17375 17376 17377 17378 17379 17380 17381 17382 17383 17384 17385 17386 17387 17388 17389 17390 17391 17392 17393 17394 17395 17396 17397 17398 17399 17400 17401 17402 17403 17404 17405 17406 17407 17408 17409 17410 17411 17412 17413 17414 17415 17416 17417 17418 17419 17420 17421 17422 17423 17424 17425 17426 17427 17428 17429 17430 17431 17432 17433 17434 17435 17436 17437 17438 17439 17440 17441 17442 17443 17444 17445 17446 17447 17448 17449 17450 17451 17452 17453 17454 17455 17456 17457 17458 17459 17460 17461 17462 17463 17464 17465 17466 17467 17468 17469 17470 17471 17472 17473 17474 17475 17476 17477 17478 17479 17480 17481 17482 17483 17484 17485 17486 17487 17488 17489 17490 17491 17492 17493 17494 17495 17496 17497 17498 17499 17500 17501 17502 17503 17504 17505 17506 17507 17508 17509 17510 17511 17512 17513 17514 17515 17516 17517 17518 17519 17520 17521 17522 17523 17524 17525 17526 17527 17528 17529 17530 17531 17532 17533 17534 17535 17536 17537 17538 17539 17540 17541 17542 17543 17544 17545 17546 17547 17548 17549 17550 17551 17552 17553 17554 17555 17556 17557 17558 17559 17560 17561 17562 17563 17564 17565 17566 17567 17568 17569 17570 17571 17572 17573 17574 17575 17576 17577 17578 17579 17580 17581 17582 17583 17584 17585 17586 17587 17588 17589 17590 17591 17592 17593 17594 17595 17596 17597 17598 17599 17600 17601 17602 17603 17604 17605 17606 17607 17608 17609 17610 17611 17612 17613 17614 17615 17616 17617 17618 17619 17620 17621 17622 17623 17624 17625 17626 17627 17628 17629 17630 17631 17632 17633 17634 17635 17636 17637 17638 17639 17640 17641 17642 17643 17644 17645 17646 17647 17648 17649 17650 17651 17652 17653 17654 17655 17656 17657 17658 17659 17660 17661 17662 17663 17664 17665 17666 17667 17668 17669 17670 17671 17672 17673 17674 17675 17676 17677 17678 17679 17680 17681 17682 17683 17684 17685 17686 17687 17688 17689 17690 17691 17692 17693 17694 17695 17696 17697 17698 17699 17700 17701 17702 17703 17704 17705 17706 17707 17708 17709 17710 17711 17712 17713 17714 17715 17716 17717 17718 17719 17720 17721 17722 17723 17724 17725 17726 17727 17728 17729 17730 17731 17732 17733 17734 17735 17736 17737 17738 17739 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 17753 17754 17755 17756 17757 17758 17759 17760 17761 17762 17763 17764 17765 17766 17767 17768 17769 17770 17771 17772 17773 17774 17775 17776 17777 17778 17779 17780 17781 17782 17783 17784 17785 17786 17787 17788 17789 17790 17791 17792 17793 17794 17795 17796 17797 17798 17799 17800 17801 17802 17803 17804 17805 17806 17807 17808 17809 17810 17811 17812 17813 17814 17815 17816 17817 17818 17819 17820 17821 17822 17823 17824 17825 17826 17827 17828 17829 17830 17831 17832 17833 17834 17835 17836 17837 17838 17839 17840 17841 17842 17843 17844 17845 17846 17847 17848 17849 17850 17851 17852 17853 17854 17855 17856 17857 17858 17859 17860 17861 17862 17863 17864 17865 17866 17867 17868 17869 17870 17871 17872 17873 17874 17875 17876 17877 17878 17879 17880 17881 17882 17883 17884 17885 17886 17887 17888 17889 17890 17891 17892 17893 17894 17895 17896 17897 17898 17899 17900 17901 17902 17903 17904 17905 17906 17907 17908 17909 17910 17911 17912 17913 17914 17915 17916 17917 17918 17919 17920 17921 17922 17923 17924 17925 17926 17927 17928 17929 17930 17931 17932 17933 17934 17935 17936 17937 17938 17939 17940 17941 17942 17943 17944 17945 17946 17947 17948 17949 17950 17951 17952 17953 17954 17955 17956 17957 17958 17959 17960 17961 17962 17963 17964 17965 17966 17967 17968 17969 17970 17971 17972 17973 17974 17975 17976 17977 17978 17979 17980 17981 17982 17983 17984 17985 17986 17987 17988 17989 17990 17991 17992 17993 17994 17995 17996 17997 17998 17999 18000 18001 18002 18003 18004 18005 18006 18007 18008 18009 18010 18011 18012 18013 18014 18015 18016 18017 18018 18019 18020 18021 18022 18023 18024 18025 18026 18027 18028 18029 18030 18031 18032 18033 18034 18035 18036 18037 18038 18039 18040 18041 18042 18043 18044 18045 18046 18047 18048 18049 18050 18051 18052 18053 18054 18055 18056 18057 18058 18059 18060 18061 18062 18063 18064 18065 18066 18067 18068 18069 18070 18071 18072 18073 18074 18075 18076 18077 18078 18079 18080 18081 18082 18083 18084 18085 18086 18087 18088 18089 18090 18091 18092 18093 18094 18095 18096 18097 18098 18099 18100 18101 18102 18103 18104 18105 18106 18107 18108 18109 18110 18111 18112 18113 18114 18115 18116 18117 18118 18119 18120 18121 18122 18123 18124 18125 18126 18127 18128 18129 18130 18131 18132 18133 18134 18135 18136 18137 18138 18139 18140 18141 18142 18143 18144 18145 18146 18147 18148 18149 18150 18151 18152 18153 18154 18155 18156 18157 18158 18159 18160 18161 18162 18163 18164 18165 18166 18167 18168 18169 18170 18171 18172 18173 18174 18175 18176 18177 18178 18179 18180 18181 18182 18183 18184 18185 18186 18187 18188 18189 18190 18191 18192 18193 18194 18195 18196 18197 18198 18199 18200 18201 18202 18203 18204 18205 18206 18207 18208 18209 18210 18211 18212 18213 18214 18215 18216 18217 18218 18219 18220 18221 18222 18223 18224 18225 18226 18227 18228 18229 18230 18231 18232 18233 18234 18235 18236 18237 18238 18239 18240 18241 18242 18243 18244 18245 18246 18247 18248 18249 18250 18251 18252 18253 18254 18255 18256 18257 18258 18259 18260 18261 18262 18263 18264 18265 18266 18267 18268 18269 18270 18271 18272 18273 18274 18275 18276 18277 18278 18279 18280 18281 18282 18283 18284 18285 18286 18287 18288 18289 18290 18291 18292 18293 18294 18295 18296 18297 18298 18299 18300 18301 18302 18303 18304 18305 18306 18307 18308 18309 18310 18311 18312 18313 18314 18315 18316 18317 18318 18319 18320 18321 18322 18323 18324 18325 18326 18327 18328 18329 18330 18331 18332 18333 18334 18335 18336 18337 18338 18339 18340 18341 18342 18343 18344 18345 18346 18347 18348 18349 18350 18351 18352 18353 18354 18355 18356 18357 18358 18359 18360 18361 18362 18363 18364 18365 18366 18367 18368 18369 18370 18371 18372 18373 18374 18375 18376 18377 18378 18379 18380 18381 18382 18383 18384 18385 18386 18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 18409 18410 18411 18412 18413 18414 18415 18416 18417 18418 18419 18420 18421 18422 18423 18424 18425 18426 18427 18428 18429 18430 18431 18432 18433 18434 18435 18436 18437 18438 18439 18440 18441 18442 18443 18444 18445 18446 18447 18448 18449 18450 18451 18452 18453 18454 18455 18456 18457 18458 18459 18460 18461 18462 18463 18464 18465 18466 18467 18468 18469 18470 18471 18472 18473 18474 18475 18476 18477 18478 18479 18480 18481 18482 18483 18484 18485 18486 18487 18488 18489 18490 18491 18492 18493 18494 18495 18496 18497 18498 18499 18500 18501 18502 18503 18504 18505 18506 18507 18508 18509 18510 18511 18512 18513 18514 18515 18516 18517 18518 18519 18520 18521 18522 18523 18524 18525 18526 18527 18528 18529 18530 18531 18532 18533 18534 18535 18536 18537 18538 18539 18540 18541 18542 18543 18544 18545 18546 18547 18548 18549 18550 18551 18552 18553 18554 18555 18556 18557 18558 18559 18560 18561 18562 18563 18564 18565 18566 18567 18568 18569 18570 18571 18572 18573 18574 18575 18576 18577 18578 18579 18580 18581 18582 18583 18584 18585 18586 18587 18588 18589 18590 18591 18592 18593 18594 18595 18596 18597 18598 18599 18600 18601 18602 18603 18604 18605 18606 18607 18608 18609 18610 18611 18612 18613 18614 18615 18616 18617 18618 18619 18620 18621 18622 18623 18624 18625 18626 18627 18628 18629 18630 18631 18632 18633 18634 18635 18636 18637 18638 18639 18640 18641 18642 18643 18644 18645 18646 18647 18648 18649 18650 18651 18652 18653 18654 18655 18656 18657 18658 18659 18660 18661 18662 18663 18664 18665 18666 18667 18668 18669 18670 18671 18672 18673 18674 18675 18676 18677 18678 18679 18680 18681 18682 18683 18684 18685 18686 18687 18688 18689 18690 18691 18692 18693 18694 18695 18696 18697 18698 18699 18700 18701 18702 18703 18704 18705 18706 18707 18708 18709 18710 18711 18712 18713 18714 18715 18716 18717 18718 18719 18720 18721 18722 18723 18724 18725 18726 18727 18728 18729 18730 18731 18732 18733 18734 18735 18736 18737 18738 18739 18740 18741 18742 18743 18744 18745 18746 18747 18748 18749 18750 18751 18752 18753 18754 18755 18756 18757 18758 18759 18760 18761 18762 18763 18764 18765 18766 18767 18768 18769 18770 18771 18772 18773 18774 18775 18776 18777 18778 18779 18780 18781 18782 18783 18784 18785 18786 18787 18788 18789 18790 18791 18792 18793 18794 18795 18796 18797 18798 18799 18800 18801 18802 18803 18804 18805 18806 18807 18808 18809 18810 18811 18812 18813 18814 18815 18816 18817 18818 18819 18820 18821 18822 18823 18824 18825 18826 18827 18828 18829 18830 18831 18832 18833 18834 18835 18836 18837 18838 18839 18840 18841 18842 18843 18844 18845 18846 18847 18848 18849 18850 18851 18852 18853 18854 18855 18856 18857 18858 18859 18860 18861 18862 18863 18864 18865 18866 18867 18868 18869 18870 18871 18872 18873 18874 18875 18876 18877 18878 18879 18880 18881 18882 18883 18884 18885 18886 18887 18888 18889 18890 18891 18892 18893 18894 18895 18896 18897 18898 18899 18900 18901 18902 18903 18904 18905 18906 18907 18908 18909 18910 18911 18912 18913 18914 18915 18916 18917 18918 18919 18920 18921 18922 18923 18924 18925 18926 18927 18928 18929 18930 18931 18932 18933 18934 18935 18936 18937 18938 18939 18940 18941 18942 18943 18944 18945 18946 18947 18948 18949 18950 18951 18952 18953 18954 18955 18956 18957 18958 18959 18960 18961 18962 18963 18964 18965 18966 18967 18968 18969 18970 18971 18972 18973 18974 18975 18976 18977 18978 18979 18980 18981 18982 18983 18984 18985 18986 18987 18988 18989 18990 18991 18992 18993 18994 18995 18996 18997 18998 18999 19000 19001 19002 19003 19004 19005 19006 19007 19008 19009 19010 19011 19012 19013 19014 19015 19016 19017 19018 19019 19020 19021 19022 19023 19024 19025 19026 19027 19028 19029 19030 19031 19032 19033 19034 19035 19036 19037 19038 19039 19040 19041 19042 19043 19044 19045 19046 19047 19048 19049 19050 19051 19052 19053 19054 19055 19056 19057 19058 19059 19060 19061 19062 19063 19064 19065 19066 19067 19068 19069 19070 19071 19072 19073 19074 19075 19076 19077 19078 19079 19080 19081 19082 19083 19084 19085 19086 19087 19088 19089 19090 19091 19092 19093 19094 19095 19096 19097 19098 19099 19100 19101 19102 19103 19104 19105 19106 19107 19108 19109 19110 19111 19112 19113 19114 19115 19116 19117 19118 19119 19120 19121 19122 19123 19124 19125 19126 19127 19128 19129 19130 19131 19132 19133 19134 19135 19136 19137 19138 19139 19140 19141 19142 19143 19144 19145 19146 19147 19148 19149 19150 19151 19152 19153 19154 19155 19156 19157 19158 19159 19160 19161 19162 19163 19164 19165 19166 19167 19168 19169 19170 19171 19172 19173 19174 19175 19176 19177 19178 19179 19180 19181 19182 19183 19184 19185 19186 19187 19188 19189 19190 19191 19192 19193 19194 19195 19196 19197 19198 19199 19200 19201 19202 19203 19204 19205 19206 19207 19208 19209 19210 19211 19212 19213 19214 19215 19216 19217 19218 19219 19220 19221 19222 19223 19224 19225 19226 19227 19228 19229 19230 19231 19232 19233 19234 19235 19236 19237 19238 19239 19240 19241 19242 19243 19244 19245 19246 19247 19248 19249 19250 19251 19252 19253 19254 19255 19256 19257 19258 19259 19260 19261 19262 19263 19264 19265 19266 19267 19268 19269 19270 19271 19272 19273 19274 19275 19276 19277 19278 19279 19280 19281 19282 19283 19284 19285 19286 19287 19288 19289 19290 19291 19292 19293 19294 19295 19296 19297 19298 19299 19300 19301 19302 19303 19304 19305 19306 19307 19308 19309 19310 19311 19312 19313 19314 19315 19316 19317 19318 19319 19320 19321 19322 19323 19324 19325 19326 19327 19328 19329 19330 19331 19332 19333 19334 19335 19336 19337 19338 19339 19340 19341 19342 19343 19344 19345 19346 19347 19348 19349 19350 19351 19352 19353 19354 19355 19356 19357 19358 19359 19360 19361 19362 19363 19364 19365 19366 19367 19368 19369 19370 19371 19372 19373 19374 19375 19376 19377 19378 19379 19380 19381 19382 19383 19384 19385 19386 19387 19388 19389 19390 19391 19392 19393 19394 19395 19396 19397 19398 19399 19400 19401 19402 19403 19404 19405 19406 19407 19408 19409 19410 19411 19412 19413 19414 19415 19416 19417 19418 19419 19420 19421 19422 19423 19424 19425 19426 19427 19428 19429 19430 19431 19432 19433 19434 19435 19436 19437 19438 19439 19440 19441 19442 19443 19444 19445 19446 19447 19448 19449 19450 19451 19452 19453 19454 19455 19456 19457 19458 19459 19460 19461 19462 19463 19464 19465 19466 19467 19468 19469 19470 19471 19472 19473 19474 19475 19476 19477 19478 19479 19480 19481 19482 19483 19484 19485 19486 19487 19488 19489 19490 19491 19492 19493 19494 19495 19496 19497 19498 19499 19500 19501 19502 19503 19504 19505 19506 19507 19508 19509 19510 19511 19512 19513 19514 19515 19516 19517 19518 19519 19520 19521 19522 19523 19524 19525 19526 19527 19528 19529 19530 19531 19532 19533 19534 19535 19536 19537 19538 19539 19540 19541 19542 19543 19544 19545 19546 19547 19548 19549 19550 19551 19552 19553 19554 19555 19556 19557 19558 19559 19560 19561 19562 19563 19564 19565 19566 19567 19568 19569 19570 19571 19572 19573 19574 19575 19576 19577 19578 19579 19580 19581 19582 19583 19584 19585 19586 19587 19588 19589 19590 19591 19592 19593 19594 19595 19596 19597 19598 19599 19600 19601 19602 19603 19604 19605 19606 19607 19608 19609 19610 19611 19612 19613 19614 19615 19616 19617 19618 19619 19620 19621 19622 19623 19624 19625 19626 19627 19628 19629 19630 19631 19632 19633 19634 19635 19636 19637 19638 19639 19640 19641 19642 19643 19644 19645 19646 19647 19648 19649 19650 19651 19652 19653 19654 19655 19656 19657 19658 19659 19660 19661 19662 19663 19664 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 19677 19678 19679 19680 19681 19682 19683 19684 19685 19686 19687 19688 19689 19690 19691 19692 19693 19694 19695 19696 19697 19698 19699 19700 19701 19702 19703 19704 19705 19706 19707 19708 19709 19710 19711 19712 19713 19714 19715 19716 19717 19718 19719 19720 19721 19722 19723 19724 19725 19726 19727 19728 19729 19730 19731 19732 19733 19734 19735 19736 19737 19738 19739 19740 19741 19742 19743 19744 19745 19746 19747 19748 19749 19750 19751 19752 19753 19754 19755 19756 19757 19758 19759 19760 19761 19762 19763 19764 19765 19766 19767 19768 19769 19770 19771 19772 19773 19774 19775 19776 19777 19778 19779 19780 19781 19782 19783 19784 19785 19786 19787 19788 19789 19790 19791 19792 19793 19794 19795 19796 19797 19798 19799 19800 19801 19802 19803 19804 19805 19806 19807 19808 19809 19810 19811 19812 19813 19814 19815 19816 19817 19818 19819 19820 19821 19822 19823 19824 19825 19826 19827 19828 19829 19830 19831 19832 19833 19834 19835 19836 19837 19838 19839 19840 19841 19842 19843 19844 19845 19846 19847 19848 19849 19850 19851 19852 19853 19854 19855 19856 19857 19858 19859 19860 19861 19862 19863 19864 19865 19866 19867 19868 19869 19870 19871 19872 19873 19874 19875 19876 19877 19878 19879 19880 19881 19882 19883 19884 19885 19886 19887 19888 19889 19890 19891 19892 19893 19894 19895 19896 19897 19898 19899 19900 19901 19902 19903 19904 19905 19906 19907 19908 19909 19910 19911 19912 19913 19914 19915 19916 19917 19918 19919 19920 19921 19922 19923 19924 19925 19926 19927 19928 19929 19930 19931 19932 19933 19934 19935 19936 19937 19938 19939 19940 19941 19942 19943 19944 19945 19946 19947 19948 19949 19950 19951 19952 19953 19954 19955 19956 19957 19958 19959 19960 19961 19962 19963 19964 19965 19966 19967 19968 19969 19970 19971 19972 19973 19974 19975 19976 19977 19978 19979 19980 19981 19982 19983 19984 19985 19986 19987 19988 19989 19990 19991 19992 19993 19994 19995 19996 19997 19998 19999 20000 20001 20002 20003 20004 20005 20006 20007 20008 20009 20010 20011 20012 20013 20014 20015 20016 20017 20018 20019 20020 20021 20022 20023 20024 20025 20026 20027 20028 20029 20030 20031 20032 20033 20034 20035 20036 20037 20038 20039 20040 20041 20042 20043 20044 20045 20046 20047 20048 20049 20050 20051 20052 20053 20054 20055 20056 20057 20058 20059 20060 20061 20062 20063 20064 20065 20066 20067 20068 20069 20070 20071 20072 20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 20097 20098 20099 20100 20101 20102 20103 20104 20105 20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 20129 20130 20131 20132 20133 20134 20135 20136 20137 20138 20139 20140 20141 20142 20143 20144 20145 20146 20147 20148 20149 20150 20151 20152 20153 20154 20155 20156 20157 20158 20159 20160 20161 20162 20163 20164 20165 20166 20167 20168 20169 20170 20171 20172 20173 20174 20175 20176 20177 20178 20179 20180 20181 20182 20183 20184 20185 20186 20187 20188 20189 20190 20191 20192 20193 20194 20195 20196 20197 20198 20199 20200 20201 20202 20203 20204 20205 20206 20207 20208 20209 20210 20211 20212 20213 20214 20215 20216 20217 20218 20219 20220 20221 20222 20223 20224 20225 20226 20227 20228 20229 20230 20231 20232 20233 20234 20235 20236 20237 20238 20239 20240 20241 20242 20243 20244 20245 20246 20247 20248 20249 20250 20251 20252 20253 20254 20255 20256 20257 20258 20259 20260 20261 20262 20263 20264 20265 20266 20267 20268 20269 20270 20271 20272 20273 20274 20275 20276 20277 20278 20279 20280 20281 20282 20283 20284 20285 20286 20287 20288 20289 20290 20291 20292 20293 20294 20295 20296 20297 20298 20299 20300 20301 20302 20303 20304 20305 20306 20307 20308 20309 20310 20311 20312 20313 20314 20315 20316 20317 20318 20319 20320 20321 20322 20323 20324 20325 20326 20327 20328 20329 20330 20331 20332 20333 20334 20335 20336 20337 20338 20339 20340 20341 20342 20343 20344 20345 20346 20347 20348 20349 20350 20351 20352 20353 20354 20355 20356 20357 20358 20359 20360 20361 20362 20363 20364 20365 20366 20367 20368 20369 20370 20371 20372 20373 20374 20375 20376 20377 20378 20379 20380 20381 20382 20383 20384 20385 20386 20387 20388 20389 20390 20391 20392 20393 20394 20395 20396 20397 20398 20399 20400 20401 20402 20403 20404 20405 20406 20407 20408 20409 20410 20411 20412 20413 20414 20415 20416 20417 20418 20419 20420 20421 20422 20423 20424 20425 20426 20427 20428 20429 20430 20431 20432 20433 20434 20435 20436 20437 20438 20439 20440 20441 20442 20443 20444 20445 20446 20447 20448 20449 20450 20451 20452 20453 20454 20455 20456 20457 20458 20459 20460 20461 20462 20463 20464 20465 20466 20467 20468 20469 20470 20471 20472 20473 20474 20475 20476 20477 20478 20479 20480 20481 20482 20483 20484 20485 20486 20487 20488 20489 20490 20491 20492 20493 20494 20495 20496 20497 20498 20499 20500 20501 20502 20503 20504 20505 20506 20507 20508 20509 20510 20511 20512 20513 20514 20515 20516 20517 20518 20519 20520 20521 20522 20523 20524 20525 20526 20527 20528 20529 20530 20531 20532 20533 20534 20535 20536 20537 20538 20539 20540 20541 20542 20543 20544 20545 20546 20547 20548 20549 20550 20551 20552 20553 20554 20555 20556 20557 20558 20559 20560 20561 20562 20563 20564 20565 20566 20567 20568 20569 20570 20571 20572 20573 20574 20575 20576 20577 20578 20579 20580 20581 20582 20583 20584 20585 20586 20587 20588 20589 20590 20591 20592 20593 20594 20595 20596 20597 20598 20599 20600 20601 20602 20603 20604 20605 20606 20607 20608 20609 20610 20611 20612 20613 20614 20615 20616 20617 20618 20619 20620 20621 20622 20623 20624 20625 20626 20627 20628 20629 20630 20631 20632 20633 20634 20635 20636 20637 20638 20639 20640 20641 20642 20643 20644 20645 20646 20647 20648 20649 20650 20651 20652 20653 20654 20655 20656 20657 20658 20659 20660 20661 20662 20663 20664 20665 20666 20667 20668 20669 20670 20671 20672 20673 20674 20675 20676 20677 20678 20679 20680 20681 20682 20683 20684 20685 20686 20687 20688 20689 20690 20691 20692 20693 20694 20695 20696 20697 20698 20699 20700 20701 20702 20703 20704 20705 20706 20707 20708 20709 20710 20711 20712 20713 20714 20715 20716 20717 20718 20719 20720 20721 20722 20723 20724 20725 20726 20727 20728 20729 20730 20731 20732 20733 20734 20735 20736 20737 20738 20739 20740 20741 20742 20743 20744 20745 20746 20747 20748 20749 20750 20751 20752 20753 20754 20755 20756 20757 20758 20759 20760 20761 20762 20763 20764 20765 20766 20767 20768 20769 20770 20771 20772 20773 20774 20775 20776 20777 20778 20779 20780 20781 20782 20783 20784 20785 20786 20787 20788 20789 20790 20791 20792 20793 20794 20795 20796 20797 20798 20799 20800 20801 20802 20803 20804 20805 20806 20807 20808 20809 20810 20811 20812 20813 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 20839 20840 20841 20842 20843 20844 20845 20846 20847 20848 20849 20850 20851 20852 20853 20854 20855 20856 20857 20858 20859 20860 20861 20862 20863 20864 20865 20866 20867 20868 20869 20870 20871 20872 20873 20874 20875 20876 20877 20878 20879 20880 20881 20882 20883 20884 20885 20886 20887 20888 20889 20890 20891 20892 20893 20894 20895 20896 20897 20898 20899 20900 20901 20902 20903 20904 20905 20906 20907 20908 20909 20910 20911 20912 20913 20914 20915 20916 20917 20918 20919 20920 20921 20922 20923 20924 20925 20926 20927 20928 20929 20930 20931 20932 20933 20934 20935 20936 20937 20938 20939 20940 20941 20942 20943 20944 20945 20946 20947 20948 20949 20950 20951 20952 20953 20954 20955 20956 20957 20958 20959 20960 20961 20962 20963 20964 20965 20966 20967 20968 20969 20970 20971 20972 20973 20974 20975 20976 20977 20978 20979 20980 20981 20982 20983 20984 20985 20986 20987 20988 20989 20990 20991 20992 20993 20994 20995 20996 20997 20998 20999 21000 21001 21002 21003 21004 21005 21006 21007 21008 21009 21010 21011 21012 21013 21014 21015 21016 21017 21018 21019 21020 21021 21022 21023 21024 21025 21026 21027 21028 21029 21030 21031 21032 21033 21034 21035 21036 21037 21038 21039 21040 21041 21042 21043 21044 21045 21046 21047 21048 21049 21050 21051 21052 21053 21054 21055 21056 21057 21058 21059 21060 21061 21062 21063 21064 21065 21066 21067 21068 21069 21070 21071 21072 21073 21074 21075 21076 21077 21078 21079 21080 21081 21082 21083 21084 21085 21086 21087 21088 21089 21090 21091 21092 21093 21094 21095 21096 21097 21098 21099 21100 21101 21102 21103 21104 21105 21106 21107 21108 21109 21110 21111 21112 21113 21114 21115 21116 21117 21118 21119 21120 21121 21122 21123 21124 21125 21126 21127 21128 21129 21130 21131 21132 21133 21134 21135 21136 21137 21138 21139 21140 21141 21142 21143 21144 21145 21146 21147 21148 21149 21150 21151 21152 21153 21154 21155 21156 21157 21158 21159 21160 21161 21162 21163 21164 21165 21166 21167 21168 21169 21170 21171 21172 21173 21174 21175 21176 21177 21178 21179 21180 21181 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200 21201 21202 21203 21204 21205 21206 21207 21208 21209 21210 21211 21212 21213 21214 21215 21216 21217 21218 21219 21220 21221 21222 21223 21224 21225 21226 21227 21228 21229 21230 21231 21232 21233 21234 21235 21236 21237 21238 21239 21240 21241 21242 21243 21244 21245 21246 21247 21248 21249 21250 21251 21252 21253 21254 21255 21256 21257 21258 21259 21260 21261 21262 21263 21264 21265 21266 21267 21268 21269 21270 21271 21272 21273 21274 21275 21276 21277 21278 21279 21280 21281 21282 21283 21284 21285 21286 21287 21288 21289 21290 21291 21292 21293 21294 21295 21296 21297 21298 21299 21300 21301 21302 21303 21304 21305 21306 21307 21308 21309 21310 21311 21312 21313 21314 21315 21316 21317 21318 21319 21320 21321 21322 21323 21324 21325 21326 21327 21328 21329 21330 21331 21332 21333 21334 21335 21336 21337 21338 21339 21340 21341 21342 21343 21344 21345 21346 21347 21348 21349 21350 21351 21352 21353 21354 21355 21356 21357 21358 21359 21360 21361 21362 21363 21364 21365 21366 21367 21368 21369 21370 21371 21372 21373 21374 21375 21376 21377 21378 21379 21380 21381 21382 21383 21384 21385 21386 21387 21388 21389 21390 21391 21392 21393 21394 21395 21396 21397 21398 21399 21400 21401 21402 21403 21404 21405 21406 21407 21408 21409 21410 21411 21412 21413 21414 21415 21416 21417 21418 21419 21420 21421 21422 21423 21424 21425 21426 21427 21428 21429 21430 21431 21432 21433 21434 21435 21436 21437 21438 21439 21440 21441 21442 21443 21444 21445 21446 21447 21448 21449 21450 21451 21452 21453 21454 21455 21456 21457 21458 21459 21460 21461 21462 21463 21464 21465 21466 21467 21468 21469 21470 21471 21472 21473 21474 21475 21476 21477 21478 21479 21480 21481 21482 21483 21484 21485 21486 21487 21488 21489 21490 21491 21492 21493 21494 21495 21496 21497 21498 21499 21500 21501 21502 21503 21504 21505 21506 21507 21508 21509 21510 21511 21512 21513 21514 21515 21516 21517 21518 21519 21520 21521 21522 21523 21524 21525 21526 21527 21528 21529 21530 21531 21532 21533 21534 21535 21536 21537 21538 21539 21540 21541 21542 21543 21544 21545 21546 21547 21548 21549 21550 21551 21552 21553 21554 21555 21556 21557 21558 21559 21560 21561 21562 21563 21564 21565 21566 21567 21568 21569 21570 21571 21572 21573 21574 21575 21576 21577 21578 21579 21580 21581 21582 21583 21584 21585 21586 21587 21588 21589 21590 21591 21592 21593 21594 21595 21596 21597 21598 21599 21600 21601 21602 21603 21604 21605 21606 21607 21608 21609 21610 21611 21612 21613 21614 21615 21616 21617 21618 21619 21620 21621 21622 21623 21624 21625 21626 21627 21628 21629 21630 21631 21632 21633 21634 21635 21636 21637 21638 21639 21640 21641 21642 21643 21644 21645 21646 21647 21648 21649 21650 21651 21652 21653 21654 21655 21656 21657 21658 21659 21660 21661 21662 21663 21664 21665 21666 21667 21668 21669 21670 21671 21672 21673 21674 21675 21676 21677 21678 21679 21680 21681 21682 21683 21684 21685 21686 21687 21688 21689 21690 21691 21692 21693 21694 21695 21696 21697 21698 21699 21700 21701 21702 21703 21704 21705 21706 21707 21708 21709 21710 21711 21712 21713 21714 21715 21716 21717 21718 21719 21720 21721 21722 21723 21724 21725 21726 21727 21728 21729 21730 21731 21732 21733 21734 21735 21736 21737 21738 21739 21740 21741 21742 21743 21744 21745 21746 21747 21748 21749 21750 21751 21752 21753 21754 21755 21756 21757 21758 21759 21760 21761 21762 21763 21764 21765 21766 21767 21768 21769 21770 21771 21772 21773 21774 21775 21776 21777 21778 21779 21780 21781 21782 21783 21784 21785 21786 21787 21788 21789 21790 21791 21792 21793 21794 21795 21796 21797 21798 21799 21800 21801 21802 21803 21804 21805 21806 21807 21808 21809 21810 21811 21812 21813 21814 21815 21816 21817 21818 21819 21820 21821 21822 21823 21824 21825 21826 21827 21828 21829 21830 21831 21832 21833 21834 21835 21836 21837 21838 21839 21840 21841 21842 21843 21844 21845 21846 21847 21848 21849 21850 21851 21852 21853 21854 21855 21856 21857 21858 21859 21860 21861 21862 21863 21864 21865 21866 21867 21868 21869 21870 21871 21872 21873 21874 21875 21876 21877 21878 21879 21880 21881 21882 21883 21884 21885 21886 21887 21888 21889 21890 21891 21892 21893 21894 21895 21896 21897 21898 21899 21900 21901 21902 21903 21904 21905 21906 21907 21908 21909 21910 21911 21912 21913 21914 21915 21916 21917 21918 21919 21920 21921 21922 21923 21924 21925 21926 21927 21928 21929 21930 21931 21932 21933 21934 21935 21936 21937 21938 21939 21940 21941 21942 21943 21944 21945 21946 21947 21948 21949 21950 21951 21952 21953 21954 21955 21956 21957 21958 21959 21960 21961 21962 21963 21964 21965 21966 21967 21968 21969 21970 21971 21972 21973 21974 21975 21976 21977 21978 21979 21980 21981 21982 21983 21984 21985 21986 21987 21988 21989 21990 21991 21992 21993 21994 21995 21996 21997 21998 21999 22000 22001 22002 22003 22004 22005 22006 22007 22008 22009 22010 22011 22012 22013 22014 22015 22016 22017 22018 22019 22020 22021 22022 22023 22024 22025 22026 22027 22028 22029 22030 22031 22032 22033 22034 22035 22036 22037 22038 22039 22040 22041 22042 22043 22044 22045 22046 22047 22048 22049 22050 22051 22052 22053 22054 22055 22056 22057 22058 22059 22060 22061 22062 22063 22064 22065 22066 22067 22068 22069 22070 22071 22072 22073 22074 22075 22076 22077 22078 22079 22080 22081 22082 22083 22084 22085 22086 22087 22088 22089 22090 22091 22092 22093 22094 22095 22096 22097 22098 22099 22100 22101 22102 22103 22104 22105 22106 22107 22108 22109 22110 22111 22112 22113 22114 22115 22116 22117 22118 22119 22120 22121 22122 22123 22124 22125 22126 22127 22128 22129 22130 22131 22132 22133 22134 22135 22136 22137 22138 22139 22140 22141 22142 22143 22144 22145 22146 22147 22148 22149 22150 22151 22152 22153 22154 22155 22156 22157 22158 22159 22160 22161 22162 22163 22164 22165 22166 22167 22168 22169 22170 22171 22172 22173 22174 22175 22176 22177 22178 22179 22180 22181 22182 22183 22184 22185 22186 22187 22188 22189 22190 22191 22192 22193 22194 22195 22196 22197 22198 22199 22200 22201 22202 22203 22204 22205 22206 22207 22208 22209 22210 22211 22212 22213 22214 22215 22216 22217 22218 22219 22220 22221 22222 22223 22224 22225 22226 22227 22228 22229 22230 22231 22232 22233 22234 22235 22236 22237 22238 22239 22240 22241 22242 22243 22244 22245 22246 22247 22248 22249 22250 22251 22252 22253 22254 22255 22256 22257 22258 22259 22260 22261 22262 22263 22264 22265 22266 22267 22268 22269 22270 22271 22272 22273 22274 22275 22276 22277 22278 22279 22280 22281 22282 22283 22284 22285 22286 22287 22288 22289 22290 22291 22292 22293 22294 22295 22296 22297 22298 22299 22300 22301 22302 22303 22304 22305 22306 22307 22308 22309 22310 22311 22312 22313 22314 22315 22316 22317 22318 22319 22320 22321 22322 22323 22324 22325 22326 22327 22328 22329 22330 22331 22332 22333 22334 22335 22336 22337 22338 22339 22340 22341 22342 22343 22344 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 22358 22359 22360 22361 22362 22363 22364 22365 22366 22367 22368 22369 22370 22371 22372 22373 22374 22375 22376 22377 22378 22379 22380 22381 22382 22383 22384 22385 22386 22387 22388 22389 22390 22391 22392 22393 22394 22395 22396 22397 22398 22399 22400 22401 22402 22403 22404 22405 22406 22407 22408 22409 22410 22411 22412 22413 22414 22415 22416 22417 22418 22419 22420 22421 22422 22423 22424 22425 22426 22427 22428 22429 22430 22431 22432 22433 22434 22435 22436 22437 22438 22439 22440 22441 22442 22443 22444 22445 22446 22447 22448 22449 22450 22451 22452 22453 22454 22455 22456 22457 22458 22459 22460 22461 22462 22463 22464 22465 22466 22467 22468 22469 22470 22471 22472 22473 22474 22475 22476 22477 22478 22479 22480 22481 22482 22483 22484 22485 22486 22487 22488 22489 22490 22491 22492 22493 22494 22495 22496 22497 22498 22499 22500 22501 22502 22503 22504 22505 22506 22507 22508 22509 22510 22511 22512 22513 22514 22515 22516 22517 22518 22519 22520 22521 22522 22523 22524 22525 22526 22527 22528 22529 22530 22531 22532 22533 22534 22535 22536 22537 22538 22539 22540 22541 22542 22543 22544 22545 22546 22547 22548 22549 22550 22551 22552 22553 22554 22555 22556 22557 22558 22559 22560 22561 22562 22563 22564 22565 22566 22567 22568 22569 22570 22571 22572 22573 22574 22575 22576 22577 22578 22579 22580 22581 22582 22583 22584 22585 22586 22587 22588 22589 22590 22591 22592 22593 22594 22595 22596 22597 22598 22599 22600 22601 22602 22603 22604 22605 22606 22607 22608 22609 22610 22611 22612 22613 22614 22615 22616 22617 22618 22619 22620 22621 22622 22623 22624 22625 22626 22627 22628 22629 22630 22631 22632 22633 22634 22635 22636 22637 22638 22639 22640 22641 22642 22643 22644 22645 22646 22647 22648 22649 22650 22651 22652 22653 22654 22655 22656 22657 22658 22659 22660 22661 22662 22663 22664 22665 22666 22667 22668 22669 22670 22671 22672 22673 22674 22675 22676 22677 22678 22679 22680 22681 22682 22683 22684 22685 22686 22687 22688 22689 22690 22691 22692 22693 22694 22695 22696 22697 22698 22699 22700 22701 22702 22703 22704 22705 22706 22707 22708 22709 22710 22711 22712 22713 22714 22715 22716 22717 22718 22719 22720 22721 22722 22723 22724 22725 22726 22727 22728 22729 22730 22731 22732 22733 22734 22735 22736 22737 22738 22739 22740 22741 22742 22743 22744 22745 22746 22747 22748 22749 22750 22751 22752 22753 22754 22755 22756 22757 22758 22759 22760 22761 22762 22763 22764 22765 22766 22767 22768 22769 22770 22771 22772 22773 22774 22775 22776 22777 22778 22779 22780 22781 22782 22783 22784 22785 22786 22787 22788 22789 22790 22791 22792 22793 22794 22795 22796 22797 22798 22799 22800 22801 22802 22803 22804 22805 22806 22807 22808 22809 22810 22811 22812 22813 22814 22815 22816 22817 22818 22819 22820 22821 22822 22823 22824 22825 22826 22827 22828 22829 22830 22831 22832 22833 22834 22835 22836 22837 22838 22839 22840 22841 22842 22843 22844 22845 22846 22847 22848 22849 22850 22851 22852 22853 22854 22855 22856 22857 22858 22859 22860 22861 22862 22863 22864 22865 22866 22867 22868 22869 22870 22871 22872 22873 22874 22875 22876 22877 22878 22879 22880 22881 22882 22883 22884 22885 22886 22887 22888 22889 22890 22891 22892 22893 22894 22895 22896 22897 22898 22899 22900 22901 22902 22903 22904 22905 22906 22907 22908 22909 22910 22911 22912 22913 22914 22915 22916 22917 22918 22919 22920 22921 22922 22923 22924 22925 22926 22927 22928 22929 22930 22931 22932 22933 22934 22935 22936 22937 22938 22939 22940 22941 22942 22943 22944 22945 22946 22947 22948 22949 22950 22951 22952 22953 22954 22955 22956 22957 22958 22959 22960 22961 22962 22963 22964 22965 22966 22967 22968 22969 22970 22971 22972 22973 22974 22975 22976 22977 22978 22979 22980 22981 22982 22983 22984 22985 22986 22987 22988 22989 22990 22991 22992 22993 22994 22995 22996 22997 22998 22999 23000 23001 23002 23003 23004 23005 23006 23007 23008 23009 23010 23011 23012 23013 23014 23015 23016 23017 23018 23019 23020 23021 23022 23023 23024 23025 23026 23027 23028 23029 23030 23031 23032 23033 23034 23035 23036 23037 23038 23039 23040 23041 23042 23043 23044 23045 23046 23047 23048 23049 23050 23051 23052 23053 23054 23055 23056 23057 23058 23059 23060 23061 23062 23063 23064 23065 23066 23067 23068 23069 23070 23071 23072 23073 23074 23075 23076 23077 23078 23079 23080 23081 23082 23083 23084 23085 23086 23087 23088 23089 23090 23091 23092 23093 23094 23095 23096 23097 23098 23099 23100 23101 23102 23103 23104 23105 23106 23107 23108 23109 23110 23111 23112 23113 23114 23115 23116 23117 23118 23119 23120 23121 23122 23123 23124 23125 23126 23127 23128 23129 23130 23131 23132 23133 23134 23135 23136 23137 23138 23139 23140 23141 23142 23143 23144 23145 23146 23147 23148 23149 23150 23151 23152 23153 23154 23155 23156 23157 23158 23159 23160 23161 23162 23163 23164 23165 23166 23167 23168 23169 23170 23171 23172 23173 23174 23175 23176 23177 23178 23179 23180 23181 23182 23183 23184 23185 23186 23187 23188 23189 23190 23191 23192 23193 23194 23195 23196 23197 23198 23199 23200 23201 23202 23203 23204 23205 23206 23207 23208 23209 23210 23211 23212 23213 23214 23215 23216 23217 23218 23219 23220 23221 23222 23223 23224 23225 23226 23227 23228 23229 23230 23231 23232 23233 23234 23235 23236 23237 23238 23239 23240 23241 23242 23243 23244 23245 23246 23247 23248 23249 23250 23251 23252 23253 23254 23255 23256 23257 23258 23259 23260 23261 23262 23263 23264 23265 23266 23267 23268 23269 23270 23271 23272 23273 23274 23275 23276 23277 23278 23279 23280 23281 23282 23283 23284 23285 23286 23287 23288 23289 23290 23291 23292 23293 23294 23295 23296 23297 23298 23299 23300 23301 23302 23303 23304 23305 23306 23307 23308 23309 23310 23311 23312 23313 23314 23315 23316 23317 23318 23319 23320 23321 23322 23323 23324 23325 23326 23327 23328 23329 23330 23331 23332 23333 23334 23335 23336 23337 23338 23339 23340 23341 23342 23343 23344 23345 23346 23347 23348 23349 23350 23351 23352 23353 23354 23355 23356 23357 23358 23359 23360 23361 23362 23363 23364 23365 23366 23367 23368 23369 23370 23371 23372 23373 23374 23375 23376 23377 23378 23379 23380 23381 23382 23383 23384 23385 23386 23387 23388 23389 23390 23391 23392 23393 23394 23395 23396 23397 23398 23399 23400 23401 23402 23403 23404 23405 23406 23407 23408 23409 23410 23411 23412 23413 23414 23415 23416 23417 23418 23419 23420 23421 23422 23423 23424 23425 23426 23427 23428 23429 23430 23431 23432 23433 23434 23435 23436 23437 23438 23439 23440 23441 23442 23443 23444 23445 23446 23447 23448 23449 23450 23451 23452 23453 23454 23455 23456 23457 23458 23459 23460 23461 23462 23463 23464 23465 23466 23467 23468 23469 23470 23471 23472 23473 23474 23475 23476 23477 23478 23479 23480 23481 23482 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 23498 23499 23500 23501 23502 23503 23504 23505 23506 23507 23508 23509 23510 23511 23512 23513 23514 23515 23516 23517 23518 23519 23520 23521 23522 23523 23524 23525 23526 23527 23528 23529 23530 23531 23532 23533 23534 23535 23536 23537 23538 23539 23540 23541 23542 23543 23544 23545 23546 23547 23548 23549 23550 23551 23552 23553 23554 23555 23556 23557 23558 23559 23560 23561 23562 23563 23564 23565 23566 23567 23568 23569 23570 23571 23572 23573 23574 23575 23576 23577 23578 23579 23580 23581 23582 23583 23584 23585 23586 23587 23588 23589 23590 23591 23592 23593 23594 23595 23596 23597 23598 23599 23600 23601 23602 23603 23604 23605 23606 23607 23608 23609 23610 23611 23612 23613 23614 23615 23616 23617 23618 23619 23620 23621 23622 23623 23624 23625 23626 23627 23628 23629 23630 23631 23632 23633 23634 23635 23636 23637 23638 23639 23640 23641 23642 23643 23644 23645 23646 23647 23648 23649 23650 23651 23652 23653 23654 23655 23656 23657 23658 23659 23660 23661 23662 23663 23664 23665 23666 23667 23668 23669 23670 23671 23672 23673 23674 23675 23676 23677 23678 23679 23680 23681 23682 23683 23684 23685 23686 23687 23688 23689 23690 23691 23692 23693 23694 23695 23696 23697 23698 23699 23700 23701 23702 23703 23704 23705 23706 23707 23708 23709 23710 23711 23712 23713 23714 23715 23716 23717 23718 23719 23720 23721 23722 23723 23724 23725 23726 23727 23728 23729 23730 23731 23732 23733 23734 23735 23736 23737 23738 23739 23740 23741 23742 23743 23744 23745 23746 23747 23748 23749 23750 23751 23752 23753 23754 23755 23756 23757 23758 23759 23760 23761 23762 23763 23764 23765 23766 23767 23768 23769 23770 23771 23772 23773 23774 23775 23776 23777 23778 23779 23780 23781 23782 23783 23784 23785 23786 23787 23788 23789 23790 23791 23792 23793 23794 23795 23796 23797 23798 23799 23800 23801 23802 23803 23804 23805 23806 23807 23808 23809 23810 23811 23812 23813 23814 23815 23816 23817 23818 23819 23820 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23846 23847 23848 23849 23850 23851 23852 23853 23854 23855 23856 23857 23858 23859 23860 23861 23862 23863 23864 23865 23866 23867 23868 23869 23870 23871 23872 23873 23874 23875 23876 23877 23878 23879 23880 23881 23882 23883 23884 23885 23886 23887 23888 23889 23890 23891 23892 23893 23894 23895 23896 23897 23898 23899 23900 23901 23902 23903 23904 23905 23906 23907 23908 23909 23910 23911 23912 23913 23914 23915 23916 23917 23918 23919 23920 23921 23922 23923 23924 23925 23926 23927 23928 23929 23930 23931 23932 23933 23934 23935 23936 23937 23938 23939 23940 23941 23942 23943 23944 23945 23946 23947 23948 23949 23950 23951 23952 23953 23954 23955 23956 23957 23958 23959 23960 23961 23962 23963 23964 23965 23966 23967 23968 23969 23970 23971 23972 23973 23974 23975 23976 23977 23978 23979 23980 23981 23982 23983 23984 23985 23986 23987 23988 23989 23990 23991 23992 23993 23994 23995 23996 23997 23998 23999 24000 24001 24002 24003 24004 24005 24006 24007 24008 24009 24010 24011 24012 24013 24014 24015 24016 24017 24018 24019 24020 24021 24022 24023 24024 24025 24026 24027 24028 24029 24030 24031 24032 24033 24034 24035 24036 24037 24038 24039 24040 24041 24042 24043 24044 24045 24046 24047 24048 24049 24050 24051 24052 24053 24054 24055 24056 24057 24058 24059 24060 24061 24062 24063 24064 24065 24066 24067 24068 24069 24070 24071 24072 24073 24074 24075 24076 24077 24078 24079 24080 24081 24082 24083 24084 24085 24086 24087 24088 24089 24090 24091 24092 24093 24094 24095 24096 24097 24098 24099 24100 24101 24102 24103 24104 24105 24106 24107 24108 24109 24110 24111 24112 24113 24114 24115 24116 24117 24118 24119 24120 24121 24122 24123 24124 24125 24126 24127 24128 24129 24130 24131 24132 24133 24134 24135 24136 24137 24138 24139 24140 24141 24142 24143 24144 24145 24146 24147 24148 24149 24150 24151 24152 24153 24154 24155 24156 24157 24158 24159 24160 24161 24162 24163 24164 24165 24166 24167 24168 24169 24170 24171 24172 24173 24174 24175 24176 24177 24178 24179 24180 24181 24182 24183 24184 24185 24186 24187 24188 24189 24190 24191 24192 24193 24194 24195 24196 24197 24198 24199 24200 24201 24202 24203 24204 24205 24206 24207 24208 24209 24210 24211 24212 24213 24214 24215 24216 24217 24218 24219 24220 24221 24222 24223 24224 24225 24226 24227 24228 24229 24230 24231 24232 24233 24234 24235 24236 24237 24238 24239 24240 24241 24242 24243 24244 24245 24246 24247 24248 24249 24250 24251 24252 24253 24254 24255 24256 24257 24258 24259 24260 24261 24262 24263 24264 24265 24266 24267 24268 24269 24270 24271 24272 24273 24274 24275 24276 24277 24278 24279 24280 24281 24282 24283 24284 24285 24286 24287 24288 24289 24290 24291 24292 24293 24294 24295 24296 24297 24298 24299 24300 24301 24302 24303 24304 24305 24306 24307 24308 24309 24310 24311 24312 24313 24314 24315 24316 24317 24318 24319 24320 24321 24322 24323 24324 24325 24326 24327 24328 24329 24330 24331 24332 24333 24334 24335 24336 24337 24338 24339 24340 24341 24342 24343 24344 24345 24346 24347 24348 24349 24350 24351 24352 24353 24354 24355 24356 24357 24358 24359 24360 24361 24362 24363 24364 24365 24366 24367 24368 24369 24370 24371 24372 24373 24374 24375 24376 24377 24378 24379 24380 24381 24382 24383 24384 24385 24386 24387 24388 24389 24390 24391 24392 24393 24394 24395 24396 24397 24398 24399 24400 24401 24402 24403 24404 24405 24406 24407 24408 24409 24410 24411 24412 24413 24414 24415 24416 24417 24418 24419 24420 24421 24422 24423 24424 24425 24426 24427 24428 24429 24430 24431 24432 24433 24434 24435 24436 24437 24438 24439 24440 24441 24442 24443 24444 24445 24446 24447 24448 24449 24450 24451 24452 24453 24454 24455 24456 24457 24458 24459 24460 24461 24462 24463 24464 24465 24466 24467 24468 24469 24470 24471 24472 24473 24474 24475 24476 24477 24478 24479 24480 24481 24482 24483 24484 24485 24486 24487 24488 24489 24490 24491 24492 24493 24494 24495 24496 24497 24498 24499 24500 24501 24502 24503 24504 24505 24506 24507 24508 24509 24510 24511 24512 24513 24514 24515 24516 24517 24518 24519 24520 24521 24522 24523 24524 24525 24526 24527 24528 24529 24530 24531 24532 24533 24534 24535 24536 24537 24538 24539 24540 24541 24542 24543 24544 24545 24546 24547 24548 24549 24550 24551 24552 24553 24554 24555 24556 24557 24558 24559 24560 24561 24562 24563 24564 24565 24566 24567 24568 24569 24570 24571 24572 24573 24574 24575 24576 24577 24578 24579 24580 24581 24582 24583 24584 24585 24586 24587 24588 24589 24590 24591 24592 24593 24594 24595 24596 24597 24598 24599 24600 24601 24602 24603 24604 24605 24606 24607 24608 24609 24610 24611 24612 24613 24614 24615 24616 24617 24618 24619 24620 24621 24622 24623 24624 24625 24626 24627 24628 24629 24630 24631 24632 24633 24634 24635 24636 24637 24638 24639 24640 24641 24642 24643 24644 24645 24646 24647 24648 24649 24650 24651 24652 24653 24654 24655 24656 24657 24658 24659 24660 24661 24662 24663 24664 24665 24666 24667 24668 24669 24670 24671 24672 24673 24674 24675 24676 24677 24678 24679 24680 24681 24682 24683 24684 24685 24686 24687 24688 24689 24690 24691 24692 24693 24694 24695 24696 24697 24698 24699 24700 24701 24702 24703 24704 24705 24706 24707 24708 24709 24710 24711 24712 24713 24714 24715 24716 24717 24718 24719 24720 24721 24722 24723 24724 24725 24726 24727 24728 24729 24730 24731 24732 24733 24734 24735 24736 24737 24738 24739 24740 24741 24742 24743 24744 24745 24746 24747 24748 24749 24750 24751 24752 24753 24754 24755 24756 24757 24758 24759 24760 24761 24762 24763 24764 24765 24766 24767 24768 24769 24770 24771 24772 24773 24774 24775 24776 24777 24778 24779 24780 24781 24782 24783 24784 24785 24786 24787 24788 24789 24790 24791 24792 24793 24794 24795 24796 24797 24798 24799 24800 24801 24802 24803 24804 24805 24806 24807 24808 24809 24810 24811 24812 24813 24814 24815 24816 24817 24818 24819 24820 24821 24822 24823 24824 24825 24826 24827 24828 24829 24830 24831 24832 24833 24834 24835 24836 24837 24838 24839 24840 24841 24842 24843 24844 24845 24846 24847 24848 24849 24850 24851 24852 24853 24854 24855 24856 24857 24858 24859 24860 24861 24862 24863 24864 24865 24866 24867 24868 24869 24870 24871 24872 24873 24874 24875 24876 24877 24878 24879 24880 24881 24882 24883 24884 24885 24886 24887 24888 24889 24890 24891 24892 24893 24894 24895 24896 24897 24898 24899 24900 24901 24902 24903 24904 24905 24906 24907 24908 24909 24910 24911 24912 24913 24914 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 24930 24931 24932 24933 24934 24935 24936 24937 24938 24939 24940 24941 24942 24943 24944 24945 24946 24947 24948 24949 24950 24951 24952 24953 24954 24955 24956 24957 24958 24959 24960 24961 24962 24963 24964 24965 24966 24967 24968 24969 24970 24971 24972 24973 24974 24975 24976 24977 24978 24979 24980 24981 24982 24983 24984 24985 24986 24987 24988 24989 24990 24991 24992 24993 24994 24995 24996 24997 24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 25010 25011 25012 25013 25014 25015 25016 25017 25018 25019 25020 25021 25022 25023 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 25045 25046 25047 25048 25049 25050 25051 25052 25053 25054 25055 25056 25057 25058 25059 25060 25061 25062 25063 25064 25065 25066 25067 25068 25069 25070 25071 25072 25073 25074 25075 25076 25077 25078 25079 25080 25081 25082 25083 25084 25085 25086 25087 25088 25089 25090 25091 25092 25093 25094 25095 25096 25097 25098 25099 25100 25101 25102 25103 25104 25105 25106 25107 25108 25109 25110 25111 25112 25113 25114 25115 25116 25117 25118 25119 25120 25121 25122 25123 25124 25125 25126 25127 25128 25129 25130 25131 25132 25133 25134 25135 25136 25137 25138 25139 25140 25141 25142 25143 25144 25145 25146 25147 25148 25149 25150 25151 25152 25153 25154 25155 25156 25157 25158 25159 25160 25161 25162 25163 25164 25165 25166 25167 25168 25169 25170 25171 25172 25173 25174 25175 25176 25177 25178 25179 25180 25181 25182 25183 25184 25185 25186 25187 25188 25189 25190 25191 25192 25193 25194 25195 25196 25197 25198 25199 25200 25201 25202 25203 25204 25205 25206 25207 25208 25209 25210 25211 25212 25213 25214 25215 25216 25217 25218 25219 25220 25221 25222 25223 25224 25225 25226 25227 25228 25229 25230 25231 25232 25233 25234 25235 25236 25237 25238 25239 25240 25241 25242 25243 25244 25245 25246 25247 25248 25249 25250 25251 25252 25253 25254 25255 25256 25257 25258 25259 25260 25261 25262 25263 25264 25265 25266 25267 25268 25269 25270 25271 25272 25273 25274 25275 25276 25277 25278 25279 25280 25281 25282 25283 25284 25285 25286 25287 25288 25289 25290 25291 25292 25293 25294 25295 25296 25297 25298 25299 25300 25301 25302 25303 25304 25305 25306 25307 25308 25309 25310 25311 25312 25313 25314 25315 25316 25317 25318 25319 25320 25321 25322 25323 25324 25325 25326 25327 25328 25329 25330 25331 25332 25333 25334 25335 25336 25337 25338 25339 25340 25341 25342 25343 25344 25345 25346 25347 25348 25349 25350 25351 25352 25353 25354 25355 25356 25357 25358 25359 25360 25361 25362 25363 25364 25365 25366 25367 25368 25369 25370 25371 25372 25373 25374 25375 25376 25377 25378 25379 25380 25381 25382 25383 25384 25385 25386 25387 25388 25389 25390 25391 25392 25393 25394 25395 25396 25397 25398 25399 25400 25401 25402 25403 25404 25405 25406 25407 25408 25409 25410 25411 25412 25413 25414 25415 25416 25417 25418 25419 25420 25421 25422 25423 25424 25425 25426 25427 25428 25429 25430 25431 25432 25433 25434 25435 25436 25437 25438 25439 25440 25441 25442 25443 25444 25445 25446 25447 25448 25449 25450 25451 25452 25453 25454 25455 25456
|
# Revision history for pandoc
## pandoc 3.1.11.1 (2023-01-05)
* Docx reader:
+ Fix HYPERLINK with only switch and no argument (#9246).
* Org reader:
+ Parse caption and label for grid tables (#9279).
* MediaWiki reader:
+ Handle multiline math in list items (#9293).
* OPML writer:
+ Respect `--wrap` options & `--columns` in contents of notes (#9297).
* ODT/OpenDocument writers:
+ Properly handle highlighting styles (#9287). These styles were
going into an `office:styles` element in `content.xml`, but this
is invalid. Instead they must go in `styles.xml`. The variable
`highlighting-styles` no longer has any effect on the default
opendocument template, and highlighting styles are not included
in `opendocument` output.
* Markdown writer:
+ Add table identifier at end of caption if present (#9279).
* Text.Pandoc.PDF:
+ Expand list of environment variables to display in verbose output
(#9303).
+ Ensure that we find all the LaTeX warnings requiring a rerun (#9284).
This should fix a regression from 3.1.9 that led to incorrect
alignments in tables (and possibly other issues).
* Docx writer:
+ Ensure that pandoc's output validates (Edwin Török, #9273, #9269,
John MacFarlane, #9265, #9266, #9264).
+ Don't emit empty table rows, which seem to cause problems for
Word (#9224).
* LaTeX writer:
+ Omit superfluous page locator label when used with `--natbib` or
`--biblatex` (#9275). These will treat a bare number as a
page locator, and they will be able to localize it. Note that the
recognition of the locator label is locale-sensitive; if `lang` is
`de`, then `S. 33` is a page reference, and `p. 33` is not!
* Text.Pandoc.Chunks: Fine tune `makeChunks` (#9281).
+ Ensure that chunks not based on sections (those with the
"preamble" class) get unique identifiers, by appending chunk number.
+ This will also ensure that they get unique path names when
the path is generated from the identifier.
* Default HTML5 template: remove html5shiv (and support for IE < 9).
* Makefile:
+ Fix `make quick-stack`: `j` was expecting a number (Edwin Török).
+ Run built pandoc (instead of pandoc in path).
+ Add `validate-epub` target, using `epubcheck` to test the golden files.
+ Add `validate-docx-golden-tests` target.
## pandoc 3.1.11 (2023-12-15)
* Typst writer:
+ Emit `;` after typst code, unless followed by space (#9252).
Otherwise there's the potential that the typst code will swallow
up a following character.
* Text.Pandoc.Logging:
+ Add `MakePDFWarning` constructor to LogMessage [API change].
+ Add `MakePDFInfo` constructor to LogMessage [API change].
* Text.Pandoc.PDF:
+ LaTeX warnings are passed on to the user as warnings.
+ Use `report` with `MakePDFWarning` and `MakePDFInfo` to relay
verbose information and warnings, instead of writing directly
to stderr.
+ Parse logs to determine whether additional runs needed, instead of
running a fixed number of times (#9255). (The number of times
that was appropriate given pandoc's default templates didn't
always work for custom templates, and thus pandoc 3.1.10's
change in the number of runs led to some regressions in PDF
production.)
* Makefile: in `make prelease`, add checks that pandoc-cli and
pandoc have the same version, that pandoc-cli depends on this
exact version of pandoc, that there is an entry for this version
in the changelog, and that the version numbers in the
generated man pages are correct.
* Regenerate man pages with pandoc 3.1.10. This properly escapes hyphens
and fixes version numbers in man pages for `pandoc-server` and
`pandoc-lua`.
* Depend on texmath 0.12.8.6. This omits unneeded `lr`s in typst
math output.
* Depend on typst 0.5. This allows the typst reader to support
multiline strings, the version type, and the `as`
keyword with `import`.
## pandoc 3.1.10 (2023-12-12)
* Link pandoc-cli version to pandoc version. Henceforth pandoc-cli's
version will be synchronized with pandoc's, and pandoc-cli will
depend on an exact pandoc version. This will avoid confusion by
ensuring that `cabal install pandoc-cli-X.Y.Z` installs pandoc
version X.Y.Z. It will make things more straightforward for
upstream packagers (see #9232). This scheme does not follow the
Haskell PVP, but that should cause no harm, because this package
does not expose a library.
* Add `alerts` markdown extension. This enables GitHub style markdown
alerts as a commonmark extension. This extension is now default for
`gfm`. It can't be used with `markdown`, only with `commonmark` and
variants.
* Markdown reader:
+ Preserve newlines in math instead of changing to spaces.
Otherwise we can get unwanted results if there's
a `%` comment (#9193).
+ Make attributes work with reference links (#9171).
* HTML reader:
+ Improve handling of invalidly nested sublists (#9187, cf. #8150).
* MediaWiki reader:
+ Allow attribute keys with hyphens (#9178).
* ODT reader:
+ Support attr `text:continue-numbering` (#8979, Stephan Meijer).
* Typst reader:
+ Allow references (e.g. `@foo`) to become citations
if there is no corresponding label in the document.
+ Collapse adjacent `cite` elements.
+ Handle supplements in `cite`.
+ Change `cite` (only one key allowed, a label) (typst 0.9 breaking change).
+ Support `quote` element (typst 0.9).
* LaTeX reader:
+ Handle otherlanguage environment and language-name environments like
`\begin{french}...\end{french}` (#9202).
+ Fix theorem label parsing (#8872, Hikaru Ibayashi).
* Docx reader:
+ Unwrap content of shaped textboxes (Stephan Meijer, #9214).
+ Improve handling of `w:sym` (#9220). We now look up symbols in symbol
fonts using the table defined at Text.Pandoc.Readers.Docx.Symbols.
+ Add unexported module Text.Pandoc.Readers.Docx.Symbols. This gives us a
table to use to resolve characters included in docx via `w:sym` element.
* Man reader:
+ Properly handle `.sp` macro inside lists and block quotes (#9201).
* LaTeX writer:
+ Fix bug with big footnotes inside emphasis (#8982, Hikaru Ibayashi).
+ Handle identifiers inside heading contents. `\phantomsection` can't
be used in this case, so we need `\hypertarget` (#9209).
* LaTeX template:
+ Include `bookmark` package unconditionally. This package
produces better PDF bookmarks than `hyperref` and does it on the
first pass.
* Typst writer:
+ Use `quote` for block quotes.
+ Support `--toc-depth` as in other writers (#9242).
+ Put inline image dimensions on enclosing box, not image (#9104).
+ Better handling of tables with captions (#9194).
We now put these in a figure with a caption argument.
+ Update typst writer to typst 0.9 citation format (#9188).
* Typst template:
+ Remove custom definition of `blockquote` in default template.
(We now use built-in `quote`.)
+ Support table of contents.
+ Support csl (#9186, Ian Max Andolina). Typst now supports CSL for its
native citation engine, so pandoc should use a specified `csl`
style in the template, falling back to `bibliographystyle` if
`csl` is not specified.
* Docx writer:
+ Use different style for block quotes in notes (#9243).
Using "Footnote Block Text" for the style name, so it can be
given a different font size if footnotes are.
+ Allow embedded fonts to be used in reference.docx (#6728).
* HTML5 writer:
+ To conform to validator's expectations, `doc-footnote` role is used
with `aside` and `doc-endnotes` with `section`.
+ `aside` is used only for notes at ends of sections or blocks;
if all the notes come at the end of the document, `section` is
used so we can have the `doc-endnotes` role.
* JATS writer:
+ Handle case where there is material after refs div (#9166). Previously in
such cases the references were not being moved to back matter.
* Ms writer:
+ Don't do normal escapes in filename arguments for PSPIC etc.
* T.P.RoffChar: escape `-` as `\-`. The `groff_man (7)` man page indicates
that `-` characters will be treated as typographic hyphens and are not
appropriate for cases where the output should be copy-pasteable as an
ASCII hyphen-minus character. (E.g. in command line options.)
However, until a recent update groff man did not actually do this;
it treated `-` and `\-` the same. With the new update (1.23.0)
the two are distinguished (see https://lwn.net/Articles/947941/
for background), so now it is important that pandoc escape `-`.
* Text.Pandoc.Extension: add `Ext_alerts` constructor [API change].
* Text.Pandoc.PDF: We now default to running LaTeX only
once in producing a PDF (instead of twice). This is made possible by the
shift to the `bookmark` package, which does not require a second pass for
PDF bookmarks. If a table of contents is present, we still have to run
three times to get the page numbers, and if beamer is used we still do a
minimum of two runs.
* Text.Pandoc.Shared:
+ `renderTags'`: use minimized tag for `rect`.
+ Allow svg `path` element to be minimized.
+ Export `combineAttr` [API change].
+ Improve `isTightList` so that it recognizes an item containing only a list
which is itself tight as potentially an item in a tight list (#9161).
* Text.Pandoc.MIME: Ensure we use `.svg` not `.svgz` as extension
for `image/svg+xml` mime type. This fixes issues with embedded
SVG images in docx output, among other things (#9195).
* Text.Pandoc.Class: `openURL` improvements for data uris.
Only treat data URI as `base64` if ';base64' is specified.
Otherwise treat as UTF-8 (not 100% reliable but should cover most
other cases). Strip off `;base64` (or `;charset=...` or whatever)
from mime type (#9195).
* Text.Pandoc.SelfContained: Improve treatment of embedded SVGs
(#9206, #8948).
+ Ensure unique ids for elements by prefixing SVG id.
+ Ensure SVG `id` attribute except when `use` element is used.
+ Remove `width`, `height` attributes from svg element when `use`
element is used. Instead, add `width` and `height` 100% to the
`use` element. This seems to get the sizing right.
* Text.Pandoc.Citeproc: Don't link citations if
`suppress-bibliography` specified, for there will be nothing to
link to (#9163).
* epub.css: add styling for sup and sub (#9160).
* Switch from `base64` to `base64-bytestring` (#9233).
* Use newest versions of commonmark, commonmark-extensions,
commonmark-pandoc, texmath, typst, skylighting, skylighting-core.
* Benchmark: use standalone documents for reader tests.
Otherwise typst reader benchmark fails. Note: this means that we are now
parsing longer documents, so bench results on readers won't be comparable
to before.
* MANUAL.txt: update defaults file docs for bibliography fields (#9173).
Recommend using top-level `bibliography` `csl`, etc. instead
of a nested `metadata` field. Reason: `${USERDATA}` and `${HOME}`
are only expanded in these contexts, not in `metadata`.
* Move man pages to pandoc-cli package (#9245).
## pandoc 3.1.9 (2023-10-27)
* Make `reference-section-title` work with `jats+element_citations`
(#9021).
* Add `bits` as synonym of `jats` as input format.
* JATS reader:
+ Modify JATS reader to handle BITS too (#9138, Julia Diaz).
Add provision for title-group, book, book-part-wrapper, book-meta,
book-part-meta, book-title, book-title-group, index, toc, legend,
title, collection-meta
+ Fix handling of alt-text (#9130, Julia Diaz). Previously we were
looking for an attribute that doesn't exist in JATS; alt-text is
provided by a child element.
* CommonMark reader:
+ Handle `Ext_tex_math_gfm` (#9121). Parse GFM-specific math
constructions when `tex_math_gfm` enabled.
* DokuWiki reader:
+ Allow autolinks to be avoided using e.g. `https:%%//%%...` (#9153).
+ Parse `<code>` and `<file>` as block-level code (#9154).
Previously we treated them as inline code in some contexts,
but that is not how DokuWiki works.
* LaTeX reader:
+ Better handle spacing commands `\hfill`, `\vfill`, `\hskip`,
`\vskip`, etc. (#9150).
+ Fix incorrect abbreviation for astronomical unit (#9125,
Michael McClurg).
* Markdown reader:
+ Fix blindspot with superscript in links (#8981).
Previously `[^super^](#ref)` wasn't parsed as a link, due to
code that was meant to prevent footnote markers from being
recognized as reference links. This commit tightens up that
code to avoid this bad effect. We have also added a new
restriction on footnote labels: they cannot contain the characters
`^`, `[`, or `]`. Though this is technically a breaking change, we
suspect that the impact will be minimal, as it's very unlikely
people would be using these characters in their note labels.
+ Don't apply `--default-image-extension` to data URIs (#9118).
+ More accurate check that a normalCite is not a link,
bracketed span, or reference (#9080).
* HTML reader:
+ Allow th to close td and vice versa (#9090).
+ Parse task lists using input elements (#9047, Seth Speaks).
* Creole reader:
+ Handle empty cells correctly (#9141, Sascha Wilde).
* Org writer:
+ Escape literal `*`, `|`, `#` at beginning of line with ZWS (#9159).
* ICML writer:
+ Prevent doubled attributes (#9158).
* Powerpoint writer:
+ Fix a corruption error caused when the document used both a
regular png and a png in a data URI (#9113). (Similarly for any
other image format.) The problem was that duplicate entries in
`[Content Types].xml` were being created, one for the mime type
`image/png`, one for `image/png;base64`.
* LaTeX writer:
+ Fix rowspans in tables so they use the width of
the column (`=` as the width parameter) (#9140).
+ Don't treat table as "simple" if they have col widths.
This should help fix a problem wherein some grid tables with
colspans were overly wide (#9140).
+ Fix uneven indents in line block output (#9088).
* JATS writer: fix 3.1.4 regression in handling block-level metadata
(#9092).
* Ms writer: improvements in image handling (#4475).
+ PDFPIC is now used for PDF images in figures.
+ Inline images that are postscript or PDF are rendered using
PSPIC or PDFPIC. This isn't ideal, because they will still be
rendered as if in a separate paragraph, but it's probably
better than just printing the image name.
+ Units are included in height.
* HTML writer:
+ If raw format is an HTML side deck format, emit it (James J Balamuta).
* Typst writer:
+ Add `#box` around image to make it inline. (#9104)
An `#image` by itself in typst is a block-level element.
To force images to be inline (as they are in pandoc), we need
to add a box with an explicit width. When a width is not given
in image attributes, we compute one from the image itself, when
possible.
+ Don't allow long heading to wrap (#9132).
+ Escape `(` (#9137). If unescaped `(` occurs in
certain contexts, it can be parsed as function application.
* Man writer:
+ Fix some spacing issues around links (#9120).
We need to use `\c` before a `.UR` or `.MT`, to avoid
an extra space, and also after. To ensure that a space
at the beginning of the following line doesn't get swallowed
up, we escape it with `\`.
+ Use UR, MT macros for URLs, emails (#9120).
* Text.Pandoc.Extensions:
+ Add `Ext_tex_math_gfm` constructor to Extension (#9121).
[API change]. This handles two GitHub-specific syntaxes for math.
This is now default for `gfm`, in addition to `tex_math_dollars`.
+ Remove duplicates for `Ext_raw_html` and `Ext_pipe_tables`
in some of the lists (Tim Stewart).
* Text.Pandoc.Metadata: Add helpful message on some metadata
YAML errors (#9155).
* Text.Pandoc.Shared:
+ `splitSentences`: don't split after initials.
This improves the man and ms writer output, preventing
sentence breaks after initials.
+ Add `addPandocAttributes` function [API change].
This is meant to simplify addition of attributes to Pandoc
elements: for elements that don't have a slot for attributes, an
enclosing Div or Span is added to hold the attributes.
* MANUAL.txt:
+ Clarify that formatting can't cross line boundaries
in line blocks (#9119).
+ Fix legacy option for citation (#8737, 3w36zj6)
* Update `et` translations (priiduonu).
* Updated `no` translations (Stephan Daus).
Renamed no.yaml (macrolanguage Norwegian) to nb.yaml (Norwegian Bokmål).
Created soft symbolic link from no.yaml pointing to nb.yaml.
* Lua subsystem: Use the newest LPeg version (lpeg-1.1.*) (#9107,
Albert Krewinkel).
* Default `epub.css`: Apply style to h6, format styles, and
combine identical styles under shared selectors (samuel-weinhardt).
* Update nix flake with dependencies (piq9117).
* LaTeX template: fix `\CSLBlock` vertical space (John Purnell).
* Allow tasty 1.5 and Diff 0.5.
* Require commonmark-extensions 0.2.4, commonmark 0.2.4.
* Require texmath 0.12.8.4. This should improve math in
powerpoint, fixing empty boxes around roots in some cases.
* Require typst 0.3.2.1
## pandoc 3.1.8 (2023-09-08)
* JATS reader:
+ Ignore `<processing-meta>` element (#9057, Julia Diaz).
+ Fix conversion of date to ISO 8601 format (#8865).
* LaTeX template:
+ Add code allow `\cite` to break across lines (#9050).
+ Fix regression with CSL `display="block"` (#7363).
This restores the line break before the block.
+ Rewrite `CSLReferences` environment to avoid depending on
`enumitem`, which plays badly with beamer. Instead we use
a regular list environment. Thanks to @jpcirrus for the
concept (#9053).
+ Restore the pre-3.1.7 format of the `CSLReferences`
environment, which again has two parameters. The first
determines whether a hanging indent is used (1 = yes, 0 = no),
and the second is the entry line spacing (0 = none).
+ Add a strut to avoid inconsistencies in spacing (#9058).
- Remove a break at the end of `CSLRightInline` to avoid
inconsistencies in spacing. It shouldn't be necessary
because the paragraph should extend to the right margin (#9058).
* LaTeX writer:
+ Fix regression with figure labels (#9045). In 3.1.7, pandoc
added two labels to LaTeX figure environments, one with a
phantomsection.
+ Fix default citeproc entry-spacing. According to the CSL manual,
the default entry spacing is 1. We were treating it as 0 (#9058).
* HTML writer:
+ Use the ID prefix in the ID for the footnotes section (#9044,
Benjamin Esham).
+ Fix CSL entry-spacing default (#9058).
* Text.Pandoc.Citeproc: always include an `entry-spacing` attribute
in the Div if the bibliography element contains an entry-spacing
attribute (previously we omitted it when it was 0) (#9058).
* Clean up pandoc's own man pages by regenerating with pandoc 3.1.7.
* pandoc-lua-engine: bump lower bound for pandoc (#9046).
* Depend on texmath 0.12.8.2, fixing binom in typst writer (#9063).
## pandoc 3.1.7 (2023-08-31)
* Org reader:
+ Don't parse alphabetical lists unless the `fancy_lists` extension is
enabled (#9042).
+ Allow escaping commas in macro arguments (Amneesh Singh).
* JATS reader:
+ Support for `<permissions>` metadata (#9037, Julia Diaz).
metadata objects with multiple fields are created, matching the
structure in JATS.
+ Correct name of JATS element `attrib`.
* Markdown reader:
+ Support images with wikilink syntax, e.g. `![[foo|bar]]`, when
one of the `wikilinks` extension is enabled (#8853).
+ Allow a citation or reference link to be parsed after a `!` (#8254).
+ Fix dropped `!` before nonexistent reference (#9038).
* LaTeX writer:
+ Fix regression in escaping URLs (#9043).
+ Use `\cite` and `\bibitem` to link up citations, even with citeproc.
(#9031). This will give us better accessibility; when tagging is
enabled, the citation can be linked to the bibliography entry.
This changes some of the details of the layout and the default
template. We now make `CSLReferences` a special enumitem list
that will contain `\bibitem`s. Internal links inside citations to
ids beginning in `ref-` are creating using `\cite` instead of
`\hyperref`.
+ Use `\phantomsection` and `\label` instead of `\hypertarget` (#9022).
+ Use `\hyperref` for LaTeX internal links, `\hyperlink` for
beamer (since `\hyperref` doesn't seem to work) (#9022).
+ Backslash-escape `%` and `#` in URLs (#9014).
* JATS writer:
+ Fix placement of ref-list when no title is specified for the
reference section (#9017). (In this case we place it in `back`
with an empty title.)
* Man writer:
+ Avoid a `.PP` right after a section heading (#9020).
This is at best a no-op (in groff man and mandoc) and at worst
(in some formatters) may create extra whitespace.
+ We revert the fanciness introduced in #7506, which employs a
custom font name `V` and a macro that makes this act like boldface
in a terminal and monospace in other formats. Unfortunately,
this code uses a mechanism that is not portable (and does not
work in mandoc) (#9020).
+ Instead of using `V` for inline code, we simply use `CR`.
Note that `\f[CR]` is emitted instead of plain `\f[C]`,
because there is no `C` font in man. (This produces warnings
in recent versions of groff, #9020.)
+ For code blocks, we now use the `.EX` and `.EE` macros,
together with `.IP` for spacing and indentation. This gives
more standard code that can be better interpreted e.g. by mandoc
(#9020).
* Man template: don't emit `.hy`, regardless of setting of
`hyphenate` variable (#9020).
* LaTeX template: special redefinition of `\st` for CJK (#9019).
soul's version raises on error on CJK text.
* Use latest skylighting-format-blaze-html (#7248).
This works around a longstanding iOS Safari bug that caused long
lines to be displayed in a different font size in highlighted code.
* Allow skylighting 0.14 (and require it in pandoc core).
* Allow text 2.1.
## pandoc 3.1.6.2 (2023-08-22)
* Org reader: allow example lines to end immediately after the colon
(Brian Leung).
* Docx reader:
+ Omit "Table NN" from caption (#9002).
+ Avoid spurious block quotes in list items (#8836).
* JATS reader: Fix display of block elements (#8889, Julia Diaz).
A number of block elements, like disp-quote, list, and disp-formula, were
always treated as inlines if appearing inside paragraphs, even if their
usage granted a separate block.
* HTML reader: avoid duplicate id on header and div (#8991).
* Typst writer:
+ Use `~` for nonbreaking space, and escape literal `~` (#9010).
+ Put the label in right place for Div, use `#block` (#8991).
Previously we were putting the label at the beginning of
the Div's contents, but according to the documentation such a
label gets attached to the *preceding* element. We now use an
explicit `#block` and add the label at the end.
* LaTeX writer:
+ Improve escaping of URIs in href, url (#8992).
+ Improve internal links and targets (#8744). We no longer
wrap section headings in a `\hypertarget`. This is unnecessary
(hyperref creates an anchor based on the label) and it interferes with
tagging. In addition, we now use `\hyperref` rather than `\hyperlink`
for internal links. Currently `\hypertarget` is still being used for
link anchors not on headings. Thanks to @u-fischer.
* HTML format templates (style.html): Fix typo in clause for svg
(Jackson Schuster).
* Use lastest texmath, typst-symbols, typst. Targets typst 0.7.
## pandoc 3.1.6.1 (2023-08-11)
* HTML reader: properly calculate RowHeadColumns (#8984). This fixes a
bug in the calculation of the number of header columns in table row.
It also changes the algorithm for determining the table body's
RowHeadColumns based on the numbers of head columns in each row.
Previously we used the max, and #8634 switched to the min, which
led to bad results. Now we only set RowHeadColumns to a non-zero value
if *all* rows have the same number of head columns.
* OpenDocument writer:
+ Implement syntax highlighting for inline and block code (#6710).
+ Support highlighted text in ODT/OpenDocument writers for Span
with class `mark` (#8960). The color can be adjusted by
modifying the Highlighted style.
* Typst writer: escape `//` so it doesn't get interpreted as a comment
(#8966).
* ChunkedHTML writer: Fix regression including MathJax script (#8967).
The fix for #8620 caused the script to be included when the table of
contents but not the body text of a page contains math. But it broke the
case where the table of contents doesn't contain math but the page does.
This patch fixes the issue.
* Text.Pandoc.SelfContained:
+ Retain attributes in SVG tag when referring to another
SVG's content using `<use>` (#8969).
+ Allow units in width and height for SVG. Units are optional but allowed.
+ Don't coerce calculated SVG dimensions to Int.
+ fix calculation of SVG width and height. We were computing width and
height from viewBox incorrectly (#8969).
+ Add clause for SVG to default CSS for HTML (#8969).
+ Ensure that width and height attributes don't get specified
twice is both the img tag and the svg include them (#8965).
+ Omit unnecessary attributes xmlns, xmlns:xlink, and version on
SVG element (#8965).
+ Use 20 character rather than 40 character hashes for generated IDs
(#8965).
* Use pandoc-types 1.23.1. This fixes a regression with toJSONFilter (#8976),
which in 1.23.0.1 no longer worked on pure values of type `a -> [a]`.
* Use ghc 9.6 for release builds (#8947).
* Fix some links in FAQs (Diogo Almiro).
## pandoc 3.1.6 (2023-07-20)
* Fix CVE-2023-38745, a variant of the vulnerability in CVE-2023-35936.
Guilhem Moulin noticed that the fix to CVE-2023-35936 was incomplete.
An attacker could get around it by double-encoding the malicious
extension to create or override arbitrary files.
* `--embed-resources`: Use inline SVG instead of data uris for SVG
images in HTML5 (#8948). Note that SelfContained does not have
access to the writer name, so we check for HTML5 by determining
whether the document starts with `<DOCTYPE! html>`. This means
that inline SVG won't be used when generating document fragments.
* Fix regression on short boolean arguments (#8956).
In 3.1.5 boolean arguments were allowed an optional argument
(`true|false`). This created a regression for uses of fused
short arguments, e.g. `-somyfile.html`, which was equivalent
to `-s -omyfile.html`, but now raised an error because
pandoc attempted to parse `o` as a boolean `true` or `false`.
This change allows the fused short arguments to be used again.
Note that `-strue` will be interpreted as `-s` with an
argument `true`, not as `-s -t -rue`. It is best to
use long option names with the optional boolean values,
to avoid confusion.
* Make `--epub-title-page`'s argument optional. It takes a boolean
argument, and now that all of our boolean flags take such an
argument, we can make this one optional for consistency.
* Improve errors for illegal output formats. Previously if you did
`pandoc -s -t bbb`, it would give you an error about the missing
`bbb` template instead of saying that `bbb` is not a
supported output format.
* Improve errors for incorrect command-line option values (#8879).
Always give the name of the relevant argument.
* Fix typo on error message for incorrect `--preserve-tabs` argument.
Thanks @fsoedjede
* Docx reader: use SVG version of image if present (#7244).
Previously the backup PNG was exported even if an SVG was
present, but the SVG should be preferred.
* Typst reader: fix regression in recognition of display math (#8949).
The last release caused all math to be parsed as inline math.
* JATS writer: don't use `<code>` for inline code (#8889).
It is intended for block-level code.
* HTML writer: don't make line blocks sensitive to `--wrap` (#8952).
* RST writer: fix figure handling (#8930, #8871).
This fixes a number of regressions from pandoc 2.x.
Properly handle caption, alt attribute in figures.
No longer treat a paragraph with a single image in it as a figure
(we have a dedicated Figure element now).
* Docx writer: Copy "mirror margins" property from reference.docx (#8946).
* Text.Pandoc.UTF8: Deprecate `decodeArg` which is now a no-op.
This was needed for old base versions which we no longer support.
* Use released skylighting, typst.
* Allow latest commonmark-extensions. This allows entities in wikilinks.
* Switch back to using ghc 9.2 for linux and Windows binary releases
(#8947, #8955). With ghc 9.4+, we were getting AVX instructions
in the amd64 binary, which aren't supported on older hardware.
For maximum compatibility we switch back to ghc 9.2, which doesn't
cause the problem. (As documented, ghc should not be emitting these
instructions, so we aren't clear on the diagnosis, but the cure
has been tested.)
* Change Windows release build to use cabal instead of stack.
## pandoc 3.1.5 (2023-07-07)
* Allow all boolean flags to take an optional `true` or `false` value
(#8788, Sam S. Almahri). The default is true if no value is specified,
so this is fully backwards-compatible.
* Support `--id-prefix` for markdown output (#8878)
* Markdown reader:
+ Add strictness annotations to fix a memory leak (#8762).
* Typst reader:
+ Use typst-hs 0.3.0.0, which is more robust, fixes many bugs, and
targets typst 0.6.
+ Package loading is now supported, as long as the package has been
cached or is local.
+ Rewrite Typst reader in a way that makes it easier to extend.
+ Filter out CR in raw.
+ Handle block content for link element.
+ Handle block-level content in text element.
+ Handle style, align, place in inline contexts too.
+ Improve info message for skipped elements.
* Add typst reader tests (#8942).
* MediaWiki reader:
+ Revise treatment of "link trail." Previously we only included ASCII
letters. That is correct for English but not for, e.g., Spanish (see
comment in #8525). A safer approach is to include all letters except
those in the CJK unified ideograph ranges.
* AsciiDoc writer:
+ Make modern AsciiDoc the target for `asciidoc` (#8936).
The AsciiDoc community now regards the dialect parsed by `asciidoctor`
as the official AsciiDoc syntax, so it should be the target of our
`asciidoc` format. The `asciidoc` output format now behaves like
`asciidoctor` used to. `asciidoctor` is a deprecated synonym. For
the old `asciidoc` behavior (targeting the Python script),
use `asciidoc_legacy`. The templates have been consolidated. Instead of
separate `default.asciidoctor` and `default.asciidoc` templates, there
is just `default.asciidoc`.
+ Text.Pandoc.Writers.AsciiDoc API changes:
- `writeAsciiDoc` now behaves like `writeAsciiDoctor` used to.
- `writeAsciiDoctor` is now a deprecated synonym for `writeAsciiDoc`.
- New exported function `writeAsciiDocLegacy` behaves like
`writeAsciDoc` used to.
+ Update line-through for asciidoc writer to custom inline style (#8933,
Kevin Broch).
* Typst writer:
+ Support `unlisted` class in headings (#8941).
+ Consolidate bibliography files into one `#bibliography` command (#8937).
+ Improve handling of autolinks (#8931).
* Docx writer:
+ Make relative widths work in tables. This didn't work before because we
were missing an attribute that tells Word to used fixed widths rather
than computing optimal ones.
* DokuWiki writer: fix lists with Div elements (#8920).
The DokuWiki writer doesn't render Divs specially, so their presence in
a list (e.g. because of custom-styles) need not prevent a regular
DokuWiki list from being used. (Falling back to raw HTML in this case is
pointless because no new information is given.)
* LaTeX writer:
+ Fix babel name for `fa` (should be `persian`).
+ Prevent babel language from being imported twice (#8925).
* Text.Pandoc.Class:
+ Add `toTextM` [API change]. This is like `Text.Pandoc.UTF8.toText`,
except:
- it takes a file path as first argument, in addition to
bytestring contents
- it raises an informative error with source position if
the contents are not UTF8-encoded
This replaces `utf8ToText` whenever we have the filename and are
in a PandocMonad instance. This will lead to more informative error
messages for UTF8-encoding, indicating the file path and byte offset
where the error occurs (#8884).
* Remove invalid term "Subject" from Turkish translations (#8921).
* stack.yaml: add pkg-config to nix packages (#8927, pacien).
* Allow aeson 2.2.
* MANUAL: Add clarification on --section-divs. Closes #8882.
## pandoc 3.1.4 (2023-06-24)
* Fix a security vulnerability in MediaBag and T.P.Class.IO.writeMedia.
This vulnerability, discovered by Entroy C, allows users to write
arbitrary files to any location by feeding pandoc a specially crafted
URL in an image element. The vulnerability is serious for anyone
using pandoc to process untrusted input. The vulnerability does
not affect pandoc when run with the `--sandbox` flag. [CVE-2023-35936]
* Allow `epub-title-page` to be used in defaults files (#8908).
* Issue `Extracting` info message (in `--verbose` mode) when using
`--extract-media` or extracting media temporarily in PDF production.
* HTML reader: Update TableBody RowHeadColumns caculation (#8634,
Ruqi). This change sets RowHeadColumns to the minimum value of each row,
which gives better results in cases where rows have different numbers
of leading th tags.
* Dokuwiki reader: retain image query parameters as attributes (#8887, echo0).
* Textile reader: Add support for link references (#8706, Stephen Altamirano).
Textile supports what it calls "link alias", which are analogous to
Markdown's reference-style links.
* LaTeX reader: support alt text on images (#8743, Albert Krewinkel).
* Commonmark reader: Make `implicit_figures` work again.
Support for this (introduced in #6350) disappeared when we made an
architectural change.
* JATS reader:
+ Add footer and multiple body parsing to table reader (#8765, Noah Malmed).
+ Parse references title from ref-list (#8365).
* JATS writer:
+ Make `--number-sections` work.
+ Include title in ref-list (#8364). Previously the reference title ended
up in a separate section at the back of the body instead of in the ref-list
in the back matter.
* Mediawiki writer: allow highlighting to work for F# language
(Adelar da Silva Queiróz).
* LaTeX writer: Fix escaping of `&` in `\href` and `\url` (#8903).
* Docx writer:
+ Fix localization of "Abstract" title (#8702).
+ Allow `abstract-title` to be specified in docx metadata (#8794).
* ChunkedHTML writer: Make math work in top-level page (#8915).
* Text.Pandoc.Logging: add new log message type `ScriptingWarning`
[API change] (Albert Krewinkel).
* Lua: report warnings from Lua scripts (Albert Krewinkel).
Lua's warning system is plugged into pandoc's reporting architecture.
Warnings that are raised with the Lua `warn` function are now reported
together with other messages.
* Use crypton-connection instead of connection (#8896, Felix Yan).
Follows the change introduced in tls 1.7.0.
* Bump versions for skylighting-core, skylighting.
* Include lua/module/sample.svg in cabal extra-source-files (Felix Yan).
* Add Nynorsk (New Norwegian) translations (Per Christian Gaustad).
* Add tests for `fillMediaBag`/`extractMedia`.
* INSTALL.md:
+ Mention alternatives to LaTeX to generate PDF (Norwid Behrnd).
+ Update Linux install links (harabat).
* pandoc-extras.md: add to "Academic publishing workflows" (#8696,
Vladimir Alexiev).
## pandoc 3.1.3 (2023-06-07)
* New output format: `typst`.
* New module: Text.Pandoc.Readers.Typst [API change].
* DocBook reader:
+ Support more emphasis roles (Albert Krewinkel).
The role "bf" is taken to indicate "bold face", i.e.,
"strongly emphasized" text, while "underline" leads to
underlined text.
* JATS reader:
+ Improve title and label parsing in the JATS reader (#8718,
Noah Malmed.)
+ Add rowspan, colspan and alignment to cells in jats table
reader (#8408, Noah Malmed)
* Org reader (Albert Krewinkel):
+ Require abstract environment to use lowercase.
+ Treat `#+NAME` as synonym for `#+LABEL` (#8578).
* ODT reader:
+ Allow lists in table cells (#8892).
+ Allow frames inside spans (#8886).
* RST reader:
+ Fix sorting on anonymous keys (#8877). This fixes a link
resolution bug bug affecting RST documents with anonymous links.
* HTML reader:
+ Fix iframe with data URI of an image (#8856).
In this case we don't want to try to parse the data at the URL.
Instead, create an image inside a div.
* RTF reader:
+ Fix bug in table parsing (#8767). In certain cases, text before a
table was being incorporated into the table itself.
* Docx reader:
+ Introduce support for Intense Quote (Stephan Meijer).
* Markdown reader:
+ Disallow escaping of `~` and `"` in `markdown_strict` (#8777,
Albert Krewinkel). This matches the behavior of the legacy
`Markdown.pl` as well as what is described in the manual.
* LaTeX reader: ignore args to column type in `\multicolumn` (#8789).
* HTML writer:
+ Use first paragraph in task item as checkbox label (#8729, Albert
Krewinkel).
* Ms writer:
+ Coerce titles to inlines (#8835). Block-level formatting is not
allowed inside `.TL`.
* LaTeX writer:
+ Fix width for multicolumn simple table (#8831).
* Jira writer:
+ Use first code block class as highlighting language (#8814, Albert
Krewinkel). The writer no longer searches the list of
classes for a known programming language but always uses
the first class in that list as the language identifier.
* OpenDocument writer:
+ Handle row header column cells as header cells (#8764, Michael Stahl).
+ Fix invalid `text:p` inside `text:p` from meta (#8256).
* ODT writer:
+ Don't add settings.xml (Michael Stahl). This will cause defaults
to be used, which is what we want.
+ Don't add unnecessary Configurations2 directory (Michael Stahl).
+ Don't add thumbnail (Michael Stahl).
+ Put `manifest.version` on directory file-entry (Michael Stahl).
See ODF 1.3 part 2, 4.16.14.1.
+ Stop validator complaints by producing ODF 1.3 (Michael Stahl).
* MediaWiki writer:
+ Remove links from inside links in mediawiki writer (#8739,
Wout Gevaert).
* Typst writer:
+ Omit bibliography if `citations` not enabled (#8763).
With this change, the typst writer will omit the `#bibliography`
command when `citations` is not enabled. (If you want to use
pandoc's own `--citeproc`, you should combine it with
`-t typst-citations` to disable native typst citations.
+ Use `<..>` for labels, create internal links.
+ Use `#footnote` for notes (#8893).
+ Fix alignment issue in lists. It's an aesthetic issue
only; the first line had an extra space indent after the
list marker.
* Commonmark writer:
+ Use shortcut reference links: commonmark supports these.
* EPUB template: add `lang` attribute to `<html>` (Gabriel Lewertoski).
* Template styles.html: fix task-list styling in reveal.js
(#8731, Albert Krewinkel).
* LaTeX template: Fix `\babelfont` (#8728).
* Text.Pandoc.Parsing:
+ Remove unnecessary 'spaces' in `parseFromString`.
* Text.Pandoc.ImageSize: Drop BOM at start of SVG if present.
Otherwise our code can fail to determine image size.
* Lua subsystem:
+ Fix value of PANDOC_SCRIPT_FILE for custom readers & writers
(#8781, Albert Krewinkel). The value did not hold the actual
file path for scripts in the *custom* folder of the datadir.
* Fix YAML in translation files for `cs` and `pl` (#8787).
* Fix pdf output via typst (#8754). One must now use `typst
compile` rather than `typst`.
* MANUAL.txt:
+ Added note that the user will need to create the user data
dir (#8727).
+ Add `wikilinks` to non-default extensions (Ilona).
+ Update link to custom djot writer (Albert Krewinkel).
+ Better link to citation syntax.
+ Fix typo (sdhoward).
+ Note that `#` fancy list markers don't work with commonmark (#8772,
William Lupton).
+ Add commonmark `fenced_div` note (#8773, William Lupton).
+ Move highlighting documentation, with minor adjustments
(William Lupton).
+ Fix inaccurate statement about spaces and tabs in template
syntax
(Frank Seifferth).
* Update documentation for org-mode (Christian Christiansen, #8716).
* doc/lua-filter.md:
+ Fix typos (#8734, perro tuerto).
+ Fix anchor (Toni Dietze).
+ Use full field name in example (#8857, Matt Dodson).
+ Fix copy-paste error (#8798, thron7).
* CONTRIBUTING.md: update info on ghc versions.
* INSTALL.md:
+ Fix cabal install instructions (Albert Krewinkel).
+ Use more relevant link to NetBSD/pkgsrc entry (Charlotte Koch).
+ Fix Windows install instructions for winget (#8799).
* Tests: Rename test/docx/block_quotes_parse_indent.native for
consistency (Stephan Meijer).
* Add `tls` constraint on cabal.project. This is needed to
avoid problems caused by the transition to `crypton`.
* Require texmath 0.12.8.
## pandoc 3.1.2 (2023-03-26)
* Add a Lua REPL (Albert Krewinkel). This can be started
with `pandoc lua -i`. It is also possible to instruct a filter to
open the REPL at a certain point, for debugging (see `pandoc.cli.repl`).
* Support `typst` as a `--pdf-engine`.
* Add typst writer (#8713). New module Text.Pandoc.Writers.Typst,
exporting `writeTypst` [API change].
* Org reader:
+ Allow zero width space as an escape character (#8716,
Christian Christiansen). Allow the character U+200B to be used as
an escape character as described in the Org-mode documentation
(<https://orgmode.org/manual/Escape-Character.html>).
* DocBook reader:
+ Handle "book" for xref references (#8712, Andres Freund)
This also adds a test xref to book and part.
+ Handle `<part>` (#8712).
* HTML reader:
+ Fix behavior with `-native_spans-raw_html` (#8711). Previously with
this configuration, `<span>`s were not treated as inline elements at all.
* HTML writer:
+ Avoid duplicate classes (#8705).
+ Use img element instead of embed for `.svg.gz` and `.png.gz` etc. (#8699).
+ HTML writer footnotes changes (#8695): when `--reference-location=section`
or `=block`, use an `aside` element for the notes rather than a `section`.
When `--reference-location=section`, include the `aside` element inside
the section element, rather than outside. (In slide shows, this option
causes footnotes on a slide to be displayed at the bottom of the slide.)
* EPUB writer:
+ Use different structure for epub footnotes (#8676, see #8672, #5583).
Many EPUB readers are thrown off by pandoc's current footnote
output. Both the ol and the fact that the footnote backlink is
at the end of the note seem to pose problems.
With this commit, we now create a list of aside (or div) elements,
instead of an ordered list. Each element begins with a note number
that is linked back to the note reference. (So, the backlink occurs
at the beginning rather than the end.) Thanks to @Porges and @lewer.
* Docx writer:
+ Include abstract title (#8702). Uses localized term for abstract.
* Markdown writer:
+ Use implicit figures if there's a caption but no alt (#8689,
Albert Krewinkel).
* Jira reader (Albert Krewinkel):
+ Add panel title as nested div (#8681).
+ Require jira-wiki-markup 1.5.1 (#8680). This fixes a bug in the parser
that caused text between two exclamation marks to be parsed as an
image. The first `!` of image markup must now be followed by a
non-space character; otherwise, the enclosed text is parsed as
normal content.
* Ms writer:
+ Fix handling of Figure (#8660).
* ICML writer:
+ Fix images with data (#8675). The Contents element
should be inside Properties.
* LaTeX writer:
+ Add Chinese to Babel languages.
+ Fix background image in Beamer when there are figure environments (#8671,
Martín Pozo).
* LaTeX template:
+ Add `babelfonts` variable to default LaTeX template.
This allows specifying certain fonts to be used with
certain babel languages. Thanks to Frederik Elwert.
+ Fix highlight/underline with lualatex (#8707). We need the lua-ul package
instead of soul, which doesn't work with lualatex.
* Lua (Albert Krewinkel):
+ Add `pandoc.cli.repl` function
+ Fix `json.encode` for nested AST elements. Ensures that objects with
nested AST elements can be encoded as JSON.
+ Auto-generate docs for pandoc modules.
+ Load text module as `pandoc.text`. This only affects the name in the
Lua-internal documentation. It is still possible to load the modules
via `require 'text'`, although this is deprecated.
+ Move docs from module `text` to `pandoc.text`
The latter is easier to use and more consistent with the other modules.
+ Keep the Lua stack clean A metatable used during initialization was
not properly removed from the stack. Likewise, accessing the
CommonState from Lua previously led to the pollution of the
Lua stack with a left-over value.
* Add function `pandoc.format.from_path`.
+ Allow to get the JSON encoding of log messages.
* Text.Pandoc.Format: Add new function `formatFromFilePaths` [API change]
(#8710, Albert Krewinkel).
* The old Text.Pandoc.App.FormatHeuristics module has been removed.
* In `--version`, use Windows `%APPDATA%` variable to describe
user data dir (#8686, Pablo Rodríguez).
* Text.Pandoc.App.CommandLineOptions: don't lowercase arg to `--from`/`--read`
(Albert Krewinkel). This prevented users to use custom writers with
uppercase characters in their filenames. Format-normalization,
including lower-casing of format identifiers, happens during
format parsing.
* Documentation:
+ Add `doc/nix.md`.
+ Add `doc/extras.md`. This was formally in the website repo.
+ `doc/lua-filters.md`: improve docs for `pandoc.zip`.
* Factor out `make_macos_release.sh` from the release candidate workflow.
Use cabal instead of stack to build the macos binary.
* Modify linux/make_artifacts.sh so it will work on cirrus.
* Switch to hslua-2.3
* Depend on latest releases of texmath, doclayout.
## pandoc 3.1.1 (2023-03-05)
* EPUB reader: Give additional information in error if the epub
zip container can't be unpacked.
* TSV reader: don't gobble tabs as whitespace (#8661).
* Org reader: accept empty tables (#8659).
* LaTeX reader: fix multiplication syntax for tabular (#8658).
We recognized `*{6}{...}` but not `*6{...}` or `*6c`.
* Docx reader: parse image alt texts in LibreOffice generated files.
LibreOffice tags images slightly differently than Word; this change lets
the parses take that difference into account when looking for an image
description (alt text).
* DocBook reader:
+ Fix `<xref>` references to tables in DocBook files
(#8626, Pavol Otto).
+ Parse `figure` as a Figure element in the AST (#8668).
* JATS reader: avoid generating duplicate figure captions (#8669).
* RST reader: align with spec in syntax for role names (#8653).
In particular, we now allow colons in row names.
* Add note on converting from .doc format to FAQs (#8654).
* Trap error in getAppUserDataDirectory (#8648).
This can raise an error if pandoc is run in a non-user environment.
* LaTeX writer: do not use longtable foot with Beamer (#8638, Albert
Krewinkel). The table foot is made part of the table body, as
otherwise it won't show up in the output. The root cause for
this is that longtable cannot detect page breaks in Beamer.
* LaTeX template: Add CJKsansfont and CJKmonofont for XeLaTeX
(#8656, Yudong Jin). `CJKsansfont` and `CJKmonofont` will be
set for xelatex only if `CJKmainfont` is also provided.
* URL style in ConTeXt (#8612, Thomas Hodgson). Previously, a
URL like this would be in monospace text:
`\useURL[url1][https://example.com]`. Now, it will match the
main text unless the `linkstyle` variable is set, which
controls the styling of all links. Closes #8602.
* Asciidoc writer: Properly escape `|` in table cells (#8665).
* asciidoc{,tor} template: fix revision date when author is unset
(#8637, arcnmx). Revision line syntax is only valid in
combination with an author line, so the date attribute must be
set explicitly when the author is missing
* HTML writer: allow "track" element to be treated as block-level HTML
(#8629).
* Include needed polyfill when MathJaX is used (#8625).
* JATS writer: include alt-text in `<graphic>`,
`<inline-graphic>` elements (#8631, Albert Krewinkel).
* Chunked HTML writer: Retain metadata in processing sections
for chunked HTML (#8620). Previously we suppressed metadata
in all but the top page, in order to prevent the title block
from being printed on every page. This prevented use of
custom variables set by metadata fields. This commit moves
to a better solution: a conditional in the default template
restricts the title block to the top page.
* Lua API:
+ Add new function `pandoc.system.cputime` (Albert
Krewinkel). The function returns the CPU time consumed by
pandoc and can be used to benchmark Lua computations.
+ Add module `pandoc.json` to handle JSON encoding (#8605,
Albert Krewinkel).
* Use pandoc-lua-marshal 0.2.1 (Albert Krewinkel).
All major AST elements now have `__tojson` metamethods that return the
JSON representation of an element. This allows to JSON-encode these
elements with libraries that respect the `__tojson` metamethod,
including dkjson.
* Use latest zip-archive. This allows pandoc to open certain
epubs that it could not open before.
* Use commonmark-extensions 0.2.3.4. This fixes some bugs involving
definition lists and inline formatting.
* Use latest skylighting-format-context
* MANUAL.txt:
+ Document chunk-template in defaults file.
+ Remove obsolete "raw content in a style" section.
+ Revise documentation for `--mathml` to reflect support in all major
browsers (#8667).
* docs/custom-readers.md: Update JSON parsing example. The example now
uses the built-in `pandoc.json` library to parse the API output.
* doc/press.md: Add article on CiTO in J Cheminform by @egonw.
* doc/lua-filters.md: fix typo in `run_json_filter` (Morgan Willcock).
## pandoc 3.1 (2023-02-09)
* Fix regression with `--print-highlight-style` option (#8586).
* Add new `--chunk-template` option (#8581), allowing more control
over the filenames in chunked HTML output.
* Text.Pandoc.App: Add `optChunkTemplate` constructor to Opt [API change].
* Text.Pandoc.Options: add `writerChunkTemplate` constructor to
`WriterOptions` [API change].
* Text.Pandoc.Chunks: add Data, Typeable, Generic, ToJSON, FromJSON
instances for `PathTemplate` [API change].
* Text.Pandoc.Citeproc: Fix bug in `metaValueToReference` (#8611).
This bug caused us to get some repeated content when converting
MetaBlock to Inlines.
* Textile reader:
+ Support footnote backlinks (#8585, Stephen Altamirano).
+ Don't allow brackets in URLs (#8582).
* ODT reader: fix blockquote indent detection (#3437, Daniel Kessler).
* LaTeX writer: include short figure/table caption if one is given
(Albert Krewinkel). Short captions are used by LaTeX when generating
the list of figures or list of tables. Adding a short caption will
now overwrite the full caption in these lists.
* Powerpoint writer: fix handling of simple figures (#8565,
Albert Krewinkel). This ensures that simple figures are displayed
in the same way as before the introduction of a dedicated `Figure`
constructor in the AST.
* Improve handling of `%` in bib(la)tex parsing (#8597, #8595).
* Use released skylighting 0.13.2.1
* INSTALL.md: direct people to cabal install pandoc-cli.
* doc/lua-filters.md: document 'Figure' type and constructor (Albert
Krewinkel). Fix typos (Martin Joerg).
* Fix link in manual (#8583, Salim B).
## pandoc 3.0.1 (2023-01-25)
* Fix use of extensions with custom readers (#8571).
* Text.Pandoc.Writers.Shared: export `setupTranslations` [API change].
Use this in HTML and OpenDocument writers, to ensure that
translations are set up properly even when we don't go through
`convertWithOpts`.
* LaTeX reader: fix regression in macro resolution for environments (#8573).
* Chunked HTML writer: Fix handling of images with absolute URLs (#8567).
* HTML writer:
+ Don't omit newlines in task lists.
+ Don't disable checkboxes in task lists (#8562).
* Ensure that automatically set variables `pandoc-version`, `outputfile`,
`title-prefix`, `epub-cover-image`, `curdir`, `dzslides-core` can be
overridden by `--variable` on the command line. Previously they would
create lists in the template Context, which is not desirable.
* Fix man page copying in `linux/make_artifacts.sh` (#8566).
Previously we were copying the pandoc-server.1 pandoc page to pandoc-lua.1.
* pandoc.cabal: remove pandoc.cabal, stack.cabal from extra-source-files
(#8560). The problem is that if these are in extra-source-files, then they
get put in the tarball, and then anyone trying to build the source
from an unpacked tarball will run into the problem that cabal.project
and stack.yaml refer to pandoc-server, pandoc-lua-engine, and
pandoc-cli, which aren't in the tarball.
* Require texmath 0.12.6 for better MathML output.
* Fix typo in Lua filter documentation (Carlos Scheidegger).
* Fix formatting of link in pandoc-server.md (James Scott-Brown).
* Minor changelog fixups.
## pandoc 3.0 (2023-01-18)
* Split pandoc-server, pandoc-cli, and pandoc-lua-engine
into separate packages (#8309). Note that installing
the `pandoc` package from Hackage will no longer give you the
`pandoc` executable; for that you need to install `pandoc-cli`.
* Pandoc now behaves like a Lua interpreter when called as
`pandoc-lua` or when `pandoc lua` is used (#8311, Albert Krewinkel).
The Lua API that is available in filters is automatically
available to the interpreter. (See the `pandoc-lua` man page.)
* Pandoc behaves like a server when called as `pandoc-server`
or when `pandoc server` is used. (See the `pandoc-server` man page.)
* A new command-line option `--list-tables`, causes tables to be
formatted as list tables in RST (#4564, with Francesco Occhipinti).
* New command line option: `--epub-title-page=true|false` allows
the EPUB title page to be omitted (#6097).
* `--reference-doc` can now accept a URL argument (#8535) and
load a remote reference doc.
* `--version` output no longer contains version info for dependent
packages. Instead, it contains a "Features" line that indicates
whether the binary was compiled with support for acting as a server,
and for using Lua filters and Custom writers.
* A new option `--split-level` replaces `--epub-chapter-level`
and affects both EPUB and chunked HTML output. `--epub-chapter-level`
will still work but is deprecated.
* Multiple input files with `--file-scope`: fix case where the links
are URL-encoded, e.g. with `%20` (#8467).
* Produce error if `--csl` is used more than once (#8195, Prat).
* Remove deprecated `--atx-headers` option.
* Remove deprecated option `--strip-empty-paragraphs`.
* In `--verbose` mode add message when running citeproc (as with
other filters).
* Add new `mark` extension for highlighted text in Markdown,
using `==` delimiters (#7743).
* Add new extensions `wikilinks_title_after_pipe` and
`wikilinks_title_before_pipe` for `commonmark` and `markdown`.
(#2923, Albert Krewinkel). The former enables links of style
`[[Name of page|Title]]` and the latter `[[Title|Name of
page]]`. Titles are optional in both variants, so this works
for both: `[[https://example.org]]`, `[[Name of page]]`. The
writer is modified to render links with title `wikilink` as
a wikilink if a respective extension is enabled. Pandoc will
use `wikilinks_title_after_pipe` if both extensions are
enabled.
* Add prefixes to identifiers with `--file-scope` (#6384).
This change only affects the case where `--file-scope` is used
and more than one file is specified on the command line.
In this case, identifiers will be prefixed with a string
derived from the file path, to disambiguate them. For example,
an identifier `foo` in `contents/file1.txt` will become
`contents__file1.txt__foo`. Links will be adjusted accordingly:
if `file2.txt` links to `file1.txt#foo`, then the link will
be changed to point to `#file1.txt__foo`. Similarly, a link
to `file1.txt` will point to `#file1.txt`. A Div with an
identifier derived from the file path will be added around
each file's content, so that links to files will still work.
* New output format: `chunkedhtml`. This creates a zip file
containing multiple HTML files, one for each section,
linked with "next," "previous," "up," and "top" links.
(If `-o` is used with an argument without an extension,
it is treated as a directory and the zip file is automatically
extracted there, unless it already exists.) The top page will
contain a table of contents if `--toc` is used. A
`sitemap.json` file is also included. The option
`--split-level` determines the level at which sections are
to be split.
* Support complex figures (Albert Krewinkel, Aner Lucero).
There is now a dedicate Figure block constructor for
figures. The old hack of representing a figure as
`Para [Image attr [..alt..] (source, "fig:title")]`
has been dropped. Here is a summary of figure support
in different formats:
+ Markdown reader: paragraphs containing just an image are treated as
figures if the `implicit_figures` extension is enabled. The identifier
is used as the figure's identifier and the image description is also
used as figure caption; all other attributes are treated as belonging
to the image.
+ Markdown writer: figures are output as implicit figures if possible,
via HTML if the `raw_html` extension is enabled, and as Div elements
otherwise.
+ HTML reader: `<figure>` elements are parsed as figures, with the
caption taken from the respective `<figcaption>` elements.
+ HTML writer: the alt text is no longer constructed from the caption,
as was the case with implicit figures. This reduces duplication, but
comes at the risk of images that are missing alt texts. Authors should
take care to provide alt texts for all images. Some readers, most
notably the Markdown reader with the `implicit_figures` extension,
add a caption that's identical to the image description. The writer
checks for this and adds an `aria-hidden` attribute to the
`<figcaption>` element in that case.
+ JATS reader: The `<fig>` and `<caption>` elements are parsed into
figure elements, even if the contents is more complex.
+ JATS writer: The `<fig>` and `<caption>` elements are used write
figures.
+ LaTeX reader: support for figures with non-image contents and for
subfigures.
+ LaTeX writer: complex figures, e.g. with non-image contents and
subfigures, are supported. The `subfigure` template variable is set if
the document contains subfigures, triggering the conditional loading
of the *subcaption* package. Contants of figures that contain tables
are become unwrapped, as longtable environments are not allowed within
figures.
+ DokuWiki, Haddock, Jira, Man, MediaWiki, Ms, Muse, PPTX, RTF, TEI,
ZimWiki writers: Figures are rendered like Div elements.
+ Asciidoc writer: The figure contents is unwrapped; each image in the
the figure becomes a separate figure.
+ Classic custom writers: Figures are passed to the global function
`Figure(caption, contents, attr)`, where `caption` and `contents` are
strings and `attr` is a table of key-value pairs.
+ ConTeXt writer: Figures are wrapped in a "placefigure" environment
with `\startplacefigure`/`\endplacefigure`, adding the features
caption and listing title as properties. Subfigures are place in a
single row with the `\startfloatcombination` environment.
+ DocBook writer: Uses `mediaobject` elements, unless the figure contains
subfigures or tables, in which case the figure content is unwrapped.
- Docx writer: figures with multiple content blocks are rendered as
tables with style `FigureTable`; like before, single-image figures are
still output as paragraphs with style `Figure` or `Captioned Figure`,
depending on whether a caption is attached.
+ DokuWiki writer: Caption and "alt-text" are no longer combined. The
alt text of a figure will now be lost in the conversion.
+ FB2 writer: The figure caption is added as alt text to the images in
the figure; pre-existing alt texts are kept.
+ ICML writer: Only single-image figures are supported. The contents of
figures with additional elements gets unwrapped.
+ OpenDocument writer: A separate paragraph is generated for each block
element in a figure, each with style `FigureWithCaption`. Behavior for
single-image figures therefore remains unchanged.
+ Org writer: Only the first element in a figure is given a caption;
additional block elements in the figure are appended without any
caption being added.
+ RST writer: Single-image figures are supported as before; the contents
of more complex images become nested in a container of type `float`.
+ Texinfo writer: Figures are rendered as float with type `figure`.
+ Textile writer: Figures are rendered with the help of HTML elements.
+ XWiki: Figures are placed in a group.
* Changes in custom readers/writers:
+ It is now possible to have a custom reader and a custom writer for
a format together in the same file. The file may also define
a custom template for the writer.
+ Pandoc now checks the folder `custom` in the user's data directory
for a matching script if it can't find one in the local directory.
Previously, the `readers` and `writers` data directories were
searched for custom readers and writers, respectively. Scripts in
those directories must be moved to the `custom` folder.
+ Custom readers used to implement a fallback behavior that allowed to
consume just a string value as input to the `Reader` function. This
has been removed, the first argument is now always a list of
sources. Use `tostring` on that argument to get a string.
* New module Text.Pandoc.Writers.ChunkedHTML,
exporting `writeChunkedHtml` [API change].
* We now set the `pandoc-version` variable centrally rather
than in the writers. One effect is the man writer now emits
a comment with the pandoc version.
* pandoc-server:
+ Add simple CORS support to pandoc-server (#8427).
+ Print message to stderr when starting the server.
* Docx reader:
+ Mark unnumbered headings with class `unnumbered` (#8148,
Albert Krewinkel). This change ensures good conversion
results when converting with `--number-sections`.
+ Support parsing of highlighted text.
+ Fix handling of `oMathPara` in `w:p` with other content (#8483).
* ODT reader:
+ Fix relative links. ODT adds a `../` to relative links
(see #3524); this needs to be removed when converting from ODT.
+ Handle "section" elements (#8409).
+ Rename Text.Pandoc.Readers.Odt -> Text.Pandoc.Readers.ODT,
for consistency with Writers.ODT. Rename `readOdt` -> `readODT`.
[API change]
* DocBook reader:
+ Support href on link even in a fragment (#8437).
(We now just look for an `href` attribute without
worrying about the namespace.)
+ Parse title from imageobject/objectinfo (#8437).
* JATS reader:
+ Handle uri element in references (#8270).
* Ipynb reader:
+ Add cell id to attachment filename when storing in MediaBag (#8415).
Otherwise attachments with the same name can overwrite each other.
* LaTeX reader:
+ Skip parenthenized args of toprule, midrule, etc (#8242).
+ Handle `##` macro arguments properly (#8243).
+ Remove unused function `toksToString` in Parsing module.
+ Support more `soul` commands, including `\hl`.
+ Add `unnumbered` class for `\part*` (#8447)
+ Fix `TEXINPUTS` handling (#8392). If `TEXINPUTS` ends with `:`,
then the system default `TEXINPUTS` is added. We handle this by
just adding the working directory in this case.
+ Parse short table caption (see jgm/pandoc-types#103).
This is not too useful yet, because writers don't do anything with
the short caption.
* MediaWiki reader:
+ Parse table cell with attributess, to support rowspan, colspan (#8231,
Ruqi).
+ Refine "blending" rules for MediaWiki links (#8525, Ruqi).
The rules for "blending" characters outside a link into the link are
described here: https://en.wikipedia.org/wiki/Help:Wikitext#Blend_link
These pose a problem for CJK languages, which generally don't have
spaces after links. However, it turns out that the blending behavior, as
implemented on Wikipedia, is (contrary to the documentation) only for
ASCII letters. This commit implements that restriction, which fixes
the problem for CJK.
* HTML reader:
+ Fix regression for `<tt>` (#8330). It was no longer being parsed as
Code (Justin Wood).
* RST reader:
+ Support `mark` role for round-trip.
* Textile reader:
+ Support linked images (#8541).
+ Fix strong emph ending with link (#8540).
+ Adding a Parser to look for ordered list start attribute numbers
if any (#2465, vkraven).
+ Handle empty paragraphs (#8487). Also, if attributes are added
explicitly to a paragraph, put it in a Div with the attributes.
* Markdown reader:
+ Allow fenced code block "bare" language to be combined
with attributes (#8174, Siphalor), e.g.
````
```haskell {.class #id}
```
````
+ Allow table caption labels to start with lowercase `t` (#8259).
+ Grid tables: allow specifying a table foot by enclosing it with
part separator lines, i.e., row separator lines consisting only
of `+` and `=` characters (#8257, Albert Krewinkel). E.g.:
```
+------+-------+
| Item | Price |
+======+=======+
| Eggs | 5£ |
+------+-------+
| Spam | 3£ |
+======+=======+
| Sum | 8£ |
+======+=======+
```
+ Fix `implicit_header_references` with duplicate headings (#8300).
Documentation says that when more than one heading has the same text,
an implicit reference `[Heading text][]` refers to the first one.
Previously pandoc linked to the last one instead. This patch
makes pandoc conform to the documented behavior.
+ Parse highlighted text inside `==..==` if `mark` extension enabled.
* Org reader:
+ Allow org-ref v2 citations with `&` prefix (#8302).
+ Make `#+pandoc-emphasis-pre` work as expected (#8360, Amir Dekel).
* BibTeX reader:
+ Fix handling of `%` in `url` field (#7678).
`%` does not function as a comment character inside `url`
(where URL-encoding is common).
+ Allow `url` field in `bibtex` as well as `biblatex` (#8287).
This field is not officially supported for BibTeX, but many styles
can handle it (<https://www.bibtex.com/f/url-field/>),
and others will ignore it.
+ Support `software` type in biblatex <-> CSL conversions (#8504).
+ Make sure `version` field comes through in biblatex (#8504).
* BibTeX writer:
+ Pass through `url` even for `bibtex` (#8287).
* Org writer:
+ Pass through unknown languages in code blocks (#8278), instead
of producing `begin_example`.
+ Use span attributes `tag-name` in headers as tags (#8513, Albert
Krewinkel). This enables round-tripping of tags in Org headings.
* EndNote reader:
+ Better error when parsing EndNote references fails.
* DocBook writer:
+ Rename Text.Pandoc.Writers.Docbook -> Text.Pandoc.Writers.DocBook.
Rename `writeDocbook` -> `writeDocBook`, for consistency with
the DocBook reader's naming. [API change]
+ Fix position of textobject (#8437). It is a child of
`inlinemediaobject`, not `imageobject`.
+ Add regression tests for #8437.
+ Render image alt text using textobject element (#8437).
+ Don't indent contents of title element.
+ Store "unnumbered" class in DocBook role attribute (#1402, lifeunleaded).
* ConTeXt writer (Albert Krewinkel):
+ Support syntax highlighting for code.
+ Always use `\type` for inline code.
Inline codes that contained curly braces where previously rendered
with `\mono`; this led to unexpected results when the presentation
of `\type` was customized, as those changes would not have
been applied to code rendered with `\mono`.
+ Add support for unlisted, unnumbered headings (#8486).
+ Support `tagging` extension (Albert Krewinkel). Paragraphs
are enclosed by `\bpar` and `\epar` commands, and `highlight` commands
are used for emphasis. This results in much better tagging in PDF output.
* LaTeX writer:
+ Do not repeat caption on headless tables (Albert Krewinkel).
The caption of headless tables was repeated on each page that
contained part of the table. It is now made part of the
"first head", i.e. the table head that is printed only once.
+ Add separator line between table's body and its foot
(Albert Krewinkel).
+ Ignore languages with no babel equivalent, instead of generating an
invalid command in the preamble (#8325).
+ Use `\includesvg` for SVGs and include the `svg` package (#8334).
+ Use `soul` instead of `ulem` for strikeout, underline (#8411).
This handles things like hyphenation, line breaks, and nonbreaking
spaces better.
+ Use `\toprule\noalign{}` instead of `\toprule()` in tables,
and similarly for `\midrule` and `\bottomrule` (#8223).
This facilitates redefining `\toprule`, `\midrule`, and `\bottomrule`
without needing to gobble the ()s. (Those who redefine these macros
on the assumption that they will be followed by `()` may need to
change their definitions.)
+ Support highlighted text for Span with class `mark`.
* JATS writer:
+ Use `<break/>` for LineBreak in the limited contexts that accept it
(#8344).
+ Officially deprecate `writeJATS` in favor of `writeJatsArchiving`.
* RTF writer:
+ Add space after unicode escape commands (#8264). This fixes
a bug that caused characters to disappear after unicode escapes.
* RST writer:
+ Render tables as list tables when the `--list-tables` option is
specified (`writerListTables`) (#4564, Francesco Occhipinti).
+ Improve inline escaping rules (#8380).
+ Use special `mark` role for Span with class `mark`.
* Commonmark writer:
+ Ensure that we don't have blank lines in raw HTML (#8307).
* HTML writer:
+ Only add role attribute in HTML5 (#8241). It is not valid in HTML4.
+ Avoid aria-hidden in code blocks for HTML4 (#8241).
+ Only treat `. . .` as a slide pause in slides, and not in regular
HTML output (#8281).
+ Properly merge classes for headings of level > 6 (#8363).
+ Prevent `<a>` inside `<a>` (#7585). If a link text contains a link,
we replace it with a span.
+ Replace deprecated aria roles for bibliography entries (#8354).
`doc-biblioentry` -> `listitem`, `doc-bibliography` -> `list`.
+ Remove obsolete stuff about mathml-script.
This was a shim we used to include for mathml support.
We don't do anything with this any more, so this is dead code.
+ Include math links if there are raw commands or environments that
can be interpreted as math e.g. by MathJax (#8469).
+ Add prooftree to list of math environments (#8462). This will cause
raw LaTeX prooftree environments to be rendered appropriately when
`--mathjax` is used.
* HTML, Markdown writers: filter out empty class attributes (#8251).
These should not be generated by any pandoc readers, but they
might be produced programatically.
* Markdown writer:
+ Avoid HTML fallbacks in the generated TOC (Albert Krewinkel, #8131).
The generated table of contents usually has IDs for each TOC link,
allowing to link back to specific parts of the TOC. However, this
leads to unidiomatic markup in formats like gfm, which do not support
attributes on links and hence fall back to HTML. The IDs on TOC items
are now removed in that case, leading to more aesthetic TOCs.
+ Escape `!` before `[` (#8254).
+ Support `mark` extension.
* AsciiDoc writer:
+ In link text, only replace commas with entities when they're in
Str elements. If a link contains an image, it may have attributes,
and the commas there should not be converted (see #8437, #8070).
* ODT writer:
+ Fix relative links (#3524).
* Docx writer:
+ Better handling of tables in lists (#5947). Previously the content
of each list cell was indented when the table belonged to a list
item.
+ Indent tables in list items (#5947).
+ Adjust correct attribute on `lang` element (#7022). For East Asian
languages, we need to adjust `w:eastAsia` rather than `w:val`.
This allows normal fonts to be used for any Latin-font text.
Similarly, for bidi languages, we need to adjust `w:bidi`
rather than `w:val`. We treat `he` and `ar` as bidi languages,
`zh`, `ja`, `ko` as East Asian languages.
+ Support relative image widths (Albert Krewinkel).
Image widths given in percent are interpreted to be relative to
the text width. Previously, percent widths were taken relative to
the image's native size, inconsistently with other writers.
+ Avoid using 'error' for unassigned table cells (#8468). Instead,
throw a regular pandoc error.
+ Render a Span with class `mark` as highlighted. Currently
yellow is hardcoded.
* MediaWiki writer:
+ Use the 'new' table structure, so that colspan and rowspan are
supported (Wout Gevaert).
* Man writer:
+ Use UTF-8 by default for non-ascii characters (#8507).
Only use groff escapes if `--ascii` has been specified on the
command line (`writerPreferAscii`).
* ICML writer:
+ Use Contents element for images with raw data instead of a link
with a data: uri (#8398).
* EPUB writer:
+ Refactor to use Text.Pandoc.Chunks.
+ Refactored and simplified code.
+ Make title page optional (#6097).
* Ms writer:
+ Properly format display equations (#8308).
+ Remove -C option on PSPIC. Some old versions don't support this
option, and since it's the default it shouldn't be necessary.
* XWiki writer:
+ Use template if it is specified (#8296). Previously
templates were ignored.
* LaTeX template:
+ Set fonts after Beamer theme (Jeremie Knuesel). Beamer themes
such as metropolis and saintpetersburg change the default
fonts. This change gives precedence to the user font settings
by moving them after the loading of the Beamer theme.
+ Set `\babelfont` when `mainlang` and `lang` are specified and
`pdflatex` is not being used (#8538). This is needed for good
results in Arabic.
+ Add variable `urlstyle` (#8429, Amar Al-Zubaidi). This is set to
`same` by default, so users should not experience any change.
* HTML template:
+ Remove default font size, line height and font family in
default inline css (#8423). `mainfont`, `fontsize`,
and `linestretch` can still be used as before; the only difference
is that we no longer provide opinionated defaults.
This commit also adds a `maxwidth` variable that sets `max-width`;
if not set, 36em is used as a default.
+ Add `code { hyphens: manual; }`.
+ Use `styles.citations.html` partial in `styles.html`.
+ Fix class name `hanging` -> `hanging-indent` in
`styles.citations.html`.
+ Put Consolas before Lucida Console for code font (#8543).
This is to prevent Lucida Console from being used on Windows, where
it causes spacing issues in some applications, with boldface
glyphs wider than regular ones.
* EPUB CSS changes: Reduce the amount of inline CSS used for EPUBs
(#8379). Almost everything is now in the default EPUB CSS
(`data/epub.css`), which can be overridden either by
putting `epub.css` in the user data directory or by using
`--css` on the command line. Inline styles are only used
for syntax highlighting (which depends on the style
specified, and is only included on pages with highlighted
code) and for bibliography formatting (which can depend on
the CSL style, and is only used in the page containing the
bibliography).
Note that, for compatibility with older readers, we don't
use flexbox to style `column/columns` divs by default, as
we do in HTML. Instead, we use an older method which only
works when there are two `column` divs inside a `columns`
div. If you need more than two columns and aren't worried
about support for older EPUB readers, you can modify the
default CSS (there is a comment in the CSS telling you what
to do).
* Reveal.js template: prevent line-wrapping of parallax options
(#8503, Albert Krewinkel).
* reference.pptx: Remove unsupported element (#8342, #6338, Link Swanson).
The default template contained text above the header, which can mislead
users into thinking there is a way to put text there using pandoc.
* Text.Pandoc.Readers.Metadata:
+ Fix metadata parsing corner case (#8465).
+ Don't fail on inline metadata beginning with newline (#8358).
* Text.Pandoc.App:
+ Move initial input-to-Pandoc code to internal submodule (Albert
Krewinkel).
+ Change `parseOptionsFromArgs` and `parseOptions` (#8406)
They now return `Either OptInfo Opt`. [API change]
+ Add `OptInfo` type [API change].
+ Add `handleOptInfo` function. This performs the IO actions for
things like `--version` that were previously done in
`parseOptionsFromArgs` [API change].
+ `convertWithOpts`: add argument for a `ScriptingEngine` [API change].
+ Unify check for standalone output (Albert Krewinkel).
+ New `optEpubTitlePage` field on `Opt` [API change] (#6097).
+ Remove `optEpubChapterLevel`, add `optSplitLevel` [API change].
+ Export `IpynbOutput(..)` [API change].
* Text.Pandoc.App.OutputSettings:
+ Remove unused field `outputWriterName` in `OutputSettings`.
* Text.Pandoc.Citeproc:
+ Check both extension and mime type to determine bibliography type
when the bibliography is fetched remotely (#7151).
+ CslJson: allow an object with `items` property in addition to
an array of references. This is what is returned by e.g.
`https://api.zotero.org/groups/904125/items?v=...&format=csljson`
+ Require a digit for an implicit "page" locator inside explicit
locator syntax `{...}` (#8288). Previously a locator specified as
`{}` would be rendered as `p.` with nothing after it.
+ Update `sub verbo` to `sub-verbo` (#8315). This is a change in
the term's canonical name in citeproc. As a result of this change,
`sub verbo` locators have not worked in pandoc since citeproc 0.7.
+ Text.Pandoc.Citeproc.MetaValue: remove unused function
`metaValueToPath`.
+ Add internal module Text.Pandoc.Citeproc.Name (#8345). This exports
`toName`, which previously had been part of T.P.Citeproc.BibTeX,
and allows for cleaner module dependencies.
* Export module `Text.Pandoc.Slides` [API Change] (Albert Krewinkel).
* Add new module Text.Pandoc.Format [API change] (Albert Krewinkel).
The module provides functions and types for format spec parsing and
processing. The function `parseFormatSpec` was moved from
Text.Pandoc.Extensions to the new module and renamed to
`parseFlavoredFormat`. It now operates in
a PandocMonad and is based on the updated types.
* Text.Pandoc.Sources:
+ Add UpdateSourcePos instances for String and
strict and lazy ByteString [API change].
* Text.Pandoc.Extensions:
+ Fix JSON decoding of Extensions (#8352, Albert Krewinkel).
+ Add new exported function `readExtension` [API change].
+ Remove `parseFormatSpec` [API change]. This has been moved
to Text.Pandoc.Format and renamed as `parseFlavoredFormat`
(Albert Krewinkel).
+ Simpler implementation of Extensions based on Set
(benchmarks show no performance penalty).
+ Add `CustomExtension` constructor to `Extension` [API change].
+ Remove `Bounded`, `Enum` instances for `Extension`.
+ Add `extensionsToList` function.
+ Revise `readExtension` so it can handle `CustomExtension`, and so
that it returns a Text rather than `Maybe Text`.
+ Add `showExtension` [API change].
+ Add `Ext_mark` extension [API change].
+ Add `Ext_tagging` constructor [API change] (Albert Krewinkel).
+ Add `Ext_wikilinks_title_after_pipe`, `Ext_wikilinks_title_before_pipe`
[API change] (Albert Krewinkel).
* Text.Pandoc.PDF:
+ Fix `papersize` on PDF generation via ms (#8403).
We need to set an option in pdfroff in addition to including
a macro in the ms file. With this fix, `-Vpapersize=a4` should be
sufficient to produce A4 PDF via ms.
+ Change default background color of PDFs generated via HTML (#8422,
Marcin Serwin).
* Text.Pandoc.MIME:
+ Base module on package `mime-types`, which
is already a transitive dependency (#8277, Albert Krewinkel).
+ Remove deprecated overrides (#8292).
* Text.Pandoc.XML:
+ Re-export `lookupEntity` from commonmark-hs [API change].
* Text.Pandoc.Parsing:
+ Remove gratuitious renaming of Parsec types. We were exporting
Parser, ParserT as synonyms of Parsec, ParsecT.
There is no good reason for this and it can cause confusion.
Also, when possible, we replace imports of Text.Parsec with
Text.Pandoc.Parsing. The idea is to make it easier, at some point,
to switch to megaparsec or another parsing engine if we want to.
New (re-)exports: `Stream(..)`, `updatePosString`, `SourceName`,
`Parsec`, `ParsecT`. Removed exports: `Parser`, `ParserT`
[API change].
+ Export `errorMessages`, `messageString` [API change].
+ Export `fromParsecError`, which can be used to turn a parsec
ParseError into a regular PandocParseError (#8382) [API change].
+ Remove `nested` [API change]. It was not being used, and in fact it
was a bad idea from the beginning, as it had no hope of solving
the problem it was introduced to solve.
+ Change `characterReference`, `charsInBalanced`. `characterReference`
so they now return a Text (some named references don't correspond
to a single Char). Use the the `lookupEntity` function from
commonmark-hs instead of the slow one from tagsoup [API change].
+ `charsInBalanced` now takes a Text parser rather than a Char parser
as argument [API change].
* Text.Pandoc.Shared:
+ Export `textToIdentifier` [API change].
+ Remove deprecated `crFilter`. [API change]
+ Remove deprecated `deLink`. [API change]
+ Deprecate `notElemText`.
+ Deprecate `makeMeta`.
+ Remove `pandocVersion` (now available in Text.Pandoc.Version
as `pandocVersionText`).
+ Remove `findM` [API change]. This was only used in one place, and
can be replaced with simpler code.
+ Remove deprecated `makeMeta` [API change].
+ Remove `ordNub` [API change]. This is just `nubOrd` from
Data.Containers.ListUtils.
+ Remove `mapLeft` [API change]. This is just a synonym for
Bifunctor.first.
+ Remove `elemText`, `notElemText` [API change].
+ Drop export of `pandocVersion` and `pandocVersionText`,
which are now exported by Text.Pandoc.Version.
+ Remove `escapeURI`, `isURI`. These are now exported by
Text.Pandoc.URI, and removing them from Shared helps make
the module structure more straightforward.
+ Use LineBreak as default block sep in `blocksToInlines`.
(#8499, Albert Krewinkel). This change also affects the
`pandoc.utils.blocks_to_inlines` Lua function.
+ `defaultUserDataDir` is no longer exported (it has been
moved to T.P.Data) [API change].
+ New function `figureDiv`, offering offers a standardized way
to convert a figure into a Div element (Albert Krewinkel) [API change].
* Text.Pandoc.Writers.Shared:
+ Export `htmlAddStyle`, `htmlAlignmentToString` and `htmlAttrs`
[API change] (Wout Gevaert).
+ Use 'literal tag' instead of 'text (T.unpack tag)' in `tagWithAttrs`
(Wout Gevaert).
+ `toTableOfContents`: handle nested Divs better (#8402).
* Rename Text.Pandoc.Network.HTTP -> Text.Pandoc.URI.
This is still an unexported internal module.
Export `urlEncode`, `escapeURI`, `isURI`, `schemes`, `uriPathToPath`.
Drop exports of `schemes` and `uriPathToPath`.
* Text.Pandoc.URI `isURI`: don't require non-ASCII characters to be
escaped (#8508).
* Rename Text.Pandoc.Readers.LaTeX.Types -> Text.Pandoc.TeX (internal
module).
* Text.Pandoc.Options:
+ WriterOptions now has a field `writerListTables`,
specifying that list tables be used in RST output [API change].
+ New `writerEpubTitlePage` field on `WriterOptions` (#6097)
[API change].
+ Remove `writerEpubChapterLevel`, add `writerSplitLevel` [API change].
* Text.Pandoc.Filter:
+ Export `applyFilters` [API change].
+ Export `applyJSONFilter` [API Change] (Albert Krewinkel).
+ Parameterize `applyFilters` over scripting engine [API change] (Albert
Krewinkel).
* New exported module Text.Pandoc.Chunks [API change]. This
module provides functions to split Pandoc documents into
chunks to be rendered in separate files, e.g. one per
section. Internal identifiers are rewritten appropriately to
point to the new locations (#6122).
* Text.Pandoc.Readers:
+ Change argument type of `getReader`, so it takes a `FlavoredFormat`
instead of a `Text` [API change] (Albert Krewinkel).
* Text.Pandoc.Writers:
+ Change argument type of `getWriter`, so it takes a `FlavoredFormat`
instead of a `Text` [API change] (Albert Krewinkel).
* Text.Pandoc.Templates:
+ Do not try to normalize input to `getDefaultTemplate` (Albert
Krewinkel). The function `getDefaultTemplate` no longer splits off
extension modifers from the given format, as that conflicts with
using custom writers as formats. Haskell library users should use
`getDefaultTemplate <=< (fmap formatName . parseFlavoredFormat)`
if the input format can still contain extensions. The same is true
for `compileDefaultTemplate`, which calls `getDefaultTemplate`
internally
+ Add Wrapper type documentation (#8490, William Rusnack).
* New exported module Text.Pandoc.Scripting (Albert Krewinkel).
The module contains the central data structure for scripting engines
(e.g., Lua) [API change].
* Text.Pandoc.Error:
+ Add new PandocError constructor `PandocNoScriptingEngine` [API change]
(Albert Krewinkel).
+ Add new PandocError constructor `PandocFormatError` [API change]
(Albert Krewinkel). The new error is used to report problems with
input or output format specifications.
+ Add new PandocError constructor `PandocNoTemplateError`
(Albert Krewinkel).
+ Remove `PandocParsecError` constructor from `PandocError` (#8385).
Henceforth we just use `PandocParseError`.
* New module Text.Pandoc.Version, exporting `pandocVersionText`
and `pandocVersion` [API change]. `pandocVersion` returns a `Version`
instead of a `Text`, which is consistent with `pandocTypesVersion`.
* Text.Pandoc.Class:
+ Make `getPOSIXTime`, `getZonedTime` sensitive to `SOURCE_DATE_EPOCH`
environment variable if set (#7093). (`getTimestamp` was
already sensitive.) This ensures that EPUB builds are reproducible.
+ Text.Pandoc.Class no longer exports `readDataFile`,
`readDefaultDataFile`, `setTranslations`, and `translateTerm`
[API change].
+ Text.Pandoc.Class now exports `checkUserDataDir` [API change].
* T.P.Class.IO: export function `writeMedia` [API change] (Albert Krewinkel).
This is useful for the `pandoc.mediabag` module.
* Separate out Text.Pandoc.Data and Text.Pandoc.Translations from
Text.Pandoc.Class (#8348). This makes Text.Pandoc.Class
more self-contained.
+ Text.Pandoc.Data is now an exported module, providing `readDataFile`
and `readDefaultDataFile` (both formerly provided by
Text.Pandoc.Class), and also `getDataFileNames` (formerly
unexported in Text.Pandoc.App.CommandLineOptions)
and `defaultUSerDataDir` (formerly provided by
Text.Pandoc.Shared). [API change]
+ Text.Pandoc.Translations is now an exported module (along with
Text.Pandoc.Translations.Types), providing `readTranslations`,
`getTranslations`, `setTranslations`, `translateTerm`,
`lookupTerm`, `readTranslations`, `Term(..)`, and `Translations` [API
change].
* Text.Pandoc now exports Text.Pandoc.Data and `setTranslations`
and `translateTerm` {API change].
* Export module Text.Pandoc.Class.IO [API change].
The module is useful when defining instances of class PandocMonad for
types that are also instances of MonadIO.
* Remove modules Text.Pandoc.Writers.Custom and Text.Pandoc.Readers.Custom
[API Change] (Albert Krewinkel). The functions `writeCustom` and
`readCustom` are available from module Text.Pandoc.Lua.
* Text.Pandoc.Server:
+ Split this module into a separate package, `pandoc-server`,
allowing the `pandoc` library to be compiled without server support.
+ Return object if JSON is accepted. Previously we just returned
a JSON-encoded string. Now we return something like:
```
{
"output": "<p>hello</p>"
"base64": false,
"messages": [
{
"message": "Not rendering RawInline (Format \"tex\") \"\\\\noe\"",
"verbosity": "INFO"
}
],
}
```
This is a change in the pandoc-server JSON API.
+ Set translations in the writer based on `lang` metadata.
+ Return error in JSON object if response is JSON.
+ Remove `parseServerOpts`. [API change]
* Text.Pandoc.Lua:
+ This module has been moved to a separate package,
`pandoc-lua-engine`.
+ Export `applyFilter`, `readCustom`, and `writeCustom`.
No longer export the lower-level function `runFilterFile` [API
change].
+ Change type of `applyFilter` [API Change] (Albert Krewinkel).
The module Text.Pandoc.Filter.Lua has been merged into
Text.Pandoc.Lua. The function `applyFilter` now has type
``` haskell
applyFilter :: (PandocMonad m, MonadIO m)
=> Environment-> [String]-> FilePath-> Pandoc-> m Pandoc
```
where `Environment` is defined in Text.Pandoc.Filter.Environment.
+ Export new function `getEngine` [API Change].
The function returns the Lua scripting engine.
+ Add unexported modules T.P.Lua.Reader, T.P.Lua.Writer.
These contain the definitions of `readCustom` and `writeCustom`
that were previously in T.P.Readers.Custom and T.P.Writers.Custom.
+ Cleanup module dependencies, for a cleaner module dependency graph.
+ The `writeCustom` function has changed to return a Writer and
an ExtensionsConfig [API change]. This allows ByteString writers
to be defined.
+ The `readCustom` function has changed to return a Reader and an
ExtensionsConfig [API change].
* Lua subsystem (Albert Krewinkel):
+ The whole Lua subsystem has been moved to a separate package,
`pandoc-lua-engine`. `pandoc` does not depend on it.
`convertWithOpts` has a new parameter that can be used to
pass in the scripting engine defined in `pandoc-lua-engine`
(or a different one, in theory).
+ Fix the behavior of Lua "Version" objects under equality
comparisons (#8267).
+ Support running Lua with a GC-collected Lua state.
+ Ensure that extensions marshaling is consistent.
+ Produce more informative error messages for pandoc errors.
Errors are reported in Lua in the same words in which they would be
reported in the terminal.
+ Add new module `pandoc.format`. The module provides functions to
query the set of extensions supported by formats and the set
of extension enabled per default.
+ Add function `pandoc.template.apply`.
+ Add function `pandoc.template.meta_to_context`.
The functions converts Meta values to template contexts; the intended
use is in combination with `pandoc.template.apply`.
+ Allow Doc values in `WriterOptions.variables`.
The specialized peeker and pusher function for `Context Text` values
does not go via JSON, and thus keeps Doc values unchanged during
round-tripping.
+ Fix rendering of Lua errors in Lua, so that the
`Error running Lua` message is not prepended multiple times.
+ Add new module `pandoc.zip`.
+ Allow strings in place of compiled templates (#8321).
This allows to use a string as parameter to `pandoc.template.apply`
and in the WriterOptions `template` field.
+ Rename `reader_extensions`/`writer_extensions` globals as `Extensions`
(#8390).
+ Add `pandoc.scaffolding.Writer` (#8377). This can be used to reduce
boilerplate in custom writers.
+ Fix peeker for PandocError (Albert Krewinkel). String error messages
were incorrectly popped of the stack when retrieving a PandocError.
+ Add functions `pandoc.text.toencoding`, `pandoc.text.fromencoding`
(#8512, Albert Krewinkel).
+ Add `pandoc.cli` module. Allow processing of CLI options in Lua.
+ Support `-D` CLI option for custom writers.
A new error `PandocNoTemplateError` (code 87) is thrown if a template
is required but cannot be found.
+ Allow table structure as format spec. This allows to pass structured
values as format specifiers to `pandoc.write` and `pandoc.read`.
+ Add function `pandoc.mediabag.write` (Albert Krewinkel).
+ Add module `pandoc.structure` (Albert Krewinkel). The function
`make_sections` has been given a friendlier interface and moved to the
new module; the old `pandoc.utils.make_sections` has been deprecated.
* Custom writers:
+ The global variables `PANDOC_DOCUMENT` and `PANDOC_WRITER_OPTIONS`
are no longer set when the writer script is loaded. Both variables
are still set in classic writers before the conversion is started,
so they can be used when they are wrapped in functions.
+ Deprecate classic custom writers.
+ Add function `pandoc.write_classic`. The function can be used to
convert a classic writer into a new-style writer by setting it as
the value of `Writer`:
``` lua
Writer = pandoc.write_classic
```
or to fully restore the old behavior:
``` lua
function Writer (doc, opts)
PANDOC_DOCUMENT = doc
PANDOC_WRITER_OPTIONS = opts
load(PANDOC_SCRIPT_FILE)()
return pandoc.write_classic(doc, opts)
end
```
+ Support extensions in custom writers. Custom writers can define the
extensions that they support via the global `writer_extensions`.
The variable's value must be a table with all supported extensions
as keys, and their default status as values. For example,
the below specifies that the writer supports the extensions `smart`
and `sourcepos`, but only the `smart` extension is enabled by default:
``` lua
writer_extensions = {
smart = true,
sourcepos = false,
}
```
+ Custom writers can define a default template via a global `Template`
function; the data directory is no longer searched for a default
template. Writer authors can restore the old lookup behavior with
``` lua
Template = function ()
local template
return template.compile(template.default(PANDOC_SCRIPT_FILE))
end
```
* Custom readers:
+ Support extensions in custom readers.
Custom readers, like writers, can define the set of supported
extensions by setting a global. E.g.:
``` lua
reader_extensions = {
smart = true,
citations = false,
}
```
* Use latest versions of `commonmark-extensions`, `texmath`,
`citeproc`, `gridtables`, and `skylighting`.
* Use pandoc-types 1.23. This adds the `Figure` Block
constructor and removes the `Null` Block constructor.
* Require aeson >= 2.0.
* Use jira-wiki-markup 1.5.0 (#8511, Albert Krewinkel). Fixes issues with
icon-like sequences at the beginning of words.
* Use doctemplates 0.11, avoiding a transitive dependency on HsYAML.
* Use skylighting 0.13.1.2.
* Allow mtl 2.3.1 (Alexander Batischev).
* Use latest skylighting-format-context.
* Allow building with mtl 2.3.
* Remove `lua53` flag. We now only support Lua 5.4.
* Add hie.yaml for haskell language server.
* Add tools/latex-package-dependencies.lua.
* Update default CSL with latest `chicago-author-date.csl`.
* make_artifacts.sh: various small improvements.
* Remove sample.lua from data files (#8356).
* Documentation:
+ Deprecate `PANDOC_WRITER_OPTIONS` in custom writers (Albert Krewinkel).
+ Document `pandoc.write_classic` (Albert Krewinkel).
+ Document new table features (Albert Krewinkel).
+ Clarify what background-image does in reveal.js (#6450).
+ Documentation improvements for `blank_before_blockquote`
(#8324, Pranesh Prakash).
+ Update grid table documentation (#8346).
+ Add note about MathJax fonts to `--embed-resources`.
+ Use cabal's --package-env more (#8317, Artem Pelenitsyn).
+ Modify Zerobrane instructions to use Lua 5.4 (#8353, Ian Max Andolina).
+ Fix documentation for highlight-style in `pandoc-server.md`.
+ Fix link to fedora package site (#8246, Akos Marton).
+ Rephrase paragraph on format extensions (#8375, Ilona Silverwood).
+ Update README.template (#8496, Sven Wick).
+ Fix a tiny typo in lua-filters.md (TomBen).
+ Clarify that `--css` should be used with `-s`.
+ Clarify font selection for pdf -t ms (#8421, nbehrnd).
+ Clarify docs for `--metadata-file` (#8459).
+ Fix typo in epub.md (Vladimir Alexiev).
+ Add missing backtick in filters.md (R. N. West).
+ `doc/lua-filters.md`: add documentation for `pandoc.format`
(Albert Krewinkel).
+ Fix epub-embed-font documentation (#8455, Terence Eden).
+ Removed obsolete Templates section in CONTRIBUTING.md.
+ Add manual section on accessible PDFs, archiving standards (#8312,
Albert Krewinkel).
* Tests.Command: remove unused `runTest`.
* Add pandoc-lua.1 man page.
* Improve `shell.nix`.
* Add `tools/moduledeps.lua` for inspecting the internal module
dependency tree.
* Fix macOS zip so pandoc-server is a symlink. This cuts its size by 2x.
* CI: Improve CI speed by caching more, eliminating macos builds,
and splitting benchmarks into a separate action, run by
manual dispatch. (We still test that benchmarks build in
the regular CI.) The cache can be expired manually by
modifying the secret `CACHE_VERSION`.
* Remove the unnecessary Setup.hs from pandoc.
Cabal does not need this with build-type 'simple'.
* Add pandoc-lua and pandoc-server (symlinks) and their man pages
to releases.
* Use hslua-cli package for pandoc-lua interface (Albert Krewinkel).
* Add `server` flag to pandoc-cli, allowing it to be compiled without
server support.
* pandoc-cli: Allow building a binary without Lua support (Albert
Krewinkel). Disabling the `lua` cabal flag will result in a
binary without Lua.
* Move `--version` handling to pandoc-cli. We need it here in order
to print information about whether server and Lua support have been
compiled in.
* Move `nightly` flag from pandoc to pandoc-cli (#8339).
* Makefile changes:
- `make help` will now print all the targets and what they do.
- Add targets: `coverage`, `weeder`, `moduledeps`, `prerelease`,
`ghcid`, `repl`, `linecounts`, `hie.yaml`, `binpath`.
- Note that you can `` alias pandoc=`make binpath` `` for
convenient local testing of a build.
- Rename `quick-cabal` -> `build`, `quick-test` -> `test`.
- Exclude tests from `SOURCEFILES`.
* Factor out xml-light into an internal library.
* Add CITATION.cff (#8434).
* Move trypandoc to a separate repository, jgm/trypandoc.
## pandoc 2.19.2 (2022-08-22)
* Fix regression with data uris in 2.19.1 (#8239).
In 2.19.1 we used the base64URL encoding rather than base64.
* pandoc-server: handle `citeproc` parameter as documented (#8235).
* Org reader: treat *emacs-jupyter* src blocks as code cells (#8236,
Albert Krewinkel). This improves support for notebook-like org files
that are intended to be used with emacs-jupyter package.
* HTML writer and templates: revert to using `width` property for column
widths (Albert Krewinkel). The default `flex` and `overflow-x` properties
of a column are set to `auto`. In combination, these changes allow to
get good results when using columns with or without explicit widths.
* Org writer (Albert Krewinkel):
+ Add support for jupyter nodebook cells (#6367).
+ Prefix code language of ipynb code blocks with `jupyter-`.
This is the convention used by the *emacs-jupyter* package.
+ Keep code block attributes as header args. This allows to keep more
information in the resulting `src` blocks, making it easier to
roundtrip from or through Org. Org babel ignores unknown header
arguments.
+ Add code block identifier as `#+name` to src blocks.
* Fix some typos in the codebase (luz paz).
* Require hslua-module-path 1.0.3 (#8228, Albert Krewinkel).
## pandoc 2.19.1 (2022-08-18)
* Add server capabilities.
+ New exported module Text.Pandoc.Server [API change].
+ The pandoc executable now starts up a web server when renamed or
symlinked as `pandoc-server`, and functions as a CGI program when
renamed or symlinked as `pandoc-server.cgi`. See the man page for
`pandoc-server` for full documentation.
* Text.Pandoc.App.Opts: Redo `FromJSON` for `Opt` so that optional
values can be omitted (in which case the values from
`defaultOptions` are used).
* Org reader: treat "abstract" block as metadata (Albert Krewinkel, #8204).
A block of type "abstract" is assumed to define the document's abstract.
It is transferred from the main text to the metadata.
* Org template: add abstract from metadata as block of type "abstract"
(#8204).
* HTML writer: use `flex` property for column widths
(Albert Krewinkel, #8232).
* LaTeX writer:
+ Add label to tables that have an identifier (Albert Krewinkel, #8219).
Tables with an identifier are marked with a `\label`. A caption is
always included in this case, even if the caption is empty.
+ Use `\textquotesingle` for straight quotes in text.
+ Fix widths of multicolumn cells (#8218).
* LaTeX template: fix behavior of `colorlinks` variable (Albert
Krewinkel, #8226). Fixes a regression in 2.19 that required the
`boxlinks` variable to be set in addition to the usual link coloring
variables. Otherwise links were never colored in LaTeX PDF output.
* Text.Pandoc.Highlighting: Export `lookupHighlightingStyle`
[API change]. Previously this lived in an unexported module
Text.Pandoc.App.CommandLineOptions, under the name
`lookupHighlightStyle`.
* Text.Pandoc.App:
+ Remove unneeded MonadIO constraints in readSources.
+ Factor out `convertWithOpts'` from `convertWithOpts`.
This runs in any PandocMonad, MonadIO, MonadMask instance.
So far it is not exported, but it might find a use later.
* Support `--strip-comments` in commonmark/gfm (#8222).
This change makes the commonmark reader sensitive to
`readerStripComments`.
* Lua: add function `pandoc.utils.citeproc` (Albert Krewinkel).
The function runs the *citeproc* processor on a Pandoc document.
Exposing this functionality to Lua allows to make citation processing
part of a filter or writer, simplifies the creation of multiple
bibliographies, and enables the use of varying citation styles in
different parts of a document.
* Refactor `linux/make_artifacts.sh`.
* Update INSTALL.md installation from source instructions.
* Use base64 package instead of base64-bytestring. It is supposed to be
faster and more standards-compliant.
* trypandoc improvements:
+ Add dropdown with canned examples.
+ Add citeproc support.
+ Support csv, bibliographic and binary formats.
+ Add load from file.
+ Add permalink. Don't always reload page.
+ Use vanilla JS and CSS + the new `pandoc-server.cgi`.
* Allow haddock-library-1.11.0.
* Convert `tool/extract-changes.hs` to a Lua filter.
## pandoc 2.19 (2022-08-03)
* Add `--embed-resources` flag (Elliot Bobrow, #7331). This can be
used to embed resources without implying `--standalone`.
Deprecate `--self-contained` in favor of `--embed-resources --standalone`.
* Allow environment variable interpolation in `highlight-style`
and `pdf-engine` fields in defaults files
(#8061; Jaehwang Jung, #8073).
* Allow placing custom readers and writers in user data directory
(Albert Krewinkel, #8112) (`readers` and `writers` subdirectories).
* Add `tsv` (tab separated values) as an input format (#7974).
[API change]: Text.Pandoc.Readers.CSV now exports `readTSV`.
Internal change: In Text.Pandoc.CSV, `CSVOptions` has changed
so that `csvQuote` takes a Maybe value.
* Add `tex_math_dollars` to `gfm` default extensions (reflecting
gfm's new support for math).
* RST, Org, Markdown readers: support rowspans and colspans in grid tables
(#8202, Albert Krewinkel). Note: the writers does not yet support these
more complex grid table features, so these complex grid tables will
not round-trip.
* HTML, LaTeX, and MediaWiki readers: use `formatCode`
(#8162, #8129, Elliot Bobrow). This moves formatting from inside inline
code elements to the outside, since pandoc's Code element only takes string
content.
* Markdown reader:
+ Don't parse inline notes with blank lines inside (#8028).
+ Allow attributes in special spans (e.g. `smallcaps`, `underline`)
(Albert krewinkel, #4102). These spans are parsed as
SmallCaps or Underline elements, but any attributes are included
in a wrapping Span.
* HTML reader:
+ Allow sublists that are not marked as items (Albert
Krewinkel, #8150). This is technically invalid HTML, but it can
be found in the wild and browsers handle it.
* Org reader (Albert Krewinkel):
+ Recognize absolute paths on Windows (Albert Krewinkel, #8201).
+ Recognize {webp,jxl} files as images (YI).
+ Allow attrs for Org tables (Albert Krewinkel, #8049). Tables with
attributes are no longer wrapped in Div elements; attributes are added
directly to the table element.
+ Support line selection in INCLUDE directives (Brian Leung, #8060).
+ Fix Post / Pre mixup when setting emphasis chars (Amir Dekel, #8134).
* LaTeX reader:
+ Support `\includesvg` (#8027).
+ Unescape characters in `\lstinline` inside `\passthrough` (#8179).
+ Improve `mathEnvWith` (#8122). When converting e.g. an align
environment to an aligned environment inside a Math element, we need
to include a newline before the `\end{aligned}`, since the previous
line might end in a comment.
+ Fix treatment of extensions for `\input` in LaTeX reader (#8092).
Previously we required a `.tex` extension, but TeX
allows any extension for `\input` (as opposed to `\include`).
* RTF reader:
+ support `\nosupersub` (#8170).
* TikiWiki reader:
+ Support underlined text
* DocBook reader:
+ Improved reading `<xref>` elements (Frerich Raabe, #8065).
* JATS reader:
+ Strip `ref-` prefix from ref id in xref (#8007).
+ Support edition in references (#8087).
* RIS reader:
+ Make parser more forgiving (#8034). Allow blank lines after entries.
Allow entries with no space after the `-`, provided they
just have a newline, e.g. `DB -\n`.
+ Get right order of names (#8055).
* MediaWiki reader:
+ Allow HTML comment after row start (#8110).
* DokuWiki reader:
+ The `tex_math_dollars` extension is now supported for `dokuwiki`
(but off by default) (#8178).
+ Content inside `<latex>...</latex>` is parsed as raw LaTeX inline,
and inside `<LATEX>..</LATEX>` as raw LaTeX block (#8178).
+ The behavior of `<php>...</php>` is changed, so that instead of
producing a code block, it produces raw HTML with `<?php ... ?>`.
* LaTeX writer:
+ Improve grouping with autocites (#8088).
+ Extend list of book documentclasses (Wentau Han, #8053).
+ Fix width of multicolumn cells (Albert Krewinkel, #8090).
Cells spanning multiple columns must be given an explicit width,
calculated from the table properties.
+ Beamer: allow containsverbatim as alternative to fragile (#8080).
* HTML writer:
+ Add 'footnotes' identifier to footnotes section (#8043).
+ Fix bug with `--number-offset`. This formerly caused section divs
to be produced, even when `--section-divs` was not specified (#8097).
+ Use CSS flexboxes for columns (Albert Krewinkel). This allows
an arbitrary number of columns, while the previous approach assumed
exactly two columns.
+ Allow "spanlike" classes to be combined (see #8194). Previously
classes like "underline" and "marked" had to be the first class
in a span in order for the span to be interpreted as a "ul" or
"mark" element. This commit allows these special classes to be
"stacked," e.g. `[test]{.mark .underline}`; in addition, the
special classes are no longer required to come first in the list
of classes.
+ Avoid doubled style attribute when height and width are added to
style because of an image, but the image already has a style attribute
(#8047).
+ Do not include the deprecated doc-endnote role (#8030).
doc-endnote was deprecated in DPUB-ARIA 1.1.
+ Remove extra soft break for tasklist (black-desk, #8142).
Browser will display the extra newline character between checkbox and
text as a space, which make tasklist items cannot be aligned.
* EPUB writer:
+ Allow choice of math method for v3 (#8164). Previously we always
used MathML for math in EPUB3, because the spec includes MathML.
But this is not widely supported by readers, so it seems better
to allow users to choose their math method as they can with
EPUB2 or HTML. **NOTE:** Existing workflows that produce EPUBv3
documents including math will be affected by this change. You
must add `--mathml` to your command line if you want to continue
producing MathML.
* RST writer:
+ Fix missing spaces with nested inlines (#8182).
+ Always escape literal backslash (#8178).
* Ms writer:
+ Add comment in preamble stating generator.
+ Fix roff ms syntax highlighting definitions (#8175, thanks to
Branden Robinson).
* ConTeXt writer:
+ Support complex table structures (Albert Krewinkel, #8116).
The following table feature are now supported in ConTeXt:
- colspans,
- rowspans,
- multiple bodies,
- row headers, and
- multi-row table head and foot.
The wrapping `placetable` environment is also given a `reference` option
with the table identifier, enabling referencing of the table from within
the document.
+ Unify link handling (Albert Krewinkel, #8096).
Autolinks, i.e. links with content that's the same as the linked URL,
are now marked with the `\url` command. All other links, both internal
and external, are created with the `\goto` command, leading to shorter,
slightly more idiomatic code. As before, autolinks can still be styled
via `\setupurl`, other links via `\setupinteraction`.
+ Use "sectionlevel" environment for headings (Albert Krewinkel, #5539).
The document hierarchy is now conveyed using the
`\startsectionlevel`/`\stopsectionlevel` by default. This makes it easy
to include pandoc-generated snippets in documents at arbitrary levels.
The more semantic environments "chapter", "section", "subsection", etc.
are used if the `--top-level-division` command line parameter is set to
a non-default value.
* Docx writer:
+ Add `w:lang` to `rPr` for Span and Div with lang attribute, so
that Word can know that "Apfel" is not a spelling error (#8026).
+ Prevent crashing when handling invalid tables (Albert Krewinkel, #8102).
Tables with different numbers of cells per row would sometimes crash
pandoc. This fix prevents this by cutting off overlong rows.
* ICML writer:
+ Support custom-style attribute on Table (#8079).
* AsciiDoc writer:
+ Fix commas in link text (#8070). Commas in link text trigger
interpretation of attributes. To block this, we replace them with
numeric entities.
+ Fix underline. We were rendering it as `+++text+++`; this is now
changed to `[.underline]#text#`. See comment at
<https://github.com/jgm/pandoc/issues/8070#issuecomment-1126883824>.
* FB2 writer:
+ Fix handling of non-section Divs (#8123).
* Markdown writer:
+ Disable soft wrapping when `hard_line_breaks` enabled (#8035).
We were already doing this for `markdown`; this commit does
the same thing for `markua` and `commonmark` and `gfm`.
+ Avoid excessive indentation on bullet lists for `commonmark`,
`markua`, `gfm`. They are now nested by 2 spaces instead of 4 (#8011).
* Text.Pandoc.Class:
+ Add new function `findFileWithDataFallback` [API Change]
(Albert Krewinkel).
+ `fillMediaBag`: Keep attributes of original image on Span (Albert
Krewinkel, #8099). Images that cannot be fetched are replaced with a
Span that contains the image's description. The span now also retains
all original image attributes and inherits all attributes of the image.
Furthermore, the classes `image` and `placeholder` are added, and path
and title are store in attributes `original-image-src` and
`original-image-title`, respectively.
* Text.Pandoc.Shared:
+ `makeSections`: don't make a section for a div with class "fragments"
(#8098).
+ Ensure that Nulls are ignored by `makeSection` and in segmenting
slides (#8155).
+ Add `formatCode` function to Text.Pandoc.Shared [API change]
(Elliot Bobrow, #8129).
+ `taskListItemToAscii`: handle asciidoctor's characters (#8011).
Asciidoctor uses different unicode characters for task
lists; we should recognize them too and be able to convert
them to ascii task lists in formats like gfm.
+ Deprecate `deLink` and mark for later removal.
* Text.Pandoc.Writers.Shared:
+ `toTableOfContents`: Don't replace links with empty spans in TOC (#8020).
* Text.Pandoc.Readers.Metadata:
+ Ensure that metadata values w/o trailing newlines are
parsed as inlines, as the manual states.
Previously, they were parsed as inlines if they would
otherwise have been a single Plain or Para, but otherwise
left unchanged. This led to some quirky results (e.g. #8143).
We now use the general function `blocksToInlines` from T.P.Shared.
* Text.Pandoc.Parsing:
+ Simplify `gridTableWith'`, `gridTableWith` [API Change] (Albert
Krewinkel). The functions `gridTableWith` and `gridTableWith'` no
longer takes a boolean argument that toggles whether a table head
should be parsed: both, tables with heads and without heads, are
always accepted now.
* Lua subsystem (Albert Krewinkel):
+ Extend `pandoc.system` module (Albert Krewinkel, #8184).
The module now has the additional functions `list_directory`,
`make_directory`, and `remove_directory`. This makes it easier to write
cross-platform scripts that need to inspect or modify the file system.
+ Require pandoc-lua-marshal 0.1.7. Adds a `clone` methods to
Pandoc objects and allows to pass Blocks in instead of full
Caption elements.
+ Add fields `pandoc.readers` and `pandoc.writers` (#8177).
The set of supported input and output formats is made available to Lua
users.
+ Ensure that tables marshaled via JSON arrays behave like Lists.
This allows to invoke methods like `map` and `includes` on lists like
`PANDOC_WRITER_OPTIONS.extensions`.
+ Require hslua-2.2.1, unless lua53 flag is set, and do not reset
foreign encoding before running Lua. This fixes a problem where
the encoding used for Lua filenames would sometimes mismatch the
encoding used by the OS.
+ Simplify module loading code. Modules are now loaded directly;
the special pandoc Lua package searcher is no longer necessary and
has been removed.
+ Add function pandoc.mediabag.fill (#8104). The function allows to
fill the mediabag with all images in a given document. Images that
cannot be fetched are replaced with a Span containing the
image description.
* Populate mediabag after filters have run (Albert Krewinkel, #8099).
The mediabag is filled with document resources after the filters have
run. This allows, for example, filter authors to modify image paths
before pandoc tries to fetch the images.
Lua filters that rely on a filled mediabag can use the new
`pandoc.mediabag.fill` function to perform that action in the filter.
* Ms template: redefine rather than removing .CH macro (#8175).
* JATS template (Albert Krewinkel, except as noted):
+ Include particles, prefix, suffix in names.
+ Mark authors with cor-id as corresponding authors.
Corresponding authors are marked by setting the attribute
`corresp="yes"` in their respective `<contrib>` element.
+ Unconditionally include permissions element (#8040).
Fixes a bug that caused license information to be omitted when no
copyright information was provided.
+ Follow JATS4R recommendation and PudMed Central for license URI
(Castedo Ellerman, #8041).
* LaTeX template:
+ Rename `\textormath` to `\TextOrMath` (Hos Es, #8036).
+ Fix links-as-notes (Albert Krewinkel, #8077).
* HTML template styles:
+ Remove `span.underline` rule. This is superfluous now that we
render Underline as `<u>`.
+ Improve CSS for task lists (#8151).
* LaTeX template: Add `boxlinks` variable for LaTeX/PDF output (#8198).
If `boxlinks` is set but `colorlinks` is not, then boxes will
be printed around links (`hidelinks` will not be set in `hypersetup`).
* `--self-contained`: Handle `url()` in `<style>` elements (#8193).
* Text.Pandoc.PDF: use SHA1 hash of filename when converting SVG.
The previous code threw away the directory component of
the filename in constructing a new one. This led to
surprising results if you had e.g. `foo/pic.svg` and `bar/pic.svg`;
in the final PDF they'd be the same image, because the latter
would overwrite the former in the temp directory.
* Remove Muse reader round-trip tests. These are nondeterministic and have
repeatedly failed on strange edge cases.
* Update fonts MIME following IANA recommendation (Gabriel Lewertowski,
#8127).
* Future compat change for `liftA2` export from Prelude (Georgi Lyubenov,
#8132).
* Update `default.csl` from the latest chicago-author-date.csl.
* Update manfilter.hs for greater portability (#8045).
The tables in our man pages were not rendering correctly
with mandoc, now used by default with macOS. mandoc doesn't
allow man formatting inside table cells. For maximum portability,
we now render the tables in plain format and include them as code
blocks in the man page.
* CI: update macos container version (#8197, Sukka).
* Add `nightly` flag. This causes a `-nightly-COMPILEDATE`
suffix to be added the the output of `--version` (#8016).
This is used in the nightly CI builds.
* Update dependencies (aeson, skylighting, pandoc-lua-marshall,
citeproc, texmath).
* Documentation improvements (thanks to Jiří Wolker,
Castedo Ellerman, Albert Krewinkel, Bastien Dumont, Cezar Drożak, Benjamin
Wuethrich, Ivan Panchenko, Sukil Etxenike, Masataka Ogawa).
## pandoc 2.18 (2022-04-04)
* New input formats: `endnotexml` (EndNote XML bibliography),
`ris` (RIS bibliography).
* A RIS bibliography file may now be used with `--citeproc`.
* Citeproc: Allow a formatted bibliography to be placed in metadata fields
via a Div with class `refs` (#7969, #526). Thus, one can include a
metadata field, say `refs`, whose content is an
empty div with id `refs`, and the formatted bibliography will be put into
this metadata field. It may then be interpolated into a template using the
variable `refs`.
* Ensure that you don't get PDF output to terminal. `-t pdf` now behaves
like `-t docx` and gives an error unless the output is redirected.
* `--version` now prints hslua version (#7929) and
Lua version (#7997, Albert Krewinkel).
* Change `--metadata-file` parsing so that, when the input format is not
markdown or a markdown variant, pandoc's markdown is used (#6832, #7926).
When the input format is a markdown variant, the same format is used.
Reason for the change: it doesn't make sense to run the markdown parser
with a set of extensions designed for a non-markdown format, and
this dramatically limits what people can do in metadata files.
* Trim whitespace from math in `--webtex` (#7892).
This fixes problems with --webtex and markdown output,
when display math starts or ends with a newline.
* `--self-contained`: issue warning rather than failing with an error
if a resource can't be found (#7904).
* New exported module Text.Pandoc.Readers.EndNote, exporting
`readEndNoteXML` and `readEndNoteXMLCitation` [API change].
* New exported module, Text.Pandoc.Readers.RIS, exporting `readRIS` (#7894)
[API change].
* LaTeX reader:
+ Handle subequations as inline math environment (#7883).
+ Rudimentary support for `vbox` (#7939).
+ Support `\today` (#7905).
+ Handle `\label` and `\ref` for footnotes (#7930).
+ Allow inline groups starting with `\bgroup` (#7953).
+ Use custom TokStream that keeps track of whether macros are expanded.
This allows us to improve performance a bit by avoiding unnecessary
runs of the macro expansion code (e.g. from 24 ms to 20 ms on
our standard benchmark).
+ Further optimizations for inline parsing.
+ Better handling of `\usepackage`. If the package is local but
causes parse errors, parse everything up to the error and skip the
rest. Issue a `CouldNotParseIncludeFile` warning indicating that
parsing failed at that point.
+ Text.Pandoc.Readers.LaTeX.Parsing: Monoid and Semigroup instances for
TokStream.
* HTML reader:
+ Give warnings and emit empty note when parsing
`<a epub:type="noteref">` and the identifier
doesn't correspond to anything in the note table (#7884).
Previously we just silently skipped these cases.
+ Fix parsing of epub footnotes (#7884).
* DocBook reader:
+ Handle complete set of entities as specified at
<https://www.w3.org/2003/entities/2007doc/byalpha.html> (#7938).
+ Handle abstract in info section (#7747).
+ Improve info parsing.
+ Simplify metadata parsing code (#7747).
Handle abstract as block-level content.
Report skipped info elements with `--verbose`.
+ Handle address and coyright in metadata (#7747).
* DokuWiki reader:
+ Add DokuWiki table alignment (#5202, damon-sava-stanley).
* RST reader:
+ Fix treatment of headerless simple tables (#7902).
+ Wrap math in Span to preserve attributes (#7998, Albert Krewinkel).
Math elements with a name, classes, or other fields are wrapped in a
`Span` with these attributes.
* JATS reader:
+ Improve handling of fn-group elements (#6348, Albert Krewinkel).
Footnotes in `<fn-group>` elements are collected and re-inserted into
the document as proper footnotes in the place where they are referenced.
+ Handle `pub-date` (#8000).
+ Support PMID, DOI, issue in citations (#7995).
+ Improve refs parsing. Handle `issn` and `isbn`; use simpler form
for issued date.
+ Strip 'ref-' from ref id in constructing CSL id. This allows better
round-tripping, because the JATS writer adds the `ref-` prefix to
the citation id to get the ref element's id.
* Org reader:
+ Allow ":" in property drawer keys (Lucas V. R).
Any non-space character is allowed as property drawer key, including ":"
itself (so it is not really a delimiter). The real delimiter is a space
character, so in a drawer like
```
:PROPERTIES:
::k:ey:: value
:END:
```
":k:ey:" is a key with value "value".
+ Allow comments above property drawer.
+ More flexible LaTeX environments (Lucas V. R).
+ Handle `#+bibliography:` as metadata so that it can work with
`--citeproc`.
+ Parse `#+print_bibliography:` as Div with id `refs`.
+ Allow multiple `#+bibliography:`.
* Markdown reader:
+ Allow one-column pipe tables with pipe on right (#7919).
+ Remove restriction on identifiers, so they no longer need to
begin with a letter (#7920).
* Docx reader:
+ Enable `citations` extension for docx reader (#7840).
When enabled, Zotero, Mendeley, and EndNote citations embedded in
a docx are parsed as native pandoc citations.
(When disabled, the generated citation
text and bibliography are passed through as regular text.)
The bibliography generated by the plugin is suppressed.
Instead, bibliographic data embedded in citation items is added
to the `references` metadata field so that it can be used
with `--citeproc`.
* Docbook writer:
+ Interpret links without contents as cross-references (#7360, Jan Tojnar).
Links without text contents are converted to `<xref>` elements. DocBook
processors will generate appropriate cross-reference text when presented
with an xref element.
* Docx writer:
+ Single numbering ID for examples (#7895, mjfs).
This change ensures that example list items all belong to a single
number sequence, so that if items are added or deleted in a word
processor, the other items will renumber automatically.
+ Add bookmark with table id to table (#7989, Nikolai
Korobeinikov, #7285). This allows tables with ids to be linked to.
* Ipynb writer:
+ Handle metadata better (#7928). Previously we used the markdown
writer to render metadata. This had some undesirable consequences
(e.g. en dash expanded to `--` when `smart` enabled), so now we use
the plain writer.
* LaTeX writer:
+ Avoid extra space before `\CSLRightInline` (#7932).
+ Add `scrreport` to `chaptersClasses` (#6168, ivardb).
+ Support `page`,`trim`,`clip` attributes on images (#7181).
+ Add `()` after booktabs rules (#8001). These commands take optional
arguments with () and [], which can lead to problems if the content
of the table cell begins with these characters.
* RST writer:
+ Support all standard metadata ("bibliographic") fields.
* HTML writer: performance improvements.
* Org writer:
+ Stop indenting property drawers, quote blocks
(#3245, Albert Krewinkel). This follows the current default org-mode
behavior.
* Markdown writer:
+ Move table-related code into submodule (Albert Krewinkel).
+ Don't produce redundant header identifier when the
`gfm_auto_identifiers` extension is set (#7941).
+ Update escaping rules for `\`. We now escape `\` only if `raw_tex`
is enabled or it is followed by a non-alphanumeric.
* JATS writer:
+ Encode author "others" as `<etal/>` (Albert Krewinkel).
Citeproc adopted the BibTeX convention to use the author name "others"
when there are additional authors that are not named. JATS uses the
`<etal>` element for this.
+ Avoid doubled ref-list element (#7990). Previously when generating JATS
with the `element_citations` extension enabled, the references were
put in a doubly-nested ref-list element (`<ref-list><ref-list>...`).
+ Keep edition info in element citations (#7993, Albert Krewinkel).
+ Fix handling of CSL variable 'page' (not 'pages' as we had before).
It should go to 'lpage' and 'rpage', not 'page-range'.
* EPUB writer: refactor for clarity (#7991, Jonathan Dönszelmann,
Ola Wolska, Ivar de Bruin, Jaap de Jong).
* Custom writer (Albert Krewinkel):
+ Support new-style Writer function (Albert Krewinkel).
See the documentation for custom writers for details.
+ Produce stacktrace if Writer function fails
* Text.Pandoc.Logging: add `CouldNotParseIncludeFile` constructor
for `LogMessage` [API change].
* Text.Pandoc.Shared:
+ Put id attributes on TOC entries (#7907, damon-sava-stanley).
Naming scheme of id is "toc-" + id of linked to header/section.
Effects HTML, Markdown, Powerpoint, and RTF.
+ Define `ordNub` as alias for `nubOrd` from containers package (#7963,
Albert Krewinkel).
+ Export `ensureValidXmlIdentifiers`. This function changes identifiers
that don't start with letters, and internal links to these identifiers,
making them compatible with XML standards. The change
is simple: we add `id_` to the front. There is potential
for duplication if there are already `id_...` identifiers
defined, but this seems rare enough not to worry too much
about.
* Ensure that valid XML identifiers are used in Docbook, EPUB, FB2,
HTML4, S5, Slidy, Slideous, ICML, ODT, TEI writers.
Thus, if you convert `[anchor]{#1} and [link to](#1)`,
`id_1` will be used instead of `1` for the identifier.
* Lua (Albert Krewinkel).
+ Add module `pandoc.layout` to format and layout text.
+ Move custom writer code into Lua hierarchy.
+ Use pandoc-lua-marshal 0.1.5.
+ Allow any type of callable object as argument to List
functions `filter`, `map`, and `find_if`. These previously
required the argument to be of type `function`, which was too
restrictive.
+ Inline: the type of Image captions is now `Inlines` instead of `List`.
+ Allow passing `Sources` to `pandoc.read` (#8002).
* Text.Pandoc.PDF:
+ Restore `wkhtmltopdf` as default pdf engine for HTML (Albert Krewinkel).
+ Allow custom writer as format if engine is explicitly specified (#7898,
Albert Krewinkel). Note that it may be necessary to explicitly
specify a template on the command line.
* Text.Pandoc.MediaBag: improve detection of absolute paths (#7881).
* Text.Pandoc.Extensions:
+ Remove `raw_tex` extension from list of commonmark extensions, and
from the `commonmark_x` defaults. commonmark doesn't parse raw TeX,
and it doesn't make sense to write it if we don't parse it.
+ Remove `native_divs` from allowed gfm extensions (#7965). This allows
`<div>` to be suppressed using `-raw_html`. Previously `native_divs`
was enabled but could not be suppressed, because it was not in the
list of available extensions for commonmark-based formats.
* Text.Pandoc.Parsing:
+ Partition module into (internal) submodules (#7962, Albert Krewinkel).
+ Unify grid table parsing (#7971, Albert Krewinkel).
Grid table parsing in Markdown and RST are updated use the same
functions. Functions are generalized to meet requirements for both
formats. This change also lays the ground for further generalizations
in table parsers, including support for advanced table features.
[API change] in Text.Pandoc.Parsing:
- Parse results of functions `tableWith'` and `gridTableWith'` are now a
`mf TableComponents` instead of a quadruple of alignments, column
widths, header rows and body rows.
- Additional exports from Text.Pandoc.Parsing:
`tableWith'`, `TableComponents`, `TableNormalization`,
`toTableComponents`, `toTableComponents'`.
* Text.Pandoc.XML.Light: add versions of the parsers that allow
specifying a custom entity map. Exports new functions:
`parseXMLElementWithEntities`, `parseXMLContentsWithEntities` [API change].
* Text.Pandoc.Writers.GridTable: improve module documentation (Albert
Krewinkel).
* Text.Pandoc.Parsing.GridTable: simplify column handling code (Albert
Krewinkel).
* Text.Pandoc.MIME: Add mime type for mkv extension (#7181).
* Text.Pandoc.Asciify: Fix regression with `ascii_identifiers` and Turkish
undotted i (#8003).
* Relax upper bound for hslua, allow hslua-2.2. (#7929)
Lua 5.4 is used by default after this is merged. Packagers may still
include Lua 5.3 instead by building pandoc with `--constraint='hslua <2.2'`.
Differences between 5.3 and 5.4 should not generally affect pandoc Lua
filters. See list of incompatible changes here:
<https://www.lua.org/manual/5.4/manual.html#8.1>
* JATS template: allow multiple licenses (Albert Krewinkel).
* LaTeX template:
+ Skip `\babelprovide` if `babel-lang` is empty (#7945) to avoid an error.
+ Move hyperref near end of preamble (#5811). It now comes after
header-includes and right before title, author, date, abstract.
Note: Users who presuppose hyperref in their header-includes
will now have to add `\usepackage{hyperref}` to their header-includes
to make it available there. (The redundant `\usepackage` will
do no harm in this case.)
+ Remove special redefinition of `\sout`. This used to be necessary to
avoid problems with hyperref, when headings contain strikeout text,
but it does not seem to be necessary any more (tested).
* Tests: improve location reporting of failing tests (Albert Krewinkel).
* Add tests for idempotency of `makeSections` (#7950).
* Add armhf support in linux build script (#7944, Tony).
* Use latest pandoc-types, so that toJSONFilter will work with
Meta and MetaValue.
* Use latest doclayout, texmath, commonmark, citeproc.
* INSTALL.md: add reference to install via winget (#7951, Guriy Samarin).
* MANUAL.txt:
- Document way to get list in block quote in slide shows (#7916).
- Minor changes to security section.
- Note that `smart` works for html input.
- Fix typos (#7934, Dimitris Apostolou).
- Fix documentation for citations and org mode.
- Remove claim that `--self-contained` does not work with `--mathjax`
(#682).
* doc/org.md: remove obsolete citations section.
This mostly described citation formats we no longer support.
* doc/lua-filters.md: Fix typo (#7981, Mario Lang).
* Makefile: Use cabal for default build
* Add `lua53` cabal flag. It is false by default. If set to true, compile
with hslua 2.1 and Lua 5.3, otherwise hslua 2.2 and Lua 5.4.
## pandoc 2.17.1.1 (2022-01-31)
* Fix regression in 2.17.1 which caused problems finding
default files in the default user data directory. (Reverts
the item "logic bug in `fullDefaultsPath`", which was
misguided.)
* Sample custom writer: use single quotes for strings (#7487,
Albert Krewinkel).
## pandoc 2.17.1 (2022-01-30)
* Support `pagedjs-cli` as pdf engine (#7838, Albert Krewinkel).
PagedJS is a polyfill and supports the Paged Media standards by the W3C.
<https://www.pagedjs.org/>
* CommonMark reader: fix source position after YAML metadata (#7863).
* LaTeX reader:
+ Remove retokenizing in `rawLaTeXParser`.
+ Ensure that `\raggedright` doesn't gobble an argument (#7757).
+ Improve `descItem`. For some reason we were skipping
arbitrary blocks before `\item`. This is now changed to "skip
whitespace and comments."
+ Improve handling of `\newif`. Adding a pair of braces around the
second argument of `\def` prevents LaTeX from an emergency stop
on input like the following (#6096).
```
\newif\ifepub
\epubtrue
\ifepub
hi
\fi
```
* Docx reader: Parse both Zotero citation and bibliography as
`FieldInfo` (#7840).
* LaTeX writer:
+ Allow arbitrary frameoptions to be passed to a beamer
frame, using the frameoptions attribute (#7869).
+ Add s and squeeze to recognized beamer frameoptions (#7869).
* Markdown writer: handle explicit column widths with pipe tables (#7847).
If a table has explicit column width information *and* the content
extends beyond the `--columns` width, we need to adjust the
widths of the pipe separators to encode this width information.
* Docx writer: Separate tables even with RawBlocks between (#7724,
Michael Hoffmann). Adjacent docx tables need to be separated by an
empty paragraph. If there's a RawBlock between tables which renders
to nothing, be sure to still insert the empty paragraph so that
they will not collapse together.
* Man writer: use custom font V for inline code (#7506).
The V font is defined conditionally, so that it renders
like CB in output formats that support that, and like B
in those that don't (e.g. the terminal).
Aliases also defined for VI, VB, VBI.
* Asciidoc writer: Support checklists in asciidoctor writer (#7832,
Nikolai Korobeinikov, ricnorr). The checklist syntax (similar to
`task_list` in markdown) seems to be an asciidoctor-only addition.
* HTML writer:
+ Avoid duplicate "style" attributes on table cells (#7871).
+ Don't break lines inside code elements. With the new (default)
line wrapping of HTML, in conjunction with the default CSS which
includes `code { whitespace: pre-wrap; }`, spurious line
breaks could be introduced into inline code (#7858).
* Custom writer: preserve order of element attributes (#7489, Albert
Krewinkel). Attribute key-value pairs are marshaled as AttributeList,
i.e., as a userdata type that behaves both like a list and a map. This
allows to preserve the order of key-value pairs.
* Switch to hslua-2.1 (Albert Krewinkel). This allows for some code
simplification and improves stability.
* Don't read files outside of user data directory (Even Brenden).
If a file path does not exist relative to the working directory, and
it does exist relative to the user data directory, but outside of
of the user data directory, do not read it. This applies to
`readDataFile` and `readMetadataFile` in PandocMonad and, by
extension, any module that uses these by passing them relative paths.
* Text.Pandoc.Class.`makeCanonical`: Correctly handle consecutive ".."s
at the beginning of a path (Even Brenden). Prior to this commit,
`../../file` would evaluate to `file`, when it should be unchanged.
* Search for metadata files in `$DATADIR/metadata` (#7851, Even Brenden).
If files specified with `--metadata-file` are not found in the working
directory, look in `$DATADIR/metadata` (#5876).
* Text.Pandoc.Class: export `readMetadataFile` [API change] (#5876).
* Text.Pandoc.Error: export new `PandocCouldNotFindMetadataFileError`
constructor for `PandocError` [API change] (#5876).
* Avoid putting a frame around speaker notes in beamer (#7857).
If speaker notes (a Div with class 'notes') occur right
after a section heading, but above slide level, the
resulting `\note{..}` caommand should not be wrapped in
a frame, as that will cause a spurious blank slide.
* CSS in HTML template: adjust #TOC and h1 on mobile (#7835, Mauro Bieg).
* Text.Pandoc.Readers.LaTeX.Parsing: don't export `totoks`.
Make the first param of `tokenize` a SourcePos instead of
SourceName, and use it instead of `totoks`.
* Text.Pandoc.Shared: Modify `stringify` so it ignores `[Citation]`
inside `Cite` (#7855). Otherwise we'll sometimes get two copies of
things, one from the `citationPrefix` or `citationSuffix` and another
from the embedded fallback text. When there is no fallback text,
we'll get no content. However, it really isn't an alternative to just
rely on the result of running `query` on the embedded `Citation`s;
this will result in a jumble of text rather than anything structured.
* Omit `--enable-doc` in the cabal haddock invocation in
`tools/build-and-upload-api-docs.sh`.
* Text.Pandoc.App.Opt: fix logic bug in `fullDefaultsPath`.
Previously we would (also) search the default user data directory
for a defaults file, even if a different user data directory
was specified using `--data-dir`. This was a mistake; if
`--data-dir` is used, the default user data directory should
not be searched.
* Text.Pandoc.Shared: `defaultUserDataDir` behavior change (#7842).
If the XDG data directory is not defined (e.g. because
it's not supported in the OS or HOME isn't defined), we
return the empty string instead of raising an exception.
* Update command tests to distinguish stderr and test exit status.
* MANUAL: add that speaker notes can be used with beamer (#7856).
* Update `build-and-upload-api-docs.sh`.
* Document `--trace` option.
Document `no-check-certificate` in defaults files.
Document 'sandbox' option for defaults files. (#7873).
* Fix pattern syntax in sample readability custom reader.
* doc/custom-readers.lua: add example for "readable HTML."
* Fix message in man page about where code can be found.
* `manfilter.lua`: remove extra indent in table cells with code blocks.
* Fix lua-filters documentation for table column widths (#7864).
* epub.doc: Update links to KindleGen (#7846, Benson Muite, Mauro Bieg).
KindleGen has been deprecated and we need to link to archived versions.
* Use tables in defaults files documentation, so each
default option is paired with the corresponding command-line
option (Carsten Allefeld).
* Use skylighting 0.12.2.
* Add pandoc-lua-marshal to Nix shell (#7849, Even Brenden).
## pandoc 2.17.0.1 (2022-01-14)
* Require pandoc-lua-marshal 0.1.3.1 (#7831, Albert Krewinkel).
Fixes a problem with `List.includes` and `List.find` that caused a
Lua stackoverflow and subsequent program crash.
* HTML template: load header-includes before math (#7833, Kolen Cheung).
MathJax expect the config comes before loading the MathJax script.
This change of order allows one to config MathJax via
header-includes, which loads before the MathJax script. Cf. #2750.
* When reading defaults file, stop at a line `...`. This line signals
the end of a YAML document. This restores the behavior we got with
HsYaml. yaml complains about content past this line. See
https://github.com/jgm/pandoc/issues/4627#issuecomment-1012438765
* Text.Pandoc.Citeproc: allow `notes-after-punctuation` to work with
numerical styles that use superscripts (e.g.
american-medical-association.csl), as well as with note styles. The
default setting of `notes-after-punctuation` is true for note styles
and false otherwise. This restores a behavior of pandoc-citeproc
that wasn't properly carried over to Citeproc (#7826, cf.
jgm/pandoc-citeproc#384).
* Use commonmark-pandoc 0.2.1.2 (#7769).
* Add FAQ on images in ipynb containers (#7749, Kolen Cheung).
## pandoc 2.17 (2022-01-12)
* Support `markua` as an output format (#1871, Tim Wisotzki and
Saumel Lemmenmeier). Markua is a markdown variant used by Leanpub.
* Add text wrapping for HTML output (#7764). Previously the HTML writer
was exceptional in not being sensitive to the `--wrap` option. With
this change `--wrap` now works for HTML. The default (as with other
formats) is automatic wrapping. Note that the contents of `script`,
`textarea`, and `pre` tags are always laid out with the `flush`
combinator, so that unwanted spaces won't be introduced if these occur
in an indented context in a template.
* Don't read sources until in/out format are verified (#7797).
* Issue error with `--list-extensions` for invalid formats (#7797).
* Make `--citeproc` recognize `.yml` as well as `.yaml` extensions
as YAML bibliography files (#7707, Jörn Krenzer).
* Use latest version of KaTeX with `--katex`.
* Fix parsing of footnotes in `--metadata-file` (#7813). Previously
non-inline footnotes were not being parsed.
* ODT reader:
+ Parse list-header as a list item (Tuong Nguyen Manh).
* Commonmark reader:
+ Put sourcepos attribute on header, not enclosing div
with `-f commonmark+sourcepos` (#7769).
* Markdown reader:
+ Don't allow `^` at beginning of link or image label (#7723).
This is reserved for footnotes. Fixes regression from 0a93acf.
+ Fix parsing of "bare locators" after author-in-text citations.
Previously `@item [p. 12; @item2]` was incorrectly parsed as
three citations rather than two. This is now fixed by ensuring
that `prefix` doesn't gobble any semicolons.
+ Revert changes to `inlinesInBalancedBrackets` (commit fa83246),
which caused regressions.
+ Improve detection of pipe table line widths (#7713). Fixed
calculation of maximum column widths in pipe tables. It is
now based on the length of the markdown line, rather than a
"stringified" version of the parsed line. This should be
more predictable for users. In addition, we take into account
double-wide characters such as emojis.
* Custom (Lua) readers:
+ First argument is now a list of sources instead of the
concatenated text (Albert Krewinkel). The list
structure can easily be converted to a string by applying
`tostring`, but it is also possible to access the elements
(each with a `text` and `name`). A small example is added
to the custom reader documentation, showcasing its use in a
reader that creates a syntax-highlighted code block for
each source code file passed as input. Existing readers
will still work through a fallback mechanism, issuing a
deprecation notice.
* Org reader:
+ Parse official org-cite citations (#7329). We also support the older
org-ref style as a fallback. We no longer support the
"markdown style" or "Berkeley style" citations.
+ Support alphabetical (fancy) lists (Lucas Viana). When the
`fancy_lists` extension is enabled, alphabetical list markers are
allowed, mimicking the behaviour of Org Mode when
`org-list-allow-alphabetical` is enabled.
+ Support counter cookies in lists (Lucas Viana). Such cookies are
used to override the item counter in ordered lists. In org it is
possible to set the counter at any list item, but since Pandoc AST
does not support this, we restrict the usage to setting an offset for
the entire ordered list, by using the cookie in the first list item.
+ Allow trailing spaces after key/value pairs in directives (Albert
Krewinkel). Ensures that spaces at the end of attribute directives like
`#+ATTR_HTML: :width 100%` (note the trailing spaces) are accepted.
* LaTeX reader:
+ Omit visible content for `\label{...}`. Previously we
included the text of the label in square brackets, but this is
undesirable in many cases. See discussion in
<https://github.com/jgm/pandoc/issues/813#issuecomment-978232426>.
+ Improve references (#813). Resolve references to theorem environments.
Remove the Span caused by "label" in figure, table, and theorem
environments; this had an id that duplicated the environments' id.
+ Fix semantics of `\ref`. We were including the ams
environment type in addition to the number. This is proper
behavior for `\cref` but not for `\ref`. To support `\cref`
we need to store the environment label separately.
+ Add babel mappings for Guajati (gu) and Oriya (or) (#7815).
+ Fix typo `panjabi` -> `punjabi` in babel mappings (#7814).
* HTML reader:
+ Parse attributes on links and images (#6970).
* Docx reader:
+ Handle multiple pic elements inside a drawing (#7786).
+ Change `elemToParPart` to return `[ParPart]` instead of `ParPart`.
Also remove `NullParPart `constructor, as it is no longer
needed. This will allow us to handle elements that contain
multiple ParParts, e.g. `w:drawing` elements with multiple `pic:pic`.
* DocBook reader:
+ Collapse internal spaces in literal and other similar tags (#7821),
as the standard docbook toolchain does.
+ Be sensitive to spacing="compact" in lists (#7799). When
`spacing="compact"` is set, Para elements are turned into Plain,
so we get a "tight" list.
* Markdown writer:
+ Add new exported function `writeMarkua` from Text.Pandoc.Writers.Markdown
[API change] (#1871, Tim Wisotzki and Saumel Lemmenmeier).
+ Fix indentation issue in footnotes (#7801).
+ Avoid extra space before citation suffix if it already starts
with a space.
+ Ensure semicolon between the locator and the next citation when an
author-in-text citation has a locator and following citations.
+ Improve escaping for `#` (#7726).
* Custom (Lua) writers:
+ Allow variables to be set via second return value of `Doc`
(#6731, Albert Krewinkel). New templates variables can be added by
giving variable-value pairs as a second return value of the
global function `Doc`. Example:
```
function Doc (body, meta, vars)
vars.date = vars.date or os.date '%B %e, %Y'
return body, vars
end
```
+ Provide global `PANDOC_WRITER_OPTIONS` (#6731, Albert Krewinkel).
+ Assign default Pandoc object to global `PANDOC_DOCUMENT` (Albert
Krewinkel). The default Pandoc object is now non-strict, i.e., only
the parts of the document that are accessed will be marshaled to Lua.
A special type is no longer necessary. This change also makes it
possible to use the global variable with library functions such as
`pandoc.utils.references`, or to inspect the document contents with
`walk()`.
* LaTeX writer:
+ Fix typo `panjabi` -> `punjabi` in babel mappings (#7814).
* MediaWiki writer:
+ Remove redundant display text for wiki links (Jesse Hathaway).
* Docx writer:
+ Handle bullets correctly in lists by not reusing numIds
(#7689, Michael Hoffmann). This fixes a bug in which a Div in
a list item would receive bullets on its contained paragraphs.
* Org writer:
+ Fix list items starting with a code block or other non-paragraph
content (#7810).
+ Avoid blank lines after tight sublists (#7810).
+ Fix extra blank line inserted after empty list item (#7810).
+ Don't add blank line before lists (#7810).
+ Support starting number cookies (Lucas Viana). This is necessary
for lists that start at a number other than 1.
+ Support the new org-cite syntax (#7329).
* Haddock writer:
+ Avoid blank lines after tight sublists (#7810).
* Ipynb writer:
+ Ensure deterministic order of keys.
+ Handle cell output with raw block of markdown (#7563, Kolen Cheung).
Write RawBlock of markdown in code-cell output. This is designed
to fit the behavior of #7561, which makes the ipynb reader parse
code-cell output with mime "text/markdown" to a RawBlock of markdown.
This commit makes the ipynb writer writes this RawBlock of markdown
back inside a code-cell output with the same mime, preserving this
information in round-trip.
+ In choosing between multiple output options, always favor
those marked with the output format over images (Kolen Cheung).
Previously, both `fmt == f` case and Image have a rank of 1.
* Ipynb reader & writer: properly handle cell "id" (#7728).
This is passed through if it exists (in Nb4); otherwise
the writer will add a random one so that all cells have an "id".
* Ms writer:
+ Properly encode strings for PDF contents (#7731).
* JATS writer:
+ Keep quotes in element-citations (Albert Krewinkel).
Fixed a bug that lead to quote characters being lost in
element-citations.
* RTF writer:
+ Properly handle images in data URIs (#7771).
* Commonmark writer:
+ Allow ')' delimiters on ordered lists.
* RST writer:
+ Avoid extra blank line after empty list item (#7810).
* HTML writer:
+ Make line breaks more consistent. With `--wrap=none`, we now
output line breaks between block-level elements. Previously they
were omitted entirely, so the whole document was on one line, unless
there were literal line breaks in pre sections. This makes
the HTML writer's behavior more consistent with that of
other writers. Also, regardless of wrap settings,
put newline after `<dd>` and after block-level elements in
the footnotes section. And add a line break between an `img` tag
and the associated `figcaption`.
+ reveal.js: Make sure images with `r-stretch` are not in p tags.
They must be direct children of the section. There was previously
code to make this work with the older class name `stretch`, but
the name has changed in reveal.js.
+ reveal.js: don't add `r-fit-text` class to section. It must go on
the header only.
* AsciiDoc writer:
+ Improve detection of intraword emphasis (#7803).
* OpenDocument writer:
+ Fix vertical alignment bug with display math (#7777). Previously some
displayed formulas would be floated above a preceding text line.
This is fixed by setting `vertical-rel` to `text` rather than
`paragraph-content`.
* JATS template (Albert Krewinkel):
+ Fix position of contrib affiliations in authoring set. Any
`<aff>` element must come before any `<email>` element.
+ Fix affiliation tagging in `articleauthoring` output.
Affiliations were `xlink`ed even in the articleauthoring tag set, but
`<aff>` are not allowed as children of `contrib-group` elements in that
tag set. Each affiliation must be listed directly in the contrib
element.
+ Add support for article subtitles.
* EPUB template:
+ Include abstract in default template.
+ Ensure that the essential styles needed by pandoc (`styles.html`
partial) are included in the templates. This is important for correct
formatting of CSL bibliographies. Note that much of the styling in
`styles.html` will be ignored for EPUB, because of the conditional on
`document-css`. Setting the `document-css` variable will cause it
not to be ignored.
* HTML template: Add abstract (#7588, Jannik Buhr, John MacFarlane).
By default, a localized title (the word "Abstract") will be
used, unless the variable `abstract-title` is set.
* ConTeXt template: Make title appear in PDF title bar. This is
recommended for accessibility reasons. Note: doesn't work with macOS
Preview.app.
* `reference.pptx`: change to use 16:9 aspect ratio, Powerpoint's default.
* Text.Pandoc.Writers:
+ Do not export `writeCustom` [API change]. This ensures that all
writers exported in T.P.Writers are parameterized and work with any
`PandocMonad` type. This is consistent with T.P.Readers, as
`readCustom` is not exported from that module either.
* Text.Pandoc.Writers.Shared:
+ `endsWithPlain` now returns True if the list ends with a list
that ends with a Plain, and so on recursively (#7810).
* Text.Pandoc.Class.IO:
+ `writeMedia`: unescape percent-encoding in creating file path.
This addresses a problem with spaces in image filenames
when creating PDFs (#7819); it also affects `--extract-media`.
* New internal module Text.Pandoc.Writers.Blaze, exporting `layoutMarkup`.
This converts a blaze Html structure into a doclayout Doc Text.
* Text.Pandoc.Extensions:
+ `parseFormatSpec`: cleaner error message for invalid extensions.
* Text.Pandoc.MediaBag:
+ Fix bug in `extractMedia`, which caused the test for `..`
in paths to fail, with the result that images with `..`
in the path name could be extracted outside of the
directory specified by `extractMedia`. It also led a check for
`media` in resource paths to fail in the docx reader.
* Text.Pandoc.Citeproc:
+ Avoid adding comma before an author-in-text citation in a note
if it begins with a title (no author) (#7761).
+ Text.Pandoc.Citeproc.Locator now exports `toLocatorMap`,
`LocatorInfo`, and `LocatorMap`. The type of `parseLocator`
has changed, so it now takes a `LocatorMap` rather than a `Locale`
as parameter, and returns a `LocatorInfo` instead of a tuple.
+ Fix citation locator detection for German. `toLocatorMap` now
stores keys case-folded. We want to do a case-insensitive
comparison when parsing locators, so that e.g. both
`Chap.` and `chap.` work. Previously we case-folded terms
when doing the lookup, but they weren't case-folded in the
map itself, which led to locator-detection breaking for
German (where the terms have uppercase letters).
* Lua (Albert Krewinkel):
+ Allow single elements as singleton MetaBlocks/MetaInlines. Single
elements should always be treated as singleton lists in the Lua
subsystem.
+ Add `pandoc.template` module. The module provides a `compile`
function to use strings as templates.
+ Add `pandoc.WriterOptions` constructor.
+ Add function `pandoc.write`.
+ Provide global `PANDOC_WRITER_OPTIONS` (#5221).
+ The function Text.Pandoc.Filter.applyFilters now takes a filter
environment of type `Environment`, instead of a ReaderOptions value
[API change].
+ The `Environment` type is exported from Text.Pandoc.Filter
and allows to combine ReaderOptions and WriterOptions in a single
value [API change].
+ Global, exported from Text.Pandoc.Lua, has a new type constructor
`PANDOC_WRITER_OPTIONS` [API change].
+ Add constructors `pandoc.Blocks` and `pandoc.Inlines`.
The functions convert their argument into a list of Block and Inline
values, respectively. When applied to a string, they split the
string into `Str` elements separated by `Space` or `SoftBreak`
(#7712).
+ Support topdown traversals The traversal order of filters can now
be selected by setting the key `traverse` of the filter to either
`'topdown'` or `'typewise'`; the default remains `'typewise'`.
Topdown traversals can be cut short by returning `false` as a
second value from the filter function. No child-element of the
returned element is processed in that case.
+ Marshal ReaderOptions field `extensions`, `track_changes` via JSON.
Extensions are now available as a list of strings; the track-changes
settings are given as the kebab-case representation used in JSON.
+ Allow binary (byte string) readers to be used with `pandoc.read`.
+ Use global state when parsing documents in `pandoc.read`.
The function `pandoc.read` is updated to use the same state that was
used while parsing the main input files. This ensures that log
messages are preserved and that images embedded in the input are
added to the mediabag.
+ Cleanup stack in `peekReadOptionsTable`. A ReaderOptions element was
left on top of the stack when the `peekReadOptionsTable` function
was invoked.
+ `walk` methods are added to `Pandoc`, `Block`, `Inline`,
`Blocks`, `Inlines` values; the methods are similar to
`pandoc.utils.walk_block` and `pandoc.utils.walk_inline`, but
apply to filter to the element's contents.
+ Functions of name `Doc` are no longer accepted as alternatives for
`Pandoc` filter functions. This functionality was undocumented.
+ Improve handling of empty caption, body by `from_simple_table`
#7776). Create truly empty table caption and body when these are
empty in the simple table.
+ Change representation of `TableHead`, `TableFoot`, and `Row` values
(#7718). The objects now also follow the principle that element
attributes are accessible through the `.attr` field. Rows in `TableHead`
and `TableFoot` are available via the `.rows` field. Row objects have a
`.cells` field, containing the list of table cells.
+ [Simplify](Simplify) code of `pandoc.utils.stringify`. Minor behavior change:
plain strings nested in tables are now included in the result string.
+ Simplify and deprecate function `pandoc.utils.equals`. The function
is no longer required for element comparisons; it is now an alias
for the `==` operator.
+ Add function `pandoc.utils.references` (#7752).
+ Add new library function `pandoc.utils.type`. The function behaves
like the default `type` function from Lua's standard library,
but is aware of pandoc userdata types. A typical use-case would be
to determine the type of a metadata value.
+ Fix return types of `blocks_to_inlines`, `make_sections`.
Ensures the returned lists have the correct type (`Inlines` and
`Blocks`, respectively).
+ Use more natural representation for Reference values
Omit `false` boolean values, push integers as numbers.
* Lua: use package pandoc-lua-marshal (#7719, Albert Krewinkel).
The marshaling functions for pandoc's AST are extracted into a separate
package. The package comes with a number of changes:
+ Pandoc's List module was rewritten in C, and error messages were
improved.
+ Lists of `Block` and `Inline` elements are marshaled using the new
list types `Blocks` and `Inlines`, respectively. These types
currently behave identical to the generic List type, but give better
error messages. This also opens up the possibility of adding
element-specific methods to these lists in the future.
+ Elements of type `MetaValue` are no longer pushed as values which
have `.t` and `.tag` properties. This was already true for
`MetaString` and `MetaBool` values, which are still marshaled as Lua
strings and booleans, respectively. Affected values:
- `MetaBlocks` values are marshaled as a `Blocks` list;
- `MetaInlines` values are marshaled as a `Inlines` list;
- `MetaList` values are marshaled as a generic pandoc `List`s.
- `MetaMap` values are marshaled as plain tables and no longer
given any metatable.
+ `Cell` values are now marshaled as userdata objects; a constructor
function for table cells is provided as `pandoc.Cell`.
+ The test suite for marshaled objects and their constructors has
been extended and improved.
+ A bug in `Citation` objects, where setting a citation's suffix
modified it's prefix, has been fixed.
+ Inlines, Blocks, and List objects now have an `__eq` metamethod,
testing equality by comparing two lists element-wise.
* Powerpoint tests: shorten lines by grouping tests (Albert
Krewinkel). This makes the test output more pleasant to read
in narrow terminal windows.
* make check: check for unreleased dependencies.
* Add `tools/build-and-upload-api-docs.sh`.
* Update cabal description.
* `MANUAL.txt`: Add section on EPUB styling.
* `MANUAL.txt`: clarify "standard Markdown" as "original Markdown"
(#7802, Martin Fischer).
* `doc/custom-writers.md`: use filter to include source of example.
* Add an example to `doc/custom-readers.md`.
* Fix typo in `custom-readers.md` (#7722, Mauro Bieg).
* `doc/jats.md`: add link to JATS documentation (Martin Fischer).
* `doc/lua-filters.md`: many improvements (Albert Krewinkel,
John MacFarlane).
* Use commonmark-extensions 0.2.3. This allows a bare-word class attribute
on fenced divs.
* Use ipynb 0.2.
* Use citeproc 0.6.0.1.
* Use texmath 0.12.4.
* Use doctemplates 0.10.0.1.
## pandoc 2.16.2 (2021-11-21)
* Add interface for custom readers written in Lua (#7669).
Users can now do `-f myreader.lua` and pandoc will treat the
script `myreader.lua` as a custom reader, which parses an input
string to a pandoc AST, using the pandoc module defined for
Lua filters. A sample custom reader can be found in `data/creole.lua`.
Also see documentation in `doc/custom-readers.md`.
* New module Text.Pandoc.Readers.Custom, exporting `readCustom` [API change].
* Allow `plain` to be used in raw attribute syntax.
* Accept empty `--metadata-file` (#7675).
This was a regression from 2.15 behavior.
* Markdown reader: Improve `inlinesInBalancedBrackets`.
This is just a small improvement in terms of performance, but it's simpler
and more direct code. Also, we avoid parsing interparagraph spaces in
balanced brackets, as the original did.
* BibTeX reader: Properly handle commented lines in BibTeX/BibLaTeX (#7668).
* RST reader: handle class attribute for for custom roles (#7699,
willj-dev). Previously the class attribute was ignored, and the name
of the role used as the class.
* DocBook reader:
+ Add `<titleabbr>` support (Rowan Rodrik van der Molen).
+ Support for `<indexterm>` (#7607, Rowan Rodrik van der Molen).
* LaTeX reader:
+ Add rudimentary support for `\autoref` (#7693).
+ Add 'uri' class when parsing `\url`, for consistency
with treatment of autolinks in other formats (#7672).
* JATS reader: Capture `alt-text` in figures (#7703, Aner Lucero).
* MediaWiki writer: use HTML spans for anchors when header has id (#7697).
We need to generate a span when the header's ID doesn't match
the one MediaWiki would generate automatically. Note that MediaWiki's
generation scheme is different from pandoc's (it uses uppercase letters,
and `_` instead of `-`, for example). This means that in going from
markdown to mediawiki, we'll now get spans before almost every heading,
unless explicit identifiers are used that correspond to the ones MediaWiki
auto-generates. This is uglier output but it's necessary for internal
links to work properly.
* Markdown writer: don't create autolinks when this loses information
(#7692). Previously we sometimes lost attributes when rendering links
as autolinks.
* Text.Pandoc.Readers.Metadata: allow multiple YAML documents when parsing
YAML for `yamlBsToRefs`. Some people use `---` as the end delimiter in
YAML bibliography files, which causes the `yaml` library to emit an
error unless we explicitly allow multiple YAML documents (and just
consider the first).
* JATS writer:
+ Ensure figures are wrapped with `<p>` in list items
(Albert Krewinkel). This prevents the generation of invalid output.
+ Add URL to element citation entries (Albert Krewinkel).
The URL of a reference, if present, is added in tag `<uri>` to
element-citation entries.
* HTML writer: Don't create invalid `data-` attribute for empty
attribute key (#7546).
* LaTeX writer:
+ Babel mappings: use `ancientgreek` for `grc`.
+ With `-t latex-smart`, don't generate `\ldots` from ellipsis (#7674).
Instead just use unicode ellipsis.
* JATS template: fix `equal-contrib` attribute (Albert Krewinkel).
The standard requires the value to be either `yes` or `no`, but is was
set to `true` for authors who contributed equally.
* reveal.js template: Add `disableLayout` variable (Christophe Dervieux).
* Text.Pandoc.Error: sort errors in `handleError` by exit code
(Albert Krewinkel).
* Text.Pandoc.Writers.Shared: Improve toLegacyTable (#7683,
Christian Despres).
* Lua subsystem:
+ Include lpeg module (#7649, Albert Krewinkel). Compiles the `lpeg`
library (Parsing Expression Grammars For Lua) into
the program. Package maintainers may choose to rely on package
dependencies to make lpeg available, in which case they can compile
the with the constraint `lpeg +rely-on-shared-lpeg-library`.
`lpeg` and `re` are always made available in global variables,
without the need for a `require`.
+ Set `lpeg` and `re` as globals; allow shared lib access via `require`.
The `lpeg` and `re` modules are loaded into globals of the respective
name, but they are not necessarily registered as loaded packages. This
ensures that
- the built-in library versions are preferred when setting the globals,
- a shared library is used if pandoc has been compiled without `lpeg`,
and
- the `require` mechanism can be used to load the shared library if
available, falling back to the internal version if possible and
necessary.
+ Fix argument order in constructor `pandoc.Cite` (Albert Krewinkel).
This restores the old behavior; argument order had been switched
accidentally in pandoc 2.15.
+ Add Pushable instance for `ReaderOptions` (Albert Krewinkel).
+ Allow to pass custom reader options to `pandoc.read` as an
optional third argument (#7656, Albert Krewinkel).
The object can either be a table or a ReaderOptions value
like `PANDOC_READER_OPTIONS`. Creating new ReaderOptions objects is
possible through the new constructor `pandoc.ReaderOptions`.
+ Display Pandoc values using their native Haskell representation
(Albert Krewinkel).
+ Require latest hslua (2.0.1) (#7661, #7657, Albert Krewinkel).
This fixes issues with
- misleading error messages when a required function parameter is
omitted;
- absent properties still being listed in the output of `pairs`; and
- alias accessing leading to errors instead of returning `nil`, e.g.
with `(pandoc.Str '').identifier`.
+ Add missing space in "package not found" message (#7658, Albert
Krewinkel).
* Update build files (#7696, Fabián Heredia Montiel).
Drop old windows 32-bit constraints.
Update cabal `tested-with` field to correspond to `ci.yml` matrix
* Remove unneeded package dependencies from benchmark target.
* Require ghc >= 8.6, base >= 4.12.
This allows us to get rid of the old custom prelude and
some crufty cpp. But the primary reason for this is that
conduit has bumped its base lower bound to 4.12, making it
impossible for us to support lower base versions.
* Require Cabal 2.4. Use wildcards to ensure that all pptx tests are
included (#7677).
* Update `bash_completion.tpl` (S.P.H.).
* Add `data/creole.lua` as sample custom reader.
* Add `doc/custom-readers.md` and `doc/custom-writers.md`.
* `doc/lua-filters.md`: add section on global modules, including lpeg
(Albert Krewinkel).
* `MANUAL.txt`: update table of exit codes and corresponding errors
(Albert Krewinkel).
* Use latest texmath.
## pandoc 2.16.1 (2021-11-02)
* Docx reader: don't let first line indents trigger block quotes (#7655).
This fixes a regression introduced in pandoc 2.15.
* Docx writer: use `getTimestamp` for modification times in
reference.docx (#7654). This ensures that when `SOURCE_DATE_EPOCH` is
set, the modification times of files taken from the reference.docx will
be set deterministically, allowing for reproducible builds.
* Lua subsystem (Albert Krewinkel):
+ Load module `pandoc.path` on startup (#7524). Previously the module
always had to be loaded via `require 'pandoc.path'`.
+ Fix typo in SoftBreak constructor.
+ Re-add `content` property to Strikeout elements.
Fixes a regression introduced in 2.15.
+ Be more forgiving when retrieving the Image `caption` property.
Fixes a regression introduced in 2.15.
+ Display Attr values using their native Haskell representation.
+ Allow omitting the 2nd parameter in pandoc.Code constructor.
Fixes a regression introduced in 2.15 which required users to always
specify an Attr value when constructing a Code element.
+ Allow to compare, show Citation values. Comparisons of Citation
values are performed in Haskell; values are equal if they represent
the same Haskell value. Converting a Citation value to a string
now yields its native Haskell string representation.
+ Restore List behavior of MetaList (#7650). Fixes a regression
introduced in 2.16 which had MetaList elements lose
the `pandoc.List` properties.
+ Restore `content` property on Header elements.
+ Ensure Block elements have all expected properties.
+ Ensure Inline elements have all expected properties.
* Allow tasty-bench 0.3.x.
## pandoc 2.16 (2021-10-31)
* Switch back from HsYAML to yaml for parsing YAML metadata (#6084).
HsYAML is around 20 times slower in parsing large YAML bibliographies.
In addition, HsYAML is not being actively maintained. This sets us back
in our attempts to free ourselves from C dependencies (#4535). But I
don't see a good alternative until a faster pure Haskell parser is available.
Notes:
+ We've removed the FromYAML instances for all types that had them, since
this is a HsYAML-specific typeclass [API change]. (The yaml package just
uses From/ToJSON instead of having a dedicated From/ToYAML class.)
+ Unlike HsYAML (in the configuration we were using), yaml parses 'Y', 'N',
'Yes', 'No', 'On', 'Off' as boolean values. Users may need to quote these
when they are meant to be interpreted as strings. Similarly, 'null' is
parsed as a YAML null value (and will be treated as an empty string by
pandoc rather than the string 'null'). Quoting it will force it to be
interpreted as a string.
+ Some tests had to be adjusted accordingly.
+ Pandoc now behaves in a more useful way when the YAML metadata contains
escaping errors: instead of just failng silently and falling back to
some other interpretation of the section, it raises a YAML parsing error.
* Markdown writer: Ensure that special values are quoted in YAML metadata.
These include "Y", "yes", "on", and "off", which are now (with yaml library)
considered boolean values, as well as "null".
* Change JSON encodings of some types.
+ For LineEnding use lowercase constructors, e.g. `crlf`, `native`.
+ For HTMLSlideVariant use lowercase constructors.
+ For ReaderOptions use e.g. `default-image-extension`
instead of `readerDefaultImageExtension` for field names.
+ For Extension, use e.g. `tex_math_dollars` instead of
`Ext_tex_math_dollars` as constructor.
+ For Extensions, use an array of Extensions, instead of
an object wrapping the tag `Extensions` and an integer.
(The integer representation is not supposed to be part of the
public API.)
+ For Opt, use field names like `tab-stop` instead of `optTabStop`.
* Docx writer:
+ Add IDs to native_numbering test (Tristan Stenner).
+ Move ": " out of the caption bookmark (Tristan Stenner).
This is needed so that native references to the figure are included as
"As seen in Figure X, it is..." instead of "As seen in [Figure: X, it is..."
* Lua (Albert Krewinkel, except as noted):
+ Use hslua module abstraction where possible.
+ Fix placement of tests for Block elements in pandoc module tests
+ Increase strictness when getting attribute keys
+ Re-add `t` and `tag` property to Attr values.
Removal of these properties from Attr values was a regression.
+ Fix `pandoc.utils.stringify` regression. The `pandoc.utils.stringify`
function returned empty strings when called with a string argument.
+ Fix a copy/paste bug in Lua marshalling code (John MacFarlane, #7639).
This caused links to be changed to figures when Lua filters changed
link properties.
+ Re-add `content` property to Link elements (#7647).
This was a regression introduced in version 2.15.
+ Generate constants in module pandoc programmatically.
+ Marshal SimpleTable, ListAttributes, Citation, and Block values as
userdata objects. Properties of Block values are marshalled lazily,
which generally improves performance considerably. Script users may also
notice the following differences:
- Block element properties can no longer be accessed by numerical
indexing of the `.c` field. The `.c` property now serves as an alias
for `.content`, so some filter that used this undocumented method
for property access may continue to work, while others will need to
be updated and use proper property names.
- The marshalled Block elements now have a `show` method, and a
`__tostring` metamethod. Both return the Haskell string
representation of the element.
- Block values now have the Lua type `userdata` instead of `table`.
* Add a short guide to pandoc's sources (Albert Krewinkel).
* Fix epub files in epub reader tests, so that they are valid
according to epubcheck (#7586).
* Allow time 1.13.
* Require latest skylighting (0.12.1).
* Fix build on GHC 9.2 (Joseph C. Sible).
* Fix trypandoc so it builds with aeson > 2.
## pandoc 2.15 (2021-10-23)
* Add `--sandbox` option (#5045).
+ Add sandbox feature. When this option is used, readers and writers
only have access to input files (and other files specified directly on
command line). This restriction is enforced in the type system.
+ Filters, PDF production, custom writers are unaffected. This
feature only insulates the actual readers and writers, not
the pipeline around them in Text.Pandoc.App.
+ Note that when `--sandboxed` is specified, readers won't have
access to the resource path, nor will anything have access to
the user data directory.
* `--self-contained`: Fix bug that caused everything to be made a data
URI (#7635, #7367). We only need to use data URIs in certain cases, but
due to a bug they were being used always.
* Pandoc will now fall back to latin1 encoding for inputs that can't be
read as UTF-8. This is what it did previously for content fetched
from the web and not marked as to content type. It makes sense to do
the same for local files. In this case a `NotUTF8Encoded` warning
will be issued, indicating that pandoc is interpreting the input as latin1.
* Markdown reader:
+ Don't parse links or bracketed spans as citations (#7632).
Previously pandoc would parse `[link to (@a)](url)` as a
citation; similarly `[(@a)]{#ident}`. This is undesirable. One should
be able to use example references in citations, and even if `@a` is
not defined as an example reference, `[@a](url)` should be a link
containing an author-in-text citation rather than a normal citation
followed by literal `(url)`.
+ Fix interaction of `--strip-comments` and list parsing (#7521).
Use of `--strip-comments` was causing tight lists to be rendered as
loose (as if the comment were a blank line).
+ Fix parsing bug for math in bracketed spans and links (#7623).
This affects math with unbalanced brackets (e.g. `$(0,1]$`)
inside links, images, bracketed spans.
+ Fix code blocks using `--preserve-tabs` (#7573). Previously they
did not behave as the equivalent input with spaces would.
* DocBook reader:
+ Honor linenumbering attribute (Samuel Tardieu).
The attribute DocBook `linenumbering="numbered"` on code blocks
maps to the `numberLines` class internally.
* LaTeX reader:
+ Implement siunitx v3 commands (#7614).
We support `\unit`, `\qty`, `\qtyrange`, and `\qtylist`
as synonyms of `\si`, `\SI`, `\SIrange`, and `\SIlist`.
+ Properly handle `\^` followed by group closing (#7615).
+ Recognize that `\vadjust` sometimes takes "pre" (#7531).
+ Ignore (and gobble parameters of) CSLReferences environment (#7531).
Otherwise we get the parameters as numbers in the output.
+ Restrict `\endinput` to current file (Simun Schuster).
* RST reader: handle escaped colons in reference definitions (#7568).
* HTML reader:
+ Handle empty tbody element in table (#7589).
* Ipynb reader (Kolen Cheung):
+ Get cell output mime from `raw_mimetype` in addition to `format`.
(`format` is what the spec calls for, but `raw_mimetype` is
often used in practice; see jupyter/nbformat#229).
+ Add more formats that can be handled as "raw" cells.
+ Fix mime type for `rst`.
+ Support `text/markdown`, which is now a supported mime type for raw
output (#7561).
* RTF reader:
+ Support `\binN` for binary image data.
+ If doc begins with {\rtf1 ... } only parse its contents.
Some documents seem to have non-RTF (e.g. XML) material after the
`{\rtf1 ... }` group.
+ Ignore `\pgdsc` group. Otherwise we get style names treated as test.
+ Better handling of `\*` and bookmarks. We now ensure that groups
starting with `\*` never cause text to be added to the document.
In addition, bookmarks now create a span between the start
and end of the bookmark, rather than an empty span.
* Docx reader:
+ Avoid blockquote when parent style has more indent (Milan Bracke).
When a paragraph has an indentation different from the parent (named)
style, it used to be considered a blockquote. But this only makes sense
when the paragraph has more indentation. So this commit adds a check
for the indentation of the parent style.
+ Fix handling of empty fields (Milan Bracke). Some fields only
have an `instrText` and no content, Pandoc didn't understand these,
causing other fields to be misunderstood because it seemed like
a field was still open when it wasn't.
+ Implement PAGEREF fields (Milan Bracke). These fields, often used
in tables of contents, can be a hyperlink.
+ Fix handling of nested fields (Milan Bracke). Fields delimited by
`fldChar` elements can contain other fields. Before, the nested
fields would be ignored, except for the end, which would be
considered the end of the parent field.
+ Add placeholder for word diagram instead of just omitting it (Ezwal).
* Org reader:
+ Don't parse a list as first item in a list item (#7557).
+ Allow an initial `:PROPERTIES:` drawer to add to metadata (#7520).
* Docx writer:
+ Make id used in `native_numbering` predictable (#7551).
If the image has the id IMAGEID, then we use the id ref_IMAGEID
for the figure number. This allows one to create a filter that
adds a figure number with figure name, e.g.
`<w:fldSimple w:instr=" REF ref_superfig "><w:r><w:t>Figure X</w:t>
</w:r></w:fldSimple>`.
If an image lack an id, an id of the form `ref_fig1` is used.
+ Ensure we have unique ids for `wp:docPr` and `pic:cNvPr` elements
(#7527, #7503).
+ Handle SVG images (#4058). This change has several parts:
- In Text.Pandoc.App, if the writer is docx, we fill the media
bag and attempt to convert any SVG images to PNG, adding these
to the media bag. The PNG backups have the same filenames as
the SVG images, but with an added .png extension. If the conversion
cannot be done (e.g. because rsvg-convert is not present),
a warning is omitted.
- In Text.Pandoc.Writers.Docx, we now use Word 2016's syntax for
including SVG images. If a PNG fallback is present in the media bag,
we include a link to that too.
* Powerpoint writer (Emily Bourke):
+ Add support for more layouts (#5097). Up til now, four layouts
were supported: "Title Slide" (used for the automatically generated
metadata slide), "Section Header" (used for headings above slide
level), "Two Column" (used when there's a columns div), "Title and
Content" (used for all other slides). We now support three
additional layouts: "Comparison", "Content with Caption", and
"Blank". The manual describes the logic that determines which
layout is used for a slide. Layouts may be customized in the
reference doc.
+ Support specifying slide background images using a `background-image`
attribute on the slide's heading. Only the "stretch" mode is supported,
and the background image is centred around the slide in the image's
larger axis, matching the observed default behaviour of PowerPoint.
+ Add support for incremental lists (through same methods as in
other slide writers) (#5689).
+ Copy embedded fonts from reference doc.
+ Include all themes in output archive.
+ Fix list level numbering (#4828, #4663). In PowerPoint,
the content of a top-level list is at the same level as the content
of a top-level paragraph: the only difference is that a list style
has been applied. Previously, the writer incremented the paragrap
h level on each list, turning what should be top-level lists into
second-level lists.
+ Line up list continuation paragraphs. This commit
changes the `marL` and `indent` values used for plain paragraphs
and numbered lists, and changes the spacing defined in the
reference doc master for bulleted lists. For paragraphs, there is
now a left-indent taken from the `otherStyle` in the master.
For numbered lists, the number is positioned where the text would be
if this were a plain paragraph, and the text is indented to the next
level. This means that continuation paragraphs line up nicely with
numbered lists. Existing reference docs may need to be modified so
that `otherStyle` and `bodyStyle` indent levels match, for this
feature to work with them.
+ Consolidate text runs when possible (jgm). This slims down the output
files by avoiding unnecessary text run elements.
+ Support footers in the reference doc.
There is one behaviour which may not be immediately obvious: if the
reference doc specifies a fixed date (i.e. not automatically updating),
and there’s a date specified in the metadata for the document, the
footer date is replaced by the metadata date.
+ Fix presentation rel numbering. Before now, the numbering of `rId`s
was inconsistent when making the presentation XML and when making
the presentation relationships XML.
+ Don’t add relationships unnecessarily. Before now, for any layouts
added to the output from the default reference doc, the relationships
were unconditionally added to the output. However, if there was already
a layout in slideMaster1 at the same index then that results in
duplicate relationships.
+ If slide level is 0, don't insert a slide break between a heading
and a following table, "columns" div, or paragraph starting
with an image.
+ Fix capitalisation of `notesMasterId`.
+ Restructure tests.
* Asciidoc writer:
+ Translate numberLines attribute to `linesnum` switch (Samuel Tardieu).
+ Improve escaping for `--` in URLs (#7529).
* LaTeX writer:
+ Make babel use more idiomatic (#7604, hseg). Use babel's
bidi implementation. Import babel languages individually instead
of as package options. Move `header-includes` to after
`babel` setup so it can be modified.
+ Use babel, not polyglossia, with xelatex. Previously polyglossia
worked better with xelatex, but that is no longer the case, so
we simplify the code so that babel is used with all latex
engines. This involves a change to the default LaTeX template.
* Markdown writer:
+ Avoid bad wraps at the Doc Text level. Previously we tried to
do this at the Inline list level, but it makes more sense to
intervene on breaking spaces at the Doc Text level.
+ Use `underline` class rather than `ul` for underline.
This only affects output with `bracketed_spans` enabled.
The markdown reader parses spans with either `.ul` or `.underline` as
Underline elements, but we're moving towards preferring the latter.
* RST writer:
+ Properly handle anchors to ids with spaces or leading underscore
(#7593). In this cases we need the quoted form, e.g.
```
.. _`foo bar`:
.. _`_foo`:
```
Side note: rST will "normalize" these identifiers anyway,
ignoring the underscore.
* HTML writer:
+ Render `\ref` and `\eqref` as inline math, not display (see #7589).
+ Pass through `\ref` and `\eqref` if MathJax is used (#7587).
+ Pass through inline math environments with KaTeX.
+ Support `--reference-location` for HTML output (#7461,
Francesco Mazzoli).
+ Set "hash" to True by default (for reveal.js) (#7574). See #6968
where the motivation for setting "hash" to True is explained.
* Native writer: Use pretty-show to format native output (#7580).
Previously we used our own homespun formatting. But this produces
over-long lines that aren't ideal for diffs in tests.
Performance is slower by about a factor of 10, but this isn't
really a problem because native isn't suitable as a serialization
format. (For serialization you should use json, because the reader
is so much faster than native.)
* Org writer:
+ Don't indent contents of code blocks. We previously indented them
by two spaces, following a common convention. Since the convention
is fading, and the indentation is inconvenient for copy/paste, we are
discontinuing this practice.
+ Update list of supported source languages in org writer (#5440).
* Ipynb writer (Kolen Cheung):
+ Improve round trip identity for raw cell output.
See jupyter/nbformat#229. The Jupyter ecosystem, including nbconvert,
lab and notebook, deviated from their own spec in nbformat, where
they used the key `raw_mimetype` instead of `format`. Moreover,
the mime-type of rst used in Jupyter deviated from that suggested by
https://docutils.sourceforge.io/FAQ.html and is defined as
`text/restructuredtext` when chosen from "Raw NBConvert Format" in
Jupyter. The new behavior should matche the real world usage better,
hence improving the round-trip "identity" in raw-cell.
+ Add more formats that can be handled as "raw" cells.
* EPUB writer:
+ Add EPUB3 subject metadata (authority/term) (nuew).
This adds the ability to specify EPUB 3 `authority` and `term` specific
refinements to the `subject` tag. Specifying a plain `subject` tag in
metadata will function as before.
+ Treat epub:type "frontispiece" as front matter (#7600).
* reveal.js template: Fix line numbers in source code (#7634).
We need `overflow: visible` for these to work, and reveal's
default css disables this. So we re-enable it in the default template.
* Text.Pandoc.Writers.Shared:
+ Export `splitSentences` as a Doc Text transform [API change].
Use this in man/ms. We used to attempt automatic sentence
splitting in man and ms output, since sentence-ending
periods need to be followed by two spaces or a newline in
these formats. But it's difficult to do this reliably at
the level of `[Inline]`.
* Text.Pandoc.Translations: small revisions for compatibility
with aeson 2.
* Don't prepend `file://` to `--syntax-definition` on Windows (#6374).
This was a fix for a problem in skylighting, but this
problem doesn't exist now that we've moved from HXT to xml-conduit.
* Text.Pandoc.Extensions:
+ Add `Ext_footnotes` to default `gfm` etxensions. Now `gfm`
supports footnotes.
+ Alphabetize Extension constructors (also affects `--list-extensions`).
* Text.Pandoc.Citeproc.Util: Better implementation of `splitStrWhen`.
Previously the citeproc code had two less efficient
implementations.
* Update documentation for definition_list extension (#7594).
In 2015, we relaxed indentation requirements for the first
line of a definition (see commit d3544dc and issue #2087), but
the documnentation wasn't updated to reflect the change.
* Text.Pandoc.Citeproc.BibTeX: Fix expansion of special strings in series
e.g. `newseries` or `library` (#7591). Expansion should not happen
when these strings are protected in braces, or when they're
capitalized.
* Text.Pandoc.Logging: add `NotUTF8Encoded` constructor to `LogMessage`
[API change].
* Text.Pandoc.App.FormatHeuristics: remove `.tei.xml` extension for TEI
(#7630). This never worked, because `takeExtension`
only returns `.xml`. So it won't be missed if we remove it.
* Text.Pandoc.Image:
+ Generalize `svgToPng` to MonadIO.
+ `svgToPng`, change first parameter from WriterOptions to Int.
* Text.Pandoc.Class:
+ Add `readStdinStrict` method to PandocMonad [API change].
+ Generalize type of `extractMedia` [API change].
It was uselessly restricted to PandocIO, instead of any
instance of PandocMonad and MonadIO.
* Text.Pandoc.Class.PandocIO: derive MonadCatch, MonadThrow, MonadMask.
This allows us to use `withTempDir` [API change].
* Add module Text.Pandoc.Class.Sandbox, defining
`sandbox`. Exported via Text.Pandoc.Class. [API change]
* Text.Pandoc.Filter: Generalize type of `applyFilters`
from PandocIO to any instance of MonadIO and PandocMonad [API change].
* Text.Pandoc.PDF: generalize type of `makePDF`:
instead of PandocIO, it can be used in any instance of
PandocMonad, MonadIO, and MonadMask [API change].
* Lua subsystem and custom writers: generalize types from PandocIO
to any instance of PandocMonad and MonadIO [API change].
The type of `runLua` is now
(PandocMonad m, MonadIO m) =>
LuaE PandocError a -> m (Either PandocError a)
The change from `Lua` to `LuaE PandocError` is due to the switch to
hslua-2.0; see next item.
* Lua modules (Albert Krewinkel):
+ Switch to hslua-2.0. The new HsLua version takes a somewhat different
approach to marshalling and unmarshalling, relying less on typeclasses
and more on specialized types. This allows for better performance and
improved error messages. Furthermore, new abstractions allow to
document the code and exposed functions.
+ Marshal Version values, Inline elements, Attr elements,
and Pandoc elements as userdata.
+ Remove deprecated inline constructors `DoubleQuoted`,
`SingleQuoted`, `DisplayMath`, and `InlineMath`.
+ Attr values are no longer normalized when assigned to an Inline
element property.
+ It's no longer possible to access parts of Inline elements via
numerical indexes. E.g., `pandoc.Span('test')[2]` used to give
`pandoc.Str 'test'`, but yields `nil` now. This was undocumented
behavior not intended to be used in user scripts. Use named properties
instead.
+ Accessing `.c` to get a JSON-like tuple of all components no longer
works. This was undocumented behavior.
+ Only known properties can be set on an element value. Trying to set a
different property will now raise an error.
+ Adds a new `pandoc.AttributeList()` constructor, which creates the
associative attribute list that is used as the third component of
`Attr` values. Values of this type can often be passed to constructors
instead of `Attr` values.
+ Convert IOErrors to PandocErrors in `pandoc.pipe` function (#7523).
* Text.Pandoc.PDF: Previously we had to run `runIOorExplode` inside
`withTempDir`. Now that PandocIO is an instance of MonadMask, this is
no longer necessary.
* Text.Pandoc.App:
+ Reorganize to make it easier to limit IO in main loop.
Previously we used liftIO fairly liberally. The code has
been restructured to avoid this.
+ Move output-file writing out of PandocMonad action.
* Text.Pandoc.App.OutputSettings: Generalize some types
so we can run this with any instance of PandocMonad and MonadIO,
not just PandocIO.
* Use `simpleFigure` builder in readers and `SimpleFigure`
pattern synonym in writers (Aner Lucero).
* Allow time 1.12.
* Use skylighting-0.12, skylighting-core-0.12.
This fixes highlighting issues with typescript, scala, and other
syntaxes that include keyword lists from different syntaxes.
* Use citeproc 0.6, commonmark 0.2.2.1, commonmark-extensions 0.2.2,
texmath 0.12.3.2, ipynb 0.1.0.2. (These changes also allow
building with aeson >= 2.)
* Require doclayout >= 0.3.1.1. This fixes recognition of "real widths"
of emoji characters, which is important for tabular layout.
* Cut out over 100K of fat in epub test golden files.
* Make `test/epub/wasteland.epub` valid.
* Add missing `%` on some command tests.
This prevented `--accept` from working properly.
* Command tests: raise error if command doesn't begin with `%`.
* OOXML tests: use pretty-printed form to display diffs.
Otherwise everything is on one line and the diff is uninformative.
* Fix compareXML helper in Tests.Writers.OOXML.
Given how it is used, we were getting "mine" and "good"
flipped in the test results.
* MANUAL.txt:
+ Clarify `attributes` extension support (William Lupton).
+ Document formats affected by `--reference-location`.
+ Document error code 25
+ Add some more info regarding `--slide-level=0` (Salim B).
+ Add more to security section of manual.
+ Mention support of `title-toc` (#7171, Christophe Dervieux).
* doc/lua-filters.md:
+ Add missing type for Image title (Quinn).
+ Improve order of Image fields (Quinn).
+ Rephrase pandoc.path docs (#7548, Quinn).
+ Do not leak working directory in TikZ filter (Jeroen de Haas).
## pandoc 2.14.2 (2021-08-21)
* Allow `--slide-level=0` (#7476). When the slide level is set
to 0, headings won't be used at all in splitting the document
into slides. Horizontal rules must be used to separate slides.
* Add RTF reader (#3982). `rtf` is now supported as an input
format as well as an output format. New module
Text.Pandoc.Readers.RTF (exporting `readRTF`). [API change]
* HTML reader: treat comments as blank when parsing (#7482).
* Markdown reader:
+ Fix raw LaTeX injection issue (#7497). Using a code block
containing `\end{verbatim}`, one could inject raw TeX into a
LaTeX document even when `raw_tex` is disabled. Thanks to
Augustin Laville for noticing the bug.
+ Multimarkdown sub- and superscripts (#5512, OCzarnecki).
Added an extension `short_subsuperscripts` which modifies
the behavior of `subscript` and `superscript`, allowing
subscripts or superscripts containing only alphanumerics
to end with a space character (eg. `x^2 = 4` or `H~2 is
combustible`). This improves support for multimarkdown.
* RST reader: Fix `:literal:` includes (#7513). These should create
code blocks, not insert raw RST.
* LaTeX reader:
+ Proper implicit grouping around environment macros.
+ Support `\global` before `\def`, `\let`, etc. (#7494).
+ Fix scope for LaTeX macros (#7494). They should by default
scope over the group in which they are defined (except `\gdef`
and `\xdef`, which are global). In addition, environments must
be treated as groups.
+ Improve handling of plain TeX macro primitives (#7474).
Fixed semantics for `\let`.
+ Implement `\edef`, `\gdef`, and `\xdef`.
* Docx reader: Improve docx reader's robustness in extracting
images (#7511). The docx reader made some assumptions about
how docx containers were laid out that were not always true, with
the result that some images in documents did not get
extracted.
* LaTeX writer: Increase table column width precision (#7466,
Peter Fabinski). In some cases, the rounding performed by the
LaTeX table writer would introduce visible overrun outside
the text area. This adds two more decimal places to the width
values.
* Powerpoint writer:
+ Include image title in description (#7352, Emily Bourke). The
image title (i.e. ``) was previously
ignored when writing to pptx. This commit includes it in
PowerPoint's description of the image, along with the link.
+ Select layouts from reference doc by name (Emily Bourke). Until
now, users had to make sure that their reference doc contains
layouts in a specific order: the first four layouts in the file
had to have a specific structure. Now the layout selection uses
the layout names rather than order: users must make sure their
reference doc contains four layouts with specific names, and if
a layout with the right name isn’t found pandoc will emit
a warning and use the corresponding layout from the default
reference doc as a fallback.
* Docx writer: be sensitive to the `native_numbering` extension
(#7499). Figure and table numbers are now only included if
`native_numbering` is enabled. (By default it is disabled.)
This is a behavior change with respect to 2.14.1, but the
default behavior is now that of previous versions. The
change was necessary to avoid incompatibilities between
pandoc's native numbering and third-party cross reference
filters like pandoc-crossref.
* RTF writer:
+ Omit `\bin` in `\pict`. According to the spec, this is not
needed or wanted when the data is in hexadecimal format, as
here.
+ Emit `\outlinelevel`` for section headings.
* RTF template: specify font family for fixed-width font f1.
According to the spec, this is mandatory.
* LaTeX writer: Use ulem for underline (#7351). ulem is
conditionally included already when the `strikeout` variable
is set, so we set this when there is underlined text, and use
`\uline` instead of `\underline`. This fixes wrapping for
underlined text.
* Text.Pandoc.Citeproc:
+ Revise citeproc code to fit new citeproc 0.5 API (thanks to
Benjamin Bray). Linkification of URLs in the bibliography
is now done in the citeproc library, depending on the
setting of an option. We set that option depending on the
value of the metadata field `link-bibliography` (defaulting
to true, for consistency with earlier behavior). If a DOI,
PMID, PMCID, or URL field is present but not explicitly
rendered, the title (or if no title, the whole entry) is
hyperlinked. These changes implement the recommendations
from the draft CSL v1.0.2 spec (Appendix VI):
<https://github.com/citation-style-language/documentation/blob/master/specification.rst#appendix-vi-links>
+ Avoid odd handling of quotes. Recent citeproc changes
allow us to ignore Quoted elements; citeproc now uses its own
method for represented quoted things, and only localizes and
flipflops quotes it adds itself. Convert Quoted in bib
entries to special Spans before passing them off to
citeproc. This ensures that we get proper localization and
flipflopping if, e.g., quotes are used in titles
(jgm/citeproc#87).
+ Removed quote localization from citeproc processing.
This is now done in citeproc itself.
* Text.Pandoc.Logging: Add PowerpointTemplateWarning log message
type [API change] (Emily Bourke).
* Text.Pandoc.Extension: Add `Ext_short_subsuperscripts`
constructor to `Extension` [API change] (OCzarnecki).
* Various sample.lua editorial fixes (#7493, #7487, William
Lupton).
* Bump base-compat version so we get compatibility with base 4.12.
* Use Prelude from base-compat for ghc 8.4 too.
* Add haskell-language-server to shell.nix (#7496, Emily Bourke).
* Tests.Helpers: export testGolden and use it in RTF reader.
This gives a diff output on failure.
* Remove obsolete and incorrect sentence in `--slide-level` docs.
* Add internal module Text.Pandoc.Network.HTTP, exporting
`urlEncode`.
* Text.Pandoc.Parsing: `parseFromString`: preserve at least
the source directory (#7464). Previously we just set the
source name to "chunk" when parsing from strings, to avoid
misleading source positions. This had the side effect that
`rebase_relative_paths` would break inside sections that
were parsed as strings. So, now we use
"ORIGINAL_SOURCE_PATH_chunk" instead of just "chunk".
* Text.Pandoc.MIME: use image/x-xcf instead of application/x-xcf
(#7454).
* Don’t compare `cdLine` in OOXML golden tests (Emily Bourke).
The `cdLine` field gives the line of the file some CData was
found on, which reflects irrelevant formatting differences.
* Provide more detailed XML diff in tests (Emily Bourke).
* OOXML tests: silence warnings. These can make the test output
confusing, making people think tests are failing when they're
passing.
* INSTALL.md: Add GitLab CI/CD example (#7448, Veratyr).
* MANUAL.txt
- Clarifications (William Lupton).
- Add a note on security risks of include directives.
* Document use of the 'underline' class (#7492, #7484, William
Lupton).
* Add a FAQ about the "Cannot allocate memory" error on M1 macs.
* Use texmath 0.12.3.1.
* Use released citeproc 0.5.
* Remove dependency on HTTP package (#7456, mt_caret).
## pandoc 2.14.1 (2021-07-18)
* Text.Pandoc.ImageSize: Add Tiff constructor for ImageType (#7405)
[Minor API change]. This allows pandoc to get size information from
tiff images.
* Markdown reader: don't try to read contents in self-closing HTML tag.
Previously we had problems parsing raw HTML with self-closing
tags like `<col/>`. The problem was that pandoc would look
for a closing tag to close the markdown contents, but the
closing tag had, in effect, already been parsed by `htmlTag`.
* LaTeX reader:
+ Avoid trailing hyphen in translating languages (#7447).
Previously `\foreignlanguage{english}` turned into `<span lang="en-">`.
The same issue affected Arabic.
+ Support `\cline` in LaTeX tables (#7442).
+ Improved parsing of raw LaTeX from Text streams (`rawLaTeXParser`,
used to read LaTeX in Markdown files, #7434). We now use source
positions from the token stream to tell us how much of the text stream
to consume. Getting this to work required a few other changes to
make token source positions accurate.
* DocBook reader:
+ Handle images with imageobjectco elements (#7440).
+ Add support for citerefentry (#7437, Jan Tojnar).
* RST reader: fix regression with code includes (#7436).
With the recent changes to include infrastructure,
included code blocks were getting an extra newline.
* HTML reader:
+ Recognize data-external when reading HTML img tags (#7429,
Michael Hoffmann). Preserve all attributes in img tags. If attributes
have a `data-` prefix, it will be stripped. In particular, this
preserves a `data-external` attribute as an `external` attribute in
the pandoc AST.
+ Add col, colgroup to 'closes' definitions
* HTML writer:
+ Remove duplicated alt text in HTML output (Aner Lucero).
+ Remove `aria-hidden` when explicit alt text is provided (Aner Lucero).
+ Set boolean values for reveal.js variables.
* Docx writer:
+ Add table numbering for captioned tables.
The numbers are added using fields, so that Word can
create a list of tables that will update automatically.
+ Support figure numbers. These are set up in such a way that they
will work with Word's automatic table of figures (#7392).
* Markdown writer: put space between Plain and following fenced Div
(#4465).
* EPUB writer: Don't incorporate externally linked images in EPUB documents
(#7430, Michael Hoffmann). Just as it is possible to avoid incorporating
an image in EPUB by passing `data-external="1"` to a raw HTML snippet,
this makes the same possible for native Images, by looking for an
associated `external` attribute.
* Text.Pandoc.PDF:
+ Fix `svgIn` path error (#7431). We were duplicating
the temp directory; this didn't cause problems on macOS or linux
because there we use absolute paths for the temp directory.
But on Windows it caused errors converting SVG files.
+ `convertImage`: normalize paths (#7431). This will avoid paths
on Windows with mixed path separators.
* Text.Pandoc.Class: Always use / when adding directory to image destination
with `extractMedia`, even on Windows.
* Text.Pandoc.Citeproc:
+ Allow `$` characters in bibtex keys (#7409).
+ Set proper initial source name in parsing BibTeX (for better error
messages.)
+ Revamp note citation handling (#7394). Use latest
citeproc, which uses a Span with a class rather than a Note for notes.
This helps us distinguish between user notes and citation notes. Don't
put citations at the beginning of a note in parentheses. Fix small bug
in handling of citations in notes, which led to commas at the end of
sentences in some cases.
+ Cleanup and efficiency improvement in `deNote`.
+ Improve punctuation moving with `--citeproc`. Previously, using
`--citeproc` could cause punctuation to move in quotes even when
there aer no citations. This has been changed; punctuation moving
is now limited to citations. In addition, we only move footnotes
around punctuation if the style is a note style, even if
`notes-after-punctuation` is `true`.
* Use citeproc 0.10. This helps improve note citations (see above)
and eliminates double hyperlinks in author-in-text citations.
Author-only citations are no longer hyperlinked. See jgm/citeproc#77.
It also fixes moving of punctuation inside quotes to conform to
the CSL spec: only comma and period are moved, not question
mark or exclamation point.
* Text.Pandoc.Error: fix line calculations in reporting parsec errors.
Also remove a spurious initial newline in the error report.
* Use doctemplates 0.4.1, which gives us better support for boolean
variable values. Previously `$if(foo)$` would evaluate to true
for variables with boolean `false` values, because it cared only
about the string rendering (#7402).
* Require commonmark-pandoc >= 0.2.2.1.
This fixes task lists with multiple paragraphs.
* Use skylighting 0.11.
* CSS in HTML template: reset overflow-wrap on code blocks
(Mauro Bieg, #7423).
* LaTeX template: Revert change in PR #7295: "move title, author, date up
to top of preamble." The change caused problem for people who used
LaTeX commands defined defined later in the preamble in the title
or author fields (#7422).
* Add `doc/faqs.md`. This is imported from the website; in the future the
website version will be drawn from here.
Added a FAQ on the use of `\AtEndPreamble` for cases when the contents of
`header-includes` need to refer to definitions that come later in the
preamble. See #7422.
* Upgrade Debian 10 AMI for build-arm.sh.
* CircleCI: change to using xcode 11.1.0 (macOS 10.14.4).
We previously built on 10.13, but 10.13 no longer gets
security updates and CirclCI is deprecating.
## pandoc 2.14.0.3 (2021-06-22)
* Text.Pandoc.MediaBag `insertMediaBag`: ensure we get a sane mediaPath
for URLs (#7391). In earlier 2.14.x versions, we'd get
incorrect paths for resources downloaded from URLs when the
media are extracted (including in PDF production).
* Text.Pandoc.Parsing: improve `emailAddress` (#7398).
Previously the parser would accept characters in domains
that are illegal in domains, and this sometimes caused it
to gobble bits of the following text.
* txt2tags reader: modify the email address parser so
it still includes form parameters, even after the change to
`emailAddress` in Text.Pandoc.Parsing.
* Text.Pandoc.Readers.Metadata: Fix regression with comment-only YAML
metadata blocks (#7400).
* reveal.js writer and template: better handling of options. Previously
it was impossible to specify false values for options that default to
true (e.g. `center`); setting the option to false just caused the portion
of the template setting the option to be omitted. Now we prepopulate
all the variables with their default values, including them all
unconditionally and allowing them to be overridden.
* Markdown writer: Fix regression in code blocks with attributes (#7397).
Code blocks with a single class but nonempty attributes
were having attributes drop as a result of #7242.
* LaTeX writer:
+ Add strut at end of minipage if it contains line breaks.
Without them, the last line is not as tall as it should be in
some cases.
+ Always use a minipage for cells with line breaks, when
width information is available (#7393). Otherwise the way we treat them
can lead to content that overflows a cell.
+ Use `\strut` instead of `~` before `\\` in empty line.
* Use lts-18.0 stack resolver.
* Require skylighting 0.10.5.2 (adding support for Swift).
* Require commonmark 0.2.1.
* Rephrase section on unsafe HTML in manual.
* Create SECURITY.md
## pandoc 2.14.0.2 (2021-06-13)
* Fix MediaBag regressions (#7345). iIn the 2.14 release `--extract-media`
stopped working as before; there could be mismatches between the
paths in the rendered document and the extracted media.
This patch makes several changes that restore the earlier behavior
(while keeping the same API). The `mediaPath` in 2.14 was always
constructed from the SHA1 hash of the media contents. Now, we
preserve the original path unless it's an absolute path or contains
`..` segments (in that case we use a path based on the SHA1 hash of
the contents).
In Text.Pandoc.MediaBag, `mediaDirectory` and `mediaItems` now use the
`mediaPath`, rather than the mediabag key, for the first component of the
tuple. This makes more sense, I think, and fits with the documentation of
these functions; eventually, though, we should rework the API so that
`mediaItems` returns both the keys and the MediaItems.
In Text.Pandoc.Class.IO, rewriting of source paths in `extractMedia` has
been fixed.
In Text.Pandoc.Class.PandocMonad, `fillMediaBag` has been modified so that
it doesn't modify image paths (that was part of the problem in #7345).
We now do path normalization (e.g. `\` separators on Windows) in
writing the media.
* Text.Pandoc.PDF:
+ Text.Pandoc.PDF: Fix regression in 2.14 for generation of PDFs with
SVGs (#7344).
+ Only print relevant part of environment on `--verbose`. Since
`--verbose` output might be put in an issue, we want to avoid
spilling out secrets in environment variables.
* Markdown reader: fix pipe table regression in 2.11.4 (#7343).
Previously pipe tables with empty headers (that is, a header
line with all empty cells) would be rendered as headerless
tables. This broke in 2.11.4. The fix here is to produce an
AST with an empty table head when a pipe table has all empty
header cells.
* LaTeX reader: don't allow optional `*` on symbol control sequences
(#7340). Generally we allow optional starred variants of LaTeX commands
(since many allow them, and if we don't accept these explicitly,
ignoring the star usually gives acceptable results). But we
don't want to do this for `\(*\)` and similar cases.
* Docx reader: handle absolute URIs in Relationship Target (#7374).
* Docx writer: fix handling of empty table headers (Albert Krewinkel,
#7369). A table header which does not contain any cells is now treated as
an empty header.
* LaTeX writer: Fix regression in table header position (#7347).
In recent versions the table headers were no longer bottom-aligned
(if more than one line). This patch fixes that by using minipages
for table headers in non-simple tables.
* CommonMark writer:
+ Do not use simple class for fenced-divs (Jan Tojnar, amends #7242.)
+ Do not throw away attributes when `Ext_attributes` is enabled.
`Ext_attributes` covers at least the following:
`Ext_fenced_code_attributes`, `Ext_header_attributes`,
`Ext_inline_code_attributes`, `Ext_link_attributes`.
* Markdown writer:
+ Allow `pipe_tables` to be disabled for commonmark formats
(`commonmark_x`, `gfm`) (#7375).
+ Re-use functions from Text.Pandoc.Markdown.Inline (Jan Tojnar).
* DocBook writer: Remove non-existent admonitions (Jan Tojnar).
`attention`, `error` and `hint` are reStructuredText specific.
* HTML writer: Don't omit width attribute on div (#7342).
* Text.Pandoc.MIME, `extensionFromMimeType`: add a few special cases.
When we do a reverse lookup in the MIME table, we just get the
last match, so when the same mime type is associated with several
different extensions, we sometimes got weird results, e.g. `.vs`
for `text/plain`. These special cases help us get the most standard
extensions for mime types like `text/plain`.
* Lua utils: fix handling of table headers in `from_simple_table` (Albert
Krewinkel, #7369). Passing an empty list of header cells now results
in an empty table header.
* Text.Pandoc.Citeproc:
+ Avoid duplicate classes and attributes on references div.
+ Fix regression in citeproc processing (#7376). If inline
references are used (in the metadata `references` field), we
should still only include in the bibliography items that are
actually cited (unless `nocite` is used).
* Require citeproc 0.4.0.1. This fixes a bug which led to doubled
"et al." in some (rare) circumstances.
* MANUAL.txt:
+ Mention GladTeX for EPUB export (Sebastian Humenda).
This updates the manual and the web site about the GladTeX usage.
+ More details and a useful link for YAML syntax.
* CONTRIBUTING.md: update modules overview (Albert Krewinkel).
* using-the-pandoc-api.md: switch from String to Text (Albert Krewinkel).
## pandoc 2.14.0.1 (2021-06-01)
* Commonmark reader: Fix regression in 2.14 with YAML metdata block parsing,
which could cause the document body to be omitted after metadata (#7339).
* HTML reader: fix column width regression in 2.14 (#7334).
Column widths specified with a style attribute were off by a factor of 100.
* Markdown reader: in `rebasePaths`, check for both Windows and Posix
absolute paths. Previously Windows pandoc was treating
`/foo/bar.jpg` as non-absolute.
* Text.Pandoc.Logging: In rendering `LoadedResource`, use relative paths.
* Docx writer: fix regression on captions (#7328). The "Table Caption"
style was no longer getting applied. (It was overwritten by "Compact.")
* Use commonmark-extensions 0.2.1.2
## pandoc 2.14 (2021-05-28)
* Change reader types, allowing better tracking of source positions
[API change]. Previously, when multiple file arguments were provided,
pandoc simply concatenated them and passed the contents to the readers,
which took a Text argument. As a result, the readers had no way of knowing
which file was the source of any particular bit of text. This meant that
we couldn't report accurate source positions on errors or include accurate
source positions as attributes in the AST. More seriously, it meant that
we couldn't resolve resource paths relative to the files containing them
(see e.g. #5501, #6632, #6384, #3752).
* Add `rebase_relative_paths` extension (#3752). When enabled, this
extension rewrites relative image and link paths by prepending
the (relative) directory of the containing file. This
behavior is useful when your input sources are split
into multiple files, across several directories, with files
referring to images stored in the same directory. The
extension can be enabled for all markdown and commonmark-based formats.
* Add Text.Pandoc.Sources (exported module), with a `Sources` type and a
`ToSources` class. A `Sources` wraps a list of `(SourcePos, Text)` pairs
[API change]. A parsec `Stream` instance is provided for `Sources`. The
module also exports versions of parsec's `satisfy` and other Char parsers
that track source positions accurately from a `Sources` stream (or any
instance of the new `UpdateSourcePos` class).
* Text.Pandoc.Parsing
+ Export the modified Char parsers defined in Text.Pandoc.Sources
instead of the ones parsec provides. Modified parsers to use a
`Sources` as stream [API change].
+ Improve include file functions [API change]. Remove old
`insertIncludedFileF`. Give `insertIncludedFile` a more general type,
allowing it to be used where `insertIncludedFileF` was.
+ Add parameter to the `citeKey` parser from
Text.Pandoc.Parsing, which controls whether the `@{..}`
syntax is allowed [API change].
* Text.Pandoc.Error: Modified the constructor `PandocParsecError` to take a
`Sources` rather than a `Text` as first argument, so parse error locations
can be accurately reported.
* Fix source position reporting for YAML bibliographies (#7273).
* Issue error message when reader or writer format is malformed
(#7231). Previously we exited with an error status but (due to a bug)
no message.
* Smarter smart quotes (#7216, #2103). Treat a leading `"` with no
closing `"` as a left curly quote. This supports the practice, in
fiction, of continuing paragraphs quoting the same speaker without an
end quote. It also helps with quotes that break over lines in line blocks.
* Markdown reader:
+ Use MetaInlines not MetaBlocks for multimarkdown metadata fields.
This gives better results in converting to e.g. pandoc markdown.
+ Implement curly-brace syntax for Markdown citation keys (#6026).
The change provides a way to use citation keys that contain
special characters not usable with the standard citation key syntax.
Example: `@{foo_bar{x}'}` for the key `foo_bar{x}`. It also allows
separating citation keys from immediately following text, e.g. `@{foo}A`.
* RST reader:
+ Seek include files in the directory of the file
containing the include directive, as RST requires (#6632).
+ Use `insertIncludedFile` from Text.Pandoc.Parsing
instead of reproducing much of its code.
* Org reader: Resolve org includes relative to the directory containing the
file containing the INCLUDE directive (#5501).
* ODT reader: Treat tabs as spaces (#7185, niszet).
* Docx reader:
+ Add handling of vml image objects (#7257, mbrackeantidot).
+ Support new table features (Emily Bourke, #6316): column
spans, row spans, multiple header rows, table description
(parsed as a simple caption), captions, column widths.
* LaTeX reader:
+ Improved siunitx support (#6658, #6620).
+ Better support for `\xspace` (#7299).
+ Improve parsing of `\def` macros. We previously set "verbatim mode"
even for parsing the initial `\def`; this caused problems
for `\def` nested inside another `\def`.
+ Implement `\newif`.
* ConTeXt writer: improve ordered lists (#5016, Denis Maier).
Change ordered list from itemize to enumerate. Add new
itemgroup for ordered lists. Remove manual insertion of
width attributes. Use tabular figures in ordered list
enumerators.
* HTML reader:
+ Don't fail on unmatched closing "script" tag (Albert Krenkel, #7282).
+ Keep h1 tags as normal headers (#2293, Albert Krewinkel).
The tags `<title>` and `<h1 class="title">` often contain the same
information, so the latter was dropped from the document. However, as
this can lead to loss of information, the heading is now always
retained. Use `--shift-heading-level-by=-1` to turn the `<h1>`
into the document title, or a filter to restore the previous behavior.
+ Handle relative lengths (e.g. `2*`) in HTML column widths (#4063).
See <https://www.w3.org/TR/html4/types.html#h-6.6>.
* DocBook/JATS readers:
+ Fix mathml regression caused by the switch in XML libraries (#7173).
+ Fix "phrase" in DocBook: take classes from "role" not "class" (#7195).
* DocBook reader: ensure that first and last names are separated (#6541).
* Jira reader (Albert Krewinkel, #7218):
+ Support "smart" links: `[alias|https://example.com|smart-card]` syntax.
+ Allow spaces and most unicode characters in attachment links.
+ No longer require a newline character after `{noformat}`.
+ Only allow URI path segment characters in bare links.
+ The `file:` schema is no longer allowed in bare links; these
rarely make sense.
* Plain writer: handle superscript unicode minus (#7276).
* LaTeX writer:
+ Better handling of line breaks in simple tables (#7272).
Now we also handle the case where they're embedded in other elements,
e.g. spans.
+ For beamer output, support `exampleblock` and `alertblock` (#7278).
A block will be rendered as an `exampleblock` if the heading
has class `example` and an `alertblock` if it has class `alert`.
+ Separate successive quote chars with thin space (#6958,
Albert Krewinkel). Successive quote characters are separated with
a thin space to improve readability and to prevent unwanted ligatures.
Detection of these quotes sometimes had failed if the second quote
was nested in a span element.
+ Separate successive quote chars with thin space (#6958, Albert
Krewinkel).
* EPUB Writer: Fix belongs-to-collection XML id choice (#7267, nuew).
The epub writer previously used the same XML id for both the book
identifier and the epub collection. This causes an error on epubcheck.
* BibTeX/BibLaTeX writer: Handle `annote` field (#7266).
* ZimWiki writer: allow links and emphasis in headers (#6605,
Albert Krewinkel).
* ConTeXt writer:
+ Support blank lines in line blocks (#6564, Albert Krewinkel,
thanks to @denismaier).
+ Use span identifiers as reference anchors (#7246, Albert Krewinkel).
* HTML writer:
+ Keep attributes from code nested below `pre` tag (#7221,
Albert Krewinkel). If a code block is defined with `<pre><code
class="language-x">…</code></pre>`, where the `<pre>` element has no
attributes, then the attributes from the `<code>` element are used
instead. Any leading `language-` prefix is dropped in the code's
`class` attribute are dropped to improve syntax highlighting.
+ Ensure headings only have valid attribs in HTML4 (#5944, Albert
Krewinkel).
+ Parse `<header>` as a Div (Albert Krewinkel).
* Org writer:
+ Inline latex envs need newlines (#7252, tecosaur).
As specified in https://orgmode.org/manual/LaTeX-fragments.html, an
inline \begin{}...\end{} LaTeX block must start on a new line.
+ Use LaTeX style maths deliminators (#7196, tecosaur).
* JATS writer (Albert Krewinkel):
+ Use either styled-content or named-content for spans (#7211).
If the element has a content-type attribute, or at least one class,
then that value is used as `content-type` and the span is put inside
a `<named-content>` element. Otherwise a `<styled-content>` element
is used instead.
+ Reduce unnecessary use of `<p>` elements for wrapping (#7227).
The `<p>` element is used for wrapping in cases were the contents
would otherwise not be allowed in a certain context. Unnecessary
wrapping is avoided, especially around quotes (`<disp-quote>` elements).
+ Convert spans to `<named-content>` elements (#7211). Spans with
attributes are converted to `<named-content>` elements instead of
being wrapped with `<milestone-start/>` and `<milestone-end>`
elements. Milestone elements are not allowed in documents using the
articleauthoring tag set, so this change ensures the creation of valid
documents.
+ Add footnote number as label in backmatter (#7210). Footnotes in the
backmatter are given the footnote's number as a label. The
articleauthoring output is unaffected from this change, as footnotes
are placed inline there.
+ Escape disallows chars in identifiers. XML identifiers must start
with an underscore or letter, and can contain only a limited set
of punctuation characters. Any IDs not adhering to these rules are
rewritten by writing the offending characters as `Uxxxx`,
where `xxxx` is the character's hex code.
* Jira writer: use `{color}` when span has a color attribute
(Albert Krewinkel, tarleb/jira-wiki-markup#10).
* Docx writer:
+ Autoset table width if no column has an explicit width (Albert
Krewinkel).
+ Extract Table handling into separate module (Albert Krewinkel).
+ Support colspans and rowspans in tables (Albert Krewinkel, #6315).
+ Support multirow table headers (Albert Krewinkel).
+ Improve integration of settings from reference.docx (#1209).
This change allows users to create a reference.docx that
sets `w:proofState` for spelling or grammar to `dirty`,
so that spell/grammar checking will be triggered on the
generated docx.
+ Copy over more settings from reference.docx (#7240). From settings.xml
in the reference-doc, we now include: `zoom`, `embedSystemFonts`,
`doNotTrackMoves`, `defaultTabStop`, `drawingGridHorizontalSpacing`,
`drawingGridVerticalSpacing`, `displayHorizontalDrawingGridEvery`,
`displayVerticalDrawingGridEvery`, `characterSpacingControl`,
`savePreviewPicture`, `mathPr`, `themeFontLang`, `decimalSymbol`,
`listSeparator`, `autoHyphenation`, `compat`.
+ Set zoom to 100% by default in settings.xml.
+ Align math options more with current Word defaults (e.g. Cambria Math
font).
+ Remove `rsid`s from default settings.xml. Word will add these
when revisions are made.
* Ms writer: Handle tables with multiple paragraphs (#7288).
Previously they overflowed the table cell width. We now set line lengths
per-cell and restore them after the table has been written.
* Markdown writer:
+ Use cleaner braceless syntax for code blocks with a
single class (#7242, Jan Tojnar).
+ Add quotes properly in markdown YAML metadata fields (#7245).
This fixes a bug, which caused the writer to look at the *last*
rather than the *first* character in determining whether quotes
were needed. So we got spurious quotes in some cases and
didn't get necessary quotes in others.
+ Use `@{..}` syntax for citations when needed.
+ Use fewer unneeded escapes for `#` (see #6259).
+ Improve escaping of `@`. We need to escape literal `@` before
`{` because of the new citation syntax.
* Commonmark writer: Use backslash escapes for `<` and `|`...
instead of entities (#7208).
* Powerpoint writer: allow `monofont` to be specified in metadata
(#7187).
* LaTeX template:
+ Use non-starred names for xcolor color names (#6109).
This should make svgnames and x11names work properly.
+ Fix bad vertical spacing after bibliography (#7234, badumont).
+ List of figures before list of tables (#7235, Julien Dutant).
+ Move CSL macro definitions before header-includes so they can be
overridden (#7286).
+ Improve treatment of CSL `entry-spacing` (#7296).
Previously with the default template settings (`indent` variable
not set), we would get interparagraph spaces separating bib
entries even with `entry-spacing="0"`. On the other hand,
setting `entry-spacing="2"` gave ridiculously large spacing.
This change makes the spacing caused by `entry-spacing` a multiple
of `\parskip` by default, which gives aesthetically reasonable
output. Those who want a larger or smaller unit (e.g. because
they use `indent` which sets `\parskip` to 0) may
`\setlength{\cslentryspacingunit}{10pt}` in header-includes
to override the defaults.
+ Move title, author, date up to top of preamble (#7295).
This allows header-includes to use them, and puts them
in a position where you can see them immediately.
+ Define commands for zero width non-joiner character
(#6639, Albert Krewinkel). The zero-width non-joiner character
is used to avoid ligatures (e.g. in German).
* ConTeXt template:
+ Define `enumerate` itemgroup (#5016, Denis Maier).
+ List of figures before list of tables (#7235, Julien Dutant).
* reveal.js template:
+ Support `toc-title` (#7171, Florian Kohrt).
+ Use `hash: true` by default rather than `history: true` (#6968).
* HTML-based slide shows: add support for `institute` (#7289, Thomas
Hodgson).
* Text.Pandoc.Extensions: Add constructor `Ext_rebase_relative_paths` to
`Extensions` [API change].
* Text.Pandoc.XML.Light: add Eq, Ord instances for Content,
Element, Attr, CDataKind [API change].
* Text.Pandoc.MediaBag:
+ Change type to use a `Text` key instead of `[FilePath]`.
We normalize the path and use `/` separators for consistency.
+ Export `MediaItem` type [API change].
+ Change `MediaBag` type to a map from Text to MediaItem [API change].
+ `lookupMedia` now returns a `MediaItem` [API change].
+ Change `insertMedia` so it sets the `mediaPath` to a filename based on
the SHA1 hash of the contents. This will be used when contents
are extracted.
* Text.Pandoc.Class.PandocMonad:
+ Remove `fetchMediaResource` [API change]. Use `fetchItem` to get
resources in `fillMediaBag`.
+ Add informational message in `downloadOrRead` indicating what path
local resources have been loaded from.
* Text.Pandoc.Logging:
+ Remove single quotes around paths in messages.
+ Add LoadedResource constructor to LogMessage [API change].
This is for INFO-level messages telling where image data has been
loaded from. (This can vary because of the resource path.)
* Text.Pandoc.Asciify: simplify code and export `toAsciiText` [API change].
Instead of encoding a giant (and incomplete) map, we now
just use unicode-transforms to normalize the text to
a canonical decomposition, and manipulate the result.
* App: allow tabs expansion even if file-scope is used (Albert Krewinkel,
#6709). Tabs in plain-text inputs are now handled correctly, even if
the `--file-scope` flag is used.
* Add new internal module Text.Pandoc.Writers.GridTable (Albert Krewinkel).
* Text.Pandoc.Highlighting: Change type of `languagesByExtension`, adding
a parameter for a `SyntaxMap` [API change] (Jan Tojnar, #7241).
Languages defined using `--syntax-definition` were not recognized by
`languagesByExtension`. This patch corrects that, allowing the writers
to see all custom definitions. The LaTeX writer still uses the default
syntax map, but that's okay in that context, since
`--syntax-definition` won't create new listings styles.
* Text.Pandoc.Citeproc:
+ Ensure that CSL-related attributes are passed on to a Div with id
'refs'. Otherwise things like `entry-spacing` won't work when
such Divs are used.
+ Use metadata's `lang` for the lang parameter of citeproc, overriding
`localeLanguage`.
+ Recognize locators spelled with a capital letter (#7323).
+ Add a comma and a space in front of the suffix if it doesn't start
with space or punctuation (#7324).
+ Don't detect math elements as locators (#7321).
* Remove Text.Pandoc.BCP47 module [API change]. Use types and functions
from UnicodeCollation.Lang instead. This is a richer implementation
of BCP 47.
* Text.Pandoc.Shared:
+ Fix regression in grid tables for wide characters (#7214).
In the translation from String to Text, a char-width-sensitive
`splitAt'` was dropped. This commit reinstates it and uses it to make
`splitTextByInstances` char-width sensitive.
+ Add `getLang` (formerly in the now-removed BCP47) [API change].
* Text.Pandoc.SelfContained: use `application/octet-stream`
for unknown mime types instead of halting with an error (#7202).
* Lua filters: respect Inlines/Blocks filter functions in `pandoc.walk_*`
(Albert Krewinkel).
* Add text as build-depend for trypandoc (#7193, Roman Beránek).
* Bump upper-bounds for network-uri, time, attoparsec.
* Use citeproc 0.4.
* Use texmath 0.12.3.
* Use jira-wiki-markup 1.3.5 (Albert Krewinkel).
* Require latest skylighting (fixes a bug in XML syntax highlighting).
* Use latest xml-conduit.
* Use latest commonmark, commonmark-extensions, commonmark-pandoc.
* Use haddock-library-1.10.0 (Albert Krewinkel).
* Allow compilation with base 4.15 (Albert Krewinkel).
* MANUAL:
+ Add information about `lang` and bibliography sorting.
+ Add info about YAML escape sequences, link to spec (#7152,
Albert Krewinkel).
+ Note that `institute` variable works for HTML-based slides.
+ Update documentation on citation syntax.
+ Add citation example for locators and suffixes (Tristan Stenner)
* Updated and fixed typos in documentation (Charanjit Singh,
Anti-Distinctlyminty, Tatiana Porras, obcat).
* Add instructions for installing pandoc-types before compiling filter.
* INSTALL: add note that parallel installations should be avoided
(#6865).
* Remove `biblatex-nussbaum.md` test. It is basically the same
as `biblaetx-quotes.md`.
* Command tests: fail if a file contains no tests---and fix a
test that failed in that way!
* Use smaller images in tests, reducing the size of the source tarball by 8 MB.
## pandoc 2.13 (2021-03-21)
* Support `yaml_metadata_block` extension for `commonmark`, `gfm` (#6537).
This supported is a bit more limited than with pandoc's
`markdown`. The YAML block must be the first thing in the input,
and the leaf notes are parsed in isolation from the rest of
the document. So, for example, you can't use reference
links if the references are defined later in the document.
* Fix fallback to default partials when custom templates are used.
If the directory containing a template does not contain the partial,
it should be sought in the default templates, but this was not
working properly (#7164).
* Handle `nocite` better with `--biblatex` and `--natbib` (#4585).
Previously the nocite metadata field was ignored with these formats.
Now it populates a `nocite-ids` template variable and causes a
`\nocite` command to be issued.
* Text.Pandoc.Citeproc: apply `fixLinks` correctly (#7130). This is code
that incorporates a prefix like `https://doi.org/` into a following link
when appropriate.
* Text.Pandoc.Shared:
+ Remove `backslashEscapes`, `escapeStringUsing` [API change]. Replace
these inefficient association list lookups with more efficient escaping
functions in the writers that used them (for a 10-25% performance boost
in org, haddock, rtf, texinfo writers).
+ Remove `ToString`, `ToText` typeclasses [API change]. These were needed
for the transition from String to Text, but they are no longer used and
may clash with other things.
+ Simplify `compactDL`.
* Text.Pandoc.Parsing:
+ Change type of `readWithM` so that it is no longer polymorphic
[API change]. The `ToText` class has been removed, and now that we've
completed the transition to Text we no longer need this to operate
on Strings.
+ Remove `F` type synonym [API change]. Muse and Org were defining their
own `F` anyway.
* Text.Pandoc.Readers.Metadata:
+ Export `yamlMetaBlock` [API change].
+ Make `yamlBsToMeta`, `yamlBsToRefs` polymorphic on the parser state
[API change].
* Markdown reader: Fix regression with `tex_math_backslash` (#7155).
* MediaWiki reader: Allow block-level content in notes (ref) (#7145).
* Jira reader (Albert Krewinkel):
+ Fixed parsing of autolinks (i.e., of bare URLs in the text).
Previously an autolink would take up the rest of a line, as spaces
were allowed characters in these items.
+ Emoji character sequences no longer cause parsing failures. This was
due to missing backtracking when emoji parsing fails.
+ Mark divs created from panels with class "panel".
* RST reader: fix logic for ending comments (#7134). Previously comments
sometimes got extended too far.
* DocBook writer: include Header attributes as XML attributes on
section (Erik Rask). Attributes with key names that are not allowed
as XML attributes are dropped, as are attributes with invalid values
and `xml:id` (DocBook 5) and `id` (DocBook 4).
* Docx writer:
+ Make `nsid` in `abstractNum` deterministic. Previously we assigned
a random number, but we don't need random values, so now we just
assign a value based on the list marker.
+ Use integral values for `w:tblW` (#7141).
* Jira writer (Albert Krewinkel):
+ Block quotes are only rendered as `bq.` if they do not contain a
linebreak.
+ Jira writer: improve div/panel handling. Include div attributes in
panels, always render divs with class `panel` as panels, and
avoid nesting of panels.
* HTML writer: Add warnings on duplicate attribute values.
This prevents emitting invalid HTML. Ultimately it would be good to
prevent this in the types themselves, but this is better for now.
* Org writer: Prevent unintended creation of ordered list items (#7132,
Albert Krewinkel). Adjust line wrapping if default wrapping would cause
a line to be read as an ordered list item.
* JATS templates: support 'equal-contrib' attrib for authors (Albert
Krewinkel). Authors who contributed equally to a paper may be marked
with `equal-contrib`.
* reveal.js template: replace JS comment with HTML (#7154, Florian Kohrt).
* Text.Pandoc.Logging: Add `DuplicateAttribute` constructor to `LogMessage`.
[API change]
* Use `-j4` for linux release build. This speeds up the build dramatically
on arm.
* cabal.project: remove ghcoptions. Move flags to top level, so they can
be set differently on the command line.
* Require latest texmath, skylighting, citeproc, jira-wiki-markup.
(The latest skylighting fixes a bad bug with Haskell syntax highlighting.)
Narrow version bounds for texmath, skylighting, and citeproc, since
the test output depend on them.
* Use doclayout 0.3.0.2. This significantly reduces the time and memory
needed to compile pandoc.
* Use `foldl'` instead of `foldl` everywhere.
* Update bounds for random (#7156, Alexey Kuleshevich).
* Remove uses of some partial functions.
* Don't bake in a larger stack size for the executable.
* Test improvements:
+ Use `getExecutablePath` from base, avoiding the dependency on
`executable-path`.
+ Factor out `setupEnvironment` in Helpers, to avoid code duplication.
+ Fix finding of data files by setting teh `pandoc_datadir` environment
variable when we shell out to pandoc. This avoids the need to use
`--data-dir` for the tests, which caused problems finding `pandoc.lua`
when compiling without the `embed_data_files` flag (#7163).
* Benchmark improvements:
+ Build `+RTS -A8m -RTS` into default ghc-options for benchmark.
This is necessary to get accurate benchmark results; otherwise we
are largely measuring garbage collecting, some not related to the
current benchmark.
+ Allow specifying BASELINE file in 'make bench' for comparison
(otherwise the latest benchmark is chosen by default).
+ Force `readFile` in benchmarks early (Bodigrim).
* CONTRIBUTING: suggest using a `cabal.project.local` file (#7153,
Albert Krewinkel).
* Add ghcid-test to Makefile. This loads the test suite in ghcid.
## pandoc 2.12 (2021-03-08)
* `--resource-path` now accumulates if specified multiple
times (#6152). Resource paths specified later on the command line are
prepended to those specified earlier. Thus,
`--resource-path foo --resource-path bar:baz` is equivalent to
`--resource-path bar:bas:foo`. (The previous behavior was
for the last `--resource-path` to replace all the rest.)
`resource-path` in defaults files behaves the same way: it
will be prepended to the resource path set by earlier
command line options or defaults files. This change
facilitates the use of multiple defaults files: each can
specify a directory containing resources it refers to
without clobbering the resource paths set by the others.
* Allow defaults files to refer to the home directory, the
user data directory, and the directory containing the defaults file
itself (#5871, #5982, #5977). In fields that expect file paths
(and only in these fields),
+ `${VARIABLE}` will expand to the value of the environment variable
`VARIABLE` (and in particular `${HOME}` will expand to the path
of the home directory). A warning will be raised for undefined
variables.
+ `${USERDATA}` will expand to the path of the user data
directory in force when the defaults file is being processed.
+ `${.}` will expand to the directory containing the defaults file.
(This allows default files to be placed in a directory containing
resources they make use of.)
* When downloading content from URL arguments, be sensitive to
the character encoding (#5600). We can properly handle UTF-8 and latin1
(ISO-8859-1); for others we raise an error. Fall back to latin1 if
no charset is given in the mime type and UTF-8 decoding fails.
* Allow abbreviations that don't end in a period to be
specified using `--abbreviations` (#7124).
* Add new unexported module Text.Pandoc.XML.Light, as well
as Text.Pandoc.XML.Light.Types, Text.Pantoc.XML.Light.Proc,
Text.Pandoc.XML.Light.Output. (Closes #6001, #6565, #7091).
This module exports definitions of `Element` and `Content`
that are isomorphic to xml-light's, but with Text
instead of String. This allows us to keep most of the code in existing
readers that use xml-light, but avoid lots of unnecessary allocation.
We also add versions of the functions from xml-light's
Text.XML.Light.Output and Text.XML.Light.Proc that operate on our
modified XML types, and functions that convert xml-light types to our
types (since some of our dependencies, like texmath, use xml-light).
We export functions that use xml-conduit's parser to produce an
`Element` or `[Content]`. This allows existing pandoc code to use
a better parser without much modification.
The new parser is used in all places where xml-light's parser was
previously used. Benchmarks show a significant performance improvement
in parsing XML-based formats (with docbook, opml, jats, and docx
almost twice as fast, odt and fb2 more than twice as fast).
In addition, the new parser gives us better error reporting than
xml-light. We report XML errors, when possible, using the new
`PandocXMLError` constructor in `PandocError`.
These changes revealed the need for some changes in the tests. The
docbook-reader.docbook test lacked definitions for the entities it used;
these have been added. And the docx golden tests have been updated,
because the new parser does not preserve the order of attributes.
* DocBook reader:
+ Avoid expensive tree normalization step, as it is not necessary
with the new XML parser.
+ Support `informalfigure` (#7079) (Nils Carlson).
* Docx reader:
+ Use Map instead of list for Namespaces. This gives a speedup of
about 5-10%. With this and the XML parsing changes, the docx reader
is now about twice as fast as in the previous release.
* HTML reader:
+ Small performance tweaks.
+ Also, remove exported class `NamedTag(..)` [API change]. This was just
intended to smooth over the transition from String to Text and is no
longer needed.
+ As a result, the functions `isInlineTag` and `isBlockTag`
are no longer polymorphic; they apply to a `Tag Text` [API change].
+ Do a lookahead to find the right parser to use. This takes
benchmarks from 34ms to 23ms, with less allocation.
+ Fix bad handling of empty `src` attribute in `iframe` (#7099).
If `src` is empty, we simply skip the `iframe`.
If `src` is invalid or cannot be fetched, we issue a warning
nd skip instead of failing with an error.
* JATS reader:
+ Avoid tree normalization, which is no longer necessary given the
new XML parser.
* LaTeX reader:
+ Don't export `tokenize`, `untokenize` [API change]. These are internal
implementation details, which were only exported for testing.
They don't belong in the public API.
+ Improved efficiency of the parser. With these changes the reader
is almost twice as fast as in the last release in our benchmarks.
+ Code cleanup, removing some unnecessary things.
+ Rewrite `withRaw` so it doesn't rely on fragile assumptions
about token positions (which break when macros are expanded)
(#7092). This requires the addition of `sEnableWithRaw` and
`sRawTokens` in `LaTeXState`, and a new combinator `disablingWithRaw`
to disable collecting of raw tokens in certain contexts.
Add `parseFromToks` to Text.Pandoc.Readers.LaTeX.Parsing.
Fix parsing of single character tokens so it doesn't mess
up the new raw token collecting. These changes slightly increase
allocations and have a small performance impact.
+ Handle some bibtex/biblatex-specific commands that used to be
dealt with in pandoc-citeproc (#7049).
+ Optimize `satisfyTok`, avoiding unnecessary macro expansion steps.
Benchmarks after this change show 2/3 of the run time and 2/3 of the
allocation of the Feb. 10 benchmarks.
+ Removed `sExpanded` in state. This isn't actually needed and checking
it doesn't change anything.
+ Improve `braced'`. Remove the parameter, have it parse the
opening brace, and make it more efficient.
+ Factor out pieces of the LaTeX reader to make the module smaller.
This reduces memory demands when compiling. Created
Text.Pandoc.Readers.{LaTeX,Math,Citation,Table,Macro,Inline}.
Changed Text.Pandoc.Readers.LaTeX.SIunitx to export a command map
instead of individual commands.
+ Handle table cells containing `&` in `\verb` (#7129).
* Make Text.Pandoc.Readers.LaTeX.Types an unexported module [API change].
* Markdown reader:
+ Improved handling of mmd link attributes in references (#7080).
Previously they only worked for links that had titles.
+ Improved efficiency of the parser (benchmarks show a 15% speedup).
* OPML reader:
+ Avoid tree normalization, which is no longer necessary with the
new XML parser.
* ODT reader:
+ Finer-grained errors on parse failure (#7091).
+ Give more information if the zip container can't be unpacked.
* Org reader:
+ Support `task_lists` extension (Albert Krewinkel, #6336).
+ Fix bug in org-ref citation parsing (Albert Krewinkel, #7101).
The org-ref syntax allows to list multiple citations separated by
comma. Previously commas were accepted as part of the citation id,
so all citation lists were parsed as one single citation.
* RST reader:
+ Use `getTimestamp` instead of `getCurrentTime` to fetch timestamp.
Setting `SOURCE_DATE_EPOCH` will allow reproducible builds.
+ RST reader: fix handling of header in CSV tables (#7064).
The interpretation of this line is not affected by the delim option.
* Jira reader:
+ Modified the Doc parser to skip leading blank lines. This fixes
parsing of documents which start with multiple blank lines (Albert
Krewinkel, #7095).
+ Prevent URLs within link aliases to be treated as autolinks (Albert
Krewinkel, #6944).
* Text.Pandoc.Shared
+ Remove formerly exported functions that are no longer used in the
code base: `splitByIndices`, `splitStringByIndicies`, `substitute`,
and `underlineSpan` (which had been deprecated in April 2020)
[API change].
+ Export `handleTaskListItem` (Albert Krewinkel) [API change].
+ Change `defaultUserDataDirs` to `defaultUserDataDir` [API
change]. We determine what is the default user data directory
by seeing whether the XDG directory and/or legacy
directory exist.
* BibTeX writer:
+ BibTeX writer: use doclayout and doctemplate. This change allows
bibtex/biblatex output to wrap as other formats do,
depending on the settings of `--wrap` and `--columns` (#7068).
* CSL JSON writer:
+ Output `[]` if no references in input, instead of raising a
PandocAppError as before.
* Docx writer:
+ Use `getTimestamp` instead of `getCurrentTime` for timestamp.
Setting `SOURCE_DATE_EPOCH` will allow reproducible builds.
* EPUB writer:
+ Use `getTimestamp` instead of `getCurrentTime` for timestamp.
Setting `SOURCE_DATE_EPOCH` will allow reproducible builds (#7093).
This does not suffice to fully enable reproducible in EPUB, since
a unique id is still being generated for each build.
+ Support `belongs-to-collection` metadata (#7063) (Nick Berendsen).
* JATS writer:
+ Escape special chars in reference elements (Albert Krewinkel).
Prevents the generation of invalid markup if a citation element
contains an ampersand or another character with a special meaning
in XML.
* Jira writer:
+ Use Span identifiers as anchors (Albert Krewinkel).
+ Use `{noformat}` instead of `{code}` for unknown languages (Albert
Krewinkel). Code blocks which are not marked as a language supported
by Jira are rendered as preformatted text via `{noformat}` blocks.
* LaTeX writer:
+ Adjust hypertargets to beginnings of paragraphs (#7078).
Use `\vadjust pre` so that the hypertarget takes you to the beginning
of the paragraph rather than one line down.
This makes a particular difference for links to citations using
`--citeproc` and `link-citations: true`.
+ Change BCP47 lang tag from `jp` to `ja` (Mauro Bieg, #7047).
+ Use function instead of map for accent lookup (should be
more efficient).
+ Split the module to make it easier to compile on low-memory
systems: added Text.Pandoc.Writers.LaTeX.{Util,Citation,Lang}.
* Markdown writer:
+ Handle math right before digit. We insert an HTML comment to
avoid a `$` right before a digit, which pandoc will not recognize
as a math delimiter.
+ Split the module to make it easier to compile on low-memory
systems: added Text.Pandoc.Writers.Markdown.{Types,Inline}.
* ODT writer:
+ Use `getTimestamp` instead of `getCurrentTime` for timestamp.
Setting `SOURCE_DATE_EPOCH` will allow reproducible builds.
+ Update default ODT style (Lorenzo). Previously, the "First paragraph"
style inherited from "Standard" but not from "Text body." Now
it is adjusted to inherit from "Text body", to avoid some ugly
spacing issues. It may be necessary to update a custom `reference.odt`
in light of this change.
* Org writer:
+ Support `task_lists` extension (Albert Krewinkel, #6336).
* Pptx writer:
+ Use `getTimestamp` instead of `getCurrentTime` for timestamp.
Setting `SOURCE_DATE_EPOCH` will allow reproducible builds.
* JATS templates: tag `author.name` as `string-name` (Albert Krewinkel).
The partitioning the components of a name into surname, given names,
etc. is not always possible or not available. Using `author.name`
allows to give the full name as a fallback to be used when
`author.surname` is not available.
* Add default templates for bibtex and biblatex, so that
the variables `header-include`, `include-before`, `include-after`
(or alternatively the command line options
`--include-in-header`, `--include-before-body`, `--include-after-body`)
may be used.
* LaTeX template:
+ Update to iftex package (#7073) (Andrew Dunning)
+ Wrap url colours in braces (#7121) (Loïc Grobol).
* revealjs template: Add 'center' option for vertical slide centering.
(maurerle, #7104).
* Text.Pandoc.XML: Improve efficiency of `fromEntities`.
* Text.Pandoc.MIME
+ Add exported function `getCharset` [API change].
* Text.Pandoc.UTF8: change IO functions to return Text, not String
[API change]. This affects `readFile`, `getContents`, `writeFileWith`,
`writeFile`, `putStrWith`, `putStr`, `putStrLnWith`, `putStrLn`.
`hPutStrWith`, `hPutStr`, `hPutStrLnWith`, `hPutStrLn`, `hGetContents`.
This avoids the need to uselessly create a linked list of characters
when emiting output.
* Text.Pandoc.App
+ Add `parseOptionsFromArgs` [API change, new exported function].
+ Add fields for CSL options to `Opt` [API change]:
`optCSL`, `optbibliography`, `optCitationAbbreviations`.
* Text.Pandoc.Citeproc.BibTeX
+ `Text.Pandoc.Citeproc.writeBibTeXString` now returns
`Doc Text` instead of `Text` (#7068).
+ Correctly handle `pages` (= `page` in CSL) (#7067).
+ Correctly handle BibLaTeX `langid` (= `language` in CSL, #7067).
+ In BibTeX output, protect foreign titles since there's no language
field (#7067).
+ Clean up BibTeX parsing (#7049). Previously there was a messy code
path that gave strange results in some cases, not passing through raw
tex but trying to extract a string content. This was an artefact of
trying to handle some special bibtex-specific commands in the BibTeX
reader. Now we just handle these in the LaTeX reader and simplify
parsing in the BibTeX reader. This does mean that more raw tex will
be passed through (and currently this is not sensitive to the
`raw_tex` extension; this should be fixed).
* Text.Pandoc.Citeproc.MetaValue
+ Correctly parse "raw" date value in markdown references metadata.
(See jgm/citeproc#53.)
* Text.Pandoc.Citeproc
+ Use https URLs for links (Salim B, #7122).
* Text.Pandoc.Class
+ Add `getTimestamp` [API change]. This attempts to read the
`SOURCE_DATE_EPOCH` environment variable and parse a UTC time
from it (treating it as a unix date stamp, see
https://reproducible-builds.org/specs/source-date-epoch/). If the
variable is not set or can't be parsed as a unix date stamp, then the
function returns the current date.
* Text.Pandoc.Error
+ Add `PandocUnsupportedCharsetError` constructor for
`PandocError` [API change].
+ Export `renderError` [API change].
+ Refactor `handleError` to use `renderError`. This allows us render
error messages without exiting.
* Text.Pandoc.Extensions
+ `Ext_task_lists` is now supported by org (and turned
on by default) (Albert Krewinkel, #6336).
+ Remove `Ext_fenced_code_attributes` from allowed commonmark attributes
(#7097). This attribute was listed as allowed, but it didn't actually
do anything. Use `attributes` for code attributes and more.
* Lua subsystem:
+ Always load built-in Lua scripts from default data-dir (Albert
Krewinkel). The Lua modules `pandoc` and `pandoc.List` are now always
loaded from the system's default data directory. Loading from a
different directory by overriding the default path, e.g. via
`--data-dir`, is no longer supported to avoid unexpected behavior
and to address security concerns.
+ Add module "pandoc.path" (Albert Krewinkel, #6001, #6565).
The module allows to work with file paths in a convenient and
platform-independent manner.
+ Use strict evaluation when retrieving AST value from the stack
(Albert Krewinkel, #6674).
* Text.Pandoc.PDF
+ Disable `smart` extension when building PDF via LaTeX.
This is to prevent accidental creation of ligatures like
`` ?` `` and `` !` `` (especially in languages with quotations like
German), and similar ligature issues. (See jgm/citeproc#54.)
* Text.Pandoc.CSV:
+ Fix parsing of unquoted values (#7112). Previously we didn't allow
unescaped quotes in unquoted values, but they are allowed
in CSV.
* Test suite:
+ Use a more robust method for testing the executable. Many
of our tests require running the pandoc executable. This
is problematic for a few different reasons. First,
cabal-install will sometimes run the test suite after
building the library but before building the executable,
which means the executable isn't in place for the tests.
One can work around that by first building, then building
and running the tests, but that's fragile. Second, we
have to find the executable. So far, we've done that using
a function `findPandoc` that attempts to locate it
relative to the test executable (which can be located
using findExecutablePath). But the logic here is delicate
and work with every combination of options. To solve both
problems, we add an `--emulate` option to the
`test-pandoc` executable. When `--emulate` occurs as the
first argument passed to `test-pandoc`, the program simply
emulates the regular pandoc executable, using the rest of
the arguments (after `--emulate`). Thus, `test-pandoc
--emulate -f markdown -t latex` is just like `pandoc -f
markdown -t latex`. Since all the work is done by library
functions, implementing this emulation just takes a couple
lines of code and should be entirely reliable. With this
change, we can test the pandoc executable by running the
test program itself (locatable using `findExecutablePath`)
with the `--emulate` option. This removes the need for the
fragile `findPandoc` step, and it means we can run our
integration tests even when we're just building the
library, not the executable. [Note: part of this change
involved simplifying some complex handling to set
environment variables for dynamic library paths. I have
tested a build with `--enable-dynamic-executable`, and it
works, but further testing may be needed.]
+ Print accurate location if a test fails (Albert
Krewinkel). Ensures that tasty-hunit reports the location
of the failing test instead of the location of the helper
`test` function.
* Documentation: Update URLs and use `https` where possible (#7122,
Salim B).
* Add `doc/libraries.md`, a description of libraries that support pandoc.
* MANUAL.txt
+ MANUAL: block-level formatting is not allowed in line blocks (#7107).
+ Clarify `tex_math_dollars` extension. Note that no blank lines
are allowed between the delimiters in display math.
+ Add MANUAL section on reproducible builds.
+ Document no template fallback for absolute path (#7077, Nixon
Enraght-Moony.)
+ Improve docs for cite-method.
+ Update README and man page.
* Makefile: in `make bench`, create CSV files for comparison and compare
against previous benchmark run. Add timestamp to CSV filenames.
* cabal.project: don't explicitly set -trypandoc.
If we do, this can't be overridden on the cabal command line.
* doc/lua-filters.md: improve documentation for
`pandoc.mediabag.insert`, `pandoc.mediabag.fetch`,
`directory`, `normalize` (Albert Krewinkel).
* Allow base64-bytestring-1.2.* (Dmitrii Kovanikov)
* Require jira-wiki-markup 1.3.3 (Albert Krewinkel)
* Require citeproc 0.3.0.8, which correctly titlecases when titles
contain non-ASCII characters.
* Use skylighting 0.10.4. This version of skylighting uses xml-conduit
rather than hxt. This speeds up parsing of XML syntax definitions
fourfold, and removes four packages from pandoc's dependency graph:
hxt-charproperties, hxt-unicode, hxt-regex-xmlschema, hxt.
* Add script `tools/parseTimings.pl` to help pin down which
modules take the most time and memory to compile.
* Avoid unnecessary use of NoImplicitPrelude pragma (#7089) (Albert
Krewinkel)
* Benchmarks
+ Use the lighter-weight tasty-bench instead of criterion.
+ Run writer benchmarks for binary formats too.
+ Alphabetize benchmarks.
+ Don't run benchmarks for bibliography formats
(yet; we need a special input for them).
+ Show allocation data
+ Clean up benchmark code.
+ Allow specifying patterns using `-p blah'.
* trypandoc: add 2 second timeout.
* Use `-split-sections` in creating linux release binary.
This reduces executable size significantly (by about 30%).
* Remove `weigh-pandoc`. It's not really useful any more, now that our
regular benchmarks include data on allocation.
* Improve linux package build process and add script to
automate building an arm64 binary package.
## pandoc 2.11.4 (2021-01-22)
* Add `biblatex`, `bibtex` as output formats (closes #7040).
* Recognize more extensions as markdown by default (#7034):
`mkdn`, `mkd`, `mdwn`, `mdown`, `Rmd`.
* Implement defaults file inheritance (#6924, David Martschenko).
Allow defaults files to inherit options from other defaults files by
specifying them with the following syntax:
`defaults: [list of defaults files or single defaults file]`.
* Fix infinite HTTP requests when writing epubs from URL source (#7013).
Due to a bug in code added to avoid overwriting the cover image
if it had the form `fileX.YYY`, pandoc made an endless sequence
of HTTP requests when writing epub with input from a URL.
* Org reader:
+ Allow multiple pipe chars in todo sequences (Albert Krewinkel, #7014).
Additional pipe chars, used to separate "action" state from "no further
action" states, are ignored. E.g., for the following sequence, both
`DONE` and `FINISHED` are states with no further action required:
`#+TODO: UNFINISHED | DONE | FINISHED`.
+ Restructure output of captioned code blocks (Albert Krewinkel, #6977).
The Div wrapper of code blocks with captions now has the class
"captioned-content". The caption itself is added as a Plain block
inside a Div of class "caption". This makes it easier to write filters
which match on captioned code blocks. Existing filters will need to be
updated.
+ Mark verbatim code with class `verbatim` (Dimitri Sabadie, #6998).
* LaTeX reader:
+ Handle `filecontents` environment (#7003).
+ Put contents of unknown environments in a Div when `raw_tex` is not
enabled (#6997). (When `raw_tex` is enabled, the whole environment is
parsed as a raw block.) The class name is the name of the environment.
Previously, we just included the contents without the surrounding Div,
but having a record of the environment's boundaries and name can be
useful.
* Mediawiki reader:
+ Allow space around storng/emph delimiters (#6993).
* New module Text.Pandoc.Writers.BibTeX, exporting
writeBibTeX and writeBibLaTeX. [API change]
* LaTeX writer:
+ Revert table line height increase in 2.11.3 (#6996).
In 2.11.3 we started adding `\addlinespace`, which produced less dense
tables. This wasn't an intentional change; I misunderstood a comment in
the discussion leading up to the change. This commit restores the earlier
default table appearance. Note that if you want a less dense table, you
can use something like `\def\arraystretch{1.5}` in your header.
* EPUB writer:
+ Adjust internal links to identifiers defined in raw HTML sections
after splitting into chapters (#7000).
+ Recognize `Format "html4"`, `Format "html5"` as raw HTML.
+ Adjust internal links to images, links, and tables after splitting into
chapters. Previously we only did this for Div and Span and Header
elements (see #7000).
* Ms writer:
+ Don't justify text inside table cells.
* JATS writer:
+ Use `<element-citation>` if `element_citations`
extension is enabled (Albert Krewinkel).
+ Fix citations (Albert Krewinkel, #7018). By default
we use formatted citations.
+ Ensure that `<disp-quote>` is always wrapped in `<p>` (#7041).
* Markdown writer:
+ Cleaned up raw formats. We now react appropriately
to `gfm`, `commonmark`, and `commonmark_x` as raw formats.
* RST writer:
+ Fix bug with dropped content from inside spans with a class in
some cases (#7039).
* Docx writer:
+ Handle table header using styles (#7008). Instead of hard-coding
the border and header cell vertical alignment, we now let this
be determined by the Table style, making use of Word's
"conditional formatting" for the table's first row. For
headerless tables, we use the tblLook element to tell Word
not to apply conditional first-row formatting.
* Commonmark writer:
+ Implement start number on ordered lists (#7009). Previously they always
started at 1, but according to the spec the start number is respected.
* HTML writer:
+ Fix implicit_figure at end of footnotes (#7006).
* ConTeXt template: Remove `\setupthinrules` from default template.
The width parameter this used is not actually supported,
and the command didn't do anything.
* Text.Pandoc.Extensions:
+ Add `Ext_element_citations` constructor (Albert Krewinkel).
* Text.Pandoc.Citeproc.BibTeX: New unexported function
`writeBibtexString`.
* Text.Pandoc.Citeproc:
+ Use finer grained imports (Albert Krewinkel).
+ Factor out and export `getStyle` [API change].
+ Export `getReferences` [API change, #7106].
+ Factor out getLang.
* Text.Pandoc.Parsing: modify `gridTableWith'` for headerless tables.
If the table lacks a header, the header row should be an empty
list. Previously we got a list of empty cells, which caused
an empty header to be emitted instead of no header. In LaTeX/PDF
output that meant we got a double top line with space between.
* ImageSize: use `viewBox` for SVG if no length, width attributes (#7045).
This change allows pandoc to extract size information from more SVGs.
* Add simple default.nix.
* Use commonmark 0.1.1.3.
* Use citeproc 0.3.0.5.
* Update default CSL to use latest chicago-author-date.csl.
* CONTRIBUTING.md: add note on GNU xargs.
* MANUAL.txt:
+ Update description of `-L`/`--lua-filter`.
+ Document use of citations in note styles (#6828).
## pandoc 2.11.3.2 (2020-12-29)
* HTML reader: use renderTags' from Text.Pandoc.Shared (Albert Krewinkel).
A side effect of this change is that empty `<col>` elements are written
as self-closing tags in raw HTML blocks.
* Asciidoc writer: Add support for writing nested tables (#6972, timo-a).
Asciidoc supports one level of nesting. If deeper tables are to be
written, they are omitted and a warning is issued.
* Docx writer: fix nested tables with captions (#6983).
Previously we got unreadable content, because docx seems
to want a `<w:p>` element (even an empty one) at the end of
every table cell.
* Powerpoint writer: allow arbitrary OOXML in raw inline elements
(Albert Krewinkel). The raw text is now included verbatim in the
output. Previously is was parsed into XML elements, which prevented
the inclusion of partial XML snippets.
* LaTeX writer: support colspans and rowspans in tables (#6950,
Albert Krewinkel). Note that the multirow package is needed for
rowspans. It is included in the latex template under a variable,
so that it won't be used unless needed for a table.
* HTML writer: don't include p tags in CSL bibliography entries
(#6966). Fixes a regression in 2.11.3.
* Add `meta-description` variable to HTML templates (#6982). This
is populated by the writer by stringifying the `description`
field of metadata (Jerry Sky). The `description` meta tag will
make the generated HTML documents more complete and SEO-friendly.
* Citeproc: fix handling of empty URL variables (`DOI`, etc.).
The `linkifyVariables` function was changing these to links
which then got treated as non-empty by citeproc, leading
to wrong results (e.g. ignoring nonempty URL when empty DOI is present).
See jgm/citeproc#41.
* Use citeproc 0.3.0.3. Fixes an issue in author-only citations when
both an author and translator are present, and an issue with
citation group delimiters.
* Require texmath 0.12.1. This improves siunitx support in math,
fixes bugs with `\*mod` family operators and arrays, and avoids
italicizing symbols and operator names in docx output.
* Ensure that the perl interpreter used for filters with `.pl`
extension (wuffi).
* MANUAL: note that textarea content is never parsed as Markdown
(Albert Krewinkel).
## pandoc 2.11.3.1 (2020-12-18)
* Added some missing files to extra-source-files and data
files, so they are included in the sdist tarball. Closes #6961.
Cleaned up some extraneous data and test files, and added
a CI check to ensure that the test and data files included
in the sdist match what is in the git repository.
* Use citeproc 0.3.0.1, which avoids removing nonbreaking
space at the end of the `initialize-with` attribute. (Some
journals require nonbreaking space after initials, and this
makes that possible.)
## pandoc 2.11.3 (2020-12-17)
* With `--bibliography` (or `bibliography` in metadata), a
URL may now be provided, and pandoc will fetch the resource.
In addition, if a file path is provided and it is not
found relative to the working directory, the resource
path will be searched (#6940).
* Add `sourcepos` extension for `commonmark`, `gfm`, `commonmark_x`
(#4565). With the `sourcepos` extension set set, `data-pos`
attributes are added to the AST by the commonmark reader. No other
readers are affected. The `data-pos` attributes are put on elements
that accept attributes; for other elements, an enlosing Div or Span
is added to hold the attributes.
* Change extensions for `commonmark_x`: replace `auto_identifiers`
with `gfm_auto_identifiers` (#6863). `commonmark_x` never actually
supported `auto_identifiers` (it didn't do anything), because the
underlying library implements gfm-style identifiers only. Attempts
to add the `auto_identifiers` extension to `commonmark` will now
fail with an error.
* HTML reader:
+ Split module into several submodules (Albert Krewinkel). Reducing
module size should reduce memory use during compilation.
+ Support advanced table features (Albert Krewinkel):
block level content in captions, row and colspans,
body headers, row head columns, footers, attributes.
+ Disable round-trip testing for tables. Information for cell
alignment in a column is not preserved during round-trips (Albert
Krewinkel).
+ Allow finer grained options for tag omission (Albert Krewinkel).
+ Simplify list attribute handling (Albert Krewinkel).
+ Pay attention to `lang` attributes on body element (#6938).
These (as well as `lang` attributes on the html element) should update
lang in metadata.
+ Retain attribute prefixes and avoid duplicates (#6938).
Previously we stripped attribute prefixes, reading `xml:lang` as
`lang` for example. This resulted in two duplicate `lang`
attributes when `xml:lang` and `lang` were both used. This commit
causes the prefixes to be retained, and also avoids invald
duplicate attributes.
* Commonmark reader:
+ Refactor `specFor`.
+ Set input name to `""` to avoid clutter in sourcepos output.
* Org reader:
+ Parse `#+LANGUAGE` into `lang` metadata field (#6845, Albert
Krewinkel).
+ Preserve targets of spurious links (#6916, Albert
Krewinkel). Links with (internal) targets that the reader doesn't
know about are converted into emphasized text. Information on the
link target is now preserved by wrapping the text in a Span of class
`spurious-link`, with an attribute `target` set to the link's
original target. This allows to recover and fix broken or unknown
links with filters.
* DocBook reader:
+ Table text width support (#6791, Nils Carlson).
Table width in relation to text width is not natively supported
by docbook but is by the docbook `fo` stylesheets through an XML
processing instruction, `<?dbfo table-width="50%"?>`.
* LaTeX reader:
+ Improve parsing of command options (#6869, #6873).
In cases where we run into trouble parsing inlines til the
closing `]`, e.g. quotes, we return a plain string with the
option contents. Previously we mistakenly included the brackets
in this string.
+ Preserve center environment (#6852, Igor Pashev).
The contents of the `center` environment are put in a `Div`
with class `center`.
+ Don't parse `\rule` with width 0 as horizontal rule. These are
sometimes used as spacers in LaTeX.
+ Don't apply theorem default styling to a figure inside (#6925).
If we put an image in italics, then when rendering to Markdown
we no longer get an implicit figure.
* Dokuwiki reader:
+ Handle unknown interwiki links better (#6932).
DokuWiki lets the user define his own Interwiki links. Previously
pandoc reacted to these by emitting a google search link, which is
not helpful. Instead, we now just emit the full URL including the
wikilink prefix, e.g. `faquk>FAQ-mathml`. This at least gives users
the ability to modify the links using filters.
* Markdown writer:
+ Properly handle boolean values in writing YAML metadata (#6388).
+ Ensure that a new csl-block begins on a new line (#6921).
This just looks better and doesn't affect the semantics.
* RST writer:
+ Better image handling (#6948). An image alone in its paragraph
(but not a figure) is now rendered as an independent image, with an
`alt` attribute if a description is supplied. An inline image that
is not alone in its paragraph will be rendered, as before, using a
substitution. Such an image cannot have a "center", "left", or
"right" alignment, so the classes `align-center`, `align-left`, or
`align-right` are ignored. However, `align-top`, `align-middle`,
`align-bottom` will generate a corresponding `align` attribute.
* Docx writer:
+ Keep raw openxml strings verbatim (#6933, Albert Krewinkel).
+ Use Content instead of Element. This allows us to inject
raw OpenXML into the document without reparsing it into an
Element, which is necessary if you want to inject an open
tag or close tag.
+ Fix bullets/lists indentation, so that the first level is slightly
indented to the right instead of right on the margin (cholonam).
+ Support bold and italic in "complex script" (#6911).
Previously bold and italics didn't work properly in LTR
text. This commit causes the w:bCs and w:iCs attributes
to be used, in addition to w:b and w:i, for bold and
italics respectively.
* ICML writer:
+ Fix image bounding box for custom widths/heighta (Mauro Bieg, #6936).
* LaTeX writer:
+ Improve table spacing (#6842, #6860).
Remove the `\strut` that was added at the end of minipage
environments in cells. Replace `\tabularnewline` with
`\\ \addlinespace`.
+ Improve calculation of column spacing (#6883).
+ Extract table handling into separate module (Albert Krewinkel).
+ Fix bug with nested `csl-` display Spans (#6921).
+ Improve longtable output (#6883). Don't create minipages for
regular paragraphs. Put width and alignment information in the
longtable column descriptors.
* OpenDocument writer:
+ Support for table width as a percentage of text width
(#6792, Nils Carson).
+ Implement Div and Span ident support (#6755, Nils Carson).
Spans and Divs containing an ident in the Attr will become bookmarks
or sections with idents in OpenDocument format.
+ Add two extensions, `xrefs_name` and `xrefs_number` (#6774, Nils
Carlson). Links to headings, figures and tables inside the
document are substituted with cross-references that will use the
name or caption of the referenced item for `xrefs_name` or the
number for `xrefs_number`. For the `xrefs_number` to be useful
heading numbers must be enabled in the generated document and
table and figure captions must be enabled using for example the
`native_numbering` extension. In order for numbers and reference
text to be updated the generated document must be refreshed.
* JATS writer:
+ Support advanced table features (Albert Krewinkel).
+ Support author affiliations (#6687, Albert Krewinkel).
* Docbook writer:
+ Use correct id attribute consistently (Jan Tojnar).
DocBook5 should always use `xml:id` instead of `id`.
+ Handle admonition titles better (Jan Tojnar).
Docbook reader produces a `Div` with `title` class for `<title>`
element within an “admonition” element. Markdown writer then turns
this into a fenced div with `title` class attribute. Since fenced
divs are block elements, their content is recognized as a
paragraph by the Markdown reader. This is an issue for Docbook
writer because it would produce an invalid DocBook document from
such AST – the `<title>` element can only contain “inline”
elements. Handle this special case separately by unwrapping
the paragraph before creating the `<title>` element.
+ Add XML namespaces to top-level elements (#6923, Jan Tojnar).
Previously, we only added `xmlns` attributes to chapter
elements, even when running with `--top-level-division=section`.
These namespaces are now added to part and section elements too,
when they are the selected top-level divisions.
We do not need to add namespaces to documents produced with
`--standalone` flag, since those will already have xmlns attribute on
the root element in the template.
* HTML writer:
+ Fix handling of nested `csl-` display spans (#6921).
Previously inner Spans used to represent CSL display attributes were
not rendered as div tags as intended.
* EPUB writer:
+ Include title page in landmarks (#6919).
Note that the toc is also included if `--toc` is specified.
+ Add frontmatter type on body element for nav.xhtml (#6918).
* EPUB templates: use preserveAspectRatio="xMidYMid" for cover image (#6895,
Shin Sang-jae). This change affects both the epub2 and the epub3
templates. It avoids distortion of the cover image by requiring that the
aspect ratio be preserved.
* LaTeX template:
+ Include `csquotes` package if `csquotes` variable set.
+ Put back `amssymb`. We need it for checkboxes in todo lists,
and maybe for other things. In this location it seems compatible
with the cases that prompted #6469 and PR #6762.
+ Disable language-specific shorthands in babel (#6817, #6887).
Babel defines "shorthands" for some languages, and these can
produce unexpected results. For example, in Spanish, `1.22`
gets rendered as `122`, and `et~al.` as `etal`.
One would think that babel's `shorthands=off` option (which
we were using) would disable these, but it doesn't. So we
remove `shorthands=off` and add some code that redefines
the shorthands macro. Eventually this will be fixed in babel,
I hope, and we can revert to something simpler.
* JATS template: allow array of persistent institute ids in `pid`
(Albert Krewinkel).
* Text.Pandoc.Parsing: minor code and efficiency improvements.
* Text.Pandoc.Extension:
+ Add `Ext_sourcepos` constructor for `Extension` [API change].
+ Add `Ext_xrefs_name` and `Ext_xrefs_number` constructors for
`Extension` (Nils Carson) [API change].
* Text.Pandoc.Citeproc:
+ Fix truncation of `[Citation]` list in `Cite` inside footnotes (#6890).
This affected author-in-text citations in footnotes. It didn't cause
problems for the printed output, but for filters that expected the
citation id and other information.
+ Allow the use of both inline and external references (#6951),
as with pandoc-citeproc. References defined in the document's
metadata take priority over references with the same id defined in
an external bibliography.
+ Use `fetchItem` to get external bibliography (#6940).
+ Ensure that BCP47 lang codes can be used. We ignore the variants
and just use the base lang code and country code when passing off
to citeproc.
+ Citeproc BibTeX parser: revert change in `getRawField`
which was made (for reasons forgotten) when transferring
this code from pandoc-citeproc. The change led to `--` in
URLs being interpreted as en-dashes, which is unwanted (#6874).
* Text.Pandoc.ImageSize:
+ Default to DPI 72 if the format specifies DPI of 0 (#6880).
This shouldn't happen, in general, but it can happen with
JPEGs that don't conform to the spec. Having a DPI of 0
will blow up size calculations (division by 0).
+ ImageSize: use JuicyPixels to determine size for png, jpeg, and
gif, instead of doing our own binary parsing (#6936). This
gives more reliable results.
* Text.Pandoc.CSS:
+ Remove `foldOrElse` (internal module) (Albert Krewinkel).
* Use skylighting 0.10.2 (#6625).
* Use citeproc 0.3. This fixes issues with references with
duplicate ids (jgm/citeproc#36).
* Use doctemplates 0.9. This fixes issues with boolean
metadata values in the Markdown writer (#6388)
and in `meta-json` (#6650). It also fixes
issues with nested for loops in templates.
* Add translations zh-Hans.yaml and zh-Hant.yaml (#6904, #6909,
Kolen Cheung, taotieren).
* Add tests: True to cabal.project.
This fixes some CI failures for cabal.
* Normalize test/tables/*.native (#6888, Kolen Cheung).
* Move executable to `app` directory to avoid problems with cabal repl.
* CONTRIBUTING: add section "How can I help?" (#6892, Albert Krewinkel).
Also adds a paragraph aimed at highlighting the importance of feature
maintenance.
* MANUAL: Document that --number-sections works in `ms` (#6935).
## pandoc 2.11.2 (2020-11-19)
* Default to using ATX (`##`-style) headings for Markdown output
(#6662, Aner Lucero). Previously we used Setext (underlined) headings
by default for levels 1--2.
* Add option `--markdown-headings=atx|setext`, and deprecate
`--atx-headers` (#6662, Aner Lucero).
* Support `markdown-headings` in defaults files.
* Fix corner case in YAML metadata parsing (#6823). Previously YAML
metadata would sometimes not get recognized if a field ended with a
newline followed by spaces.
* `--self-contained`: increase coverage (#6854).
Previously we only self-contained attributes for certain tag names
(`img`, `embed`, `video`, `input`, `audio`, `source`, `track`,
`section`). Now we self-contain any occurrence of `src`,
`data-src`, `poster`, or `data-background-image`, on any tag; and
also `href` on `link` tags.
* Markdown reader:
+ Fix detection of locators following in-text citations.
Prevously, if we had `@foo [p. 33; @bar]`, the `p. 33` would be
incorrectly parsed as a prefix of `@bar` rather than a suffix of
`@foo`.
+ Improve period suppression algorithm for citations in notes
in note citation styles (#6835).
+ Don't increment `stateNoteNumber` for example list references.
This helps with #6836 (a bug in which example list references
disturb calculation of citation note number and affect when
`ibid` is triggered).
* LaTeX reader:
+ Move `getNextNumber` from Readers.LaTeX to Readers.LaTeX.Parsing.
+ Fix negative numbers in siunitx commands. A change in pandoc 2.11
broke negative numbers, e.g. `\SI{-33}{\celcius}` or `\num{-3}`.
This fixes the regression.
* DocBook reader: drop period in formalpara title
and put it in a div with class `formalpara-title`, so that
people can reformat with filters (#6562).
* Man reader: improve handling of `.IP` (#6858). We now better handle
`.IP` when it is used with non-bullet, non-numbered lists, creating a
definition list. We also skip blank lines like groff itself.
* Bibtex reader: fall back on `en-US` if locale for LANG not found.
This reproduces earlier pandoc-citeproc behavior (jgm/citeproc#26).
* JATS writer:
+ Wrap all tables (Albert Krewinkel).
All `<table>` elements are put inside `<table-wrap>` elements, as the
former are not valid as immediate child elements of `<body>`.
+ Move Table handling to separate module (Albert Krewinkel).
Adds two new unexported modules:
Text.Pandoc.Writers.JATS.Types, Text.Pandoc.Writers.JATS.Table.
* Org writer:
+ Replace org #+KEYWORDS with #+keywords (TEC).
As of ~2 years ago, lower case keywords became the standard (though
they are handled case insensitive, as always).
+ Update org supported languages and identifiers according to the
current list contained in
<https://orgmode.org/worg/org-contrib/babel/languages/index.html>
(TEC).
* Only use `filterIpynbOutput` if input format is ipynb (#6841).
Before this change content could go missing from divs with class
`output`, even when non-ipynb was being converted.
* When checking reader/writer name, check base name now that we permit
extensions on formats other than markdown.
* Text.Pandoc.PDF: Fix `changePathSeparators` for Windows (#6173).
Previously a path beginning with a drive, like `C:\foo\bar`, was
translated to `C:\/foo/bar`, which caused problems.
With this fix, the backslashes are removed.
* Text.Pandoc.Logging:
+ Add constructor `ATXHeadingInLHS` to `LogMessage` [API change].
+ Add constructor `EnvironmentVariableUndefined` to
`LogMessage` [API change].
* Fix error that is given when people specify `doc` output (#6834,
gison93).
* LaTeX template: add a `\break` after parbox in `CSLRightInline`.
This should fix spacing problems between entries with numeric styles.
Also fix number of params on `CSLReferences`.
* reveal.js template: Put quotes around `controlsLayout`,
`controlsBackArrows`, and `display`, since these require strings.
Add `showSlideNumber`, `hashOneBasedIndex`, `pause`.
* Use citeproc 0.2. This fixes a bug with title case around parentheses.
* pandoc.cabal: remove 'static' flag.
This isn't really necessary and can be misleading (e.g. on macOS,
where a fully static build isn't possible). cabal's new option
`--enable-executable-static` does the same. On stack you can add
something like this to the options for your executable in package.yaml:
ld-options: -static -pthread
* Remove obsolete bibutils flag setting in `linux/make_artifacts.sh`.
* Manual:
+ Correct `link-citation` -> `link-citations`.
+ Add a sentence about `pagetitle` for HTML (#6843, Alex Toldaiev).
* INSTALL.md: Remove references to `pandoc-citeproc` (#6857).
* CONTRIBUTING: describe hlint and how it's used (#6840, Albert
Krewinkel).
## pandoc 2.11.1.1 (2020-11-07)
* Citeproc: improve punctuation in in-text note citations (#6813).
Previously in-text note citations inside a footnote would sometimes have
the final period stripped, even if it was needed (e.g. on the end of
'ibid').
* Use citeproc 0.1.1.1. This improves the decision about when
to use `ibid` in cases where citations are used inside
a footnote (#6813).
* Support `nocase` spans for `csljson` output.
* Require latest commonmark, commonmark-extensions.
This fixes a bug with `autolink_bare_uris` and commonmark.
* LaTeX reader: better handling of `\\` inside math in table cells (#6811).
* DokuWiki writer: translate language names for code elements
and improve whitespace (#6807).
* MediaWiki writer: use `syntaxhighlight` tag instead of deprecated
`source` for highlighted code (#6810). Also support `startFrom`
attribute and `numberLines`.
* Lint code in PRs and when committing to master (#6790,
Albert Krewinkel).
* doc/filters.md: describe technical details of filter invocations (#6815,
Albert Krewinkel).
## pandoc 2.11.1 (2020-11-03)
* DocBook Reader: fix duplicate bibliography bug (#6773, Nils Carlson).
* HTML reader:
+ Parse contents of iframes (#6770).
+ Parse inline svg as image unless `raw_html` is set in the reader (in
which case the svg is passed through as raw HTML) (#6770).
* LaTeX reader:
+ Fix bug parsing macro arguments (#6796). If `\cL` is
defined as `\mathcal{L}`, and `\til` as `\tilde{#1}`, then
`\til\cL` should expand to `\tilde{\mathcal{L}}`, but
pandoc was expanding it to `\tilde\mathcal{L}`. This is
fixed by parsing the arguments in "verbatim mode" when the
macro expands arguments at the point of use.
+ Properly support optional (cite) argument for
`\blockquote` from `csquotes` (#6802).
* LaTeX writer: Improved calculation of table column widths.
We now have LaTeX do the calculation, using `\tabcolsep`.
So we should now have accurate relative column widths no
matter what the text width. The default template has been modified to load
the calc package if tables are used.
* HTML writer: Fix duplicate "class" attribute for table
rows (Andy Morris).
* Text.Pandoc.Filter: allow shorter YAML representation of Citeproc
(Albert Krewinkel). The map-based YAML representation of filters expects
`type` and `path` fields. The path field had to be present for all filter
types, but is not used for citeproc filters. The field can now be omitted
when type is "citeproc", as described in the MANUAL.
* Text.Pandoc.Error: Add `PandocBibliographyError` constructor
for `PandocError` [API change]. This ensures that bibliography parsing
errors generate messages that include the bibliography file name --
otherwise it can be quite mysterious where it is coming from.
* Citeproc: properly handle `csl` field with `data:` URI (#6783).
This is used with the JATS writer, so this fixes a regression
in pandoc 2.11 with JATS output and citeproc.
* Allow `citation-abbreviations` in defaults file.
* JATS templates: ensure `jats_publishing` output is valid
(Albert Krewinkel).
* LaTeX template: Fix `CSLRightInline`, so that it does not
run over the right margin.
* HTML template: default CSS tweaks (Mauro Bieg and John
MacFarlane).
- Fix margin before codeblock
- Add `monobackgroundcolor` variable, making the background color
and padding of code optional.
- Ensure that backgrounds from highlighting styles take precedence over
monobackgroundcolor
- Remove list markers from TOC
- Add margin-bottom where needed
- Remove italics from blockquote styling
- Change borders and spacing in tables to be more consistent with other
output formats
- Style h5, h6
- Set font-size for print media to 12pt.
- Reduce interline space.
- Reduce interparagraph space.
- Reduce line width.
- Remove the special `line-height: 1` for table cells.
- Remove the special line-height for pre.
- Ensure that there is a bit more space before a heading
than after.
- Slightly reduced space after title header.
- Add CSS example to MANUAL
* man template: Change comment that triggers `tbl` from
`.\"t` to `'\" t`, as specified in groff_man(7) (#6803).
* Use latest commonmark, commonmark-extensions.
This fixes a bug with nested blocks in footnotes with the
`footnote` extension to `commonmark`. See jgm/commonmark-hs#63.
* Citeproc: use comma for in-text citations inside footnotes.
When an author-in-text citation like `@foo` occurs in a footnote,
we now render it with: `AUTHOR NAME + COMMA + SPACE + REST`.
Previously we rendered: `AUTHOR NAME + SPACE + "(" + REST + ")"`.
This gives better results. Note that normal citations are still
rendered in parentheses.
* Use latest citeproc:
+ citeproc no longer capitalizes notes, so we do it
in pandoc when appropriate.
+ Closes #6783.
* Clarify manual on `--track-changes` (#6801).
* Add `doc/jats.md` to document pandoc's handling of JATS
(#6794, Albert Krewinkel).
* Fix code example in lua-filters.md (#6795).
## pandoc 2.11.0.4 (2020-10-21)
* Commonmark writer: fix regression with fenced divs (#6768).
Starting with 2.10.1, fenced divs no longer render with
HTML div tags in commonmark output. This is a regression
due to our transition from cmark-gfm. This commit fixes it.
* Use released version of citeproc. (This fixes a mis-step
in the 2.11.0.3 release, which is now deprecated.)
* Use latest sylighting, with support for `groovy`.
* Document that --html-q-tags requires the smart extension on the reader
(#6766).
## pandoc 2.11.0.3 (2020-10-20)
* Use latest citeproc (closes #6765). This fixes a problem with
author-in-text citations for references including both an author
and an editor. Previously, both were included in the text, but only
the author should be.
* With `--citeproc`, ensure that the final period is removed when
citations that occur in notes in note-based styles get put in
parentheses. See jgm/citeproc#20.
* Normalize rewritten image paths with `--extract-media` (#6761).
This change will avoid mixed paths like this one when
`--extract-media` is used with a Word file:
``. Instead we'll get
``.
* Modify `--version` output. Use space more efficiently and report the
citeproc and ipynb versions, along with skylighting, texmath, and
pandoc-types. Drop the word "default" before "user data directory."
* DocBook reader: bibliomisc and anchor support (#6754, Nils Carlson).
Also ensure that bibliodiv without a title no longer results in
an empty Header.
* ConTeXt template: adds `\setupinterlinespace` to fonts larger
than normal (#6763, Denis Maier).
* LaTeX template: Do not load amssymb if not needed (#6469, Angelo Peronio).
See <https://tex.stackexchange.com/a/549938>.
* Relax upper bound on hslua, allow hslua-1.3.* (Albert Krewinkel).
* MANUAL:
+ Improve explanation of "indent" variable (#6767, Cyrus Yip).
+ Remove org from list of input formats supporting raw_tex (#6753,
Nick Fleisher).
## pandoc 2.11.0.2 (2020-10-15)
* Fix handling of `xdata` in bibtex/biblatex bibliographies (#6752).
* Fix some small typos in the API documentation (#6751, Michael Hoffmann).
* Require citeproc 0.1.0.2. This fixes a regression from pandoc-citeproc
involving spacing between components of a reference in certain styles
(e.g. `cell.csl`).
* Fix typos in comments, doc strings, error messages, and tests
(Albert Krewinkel, #6738).
## pandoc 2.11.0.1 (2020-10-13)
* LaTeX reader: support more acronym commands (#6746):
`\acl`, `\aclp`, and capitalized versions of already
supported commands.
* Commonmark reader: add `pipe_table` extension *after* defaults (#6739).
Otherwise we get bad results for non-table, non-paragraph
lines containing pipe characters.
* Markdown writer: Fix autolinks rendering for gfm (#6740).
Previously, autolinks rendered as raw HTML, due to the
`class="uri"` added by pandoc's markdown reader.
* LaTeX writer:
+ Escape option values in lstlistings environment (#6742).
+ Fix handling of `lang` `pt-BR` (#2953). For polyglossia we now
use `\setmainlanguage[variant=brazilian]{portuguese}` and for babel
`\usepackage[shorthands=off,main=brazilian]{babel}`.
* Depend on latest citeproc (0.1.0.1).
+ This fixes the citation number issue with ieee.csl and other
styles that do not explicitly sort bibliographies (#6741). (Pandoc
was numbering them by their order in the bibliography file,
rather than the order cited, as required by the CSL spec.)
+ Fixes groupin/collapsing with citation items with prefixes.
* default.latex: fix `CSLReference` macro definition.
* Fix MANUAL.txt CSL JSON conversion examples.
* Fix spelling errors in changelog, MANUAL.txt, `doc/org.md` (#6738).
## pandoc 2.11 (2020-10-11)
* Add `--citeproc` (`-C`) option to trigger built-in citation processing.
It is no longer necessary to use the external `pandoc-citeproc`
filter. `--citeproc` behaves like a filter and can be positioned
relative to other filters as they appear on the command line.
The new built-in citation processing uses the citeproc library,
a reimplementation of CSL citation processing that fixes many
of the shortcomings of pandoc-citeproc. In general, citation
processing should work much the same as it did with pandoc-citeproc,
but with greater fidelity to CSL styles and better performance.
(The tests from the pandoc-citeproc package have been carried
over to pandoc.) The following differences should be noted:
- At this point, only some of the writers (HTML, ms, LaTeX) properly
interpret CSL display styles. You should get decent output in
all formats (at least as good as with pandoc-citeproc), but
indentation and block-alignment may not be right.
- pandoc-citeproc searches the `~/.csl` directory for `.csl`
styles. Pandoc instead searches the `csl` subdirectory of
the pandoc user data directory (e.g., `~/.pandoc/csl` or
`~/.local/share/pandoc/csl`). Users who already keep
CSL styles in `~/.csl` may find it convenient to add a
symlink.
- Some of the bibliography formats supported by pandoc-citeproc (via
hs-bibutils) are no longer supported: Copac, EndNote,
ISI, MEDLINE, MODS, and RIS. If you use one of these formats,
you may use the `bibutils` utility to convert to BibLaTeX.
We now support only BibTeX, BibLaTeX, CSL JSON,
and pandoc's YAML/Markdown analogue of CSL JSON.
- pandoc-citeproc would always retrieve the independent parent
of a dependent style by doing an HTTP request. pandoc will
now first seek the independent parent locally (in the resource
path or in the `csl` subdirectory of the pandoc user data
directory) before resorting to HTTP. In addition, you may
omit the `.csl` extension, e.g. `--csl zoology`.
- Using the `--bibliography` option (or including
`bibliography` in YAML metadata) no longer triggers
citation processing implicitly: one must always use the
`--citeproc` option if citation processing is wanted.
* Add `csljson` as and input and output format. This allows pandoc
to convert between `csljson` and other bibliography formats
(e.g. `-f csljson -t markdown -s` or `-f bibtex -t csljson`),
and to generate formatted versions of CSL JSON bibliographies
(e.g., `pandoc -f csljson --citeproc pl.json -o pl.pdf`).
* Added `bibtex`, `biblatex` as input formats. This allows pandoc
to convert between BibLaTeX and BibTeX and other bibliography formats,
and to generated formatted versions of BibTeX/BibLaTeX bibliographies
(e.g., `pandoc -f biblatex --citeproc pl.bib -o pl.pdf`).
* Raise informative errors when YAML metadata parsing fails (#6730).
Previously the command would succeed, returning empty metadata,
with no errors or warnings.
* Sort languages in `--list-highlight-languages` output (#6718,
Albert Krewinkel). Languages were previously sorted by their
long name, which leads to unexpected results).
* Add CSS to default HTML template (#6601, Mauro Bieg). This
greatly improves the default typography in pandoc's HTML
output. The CSS is sensitive to a number of variables
(e.g. `mainfont`, `fontsize`, `linestretch`): see the manual for
details. To restore the earlier, more spartan output, you can
disable this with `-M document-css=false`.
* Support `--toc-depth` option for ODT writer (#6696, niszet).
* Fix issues with Windows UNC paths with some options (#5127).
* Remove `fenced_code_blocks` and `backtick_code_blocks` from allowed
`commonmark` and `gfm` extensions. These shouldn't really be counted
as extensions, because they can't be disabled in commonmark.
Adjust markdown writer to check for the commonmark variant in addition
to extensions.
* Add these extensions to `gfm` and `commonmark`:
`fenced_code_blocks`, `backtick_code_blocks`, `fenced_code_attributes`.
These can't really be disabled in the reader, but they need to be enabled
in the writer or we just get indented code.
* Make sure proper set of extensions is recognized for `commonmark_x`.
* Allow `gfm_auto_identifiers`, `ascii_identifiers` extensions for `docx`.
* Markdown reader:
+ Add `Maybe FilePath` parameter to `yamlToMeta` [API change].
+ Export `yamlToRefs` [API change], a version of `yamlToMeta`
specialized to references.
+ Set `citationNoteNum` accurately in citations.
+ Revise abbreviation support. Don't insert a nonbreaking space after a
potential abbreviation if it comes right before a note or citation.
This causes problems for citeproc's moving of note citations.
* LaTeX reader:
+ Support missing siunitx commands (#6658).
+ Support `squared`, `cubed`, `tothe` in siunitx (#6657).
+ Improved uncertainty handling in slunitx.
+ Factored out siunitx stuff into separate unexposed module.
+ Fix improper empty cell filtering (#6689, Christian Despres).
+ Fix parsing of "show name" in `\newtheorem` (#6734).
Previously we were just treating it as a string and
ignoring accents and formatting.
+ Prevent wrong nesting of `\multirow` and `\multicolumn` table
cells (#6603, Laurent P. René de Cotret).
+ Table cell parser not consuming spaces correctly (#6596,
Laurent P. René de Cotret).
+ Change `SIRange` to `SIrange` (#6617, Emerson Harkin).
+ Allow blank lines inside `\author` (#6324).
* DocBook reader:
+ Don't squelch space at end of emphasis and other inline elements;
instead, move it outside the element (#6719).
+ Implement table cell alignment (#6698, Nils Carlson).
+ Implement column span support for tables (#6492, Nils Carlson).
+ Update list of block level tags (#6610).
* JATS reader:
+ Don't squelch space at end of emphasis and other inline elements;
instead, move it outside the element (#6719).
* RST reader:
+ Apply `.. class::` directly to following Header rather than creating
a surrounding Div (#6699).
* Docx reader:
+ Allow empty dates in comments and tracked changes (#6726, Diego
Balseiro).
* Markdown writer:
+ Be less aggressive about using quotes for YAML values,
allowing e.g. a quotation mark or bracket as long as it's not at the
beginning of the line.
+ Use double quotes for YAML metadata (#6727).
+ Sort YAML metadata keys in Markdown output case-insensitive.
* Asciidoc writer:
+ Support asciidoctor's block figures (#6538, argent0).
* LaTeX writer:
+ Fix spacing issue with list in definition list.
When a list occurs at the beginning of a definition list definition,
it can start on the same line as the label, which looks bad.
Fix that by starting such lists with an `\item[]`.
* HTML writer:
+ Support intermediate table headers (#5314, Albert Krewinkel).
+ Support attributes on all table elements (Albert Krewinkel).
+ Render table footers if present (#6314, Albert Krewinkel).
+ Fix addition of `doc-biblioentry` role.
+ Support colspans and rowspans in HTML tables (#6312, Albert Krewinkel).
* ICML writer:
+ Support internal document links (#5541, Leonard Rosenthol).
+ Changed default link state to invisible (#6676, Leonard Rosenthol).
* Docx writer:
+ Better handle list items whose contents are lists (#5948, Michael
Hoffmann). If the first element of a bulleted or ordered list is
another list, then that first item would previously disappear if the
target format is docx.
+ Separate adjacent tables (#4315). Word combines adjacent tables,
so to prevent this we insert an empty paragraph between two
adjacent tables.
* Org writer:
+ Don't force blank line after headings (#6554).
* OpenDocument writer:
+ Implement table cell alignment (#6700 Nils Carson, Mauro Bieg).
+ New table cell support with row and column spans (#6682, Nils Carson).
+ Syntax highlighting for inline code (#6711, niszet).
* Add Text.Pandoc.Citeproc module, exporting `processCitations`
[API change]. This depends on several other, unexported
modules under Text.Pandoc.Citeproc.
* Add module Text.Pandoc.Writers.CslJson, exporting `writeCslJson`.
[API change]
* Add module Text.Pandoc.Readers.CslJson, exporting `readCslJson`.
[API change]
* Add module Text.Pandoc.Readers.BibTeX, exporting `readBibTeX` and
`readBibLaTeX`. [API change]
* Text.Pandoc.Filter: Add `CiteprocFilter` constructor to Filter.
[API change] This runs the processCitations transformation.
We need to treat it like a filter so it can be placed
in the sequence of filter runs (after some, before others).
In FromYAML, this is parsed from `citeproc` or `{type: citeproc}`,
so this special filter may be specified either way in a defaults file
(or by `citeproc: true`, though this gives no control of positioning
relative to other filters).
* Add new exported module Text.Pandoc.Writers.AnnotatedTable [API change]
(#6655, Christian Despres). This module (which should generally
be imported qualified to avoid name conflicts) provides a
`Table` type that mirrors the structure of a pandoc `Table`,
but with added inferred information so that the writers do not have to
lay out tables themselves. The `toTable` and `fromTable` functions convert
between an annotated `Table` and a regular pandoc `Table`. In addition to
producing a `Table` with coherent and well-formed annotations, the
`toTable` function also normalizes its input table like the table
builder does. Tests ensure that `toTable` normalizes tables exactly
like the table builder, and that its annotations are coherent.
* Text.Pandoc.Logging:
+ Remove unused `CouldNotParseYamlMetadata` constructor for `LogMessage`
[API change].
+ Add `CiteprocWarning` constructor to `LogMessage` [API change].
* Text.Pandoc.Readers.Metadata: export `yamlBsToRefs` [API change].
These allow specifying an id filter so we parse only references
that are used in the document.
* Text.Pandoc.Parsing:
+ Export ParseError [API change].
+ Add `stateInNote` and `stateNoteNumber` to `ParserState`
[API change]. These are used to populate note numbers for citation
processing.
* Fix apparent typos in sample.lua (#6729, William Lupton).
Also make the writer less aggressive in escaping quotes.
* Text.Pandoc.Options:
+ `defaultMathJaxURL`: use `tex-chtml-full` instead of `tex-mml-chtml`
(#6599, Kolen Cheung). This drops the MathML support (which we
don't need for HTML math rendering) and includes the full JavaScript,
which makes it possible to use `--self-contained` (though there may
still be issues if the required math fonts aren't available). This
change should also reduce latency in pages with lots of formulas.
+ Add `/tex-chtml-full.js` to `defaultMathJaxURL` (#6593) Previously we
added this in processing command line options, but not in processing
defaults files, which was inconsistent.
* epub.css: Fix cover page selectors and add note explaining their use
(#6649, a-vrma).
* Add data files needed for Text.Pandoc.Citeproc: these include
`default.csl` in the data directory and a `citeproc` directory that
is only used at compile-time for biblatex localizations. Note that we've
added `file-embed` as a mandatory rather than a conditional
dependency, because of the biblatex localization files.
* Lua filters:
+ Add SimpleTable for backwards compatibility (#6575, Albert Krewinkel).
A new type `SimpleTable` is made available to Lua filters. It is
similar to the `Table` type in pandoc versions before 2.10;
conversion functions from and to the new Table type are provided.
Old filters using tables now require minimal changes and can use, e.g.,
if PANDOC_VERSION > {2,10,1} then
pandoc.Table = pandoc.SimpleTable
end
and
function Table (tbl)
tbl = pandoc.utils.to_simple_table(tbl)
…
return pandoc.utils.from_simple_table(tbl)
end
to work with the current pandoc version.
+ Make `attr` argument optional in `Table` constructor (Albert Krewinkel).
This changes the Lua API. It is highly unlikely for this change to affect
existing filters, since the documentation for the new Table constructor
(and type) was incomplete and partly wrong before. The Lua API is now
more consistent, as all constructors for elements with attributes now
take attributes as the last parameter.
* MANUAL.txt:
* Add a dedicated Citations section which consolidates the information
the manual used to contain about citation processing, and incorporates
some information formerly found in the pandoc-citeproc man page.
+ Add note about lualatex using `selnolig`.
+ Remove duplicate `seriespage` (#6568, Blake Eryx).
+ Remove lists of support extensions for markdown variants (#6604).
Instead, offer the advice to use `--list-extensions=FORMAT`.
+ Fix position of attributes in header (Albert Krewinkel).
+ Delete obsolete section on compact and loose lists (#6684).
* doc/lua-filters.md:
+ Add info on how to debug Lua filters (#6732, Ian Max Andolina).
+ Document Underline type and constructor (Albert Krewinkel).
+ Document `body` field (Albert Krewinkel).
+ Add missing header attribute
+ Add missing Link.title field (Albert Krewinkel).
+ Make the setting-the-date example conditional (the-solipsist).
This makes the example a bit more realistic.
+ Remove outdated link table example.
* doc/org.md:
+ Add section on tables (Albert Krewinkel).
+ Add section on handling of unknown directives (Albert Krewinkel).
* CONTRIBUTING.md: fix typo (#6584, Dmitry Volodin).
* Use golden test framework for command tests. This means that
`--accept` can be used to update expected output.
* Use the `smart` extension when generating pandoc's man page (#6613).
* Release-candidate: don't build windows i386.
So far we haven't been able to figure out how to get
stack to use a 32-bit ghc.
* Use `null` instead of deprecated `Builder.isNull`.
* Makefile:
+ Fix macospkg target to fetch target from S3 artifacts.
+ Fix pandoc-templates target to include all partials.
* Remove duplicated dependency in pandoc.cabal (#6591, Felix Yan).
* Sort build depends in pandoc.cabal alphabetically (#6691,
Albert Krewinkel).
* Add .travis.yml for macos release candidate build (#6622).
We need to build the release candidate on Travis rather
than GitHub actions, because GH has macos 10.15, and
binaries compiled on that OS will not work with 10.13.
This build is only triggered on `rc/*` branches.
* Remove instructions for building pandoc-citeproc from CI and
release binary build instructions. We will no longer distribute
pandoc-citeproc.
* Fix math rendering in trypandoc (this broke after
commit d8ad766d17603784b86fc5c2e1b22864125d04d1).
* Use latest versions of skylighting, commonmark (#6589),
comonmark-extensions, commonmark-pandoc, texmath.
* Relax version bounds for hslua, hslua-module-text, bytestring.
* Use released pandoc-types 1.22. This changes the JSON
encoding slightly for the new table types introduced
in 1.21, so they're more consistent with the rest.
Developers of libraries for pandoc filters will want
to take note.
* Fix hlint suggestions, update hlint.yaml (#6680, Christian Despres).
* Code cleanup (#6678, Joseph C. Sible).
* Add haddocks to functions in Text.Pandoc.Writers.Shared (Albert
Krewinkel).
* Remove duplicate `tshow` definition.
* Linux release candidate build: use ghc-musl container. This simplifies
our build process (over using a customized alpine container).
## pandoc 2.10.1 (2020-07-23)
* Add `commonmark_x` output format. This is `commonmark` with a number
of useful pandoc extensions enabled.
* Many more extensions now work with `commonmark` and `gfm`.
* Add generic `attributes` extension. This allows attributes to
be added to any block or inline element in a uniform way. Since
the Pandoc AST doesn't include attributes on each element type,
the attributes will sometimes be added by creating a surrounding
Div or Span container. Currently this extension is only
compatible with the `commonmark` and `gfm` readers.
To add an attribute to a block-level element, e.g. a paragraph,
put it before the block:
```
{#mypara}
This is a paragraph.
```
Multiple attributes may be used and will be combined:
```
{#mypara}
{.blue .warning key="val"}
This is a paragraph.
```
To add an attribute to an inline-level element, put it
immediately after the element:
```
*emphasized text*{.special}
```
* Support `--number-sections` for docx output (#1413).
* LaTeX reader:
+ Support `\SIRange` reader (#6418, Emerson Harkin).
+ Support table col-span and row-span (#6311, Laurent P. René de Cotret).
Supports `\multirow` and `\multicolumn`.
+ Support amsthm: `\newtheorem`, `\theoremstyle`, and theorem and
proof environments, including labels and references. The only thing
that is unsupported is the second optional argument, which causes
numbering to be reset after the specified series is incremented.
+ Moved some code to T.P.LaTeX.Parsing. We need to reduce the size
of the LaTeX reader to ease compilation on resource-limited systems.
* RST reader:
+ Fix csv tables with multiline cells (#6549).
+ Fix spurious newlines in some attributes from directives.
+ Avoid extra newline in included code blocks.
* Commonmark reader:
+ Switch from cmark-gfm to commonmark-hs for commonmark and gfm
parsing. This avoids depending on a C library
and allows us to support more pandoc extensions for
`commonmark` and `gfm`.
* DocBook reader:
+ Parse releaseinfo as metadata (#6542).
* Docx reader:
+ Only use `bCs/iCs` on runs with `rtl` or `cs` property (#6514, Nikolay
Yakimov).
+ Code cleanup/refactoring (Nikolay Yakimov).
* Org reader (Albert Krewinkel):
+ Respect export setting which disables entities
MathML-like entities, e.g., `\alpha`, can be disabled with the
`#+OPTION: e:nil` export setting (Albert Krewinkel).
+ Respect export setting disabling footnotes. Footnotes can be removed
from the final document with the `#+OPTION: f:nil` export setting.
+ Respect tables-excluding export setting. Tables can be removed from
the final document with the `#+OPTION: |:nil` export setting.
* Markdown writer:
+ Move `asciify` out of `escapeString`. Otherwise `unsmartify`
doesn't catch quotes that have already been turned to entities.
+ Add `writeCommonmark` (new exported function, API change).
+ Use unicode super/subscript characters when possible if the
`superscript` or `subscript` extension or `raw_html` aren't available.
+ Render caption as following paragraph when `table_caption` extension
is not enabled.
+ Use numerical labels for reference links that are longer
than 999 characters or contain square brackets, for conformity
with commonmark (#6560).
* Commonmark writer:
+ Instead of using cmark-gfm, use `writeCommonmark` from the
Markdown writer. This function calls the markdown writer
with appropriate extensions and a few small modifications
(e.g. not requiring backslashes before spaces inside
super/subscripts). With this change `comonmark` and
`gfm` output can be used with a wider selection of
extensions.
* Jira writer: keep image caption as alt attribute (#6529, Albert
Krewinkel).
* HTML writer:
+ Improve alt-text/caption handling for HTML5 (#6491, Albert Krewinkel).
Screen readers read an image's `alt` attribute and the figure caption,
both of which come from the same source in pandoc. The figure caption is
hidden from screen readers with the `aria-hidden` attribute. This
improves accessibility. For HTML4, where `aria-hidden` is not allowed,
pandoc still uses an empty `alt` attribute to avoid duplicate contents.
* Ms writer:
+ Fix code highlighting with blank lines. Previously blank lines
were simply omitted from highlighted code.
+ Escape starting periods in ms writer code blocks (#6505, Michael
Hoffmann). If a line of ms code block output starts with a period (.),
it should be prepended by `\&` so that it is not interpreted as a roff
command.
* Text.Pandoc.Extensions:
+ Add `raw_markdown` extension (which only affects `ipynb`
input).
+ Trim down `githubMarkdownExtensions`.
Previously it included all of the following, which make
sense for the legacy `markdown_github` but not for `gfm`,
since they are part of base commonmark and thus
can't be turned off in `gfm`:
- `Ext_all_symbols_escapable`
- `Ext_backtick_code_blocks`
- `Ext_fenced_code_blocks`
- `Ext_space_in_atx_header`
- `Ext_intraword_underscores`
- `Ext_lists_without_preceding_blankline`
- `Ext_shortcut_reference_links`
These have been removed from `githubMarkdownExtensions`, though
they're still turned on for legacy `markdown_github`.
+ Add `Ext_attributes` constructor for `Extension` [API change].
* LaTeX template: use selnolig to selectively suppress ligatures with
lualatex (#6534).
* Benchmark bytestring readers (Nikolay Yakimov).
* Documentation:
+ Update using-the-pandoc-api.md (favonia).
+ Fix Typos in lua-filters.md (tajmone).
+ Rewrite Raw HTML/TeX section in MANUAL.txt to avoid duplicate
headings for the extensions.
+ Fix typo in MANUAL.txt (Benjamin Wuethrich).
+ Remove duplicate 'titlepage' in MANUAL.txt (Blake Eryx).
+ CONTRIBUTING.md: Advertise the official nightlies in GitHub actions.
Replaces #6500, thanks to @ickc.
## pandoc 2.10 (2020-06-29)
* Use pandoc-types 1.21. This adds two things:
+ A native Underline constructor for Inline (#6277, Vaibhav Sagar).
+ More expressive types for tables (#1024, Christian Despres).
Tables can now take attributes; and rowspans and colspans,
column headers, multiple row headers, table head and foot
can all be represented. (Note, however, that reader and
writer support for these features is still lacking, so
most users won't see any differences in table conversion
yet. These changes just lay the foundation for further
improvements.)
* Support new Underline element in readers and writers (#6277,
Vaibhav Sagar).
* Support new Table type (Christian Despres).
The Builder.simpleTable now only adds a row to the TableHead
when the given header row is not null. This uncovered an
inconsistency in the readers: some would unconditionally
emit a header filled with empty cells, even if the header
was not present. Now every reader has the conditional
behaviour. Only the XWiki writer depended on the header row
being always present; it now pads its head as necessary.
* Add an option to disable certificate validation (#6156, Cédric Couralet,
Cécile Chemin, Juliette Fourcot). This commit adds the option
`--no-check-certificate`, which disables certificate checking when
resources are fetched by HTTP.
* Unify defaults and markdown metadata parsers (#6328, Nikolay
Yakimov). Clean up code in Text.Pandoc.Readers.Metadata and
properly handle errors in `yamlToMeta`. This fixes parsing
of Boolean fields in metadata withinin defaults files and reduces
code duplication.
* Docbook reader:
+ Implement `<procedure>` (#6442, Mathieu Boespflug).
+ Implement `<phrase>` (#6438, Mathieu Boespflug).
+ Treat envar and systemitem like code (#6435, Mathieu Boespflug).
+ Implement `<replaceable>` (#6437, Mathieu Boespflug)
+ Map `<simplesect>` to unnumbered section (#6436, Mathieu Boespflug).
* JATS reader:
+ Handle "label" element in section title (#6288).
+ Parse abstract element into metadata field of same name
(#6480, Albert Krewinkel).
* Jira reader (Albert Krewinkel):
+ Resolve multiple parsing problems, including issues with empty
table cells, faulty recognition of closing emphasis characters, and
parsing of image attributes (#6212, #6219, #6220).
+ Two consecutive markup chars are now parsed verbatim (#6343);
styled text must not be empty.
+ Newlines are no longer allowed within styled text (#6325).
+ Links to anchors are now parsed as links (#6407).
+ Retain image attributes (#6234). Jira images attributes as in
`!image.jpg|align=right!` are retained as key-value pairs. Thumbnail
images, such as `!example.gif|thumbnail!`, are marked by a
`thumbnail` class in their attributes.
+ Use Underline for inserted text (#6237). Previously, the span was
marked with the non-standard class `inserted`.
+ Improve icon conversion for `(/)`, `(x)`, `(!)`, `(?)`
`(+)`, `(-)`, `(off)`, `(*)`. (#6236, #6264).
+ Support citations, attachment links, and user links (#6231, #6238,
#6239).
+ Resolve parsing issues of blockquote, color (#6233, #6235).
* HTML reader:
+ Parse attributes into table attributes.
+ Support `<bdo>` (#5794, Tristan de Cacqueray).
+ Add `summary` to list of block-level HTML tags (#6385).
This improves support for summary/details inside Markdown.
NOTE: you need to include a blank line before the closing
`</details>`, if you want the last part of the content to
be parsed as a paragraph.
+ Fix parsing unclosed th elements in a table (#6247).
* Commonmark reader: Implement `implicit_figures` extension (#6350).
* Markdown Reader:
+ Fix inline code in lists (#6284, Nikolay Yakimov).
Previously inline code containing list markers was sometimes
parsed incorrectly.
+ Don't require blank line after grid table (#6481).
This allows grid tables to be enclosed in fenced divs with no
intervening blank lines.
* LaTeX reader:
+ Don't parse beyond `\end{document}` (#6380).
This required some internal changes to `\subfile` handling.
+ Better handling of `\lettrine`. SmallCaps instead of Span
for the part after the initial capital. Ensure that both
arguments are parsed, so that in Markdown both
are treated as raw LateX. (Closes #6258.)
* Org reader (Albert Krewinkel):
+ Recognize images with uppercase extensions (#6472).
+ Keep unknown keyword lines as raw org. The lines of unknown
keywords, like `#+SOMEWORD: value` are no longer read as metadata,
but kept as raw `org` blocks. This ensures that more information
is retained when round-tripping org-mode files; additionally,
this change makes it possible to support non-standard org
extensions via filters.
+ Unify keyword handling. Handling of export settings and other
keywords (like `#+LINK`) has been combined and unified.
+ Support `LATEX_HEADER_EXTRA` and `HTML_HEAD_EXTRA`
settings. These export settings are treated like their non-extra
counterparts, i.e., the values are added to the `header-includes`
metadata list.
+ Allow multiple `#+SUBTITLE` export settings. The values of all
lines are read as inlines and collected in the `subtitle`
metadata field.
+ Read `#+INSTITUTE` values as text with markup. The value is
stored in the `institute` metadata field and used in the
default beamer presentation template.
+ The behavior of the `#+AUTHOR` and `#+KEYWORD` export
settings has changed: Org now allows multiple such lines
and adds a space between the contents of each line. Pandoc
now always parses these settings as meta inlines; setting
values are no longer treated as comma-separated lists.
Note that a Lua filter can be used to restore the previous
behavior.
+ Read description lines as inlines (#6485). `#+DESCRIPTION` lines
are now treated as text with markup. If multiple such
lines are given, then all lines are read and separated by soft
linebreaks.
+ Honor tex export option (#4070). The `tex` export option can be set
with `#+OPTION: tex:nil` and allows three settings:
`t` (the default) causes LaTeX fragments to be parsed as TeX or added
as raw TeX. `nil` removes all LaTeX fragments from the document.
`verbatim` treats LaTeX as text.
* RST reader:
+ Pass arbitrary attributes through in code blocks (#6465).
Exceptions: name (which becomes the id), class (which becomes the
classes), and number-lines (which is treated specially to fit
with pandoc highlighting).
+ Handle `date::` directive (#6276).
* Textile reader: support `pre.` for code blocks (#6454).
* Ipynb reader:
+ Implement `raw_markdown` extension (#5408). Specifying
`-f ipynb+raw_markdown` will cause Markdown cells
to be represented as raw Markdown blocks, instead of being
parsed. This is not what you want when going from `ipynb`
to other formats, but it may be useful when going from `ipynb`
to Markdown or to `ipynb`, to avoid semantically insignificant
changes in the contents of the Markdown cells that might
otherwise be introduced.
+ Handle application/pdf output as image (#6430).
+ Properly handle image/svg+xml as an image (#6430).
* Docx reader:
+ Distinguish between docx parsing and docx container unpacking errors.
* MediaWiki reader:
+ Fix `gfm_auto_identifiers` so that `-` is not replaced by `_` (#6335).
* Vimwiki reader:
+ Add nested syntax highlighting (#6256, Vlad Hanciuta).
Nested syntaxes are specified like this:
```
{{{sql
SELECT * FROM table
}}}
```
The preformatted code block parser has been extended to check if the
first attribute of the block is not a `key=value` pair, and in that
case it will be considered as a class.
* Jira writer (Albert Krewinkel):
+ Always escape braces (#6478). Braces are now always escaped, even
within words or when surrounded by whitespace. Jira and
Confluence treat braces specially.
+ Convert Underline to inserted text (`+inserted+`).
+ Add image attributes (#6234). Image attributes are added
to the output as image parameters. If the image has a
class "thumbnail", then a thumbnail image is generated;
all other attributes are discarded in this case.
* LaTeX writer:
+ Ensure that `-M csquotes` works even in fragment mode (#6265).
+ Escape `^` specially for listings (#6460).
+ Create hypertarget for links with identifier (#6360).
+ Distinguish between single and double quotes when using enquote
package (#6457, dbecher-ito).
+ Add support for customizable alignment of columns in beamer (#6331,
andrebauer).
+ Add support for customizable alignment of columns in beamer
(#4805, #4150, andrebauer).
* HTML writer:
+ Use CSS in favor of `<br>` for display math (#6372)
Some CSS to ensure that display math is
displayed centered and on a new line is now included
in the default HTML-based templates; this may be
overridden if the user wants a different behavior.
* Org writer:
+ Clean-up Div handling (Albert Krewinkel).
* Docx writer:
+ Enable column and row bands for tables (#6371).
This change will not have any effect with the default style.
However, it enables users to use a style (via a reference.docx)
that turns on row and/or column bands.
* OpenDocument (and ODT) writer:
+ Add custom-style "Abstract" in metadata abstract.
This ensures that the abstract is rendered with style Abstract.
+ Enable custom-style attribute on a Div.
This allows you to apply a custom style to contained paragraphs.
* DocBook writer:
+ Add id of figure to enclosed image.
+ Add personname element to docbook author (#6244).
* FB2 writer:
+ Properly handle cover-image containing spaces (#6391).
* Markdown writer:
+ Ensure consistent padding for pipe tables (#6240).
+ Avoid unnecessary escapes before intraword `_` when
`intraword_underscores` extension is enabled (#6296).
* RST writer:
+ Properly handle images with same alt text (#6194).
Previously we created duplicate references for these in rendering RST.
* AsciiDoc writer:
+ Add blank line after Div (#6308).
* Haddock Writer:
+ Support Haddock tables (Joe Hermaszewski).
See this PR on Haddock for details on the table format:
<https://github.com/haskell/haddock/pull/718>.
* PowerPoint writer (Jesse Rosenthal):
+ Write math input verbatim in speaker notes (#6301).
OMML in speaker notes would lead to corrupt PowerPoint output. We now
output the OMML verbatim as LaTeX in the speaker notes.
* LaTeX template: Make polyglossia package options list-aware
(#6444, Frederik Elwert).
* Reveal.js template:
+ Update template for reveal.js 4.0.0 (#6390, Salim B).
+ Update template with newly available options (#6347, Jake Zimmerman).
+ Use CDN version of revealjs v4 by default (#6408).
* opendocument template: Add abstract and subtitle to opendocument
template (#6369).
* reference.odt: clean up styles. Add Abstract.
Change Author, Date to centered paragraphs with no character
styling.
* epub.css: wrap overlong lines in highlighted code blocks (#6242).
This fixes a problem in iBooks v2.4 with our earlier
horizontally scrolling code blocks. The problem seems to
be a bug in iBooks, not pandoc, but since iBooks is a major
target we're changing pandoc's default behavior so that
pandoc-produced epubs work on that platform.
* Text.Pandoc.PDF:
+ Use `--enable-local-file-access` in invoking `wkhtmltopdf` (#6474).
`wkhtmltopdf` changed in recent versions to require this for
access to local files. This fixes PDF via HTML5 with `--css`.
+ Send verbose output to stderr, not stdout (#6483).
* Text.Pandoc.MIME: Fix MIME type for TrueType fonts in EPUBs
(#6464, Michael Reed).
* Text.Pandoc.Shared:
+ `makeSections`: omit number attribute when unnumbered class
is present (#6339). Previously the attribute was included but given
an empty value, and this caused the table of contents creation
functions in Text.Pandoc.Writers.Shared to think these items had
numbers, which meant that they were included in the TOC even if the
`unlisted` class was used.
+ Deprecate `underlineSpan` in Shared in favor of
`Text.Pandoc.Builder.underline` (Vaibhav Sagar).
+ `renderTags'`: use self-closing tag for col element (#6295).
* Text.Pandoc.UUID: Fix `getRandomUUID`, which previously would
return the same value twice in a row. Make `getRandomUUID`
polymorphic in PandocMonad. Remove `getUUID` (#6228, Joseph C. Sible).
* Text.Pandoc.Class: Generalize `PandocIO` functions to `MonadIO`.
* Fixed Katex standalone script (#6399, Lucas Escot).
Global macros are now persistent when using the HTML Writer with the
`--katex` option.
* Lua subsystem (Albert Krewinkel):
+ Use new type PandocLua for all pandoc Lua operations (API change).
The new type `PandocLua` is an instance of the `PandocMonad` typeclass
and can thus be used in a way similar to `PandocIO`.
+ Use PandocError for exceptions in Lua subsystem (API change).
The PandocError type is used throughout the Lua subsystem. All Lua
functions throw an exception of this type if an error occurs. The
`LuaException` type is removed and no longer exported from
`Text.Pandoc.Lua`. In its place, a new constructor `PandocLuaError`
is added to PandocError.
* Lua filters: improve error messages for failing filters (#6332,
Albert Krewinkel). Print the Lua error properly instead of
displaying their `show` string.
* Use latest skylighting. This fixes a bug with lua multiline
comments (and may improve handling of other syntaxes as well).
IT also adds `aria-hidden="true"` to the empty a elements, which
helps people who use screen readers.
* Use latest texmath.
* Require latest doctemplates 0.8.2.
This adds support for template pipes `first`, `rest`,
`last`, `allbutlast`.
* Revert 0e48a02 and dependency on base-noprelude, which hasn't
been updated for ghc 8.10 (see #6187).
* Dependency adjustments:
+ Allow haddock-library 1.9.x.
+ Allow hslua 1.1 (#6243, Felix Yan).
+ Allow base64-bytestring 1.1.
+ Use latest jira-wiki-markup.
+ Allow http-client 0.7.
+ Allow tasty 1.3.x.
+ Allow aeson 1.5 (#6400, Felix Yan).
+ Remove unused dependency `vector` (#6462, Laurent P. René de Cotret).
+ Bump QuickCheck upper bound.
* Significant code cleanup and simplification (Joseph C. Sible, #6223,
#6209, #6225, #6229, #6226, #6340).
* Remove unnecessary hlint ignores (#6341, Joseph C. Sible).
* Remove obsolete RelaxedPolyRec extension (#6487, Nikolay Yakimov).
* trypandoc improvements (Mike Tzou):
+ Add standalone option to the command text (#6210).
+ Update third party libraries.
* MANUAL.txt:
+ Clarify template partial naming (#6476, Mauro Bieg).
+ Describe `jira` as "Jira/Confluence wiki markup" (#6351, Albert
Krewinkel). In the past, Jira's wiki markup was also used by -- and
could be imported into -- Atlassian Confluence.
+ Add link to print-css.rocks (#6272, Mauro Bieg).
+ Clarify pipe table column width adjustment (#6254).
+ Fix ATX header syntax.
+ Fix misleading note about image size conversions (#6353).
+ Update links to reveal.js documentation (#6386, Salim B).
+ Separate adjacent verbatim code blocks (#6307, tom-audm).
* org.md:
+ Document behavior of `smart` extension (#4387, Albert Krewinkel).
+ Describe all supported export options in detail.
* lua-filters.md:
+ Fix description of BulletList Lua type (Levi Gruspe).
+ Use pandoc.system module in TikZ example (Albert
Krewinkel). Showcase temporary directory handling with
`with_temporary_directory` and `with_working_directory`.
* INSTALL.md: fix FreeBSD port link (#6422, Mo).
The FreeBSD port was renamed from pandoc to hs-pandoc in 2010.
The old pandoc port is still at version 1.5.1.1
* Propagate `(DY)LD_LIBRARY_PATH` in tests (#6376, Lila).
* Bump `cabal-version` to 2.2 (#6377).
* Make it possible to compile using Stack on NixOS (#6439, Mathieu
Boespflug).
* CI action to check for commit message length (Nikolay Yakimov, #6398).
## pandoc 2.9.2.1 (2020-03-23)
* Markdown reader: Fix table alignment when heading begins with t (#6153).
Due to a typo (`t` instead of `\t`) we were center aligning column
headings that begin with a lowercase `t`!
* Text.Pandoc.Readers.Roff:
+ Fix parsing of `\.` in man/ms readers (#6175).
Previously due to a typo it was being parsed as `` ` ``.
+ Fix parsing of `\'` in man/ms readers (#6175). It was being parsed
as a backtick.
* Jira reader (Albert Krewinkel):
+ Fix parsing of tables without preceding blankline (#6198).
A bug was fixed which caused faulty parsing if a table was not
preceded by a newline and the first table cell had no space
after the initial `|` characters.
+ Fix parsing of strikeout, emphasis (#6196). A bug was fixed which
caused non-emphasized text containing digits and/or non-special
symbols (like dots) to sometimes be parsed incorrectly.
+ Support colored inline text, indented lists (#6183, #6184).
* Ms writer:
+ Fix definition lists so indent even when paragraph indent is
set to 0 (as is the default). Also ensure indent for display math
that falls back to TeX.
+ Use `.QS/.QE` instead of `.RS/.RE` for block quotes.
* EPUB writer: fix regression on detection of front/back/bodymatter
(#6170). This bug caused sections with epub:type `dedication` to be
misplaced in bodymatter instead of frontmatter as specified
in the manual. The same problem would affect other epub:types.
The pattern matching needed to be changed with the use of
`makeSection`.
* AsciiDoc writer: remove redundant `otherwise` guard in
`inlineToAsciiDoc` (#6146, Ryan Scott).
* Text.Pandoc.Class:
+ Fix missing import when data files are not embedded (Albert Krewinkel).
+ Subdivide Text.Pandoc.Class into small unexported modules
and ensure that all functions have Haddock documentation (#6106,
Albert Krewinkel).
+ Finer grained imports of Text.Pandoc.Class submodules (#6203, Albert
Krewinkel).
* Text.Pandoc.XML: Add to list of HTML5 attributes:
`allow`, `autocapitalize`, `decoding`, `enterkeyhint`,
`imagesizes`, `imagesrcset`, `loading`.
* Use implicit Prelude (#6187, Albert Krewinkel).
The previous behavior was introduced as a fix for #4464. It seems that
this change alone did not fix the issue, and `stack ghci` and `cabal
repl` only work with GHC 8.4.1 or newer, as no custom Prelude is loaded
for these versions. Given this, it seems cleaner to revert to the
implicit Prelude.
* Always use custom prelude (#6187, Albert Krewinkel).
Previously, the custom prelude was used only with older GHC versions, as
a workaround for problems with ghci. The ghci problems are resolved by
replacing package `base` with `base-noprelude`, allowing for consistent
use of the custom prelude across all GHC versions.
* Remove outdated checks for no longer supported base versions
(Albert Krewinkel).
* PDF via wkhtmltopdf: put user-specified options last (#6171).
Certain options (e.g. `cover`) need to come after flags on
the command line.
* Text.Pandoc.App: set resource path at the beginning so it can affect
things like include-in-header (#5982).
* Change macOS release candidate CI process so that notarized
packages can be produced (#6169).
* Make MANUAL more explicit about nonbreaking space handling by
`all_symbols_escapable` (#6154, Fabien Schurter).
* trypandoc (Mike Tzou):
+ Add checkbox for standalone option (#6189).
+ Use strict mode for JavaScript code (#6188).
+ Fetch resources over https (#6188).
+ Remove unnecessary attributes on style, script elements (#6188).
* Use details tag to make GitHub releases changelog collapsible.
* Update filter code in doc/filters.md so it works with latest pandoc
(#6185).
* linux/Dockerfile: upgrade to alpine 3.11 (#6180, Albert Krewinkel).
This is used to build the static linux binaries.
## pandoc 2.9.2 (2020-02-15)
* Add `csv` as an input format (#6100). The CSV table is converted into a
pandoc simple table. A new module Text.Pandoc.Readers.CSV
exports `readCSV` [API change].
* Introduce new format variants for JATS writer (#6014, Albert Krewinkel):
- `jats_archiving` for the "Archiving and Interchange Tag Set",
- `jats_publishing` for the "Journal Publishing Tag Set", and
- `jats_articleauthoring` for the "Article Authoring Tag Set."
The `jats` output format is now an alias for `jats_archiving`.
The module Text.Pandoc.Writers.JATS now exports
`writeJatsArchiving`, `writeJatsPublishing`, and
`writeJatsArticleAuthoring`, as well as the legacy
`writeJATS` [API change].
* `--defaults`: Support `bibliography` and `csl` fields.
Move `addMeta` from Text.Pandoc.App.CommandLineOptions to
Text.Pandoc.App.Opt (internal change).
* Add timing info for filters in `--verbose` mode (#6112).
When verbose mode is specified (verbosity == INFO), print a
notice when running a filter and when a filter completes (including
timing).
* LaTeX reader:
+ Allow `&` in LaTeX citation keys (#6110).
+ Improve caption and label parsing.
+ Don't emit empty Span elements for labels.
+ Put tables with labels in a surrounding Div.
+ Resolve `\ref` to table numbers (#6137).
+ Skip comments in more places where this is needed (#6114).
+ Allow beamer overlays for all commands in all raw tex (#6043).
This affects parsing of raw tex in LaTeX and in Markdown and
other formats.
+ Improve parsing of raw environments (#6034). If parsing fails
in a raw environment (e.g. due to special characters like unescaped
`_`), try again as a verbatim environment, which is less sensitive to
special characters. This allows us to capture special environments
that change catcodes as raw tex when `-f latex+raw_tex` is used.
* RST reader:
+ Add highlight directive (#6140, Lucas Escot).
* MediaWiki writer:
+ Prevent triple `[[[` which confuses MediaWiki (#6119).
* HTML reader:
+ Don't parse `data-id` as `id` attribute. And similarly don't
parse any `data-X` as `X` when `X` is a valid HTML attribute.
* Org reader:
+ Simplify parsing of sub- and superscripts (#6127, Albert Krewinkel).
Speeds up parsing of single-word, markup-less sub- and superscripts.
* LaTeX writer:
+ Group biblatex citations even with prefix and suffix (#5849, Ethan
Riley). Previously biblatex citations were only grouped if there
was no prefix. This patch allows them to be grouped in subgroups split
by prefixes and suffixes, which allows better citation sorting.
+ Fix regression in handling of columns in beamer slides (#6033).
Columns in title slides were causing problems with
slide division.
+ Fix duplicate frame classes in LaTeX/Beamer output (#6107).
* HTML writer:
+ Fix duplicate attributes on headings (#6062), regression from 2.7.x.
+ Fix `--number-offset` with HTML TOC. Eventually it would be worth
adding a parameter to `makeSections` so this could be done at that
level; then it would also affect other writers that construct
TOC manually.
+ reveal.js: restore old behavior for 2D nesting (#6032).
The fix to #6030 actually changed behavior, so that the
2D nesting occurred at slide level N-1 and N, instead of
at the top-level section. This commit restores the v2.7.3 behavior.
If there are more than 2 levels, the top level is horizontal
and the rest are collapsed to vertical.
+ reveal.js: ensure that pauses work even in title slides (#5819).
* Markdown writer:
+ Fix regression: spurious dots in markdown_mmd metadata output (#6133).
* Docx writer:
+ Fix regression with Compact style on tight lists (#6072).
Starting in 2.8, the docx writer no longer distinguishes between tight
and loose lists, since the Compact style is omitted. This is a
side-effect of the fix to #5670, as explained in the changelog. This
patch fixes the problem by extending the exception currently offered to
Plain blocks inside tables to Plain blocks inside list items.
* Jira writer:
+ Fix output of table headers (Albert Krewinkel, #6035).
* Add Text.Pandoc.Image with unexported svgToPng.
* Text.Pandoc.XML: Export `html5Attributes`, `html4Attributes`,
`rdfaAttributes` (formerly unexported in Text.Pandoc.Writers.HTML).
[API change]
* Text.Pandoc.Shared: Export a new function `findM` (#6125,
Joseph C. Sible).
* Text.Pandoc.Logging: Add `RunningFilter`, `FilterCompleted`
constructors to LogMessage [API change].
* Text.Pandoc.CSV: fix bug in CSV parser; previously an extra blank record
would sometimes be inserted at the end.
* LaTeX template: add space option to xeCJK with PassOptionsToPackage
(#6002). Otherwise we can get a clash with documentclasses that
already load the package.
* Lua filters:
+ Allow filtering of element lists (#6038, Albert Krewinkel). Lists of
Inline and Block elements can now be filtered via `Inlines` and
`Blocks` functions, respectively. This is helpful if a filter
conversion depends on the order of elements rather than a single
element. For example, the following filter can be used to remove all
spaces before a citation:
function isSpaceBeforeCite (spc, cite)
return spc and spc.t == 'Space'
and cite and cite.t == 'Cite'
end
function Inlines (inlines)
for i = #inlines-1,1,-1 do
if isSpaceBeforeCite(inlines[i], inlines[i+1]) then
inlines:remove(i)
end
end
return inlines
end
+ Add methods `insert`, `remove`, and `sort` to pandoc.List
(Albert Krewinkel). Example of use:
local numbers = pandoc.List {2, 3, 1}
numbers:sort() -- numbers is now {1, 2, 3}
+ Make `pandoc.List` a callable constructor (Albert Krewinkel).
It is now possible to construct a new List via
`pandoc.List()` instead of `pandoc.List:new()`.
+ Add tests for pandoc.List module (Albert Krewinkel).
* Text.Pandoc.App.CommandLineOptions: Change `setVariable` to use `Text`
instead of `String`. This avoids some unnecessary unpacking.
* Use versioned directory for windows release zipfile.
Also remove old `make-windows-installer.bat`, superseded by GitHub
actions workflow, and modify `pandoc.wxs` for new paths.
* Extensive code cleanup (#6141, #6128, #6129, #6130, #6123,
#6105, 6102, #6117, #6124, #6115, #6116, #6111, Joseph C. Sible).
* Fix hlint warnings (Albert Krewinkel).
* Use latest doclayout, doctemplates (#6031). The new version of
doclayout fixes a memory leak that affected `--include-in-header` with
large files (and possibly other cases involving extremely long lines).
* Use latest texmath.
* Use latest skylighting and fix test suite (#6086).
* sample.lua: Fix typo in descriptive comments (#6136, Caleb Maclennan).
Fix typo in error message (#6135).
* Add Docker and GH Actions instructions/links to INSTALL.md.
* Update filter documentation (#6065). Improve cabal v2 instructions.
Remove example using pandoc API directly (we have other
docs for that and it was outdated).
* Lua filter docs:
+ Cross-link constructors and types (Albert Krewinkel).
Thanks to @bpj for the idea.
+ Sort pandoc.List methods alphabetically (Albert Krewinkel).
+ Unify, fix anchors and internal links (#6061, Albert Krewinkel).
Links and anchors now follow consistent conventions, like
lowercase-only anchor names. This breaks some links to specific
sections in the document, but will make it much easier to link
documentation in the future.
+ Clarify filter function execution order (#6059, Albert Krewinkel).
* In docs, update URLs and use `https:` wherever possible (#6090,
Salim B).
## pandoc 2.9.1.1 (2020-01-05)
* Markdown reader:
+ Fix parsing bug affected indented code after raw HTML (#6009, #5360).
* LaTeX writer:
+ Fix regression in beamer slide structure with certain slide levels
(#6030).
+ Allow framebreaks for beamer's TOC (Heiko Schlittermann, #6012)
+ Properly handle unnumbered headings level 4+ (#6018).
Previously the `\paragraph` command was used instead of
`\paragraph*` for unnumbered level 4 headings.
* HTML writer:
+ Fix revealjs slide structure regression with certain slide levels
(#6030).
+ Add newlines to make slide show output more readable.
* Org writer:
+ Remove extra spaces from table cells (Albert Krewinkel, #6024).
* JATS template: Update JATS dtd (Arfon Smith, #6020). Use the archiving
and interchange DTD rather than the more restrictive journal publishing
DTD (which doesn't permit ext-link as a valid child).
* Text.Pandoc.PDF: Fix `runTeXProgram` so that the input source is always
overwritten (#6027). Previously it wasn't overridden if the file already
existed, which led to bad results on subsequent runs when
`pdf-engine-opt=-output-directory=` was used to specify an explicit temp
dir.
* Text.Pandoc.BCP47: Change `getLang` to handle block-level contents
(#6008). Some readers (e.g. RST) will populate the `lang` metadata field
with block-level content. `getLang` has been modified to handle this.
Previously in these cases the LaTeX writer would not properly set the
"main language" of the document.
* Fix `test/tables.org` (Albert Krewinkel).
* Use HTTPS in copyright message (Felix Yan, #6010)
## pandoc 2.9.1 (2019-12-23)
* Add Jira reader (Albert Krewinkel, #5556).
* Jira writer: use jira-wiki-markup renderer (Albert Krewinkel,
#5926). The following improvements are included in this change:
+ non-jira raw blocks are fully discarded instead of showing
as blank lines;
+ table cells can contain multiple blocks;
+ unnecessary blank lines are removed from the output;
+ markup chars within words are properly surrounded by
braces;
+ preserving soft linebreaks via `--wrap=preserve` is
supported.
Note that backslashes are rendered as HTML entities, as there
appears no alternative to produce a plain backslash if it is
followed by markup. This may cause problems when used with
confluence, where rendering seems to fail in this case.
* Fix regression with `--number-sections`. Starting with 2.8,
`--number-sections` also had the effect of `--section-divs`,
even if `--section-divs` was not specified.
* Improved table of contents generation in markdown, RTF,
commonmark, better handling cases where section headings are
enclosed in divs.
* Ensure that later default file values for `variable` replace
earlier ones (5988).
* HTML reader: Add `nav` to list of block-level tags.
* Org reader (Albert Krewinkel):
+ Wrap named table in Div, using name as id (#5984).
Tables which are given a name via `#+NAME:` or `#+LABEL:`
are wrapped in an additional Div, with the name set as the
Div's ID.
+ Report parsing errors properly.
+ Fix parsing problem for colons in headline (#5993).
* Text.Pandoc.PDF: Ensure UTF8 when printing source in
`--verbose` mode, avoiding an error on platforms that
default to something other than UTF-8 (#5997).
* Text.Pandoc.Templates: Strip directory before trying to find
partial in data files (#5987).
* Text.Pandoc.Shared: Improve `makeSections` so we don't get
doubled "number" attributes in EPUB output (or anywhere
else) (#5986).
* Added tests for `--toc` and `--section-divs`.
* Text.Pandoc.MIME: Added glsl MIME type for WebGL maps (#6000,
Jared Lander).
* MANUAL: A bit clearer explanation for `--base-header-level`.
We now say exactly how to translate between the deprecated
`--base-header-level` and `--shift-heading-level-by`.
* lua-filters.md:
+ Remove spurious dot in title (#5996, Mauro Bieg).
+ Replace metadata example with image centering (#6004,
Albert Krewinkel). Thanks to @efx for proposing this filter.
## pandoc 2.9 (2019-12-11)
* Text.Pandoc.Templates [API change]
+ Add Monad wrappers `WithDefaultPartials` and `WithPartials`.
Wrapping these around an instance of `PandocMonad` gives
us different instances of `TemplateMonad`, with different
search behavior in retrieving partials.
To compile a template and limit partial search to pandoc's
data files, use `runWithDefaultPartials (compileTemplate ...)`.
To compile a template and allow partials to be found locally
(either on the file system or via HTTP, in the event that
the main template has an absolute URL), ue
`runWithPartials (compileTemplate ...)`.
+ Export `getTemplate`, which seeks a template locally,
or via HTTP if the template has an absolute URL, falling
back to the data files if not found.
+ Export `compileDefaultTemplate` -- does `getDefaultTemplate`
and compiles the result, raising an error on failure.
* Text.Pandoc.Class [API change]
+ Remove `TemplateMonad` instances for `PandocIO` and `PandocPure`.
These were too limiting and caused a bug whereby a local
partial could be used even when the default template was requested.
We now rely on instances provided in the Templates module.
* Text.Pandoc.App.OutputSettings: Simplify template retrieval code.
* ConTeXt template: Adjust to title formatting (#5949, Denis Maier).
Add `\setupinterlinespace` to `title`, `subtitle`, `date` and `author`
elements: otherwise longer titles that run over multiple lines will look
squashed as `\tfd` etc. won't adapt the line spacing to the font size.
* reveal.js template: Add title-slide-attributes variable (#5981,
Frederik Elwert).
* More informative JSON parse error (#5973).
* Use external emojis package (forked from pandoc). Removed emoji data
in Text.Pandoc.Emoji.
* Fix regression in `makeSections` (#5965).
Previously `hierarchicalize` (the ancestor of `makeSections`) would put
header attributes on the containing Div. In 2.8 this behavior changed,
which broke some tools depending on pandoc. Here we roll back this change,
so that attributes again migrate from the header to the containing Div when
`makeSections` is run. Note that attributes are retained on the header as
well (unlike before) -- with the exception of the `id` attribute, which of
course cannot be duplicated.
* Fix `--toc-depth` regression in 2.8 (#5967).
* Use doctemplates 0.8. Rename template 'filters' as 'pipes'
to avoid confusion with the other notion of filter used by pandoc.
* Fix README.md so that relative links from manual become absolute.
Previously they'd be broken links when viewed on GitHub or Hackage.
So we add the base URL for the pandoc manual.
* Document display math syntax in manual.
## pandoc 2.8.1 (2019-12-05)
* Add `ascii_identifiers` as a supported extension for `markdown`.
This fixes a regression in 2.8.
* Fix regression with behavior of `--variable` (#5962).
Previously `-Vfoo=1 -Vfoo=2` would produce a list value for foo;
with 2.8 it produced just `2`. This commit restores the earlier
behavior.
* Roll back part of of `--shift-heading-level-by` change (#5957).
With positive heading shifts, starting in 2.8 this option
caused metadata titles to be removed and changed to regular
headings. This behavior is incompatible with the old
behavior of `--base-header-level` and breaks old workflows,
so we have rolled back the change. Note that there is now an
asymmetry in positive and negative heading level shifts:
With positive shifts, the metadata title stays the same and
does not get changed to a heading in the body, while with
negative shifts, a heading can be converted into the
metadata title.
* Text.Pandoc.Shared: Fix `makeSections` so it doesn't turn
column Divs into sections.
* HTML writer: add task-list class to ul if all elements are
task list items. This will allow styling unordered task
lists in a way that omits the bullet.
* HTML-based templates: Add CSS to suppress bullet on unordered task lists.
* ConTeXt template: Fix `\startcslreferences` and use ConTeXt syntax
conventions (#5945, Denis Maier). The old version had a too large
a skip at the beginning of the reference list.
* LaTeX template: keep the `\author{}` command even if author is not
specified (#5961, Yihui Xie). Avoids a LaTeX warning.
* Generate Emoji module with TH.
+ Add Text.Pandoc.Emoji.TH.
+ Replace long literal list in Text.Pandoc.Emoji with one-liner
generating it from `emoji.json` using TH.
+ Add Makefile target to download `emoji.json`.
+ Remove `tools/emoji.hs`.
* Increase GC allocation space for compilation in cabal.project.
* Clean up manual on PDF generation backend options (#5940).
* Update release checklist to include code signing step and update
Windows release-candidate builds (#5950).
## pandoc 2.8.0.1 (2019-11-26)
* List `pdf` in `--list-output-formats`.
* EPUB writer: Fix regression with `--css` (#5937). In 2.8 `--css`
would not have an effect on EPUB output.
* RST writer: Use grid tables for one-column tables, since
simple tables clash with heading syntax in this case (#5936).
* Add unexported module Text.Pandoc.Readers.Metadata (see #5914).
* Use doctemplates 0.7.2, which adds the `nowrap` filter to
templates.
* Update default man template using `nowrap` for .TH heading (#5929).
* HTML templates: Add support for `toc-title` variable (#5930,
Alexandre Franke).
* Remove `grffile` (LaTeX package) requirement in MANUAL.txt
(#5927, Ian Max Andolina).
* Use skylighting 0.8.3.
## pandoc 2.8 (2019-11-22)
* Improvements in templates system (from doctemplates):
+ Pandoc templates now support a number of new features that
have been added in doctemplates: notably, `elseif`, `it`,
partials, filters, and syntax to control nesting and reflowing of
text. These changes make pandoc more suitable out of the
box for generating plain-text documents from data in YAML
metadata. It can create enumerated lists and even tabular
structures.
+ We now used templates parameterized on doclayout Doc types.
The main impact of this change is better reflowing of
content interpolated into templates. Previously,
interpolated variables were rendered independently and
interpolated as strings, which could lead to overly long
lines. Now the templates interpolated as Doc values which
may include breaking spaces, and reflowing occurs after
template interpolation rather than before.
+ Remove code from the LaTeX, Docbook, and JATS writers that
looked in the template for strings to determine whether it
is a book or an article, or whether csquotes is used. This
was always kludgy and unreliable.
+ Change template code to use new API for doctemplates.
* Add `--defaults`/`-d` option. This adds the ability to specify
a collection of default values for options in a YAML file. For
example, one might define a set of defaults for letters,
and then do `pandoc -d letter myletter.md -o myletter.pdf`.
See the documentation of this feature in MANUAL.txt.
* Raise error on unsupported extensions (#4338).
* The `--list-extensions[=FORMAT]` option now lists only
extensions that affect the given FORMAT.
* Add `-L` option as shortcut for `--lua-filter`.
* Add `--shift-heading-level-by` option and deprecate
`--base-heading-level` (#5615). The new option does
everything the old one does, but also allows negative shifts.
It also promotes the document metadata (if not null) to a
level-1 heading with a +1 shift, and demotes an initial
level-1 heading to document metadata with a -1 shift. This
supports converting documents that use an initial level-1
heading for the document title.
* Allow `--metadata-file` to be used repeatedly to include
multiple metadata files (Owen McGrath, #5702). Values in
files specified first will be overridden by those in later
files.
* `--ascii` now uses numerical hex character references (#5718).
* Allow PDF output to stdout (#5751). PDF output now behaves like other
binary formats: it will not be output to the terminal, but can be
sent to stdout using either `-o -` or a pipe. The intermediate format
will be determined based on the setting of `--pdf-engine`.
* Make some writers sensitive to 'unlisted' class on headings (#1762).
If this is present on a heading with the 'unnumbered' class,
the heading won't appear in the TOC. This class has no
effect if 'unnumbered' is not also specified. This affects HTML-based
writers (including slide shows and EPUB), LateX (including beamer), RTF,
and PowerPoint. Other writers do not yet support `unlisted`.
* Fix `gfm_auto_identifiers` behavior with emojis (#5813). Note that
we also now use emoji names for emojis when `ascii_identifiers`
is enabled.
* When `--ipynb-output` is used with the default "best" format, strip
ANSI escape codes for non-ipynb output (#5633). These cause problems
in many formats, including LaTeX.
* Don't look for template files remotely for remote input (#5579).
Previously pandoc would look for the template at a remote URL when a
URL was used for the input file, instead of taking it from the
data directory.
* Allow combining `-Vheader-includes` and `--include-in-header` (#5904).
Previously `header-includes` set as a variable would be
clobbered by material included using `--include-in-header`.
* Change merge behavior for metadata. Previously, if a document
contained two YAML metadata blocks that set the same field, the
conflict would be resolved in favor of the first. Now it is resolved
in favor of the second (due to a change in pandoc-types).
This makes the behavior more uniform with other things in pandoc
(such as reference links and `--metadata-file`).
* Don't add a newline to fragment output if there's already one.
* Change exit codes and document in MANUAL.txt:
+ `PandocAppError` was 1, is now 4
+ `PandocOptionError` was 2, is now 6
+ `PandocMakePDFError` was 65, is now 66
* Switch to new pandoc-types and use Text instead of String [API change].
(Christian Despres, #5884).
* HTML reader:
+ Better handling of `<q>` with cite attribute (#5798, Ole Martin Ruud).
If a `<q>` tag has a `cite` attribute, we interpret it as a Quoted
element with an inner Span.
+ Add support for HTML `<samp>` element (#5792, Amogh Rathore).
The `<samp>` element is parsed as Code with class `sample`.
+ Add support for HTML `<var>` element (#5799, Amogh Rathore).
The `<var>` element is parsed as Code with class `variable`.
+ Add support for `<mark>` elements (Florian B, #5797). Parse
`<mark>` elements from HTML as Spans with class `mark`.
+ Add support for `<kbd>` elements, parsing them as Span with class
`kbd` (Daniele D'Orazio, #5796).
+ Add support for `<dfn>`, parsing this as a Span with class `dfn`
(#5882, Florian Beeres).
* Markdown reader:
+ Headers: don't parse content over newline boundary (#5714).
+ Handle inline code more eagerly within lists (Brian Leung, #5627).
+ Removed some needless lookaheads.
+ Don't parse footnote body unless extension enabled.
+ Fix small super/subscript issue (#5878). Superscripts and subscripts
cannot contain spaces, but newlines were previously allowed
(unintentionally). This led to bad interactions in some cases
with footnotes. With this change newlines are also not allowed inside
super/subscripts.
+ Use `take1WhileP` for `str`, table row. This yields a small but
measurable performance improvement.
* LaTeX reader:
+ Fix parsing of optional arguments that contain braced text (#5740).
+ Don't try to parse includes if `raw_tex` is set (#5673).
When the `raw_tex` extension is set, we just carry through
`\usepackage`, `\input`, etc. verbatim as raw LaTeX.
+ Properly handle optional arguments for macros (#5682).
+ Fix `\\` in `\parbox` inside a table cell (#5711).
+ Improve `withRaw` so it can handle cases where the token string is
modified by a parser (e.g. accent when it only takes part of a Word
token) (#5686). This fixes a bug that caused the ends of
certain documents to be dropped.
+ Handle `\passthrough` macro used by latex writer (#5659).
+ Support tex `\tt` command (#5654).
+ Search for image with list of extensions like latex does, if an
extension is not provided (#4933).
+ Handle `\looseness` command values better (#4439).
+ Add `mbox` and `hbox` handling (Vasily Alferov, #5586).
When `+raw_tex` is enabled, these are passed through literally.
Otherwise, they are handled in a way that emulates LaTeX's behavior.
+ Properly handle `\providecommand` and `\provideenvironment` (#5635).
They are now ignored if the corresponding command or environment
is already defined.
+ Support epigraph command in LaTeX Reader (oquechy, #3523).
+ Ensure that expanded macros in raw LaTeX end with a space
if the original did (#4442).
+ Treat `ly` environment from lilypond as verbatim (Urs Liska, #5671).
+ Add `tikzcd` to list of special environments (Eigil Rischel).
This allows it to be processed by filters, in the same way that
one can do for `tikzpicture`.
* Roff reader:
+ Better support for `while`.
+ More improvements in parsing conditionals.
+ Fix problem parsing comments before macro.
+ Improve handling of groups.
+ Better parsing of groups (#5410). We now allow groups
where the closing `\\}` isn't at the beginning of a line.
* RST reader:
+ Keep `name` property in `imgAttr` (Brian Leung, #5619).
+ Fixed parsing of indented blocks (#5753). We were requiring
consistent indentation, but this isn't required by RST.
+ Use title, not admonition-title, for admonition title.
This puts RST reader into alignment with docbook reader.
+ Don't strip final underscore from absolute URI (#5763).
+ Avoid spurious warning when resolving links to internal anchors
ending with `_` (#5763).
* Org reader:
+ Accept `ATTR_LATEX` in block attributes (Albert Krewinkel, #5648).
Attributes for LaTeX output are accepted as valid block attributes;
however, their values are ignored.
+ Modify handling of example blocks (Brian Leung, #5717).
+ Allow the `-i` switch to ignore leading spaces (Brian Leung).
+ Handle awkwardly-aligned code blocks within lists (Brian Leung).
Code blocks in Org lists must have their `#+BEGIN_` aligned in a
reasonable way, but their other components can be
positioned otherwise.
+ Fix parsing of empty comment lines (#5856, Albert Krewinkel).
Comment lines in Org-mode can be completely empty.
* Muse reader (Alexander Krotov):
+ Add RTL support (#5551).
+ Do not allow closing asterisks to be followed by `*`.
+ Do not split series of asterisks into symbols and emphasis (#5821).
+ Do not terminate emphasis on `*` not followed by space.
* DokuWiki reader:
+ Parse markup inside monospace ('') (#5916, Alexander Krotov).
* Docx reader:
+ Move style-parsing-specific code to a new unexported module,
Text.Pandoc.Readers.Docx.Parse.Styles (Nikolay Yakimov).
+ Move StyleMap to docx writer (Nikolay Yakimov).
+ Only use LTR when it is overriding BiDi setting (#5723, Jesse
Rosenthal). The left-to-right direction setting in docx is used
in the spec only for overriding an explicit right-to-left setting.
We only process it when it happens in a paragraph set with BiDi.
This is especially important for docs exported from Google Docs,
which explicitly (and unnecessarily) set `rtl=0` for every paragraph.
+ Fix list number resumption for sublists (#4324).
The first list item of a sublist should not resume numbering
from the number of the last sublist item of the same level,
if that sublist was a sublist of a different list item.
* Docbook reader:
+ Richer parse for admonitions (Michael Peyton Jones, #1234).
Instead of parsing admonitions as blockquotes, we now parse
them as Divs with an appropriate class. We also handle titles
for admonitions as a nested Div with the "title" class.
+ Fix nesting of chapters and sections (#5864, Florian Klink,
Félix Baylac-Jacqué).
+ Fix bug with entities in mathphrase element (#5885).
* MediaWiki reader:
+ Skip optional `{{table}}` template (#5757).
* LaTeX reader:
+ Fix dollar-math parsing to ensure that space is left between a
control sequence and a following letter (#5836).
+ In `untokenize`, ensure space between control sequence
and following letter (#5836).
+ Don't omit macro definitions defined in the preamble.
These were formerly omitted (though they still affected macro
resolution if `latex_macros` was set). Now they are included in
the document body.
+ Parse macro definitions as raw LaTeX when `latex_macros` is
disabled. (When `latex_macros` is enabled, we omit them, since
pandoc is applying the macros itself.)
+ Fix a hang/memory leak in certain circumstances (#5845).
+ Text.Pandoc.Readers.LaTeX.Parsing: add `[Tok]` parameter to
`rawLaTeXParser`. This allows us to repeat retokenizing
unnecessarily in e.g. `rawLaTeXBlock`.
+ Add KOMA-Script metadata commands (#5910, Andrew Dunning).
Add all titling commands to existing definition for `\dedication`.
+ Parse `\micro` siunitx unit command (#5921, Jose Luis Duran).
* Markdown writer:
+ Ensure proper nesting when we have long ordered list markers (#5705).
+ Make `plain` output plainer (#5741). Previously we used the following
Project Gutenberg conventions for plain output: extra space before and
after level 1 and 2 headings, all-caps for strong emphasis,
underscores surrounding regular emphasis. Now these
conventions are used only when the `gutenberg` extension is
enabled. By default, Strong and Emph are rendered without
special formatting, and headings are rendered without
special formatting, and with only one blank line following.
To restore the former behavior, use `-t plain+gutenberg`.
+ Prefer using raw_attribute when enabled (#4311).
The `raw_attribute` will be used to mark raw bits, even HTML
and LaTeX, and even when `raw_html` and `raw_tex` are
enabled, as they are by default. To get the old behavior,
disable `raw_attribute` in the writer.
+ Prefer `pipe_tables` to raw HTML even when we must
lose width information (#2608, #4497).
+ Improve escaping in list items (#5918).
* AsciiDoc writer:
+ Don't include `+` in code blocks for regular asciidoc.
This is asciidoctor-specific.
+ Handle admonitions (#5690).
* LaTeX writer:
+ Add thin space when needed in LaTeX quote ligatures (#5684).
+ Use `\hspace{0pt}` for 0-width space U+200B (#5756).
+ Use `cslreferences` environment for csl bibliographies.
This allows bibliographies to receive special formatting.
The template now contains definition of this environment (enabled
only when CSL is used). It also defines a `\cslhangindent` length.
This is set to 2em by default when the bibliography style specifies
a hanging indent. To override the length, you can use e.g.
`\setlength{\cslhangindent}{7em}` in header-includes.
See jgm/pandoc-citeproc#410.
+ Strip off `{}` around locator for biblatex/natbib output (#5722).
+ Fix line breaks at start of paragraph (#3324).
Previously we just omitted these. Now we render them
using `\hfill\break` instead of `\\`. This is a revision
of a PR by @sabine (#5591) who should be credited with the idea.
+ We no longer look in the template or header-includes to see if a
book or article documentclass is used, or to see whether the
`csquotes` package is used. To use `csquotes` for LaTeX, set
`csquotes` in your variables or metadata. To specify a book
style, use the `documentclass` variable or
`--top-level-division`.
+ Fix horizontal rule (#5801). We change to use 0.5pt rather than
`\linethickness`, which apparently only ever worked "by accident"
and no longer works with recent updates to texlive.
* ConTeXt writer:
+ Add option to include source files in ConTeXt PDFs (Tristan
Stenner, #5578). The metadata field or variable
(`includesource`) can be set to attach the source documents
to the resulting PDF.
+ Customizable type of PDF/A for the ConTeXt writer (Karl
Pettersson, #5608). The `pdfa` variable may now be set in metadata.
Also updated color profile settings in accordance with ConTeXt wiki,
and made ICC profile and output intent for PDF/A customizable
using `pdfaiccprofile` and `pdfaintent`.
+ Unit tests: adjust code property to avoid an irrelevant
failure involving inline code with two consecutive newlines.
+ Set `csl-hanging-indent` variable if needed.
+ Use special environment for CSL references.
+ Use braces, not start/stop, for inline language tags.
This prevents unwanted gobbling of spaces.
* HTML writer:
+ Use numeric character references with `--ascii` (#5718).
Previously we used named character references with html5 output.
But these aren't valid XML, and we aim to produce html5 that is
also valid XHTML (polyglot markup). (This is also needed for epub3.)
+ Ensure that line numbers in code blocks get id-prefix (#5650).
+ Ensure TeX formulas are rendered correctly (Philip Pesca,
#5658). The web service passed in to `--webtex` may render
formulas using inline or display style by default.
Prefixing formulas with the appropriate command ensures
they are rendered correctly.
+ Render inline formulas correctly with `--webtex` (Philip
Pesca, #5655). We add `\textstyle` to the beginning of the
formula to ensure it will be rendered in inline style.
+ Pass through `aria-` attributes to HTML5 (#5642).
+ Render a Quoted element with an inner Span with
`cite` attribute using a `<q>` tag (#5798, Ole Martin Ruud).
+ Render a Span with class `mark` using the `<mark>` element
(Florian Beeres, #5797).
+ Render Span with class `dfn` using `<dfn>` element
(Florian Beeres, #5882).
+ Render Span with class `kbd` using `<kbd>` element (Daniele
D'Orazio, #5796).
+ Render Code with class `variable` using `<var>` element
(Amogh Rathore, #5799).
+ Render Code with class `sample` using `<samp>` element
(Amogh Rathore, #5799).
* EPUB writer:
+ Improve splitting into chapters (#5761), using `makeSection`.
+ Avoid issuing warning multiple times when title not set (see #5760).
+ Use svg tag wrapper for cover image (#5638). In addition, the
code generating the image has been moved to the template, to make it
more customizable. NOTE: Those who use custom EPUB
templates will need to adjust their templates, adding the
code to generate the cover image. (Previously this was just
inserted into 'body'.)
+ Improve toChapters, making it work better if there are Divs
around sections.
+ Add support for EPUB2 covers (blmage, #3992).
+ Do not override existing "fileN" medias when writing to EPUB format
(blmage, #4206).
+ Ensure that `lang` variable is set on all chapters (so that it
will add an `xml:lang` attribute on the `html` element).
* RST writer:
+ Removed remnants of `admonition-title`.
+ Fix handling of `:align:` on figures and images (#4420).
When the image has the `align-right` (etc.) class, we now use
an `:align:` attribute.
+ Improve spacing for tables with no width information (#5899).
If a simple table would be too wide, we use a grid table.
+ Fix backslash escaping after strings (Albert Krewinkel, #5906).
The check whether a complex inline element following a string must
be escaped, now depends on the last character of the string instead
of the first.
+ Ensure there's a blank line before tables (#5898).
* Dokuwiki writer:
+ Handle mixed lists without HTML fallback (#5107).
* XWiki writer:
+ Fix multiline table (Zihang Chen, #5683).
* Muse writer:
+ Add RTL support (Alexander Krotov, #5551).
* Man writer:
+ Suppress non-absolute link URLs (#5770). Absolute URLs are
still printed in parentheses following the link text, but relative
URLs are suppressed (just as internal links starting with '#'
always have been).
+ Improved definition list term output. Now we boldface code but
not other things. This matches the most common style in man pages
(particularly option lists).
* Ms writer:
+ Use `.LP` instead of `.PP` for line block (#5588).
+ Use boldface for definition terms in DefinitionLists.
* JATS writer:
+ Do not emit empty `<fn-group>` (Mauro Bieg, #5595).
+ Update template to v1.1dtd (#5632, Arfon Smith).
+ Update `data/jats.csl` to avoid commas between editor
name-part elements. (#5629)
+ Add `abstract` to template (Mauro Bieg).
* TEI writer:
+ Don't strip hash from internal links (#5922).
* Jira writer:
+ Remove escapeStringForJira for code blocks (Jan-Otto Kröpke).
+ Remove extraneous newline after single-line block quotes
(#5858, Albert Krewinkel).
+ Improve escaping of special characters, using backslash escapes
instead of HTML entities (#5858, Albert Krewinkel).
* OpenDocument writer:
+ Avoid duplicate attributes (#4634). We use the innermost
attribute in nested cases.
+ If `native_numbering` extension is set, use native OpenDocument
enumeration for figures and tables (Nils Carlson).
+ Place caption before table (#5681, Dmitry Pogodin).
* ODT writer:
+ Add a test for MathML formulas in ODT documents (blmage).
+ Improve the parsing of frames in ODT documents (blmage).
* Docx writer:
+ Make handling of styles more robust in localized versions
of Word (Nikolay Yakimov, #5523, #5052, #5074). We now use
style names, not ids, for assigning semantic meaning, since
the ids can change depending on the locale. Style name
comparisons are case-insensitive, since those are
case-insensitive in Word. Since docx style names can have
spaces in them, and pandoc-markdown classes can't, anywhere
when style name is used as a class name, spaces are
replaced with ASCII dashes `-`. Code styles, i.e. "Source
Code" and "Verbatim Char" now honor style inheritance. Docx
Reader now honours "Compact" style (used in
Pandoc-generated docx). The side-effect is that "Compact"
style no longer shows up in docx+styles output. Styles
inherited from "Compact" will still show up.
+ Re-use Readers.Docx.Parse for StyleMap (#5766, Nikolay Yakimov).
+ Internal improvements and code simplification (Nikolay Yakimov).
+ Preserve built-in styles in DOCX with custom style (Ben Steinberg,
#5670). This change prevents custom styles on divs and spans
from overriding styles on certain elements inside them, like
headings, blockquotes, and links. On those elements, the
"native" style is required for the element to display correctly.
This change also allows nesting of custom styles; in order to do so,
it removes the default "Compact" style applied to Plain blocks,
except when inside a table.
+ Add `proofState` to list of elements carried over from
settings.xml in the reference.docx (Krystof Beuermann, #5703).
+ Change order of `ilvl` and `numId` in `document.xml` (Agustín
Martín Barbero, #5645). Also, make list para properties go first.
This reordering of properties shouldn't be necessary but
it seems Word Online does not understand the docx correctly otherwise.
* PowerPoint writer:
+ Code formatting is now context dependent (Jeroen de Haas, #5573).
This commit alters the way in which the Powerpoint writer treats
inline code and code blocks. Inline code is now formatted at
the same size as the surrounding text. Code blocks are now given
a margin and font size according to their level.
Furthermore this commit allows changing the font with which code is
formatted via the `monofont` option.
+ Start numbering at appropriate numbers (Jesse Rosenthal, #5709).
Starting numbers for ordered lists were previously ignored. Now
we specify the number if it is something other than 1.
* Text.Pandoc.Parsing:
+ Add `manyChar`, `many1Char`, `manyTillChar`, `many1TillChar`,
`many1Till`, `manyUntil`, `mantyUntilChar`: these are like their
unsuffixed counterparts but pack some or all of their output
(Christian Despres, #5884).
+ Add `stateAllowLineBreaks` to `ParserState` [API change].
+ Fix inline parsing in grid table cells (#5708).
+ Change type of `setLastStrPos` so it takes a `Maybe SourcePos`
rather than a `SourcePos` [API change].
+ Make `parseFromString'` and `gridTableWith` and
`gridTableWith'` polymorphic in the parser state,
constraining it with `HasLastStrPosition` [API change].
+ `parseFromString'`: reset `stateLastStrPos` to `Nothing` before parse.
+ Rename takeWhileP -> take1WhileP and clean it up.
(It doesn't match the empty sequence.)
* Text.Pandoc.PDF:
+ For PDFs via HTML, ensure temp file is deleted even if the pdf
program is not found (#5720).
+ Better detection of a Cygwin environment (#5451).
+ Don't assume tex log file is UTF8-encoded (#5872).
Fall back to latin1 if it can't be read as UTF-8.
* Text.Pandoc.Extensions:
+ Export new function `getAllExtensions`, which returns the
extensions that affect a given format (whether enabled by default
or not) [API change].
+ Change type of `parseFormatSpec` from
`Either ParseError (String, Extensions -> Extensions)`
to `Either ParseError (String, [Extension], [Extension])`
[API change].
+ Add `Ext_gutenberg` constructor to `Extension` [API change].
+ Add `Ext_native_numbering` constructor to `Extension` [API change]
(Nils Carlson).
* Text.Pandoc.Readers, Text.Pandoc.Writers:
+ Change type of `getReader` and `getWriter` so they return
a value in the PandocMonad instance rather than an Either
[API change]. Exceptions for unknown formats and unsupported
extensions are now raised by these functions.
* Text.Pandoc.App
+ Change `optMetadataFile` type from `Maybe FilePath` to `[FilePath]`
(Owen McGrath, #5702) [API change].
* Text.Pandoc.Logging:
+ Add `CouldNotDeduceFormat` constructor to `LogMessage` [API change].
Issue this warning when we're falling back to markdown or
html because we don't recognize the extension of the input or
output files.
+ Clarify warning for missing title (#5760).
+ Add `UnusualConversion` constructor to `LogMessage` [API change]
(Mauro Bieg, #5736). Emit warning on `-f latex -o out.pdf`.
* Lua filters:
+ Improve function documentation (Albert Krewkinkel).
+ Traverse nested blocks and inlines in correct order (Albert
Krewinkel, #5667). Traversal methods are updated to use the new
Walk module so that sequences with nested Inline (or Block) elements
are traversed in the order in which they appear in the linearized
document.
+ New unexported module `Text.Pandoc.Lua.Walk` (Albert Krewinkel).
Lua filters must be able to traverse sequences of AST
elements and to replace elements by splicing sequences back
in their place. Special `Walkable` instances can be used for
this; those are provided in a new module
`Text.Pandoc.Lua.Walk`.
+ `Attr` values can now be given as normal Lua tables (Albert
Krewinkel, #5744). This can be used as a convenient alternative
to constructing `Attr` values with `pandoc.Attr`. Identifiers
are taken from the `id` field, classes must be given as
space separated words in the `class` field. All remaining fields
are included as attributes. With this change, the following lines
now create equal elements:
```
pandoc.Span('test', {id = 'test', class = 'a b', check = 1})
pandoc.Span('test', pandoc.Attr('test', {'a','b'}, {check = 1}))
```
This also works when using the *attr* setter:
```
local span = pandoc.Span 'text'
span.attr = {id = 'test', class = 'a b', check = 1}
```
Furthermore, the *attributes* field of AST elements can now be a
plain key-value table even when using the `attributes` accessor:
```
local span = pandoc.Span 'test'
span.attributes = {check = 1} -- works as expected now
```
+ Export `make_sections`, remove `hierarchicalize`. Lua filters that
use `hierarchicalize` will need to be rewritten to use
`make_sections`.
+ Add a `clone()` method to all AST elements (Albert Krewinkel, #5568).
+ Fix Lua function names in pandoc.system (niszet). Change
`get_current_directory` to `get_working_directory` and
`with_temp_directory` to `with_temporary_directory`, to
conform to the manual.
* Text.Pandoc.Error:
+ Add constructors `PandocUnknownReaderError`,
`PandocUnknownWriterError`, `PandocUnsupportedExtensionError`.
[API change].
+ Better message for `PandocShouldNeverHappenError`.
+ Better message for `PandocTemplateError`.
* Text.Pandoc.Emoji:
+ Update emoji list (#5666). Done using new `tools/emojis.hs`,
which uses the list from the gem GitHub uses. Future updates
can be done with this tool.
* Text.Pandoc.PDF:
+ Pass value of `--dpi` to `rsvg-convert` when converting SVG to PDF
in the process of creating a PDF (#5721).
* Text.Pandoc.Shared:
+ Replace `Element` and `makeHierarchical` with `makeSections`.
Now that we have Divs, we can use them to represent the
structure of sections, and we don't need a special Element type.
`makeSections` reorganizes a block list, adding Divs with class
`section` around sections, and adding numbering if needed.
This change also fixes some longstanding issues recognizing section
structure when the document contains Divs (#3057, see also #997).
+ Remove `Element` type [API change]
+ Remove `makeHierarchicalize` [API change]
+ Add `makeSections` [API change]
+ Export `deLink` [API change]
+ Make `filterIpynbOutput` strip ANSI escapes from code in output
for non-ipynb formats, when the default "best" option is used with
`--ipynb-output` (#5633).
+ Fix `camelCaseToHyphenated` so it handles `ABCDef` better.
+ Improve `isTight` (#5857). If a list has an empty item,
this should not count against its being a tight list.
+ Export `htmlSpanLikeElements` [API change] (Daniele D'Orazio, #5796).
This is a mapping of HTML span-like elements that are internally
represented as a Span with a single class.
+ Change the implementation of `htmlSpanLikeElements` to retain
classes and attributes (#5882, Florian Beeres).
* Text.Pandoc.Slides: recognize content in Divs when determining
slide level.
* Text.Pandoc.SelfContained:
+ Omit content-type on type attribute for `<style>` (#5725).
It doesn't seem to be valid for HTML5, and as a result Chrome
ignores the style element.
* Text.Pandoc.Pretty has been removed [API change].
We now use the new external doclayout module instead.
* Text.Pandoc.Writers.Shared:
+ Remove `metaToJSON`, `metaToJSON'` [API change].
+ Modify `addVariablesToContext`, `defField`, `setField`, `getField`,
`resetField` to work with Context rather than JSON values. [API change]
+ Export new function `endsWithPlain` [API change].
+ Change `gridTables` so it does better at keeping the widths of
columns (#4320) and does better at figuring out column widths
when no widths are given (#5899).
* Text.Pandoc.Options
+ Change type of `writerTemplate` to `Maybe Template` instead
of `Maybe String`.
+ Change To/FromJSON instances for `HTMLMathMethod`, `CiteMethod`,
`ObfuscationMethod`, `TrackChanges`, `WrapOption`,
`TopLevelDivision`, `ReferenceLocation`, `HTMLSlideVariant` (#5790).
In each case we use lowercase (or hyphenated lowercase) for
constructors to line up more closely with command-line option
values. This is a breaking change for those who manually decode or
encode JSON for these data types (e.g. for `ReaderOptions` or
`WriterOptions`).
* Text.Pandoc.Filters:
+ Add `FromYAML` instance for `Filter`.
+ `applyFilters`: Add and apply filters in order (not reversed)
This changes `applyFilters` from Text.Pandoc.Filter so
that it does a left fold rather than a right fold, applying
the filters in the order listed.
* Text.Pandoc.XML:
+ Change `toEntities` to emit numerical hex character references
(#5718).
* Text.Pandoc.Highlighting:
+ Add additional listings languages (Wandmalfarbe).
* Text.Pandoc.MediaBag:
+ Some of the types using Strings were switched to use FilePath instead
(Christian Despres, #5884).
* Text.Pandoc.Templates:
+ Don't import/export `varListToJSON` [API change]. It is removed in
doctemplates >= 0.3.
+ Change type of `renderTemplate'` [API change]. Return value is
now Text rather than being polymorphic. This makes room for
upcoming removal of the `TemplateTarget` class from doctemplates.
* Text.Pandoc.App.Opt [API changes]:
+ More convenient To/FromJSON instances. Make the field names
like `strip-empty-paragraphs` rather than `optStripEmptyParagraphs`.
Anyone who is using JSON serialization of Opt will need to adjust
things accordingly.
+ Change `optHighlightStyle` to a `Maybe String` instead of
`Maybe Style`. Do the parsing/loading of themes later, after
option parsing.
+ Remove `optBaseHeaderLevel` from `Opt`. We now just use
`optShiftHeadingLevelBy`, to avoid redundancy.
+ Change `optShiftHeadingLevel` to `optShiftHeadingLevelBy` to
match the option.
+ Custom FromJSON instance for `LineEnding`, so either `CRLF`
or `crlf` will work.
+ Change `optVariables` from `[(String, String)]` to `Context Text`.
+ Change `optMetadata` to `Meta`, to allow structured values.
The current behavior of the `--metadata` option stays the same.
+ Rename `optReader`, `optWriter` as `optFrom`, `optTo`.
+ Add `FromYAML` instances to `Opt` and to all subsidiary types.
+ Rename `optMetadataFile` to `optMetadataFiles`.
+ Rename `optPDFEngineArgs` to `optPDFEngineOpts`.
+ Rename `optWrapText` to `optWrap`.
+ Add `IpynbOutput` enumerated type: use this instead of
a string for `optIpynbOutput`.
+ Change optInputFiles to a `Maybe [FilePath]` (#5888) [API change].
`Nothing` means: nothing specified.
`Just []` means: an empty list specified (e.g. in defaults).
+ List fields in Opt so they aren't reversed (#5881) [API change].
Previously `optIncludeInHeader`, etc. were in reverse order.
+ The `sourcefile` variable is now always a list. It used to be
sometimes a string, sometimes a list (when there was more than one).
* Template changes:
+ default.latex: added code for `cslreferences` environment,
to be used for pandoc-citeproc references. A `csl-hanging-indent`
variable (set automatically if there is a `hanging-ident`
class on the references Div) controls whether contents of this
environment receive a hanging indent.
+ default.latex: Add `space` as default option for xeCJK, so that
spaces between words are preserved (#5855, jeongminkim-islab).
This is necessary for Korean.
+ default.latex: Remove include of `grffile` (#5848).
This package used to be needed for proper handling of image filenames
containing periods (in addition to the period before the extension).
It no longer works with the latest LaTeX kernel and graphicx,
so we have removed it. Future versions of graphicx will handle
these filenames without the need for `grffile`.
+ default.context: add a saner default for page numbers.
Previously they appeared centered at the top of the page;
now we put them centered at the bottom, unless the `pagenumbering`
variable is set.
+ default.context: define a start-stop-pair `cslreferences` to
allow for hanging indents in the bibliography (#5875, Denis Maier).
+ default.ms: update defaults. Use Palatino font, use slightly
wider interparagraph space, don't indent paragraphs,
and put page numbers on the bottom. This brings ms output
closer to default LaTeX output.
+ default.revealjs: add navigationMode (Mauro Bieg, #5657).
+ default.muse: handle multiple authors better.
+ docbook4, docbook5 templates: add indentation to body.
+ HTML-based templates: use `styles.html` partial to avoid
code duplication.
+ HTML-based templates: change indentation of styles in template.
* reference.docx (#5820):
+ Change Block Text (block quote) style so that the same font
is used as in the body text, and the block text is indented
left and right.
+ All headings now have a uniform color.
+ Level-1 headings no longer set `w:themeShade="B5"`.
+ Level-2 headings are now 14 point rather than 16 point.
+ Level-3 headings are now 12 point rather than 14 point.
+ Level-4 headings are italic rather than bold.
* epub.css: Add CSS for hanging-indent div to support pandoc-citeproc's
new hanging indents.
* pandoc.cabal:
+ Repeat ghc-options in all stanzas.
+ Remove conditionals for ghc < 8 (Albert Krewinkel, #5693).
+ Compile with `-Wcpp-undef` and `-fhide-source-paths` when possible
(Albert Krewinkel).
+ Add cabal.project to extra-source-files (Albert Krewinkel).
+ Add dependency on skylighting-core (#5729). Even though it shouldn't
be needed, some tools require it.
+ Require latest pandoc-types, texmath, skylighting, haddock-library.
+ Ensure TemplateHaskell is added to other-extensions when it is
used (Vanessa McHale, #5728).
+ Remove `derive_json_via_th` flag; always use TH. This cuts down
on code duplication and reduces the chance for errors. See #4083.
* Makefile:
+ Add ghci target.
+ Add ghcid target.
+ Remove references to obsolete flag (#5694).
* Benchmarks: fix failure on ipynb.
* Use MathJax 3 (zorkow).
* KaTeX math: respect `classoption=fleqn` variable,
bump KaTeX version to 0.11.1 (#5815, Mauro Bieg).
* Fix redundant constraint compiler warnings (Pete Ryland, #5625).
* Use throwError instead of fail when appropriate.
* Use Prelude.fail to avoid ambiguity with fail from GHC.Base.
* Add `diff-zip.sh` to tools (John MacFarlane, Agustín Martín Barbero).
This is intended to make it easier to test differences in zip
containers, like epub, docx, or odt.
* Add `.gitattributes` (#5747). This ensures that the golden files
in `test/fb2/reader/` don't have newlines converted. This should fix
a test failure on GitHub CI with Windows.
* Reorder options in `--help`.
* Revise code for HsYAML-0.2.0.0 (@vijayphoenix, #5704).
* Remove blank line in code example in Haddocks (Leif Metcalf, #5679).
* Fix trypandoc with `getReader`/`getWriter` changes.
* Allow building pandoc with GHC 8.8.
* linux tarball: add architecture `-amd64` to filename.
Now it will be: `pandoc-VERSION-linux-ARCH.tar.gz`.
* MANUAL.txt:
+ Add section for exit codes.
+ Document some pptx limitations in slide show section:
No incremental display (#5689). No pause with `. . .` (#5701).
+ reveal.js flags (Mauro Bieg, #5653).
+ Document addition of `data-` prefix to unknown attributes in HTML5.
+ Link to YAML spec (Mauro Bieg, #5687).
+ Fix capitalization of "Linux" (#5859, Marcus Stollsteimer).
+ Use a table for exit codes.
+ Put all template variable docs into one section.
+ Use ATX headers consistently.
+ Add fuller documentation of templates (#5779), including
new template syntax, partials, etc.
+ Add documentation for the variable `hyperrefoptions` (Wandmalfarbe).
+ Clarify when macro definitions are passed as raw latex.
In Markdown input, they are always passed through. In LaTeX, only if
`latex_macros` is disabled.
+ Clarify that `--dpi` provides a default and doesn't override
dpi values specified in the images themselves (#5721).
+ Document how to use custom writers with `--standalone` (#5866).
+ Clarify `--preserve-tabs` default.
* INSTALL.md:
+ Fix instructions for libicu.
+ Add Void Linux instructions (Volodymyr Kozachnyskyi).
* CONTRIBUTING.md:
+ Add information on tests (Agustín Martín Barbero, #5652).
+ Add information about command test naming to CONTRIBUTING (Florian B).
* Fix typos in changelog and comments (#5896, Brian Wignall).
* doc/lua-filters.md:
+ Fix mistakes in mediabag module docs (#5851, Albert Krewinkel).
+ Improve metadata replacement example in lua-filters doc (#5851).
+ Mention which Lua version is shipped with pandoc (Albert Krewinkel,
#5892).
## pandoc 2.7.3 (2019-06-11)
* Add `jira` (Atlassian's Jira wiki markup) as output format (#2497,
Albert Krewinkel).
* Add `tex_math_dollars` to `multimarkdownExtensions` (#5512).
This form is now supported in multimarkdown,
in addition to `tex_math_double_backslash`.
* Fix `--self-contained` so it works when output format has extensions.
Previously if you used `--self-contained` with `html-smart` or
`html+smart`, it wouldn't work.
* Add template variable `curdir` with working directory
from which pandoc is run (#5464).
* Markdown reader: don't create implicit reference for empty header
(#5549).
* Muse reader: allow images inside link descriptions (Alexander Krotov).
* HTML reader: epub related fixes.
+ With epub extensions, check for `epub:type` in addition to `type`.
+ Fix problem with noteref parsing which caused block-level
content to be eaten with the noteref.
+ Rename `pAnyTag` to `pAny`.
+ Refactor note resolution.
+ Trim definition list terms (Alexander Krotov).
* LaTeX reader:
+ Add braces when resolving `\DeclareMathOperator`
(#5441). These seem to be needed for xelatex but not pdflatex.
+ Allow newlines in `\mintinline`.
+ Pass through unknown listings language as class (#5540).
Previously if the language was not in the list of languages supported
by listings, it would not be added as a class, so highlighting
would not be triggered.
+ `rawLaTeXInline`: Include trailing `{}`s in raw latex commands (#5439).
This change affects the markdown reader and other readers that allow raw
LaTeX. Previously, trailing `{}` would be included for unknown
commands, but not for known commands. However, they are sometimes used
to avoid a trailing space after the command. The chances that a `{}`
after a LaTeX command is not part of the command are very small.
* MediaWiki reader: handle multiple attributes in table row (#5471,
chinapedia).
* Docx reader: Add support for `w:rtl` (#5545). Elements with this
property are put into Span inlines with `dir="rtl"`.
* DocBook reader: Issue `IgnoredElement` warnings.
* Org reader (Albert Krewinkel):
+ Fix planning elements in headers level 3 and higher
(#5494). Planning info is now always placed before
the subtree contents. Previously, the planning info was placed after
the content if the header's subtree was converted to a list, which
happens with headers of level 3 and higher per default.
+ Omit, but warn about unknown export options. Unknown export
options are properly ignored and omitted from the output.
+ Prefer plain symbols over math symbols (#5483).
Symbols like `\alpha` are output plain and unemphasized, not as math.
+ Recognize emphasis after TODO/DONE keyword (#5484).
* FB2 reader:
+ Skip unknown elements rather than throwing errors (#5560).
Sometimes custom elements are used (e.g. `id` element
inside `author`); previously the reader would halt with an error.
Now it skips the element and issues an `IgnoredElement` warning.
+ Parse notes (#5493, Alexander Krotov).
+ Internal improvements (Alexander Krotov).
* OpenDocument writer: Roll back automatic figure/table numbering
(#5474). This was added in pandoc 2.7.2, but it makes it impossible
to use pandoc-crossref. So this has been rolled back for now,
until we find a good solution to make this behavior optional
(or a creative way to let pandoc-crossref and this feature
to coexist).
* New module Text.Pandoc.Writers.Jira, exporting `writeJira` [API
change] (Albert Krewinkel).
* EPUB writer:
+ Don't include 'landmarks' if there aren't any.
Previously we could get an empty ol element, which caused
validation errors with epubcheck.
+ Ensure unique ids for styleesheets in content.opf (#5463).
+ Make stylesheet link compatible with kindlegen (#5466,
Eric Schrijver). Pandoc omitted `type="text/css"` from both
`<style>` and `<rel="stylesheet">` elements in all templates, which
is valid according to the spec. However, Amazon’s kindlegen software
relies on this attribute on `<link>` elements when detecting
stylesheets to include.
* HTML writer:
+ Output video and audio elements depending on file
extension of the image path (Mauro Bieg).
+ Emit empty alt tag in figures (#5518, Mauro Bieg).
The same text is already in the <figcaption> and
screen-readers would read it twice, see #4737.
+ Don't add variation selector if it's already there.
This fixes round-trip failures.
+ Prevent gratuitous emojification on iOS (#5469).
iOS chooses to render a number of Unicode entities, including '↩', as
big colorful emoji. This can be defeated by appending Unicode
VARIATION SELECTOR-15'/'VARIATION SELECTOR-16'. So we now append this
character when escaping strings, for both '↩' and '↔'. If other
characters prove problematic, they can simply be added to
`needsVariationSelector`. + Add `class="heading"` to level 7+ Headers
rendered as `<p>` elements (#5457).
* RST writer: treat Span with no attributes as transparent (#5446).
Previously an Emph inside a Span was being treated as
nested markup and ignored. With this patch, the Span
is just ignored.
* LaTeX writer:
+ Include inline code attributes with `--listings` (#5420).
+ Don't produce columns environment unless beamer (#5485).
+ Fix footnote in image caption. Regression: the fix for #4683 broke
this case.
+ Don't highlight code in headings (#5574). This causes
compilation errors.
+ Use `\mbox` to get proper behavior inside `\sout` (#5529).
* EPUB writer: Fix document section assignments (#5546).
For example, introduction should go in bodymatter, not frontmatter, and
epigraph, conclusion, and afterward should go in bodymatter, not
backmatter. For the full list of assignments, see the manual.
* Markdown writer:
+ Add backslashes to avoid unwanted interpretation of
definition list terms as other kinds of block (#554).
+ Ensure the code fence is long enough (#5519).
Previously too few backticks were used when the code block
contained an indented line of backticks. (Ditto tildes.)
+ Handle labels with integer names (Jesse Rosenthal, #5495).
Previously if labels had integer names, it could produce a conflict
with auto-labeled reference links. Now we test for a conflict and
find the next available integer. This involves adding a new state
variable `stPrevRefs` to keep track of refs used in other document
parts when using `--reference-location=block|section`
* Textile writer: fix closing tag for math output (Albert Krewinkel).
Opening and closing tag for math output match now.
* Org writer: always indent src blocks content by 2 spaces (#5440, Albert
Krewinkel). Emacs always uses two spaces when indenting the content of
src blocks, e.g., when exiting a `C-c '` edit-buffer. Pandoc used to
indent contents by the space-equivalent of one tab, but now always uses
two spaces, too.
* Asciidoc writer:
+ Use `` `+...+` `` form for inline code.
The old `` `a__b__c` `` yields emphasis inside code in asciidoc.
To get a pure literal code span, use `` `+a__b__c+` ``.
+ Use proper smart quotes with asciidoctor (#5487).
Asciidoctor has a different format for smart quotes.
+ Use doubled ## when necessary for spans (#5566).
+ Ensure correct nesting of strong/emph (#5565): strong
must be the outer element.
* JATS writer:
+ Wrap elements with p when needed (#5570). The JATS spec restricts
what elements can go inside `fn` and `list-item`. So we wrap other
elements inside `<p specific-use="wrapper">` when needed.
+ Properly handle footnotes (#5511) according to "best practice."
(Group them at the end in `<fn-group>` and use `<xref>` elements
to link them.)
+ Fix citations with PMID so they validate (#5481). This includes
an update to data/jats.csl.
+ Ensure validity of `<pub-date>` by parsing the date and
extracting year, month, and day, as expected. Also add an
iso-8601-date attribute automatically.
+ Don't use `<break>` element for LineBreak. It is only
allowed in a few special contexts, and not in `<p>` elements.
+ Don't make `<string-name>` a child of `<string>`, which is illegal.
* FB2 writer:
+ Do not wrap note references into `<sup>` and brackets
(Alexander Krotov). Existing FB2 readers, such as FBReader, already
display links with type="note" as a superscript.
+ Use genre metadata field (#5478).
* Muse writer: do not escape empty line after `<br>` (Alexander Krotov).
* Add unicode code point in "Missing character" warning (#5538).
If the character isn't in the console font, the message is pretty useless,
so we show the code point for anything non-ASCII.
* Lua: add Version type to simplify comparisons (Albert Krewinkel).
Version specifiers like `PANDOC_VERSION` and `PANDOC_API_VERSION` are
turned into `Version` objects. The objects simplify version-appropriate
comparisons while maintaining backward-compatibility.
A function `pandoc.types.Version` is added as part of the newly
introduced module `pandoc.types`, allowing users to create version
objects in scripts.
* pandoc lua module (Albert Krewinkel):
- Fix deletion of nonexistent attributes (#5569).
- Better tests for Attr and AttributeList.
* pandoc.mediabag lua module (Albert Krewinkel):
+ Add function `delete` for deleting a single item.
+ Add function `empty` for removing all entries.
+ Add function `items` for iterating over mediabag.
* Text.Pandoc.Class: Fix handling of `file:` URL scheme in
`downloadOrRead` (#5517, Mauro Bieg). Previously `file:/`
URLs were handled wrongly and pandoc attempted to make HTTP
requests, which failed.
* Text.Pandoc.MIME: add `mediaCategory` [API change] (Mauro Bieg).
* Text.Pandoc.Shared:
+ Add `onlySimpleTableCells` [API change]
(Mauro Bieg) and use this to consolidate simple-table detection
(#5524). This fixes an inconsistency in the HTML reader, which did not
treat tables with `<p>` inside cells as simple.
+ `metaToJSON`: treat digits starting with 0 as a string, not a number
(#5479). This fixes a regression in YAML metadata in pandoc 2.7.2.
* Text.Pandoc.Logging: Add `IgnoredElement` constructor for
`LogMessage`. `SkippedConetnt` doesn't work for some XML-based
readers which don't have access to parsec source positions.
* Text.Pandoc.Asciify: Add Turkish undotted-i (#5433, Mauro Bieg).
* Improve output of Lua tests (#5499, Albert Krewinkel).
This makes use of tasty-lua, a package to write tests in Lua
and integrate the results into Tasty output. Test output becomes
more informative: individual tests and test groups become visible
in test output. Failures are reported with helpful error messages.
* Lua: add `pandoc.system` module (#5468, Albert Krewinkel).
The `system` Lua module provides utility functions to interact with the
operating- and file system. E.g.
`print(pandoc.system.get_current_directory())`
or
```lua
pandoc.system.with_temporary_directory('tikz', function (dir)
-- write and compile a TikZ file with pdflatex
end)
```
* LaTeX template: Add pdflang to hypersetup if lang is set (#5443).
* beamer template: Fix using Beamer with geometry (#5505, Daniel Maslowski).
Beamer already loads geometry, so we need to use the `\geometry`
command to set geometry options.
* EPUB2/3 templates: Move inline styles to default epub.css (#5466).
NOTE: Those who use a custom CSS stylesheet with EPUB should
add these lines:
code{ white-space: pre-wrap; }
span.smallcaps{ font-variant: small-caps; }
span.underline{ text-decoration: underline; }
q { quotes: "“" "”" "‘" "’"; }
div.column{ display: inline-block; vertical-align: top; width: 50%; }
* reveal.js template:
+ Updates for revealjs 3.8.0 (#5435, ebiim).
+ Remove reference to head.min.js (#5448, Winnie Hellmann).
NOTE: users will need to update reveal.js to at least 3.8.0
for their presentations generated with this version of pandoc
to work correctly.
* Text.Pandoc.PDF:
+ Replace `</>` with literal `/` (#5451).
We use forward-slash for a directory separator in tmpDir,
even on Windows (because that's what tex likes). So we
should not put a backslash between the tmpDir and the
filename on Windows. This is harmless enough in normal
Windows setups, but it breaks on Cygwin.
Thanks to @cc2x for noticing and diagnosing the problem.
+ Allow use of `-output-directory` in `--pdf-engine-opt` (#5462).
This is currently possible with `mklatex` and `-outdir`, but
was not yet possible with xelatex and `-output-directory`.
+ For PDF via ms/pdfroff, make TOC appear at beginning and in
PDF bookmarks (#5553). Previously the TOC appeared at the end
of the document, and was not bookmarked. To keep it at the end,
add `--pdf-engine-opt=--no-toc-relocation` to your command line.
* Fix broken links in documents (#5473, Shim Myeongseob).
Also, use absolute links to pandoc.org when possible, so that
the links can be followed by people viewing these documents
on GitHub.
* Improved sample lua tikz filter in lua-filters docs (#5445,
Matthew Doty). There are three changes:
+ It only processes elements which begin with `\begin{tikzpicture}`
+ It uses pdf2svg instead of imagemagick to preserve fidelity
+ The images produced have transparent backgrounds
* MANUAL.txt:
+ Add note about `title-meta`, `author-meta`, `date-meta` (#5486).
+ Fix typo (#5489, Christian Krause).
* add test/tables.xwiki to git and pandoc.cabal (#5498, Mauro Bieg).
* Disable missing-home-modules warning in `stack.yaml`.
Otherwise `stack ghci` fails.
## pandoc 2.7.2 (2019-04-05)
* Add XWiki writer (#1800, Derek Chen-Becker).
Add `Text.Pandoc.Writers.XWiki`, exporting `writeXWiki` [API change].
* Dokuwiki Reader: parse single curly brace (#5416, Mauro Bieg).
* Vimwiki reader: improve handling of internal links (#5414).
We no longer append `.html` to link targets, and we add a title
`wikilink`. This mirrors behavior of other wiki readers. Generally
the `.html` extension is not wanted. It may be important for output
to HTML in certain circumstances, but it can always be added using a
filter that matches on links with title `wikilink`.
If your workflow requires the current behavior, here is a lua filter
that will add the `.html` extension:
```lua
function Link(el)
if el.title == 'wikilink' then
el.target = el.target .. ".html"
end
return el
end
```
* ipynb reader:
+ Use format `ipynb` for raw cell where no format given.
+ Avoid introducing spurious `.0` on integers in metadata.
* Markdown reader: fenced div takes priority over setext header.
* HTML reader: read `data-foo` attribute into `foo` (#5392).
The HTML writer adds the `data-` prefix for HTML5 for nonstandard
attributes. But the attributes are represented in the AST without
the `data-` prefix, so we should strip this when reading HTML.
* LaTeX reader: Improve autolink detection (#5340).
* PowerPoint writer (Jesse Rosenthal):
+ Expand builtin reference doc to model all layouts.
The previous built-in reference doc had only title and content
layouts. Add in a section-header slide and a two-content slide, so
users can more easily modify it to build their own templates.
+ Always open up in slide view. When editing a
template/reference-doc, the user might be in Master view, but when
producing a slide show, it is assumed that slide view will be
desired.
+ Remove `handoutsMasterList` from template presentation.xml
+ Fix numerous errors in templating (#5402). Previously, some templates
produced by Office 365 (MacOS) would not render with `--reference-doc`
correctly. We now apply correct shapes for content, and build
shape trees correctly.
+ Make default placeholder type for template lookup.
+ Apply speaker notes to metadata slide if applicable.
+ Test for speaker notes after breaking header.
+ Correctly handle notes after section-title header.
Previously, if notes came after a section-title header (ie, a level-1
header in a slide-level=2 presentation), they would go on the next
slide. This keeps them on the slide with the header.
+ Internal improvements.
* ipynb writer:
+ Use format `ipynb` for raw cell where no format given.
According to nbformat docs, this is supposed to render in every
format. We don't do that, but we at least preserve it as a raw
block in markdown, so you can round-trip.
+ Consolidate adjacent raw blocks. Sometimes pandoc creates two
HTML blocks, e.g. one for the open tag and one for a close tag.
If these aren't consolidated, only one will show up in output cell.
+ Fixed carry-over of nbformat from metadata.
+ Preserve `nbformat_minor` if it's given. This helps with round-tripping.
* LaTeX writer:
+ Avoid inadvertently creating ?` or !` ligatures (#5407).
These are upside down ? and !, resp.
+ Fix footnotes in table caption and cells (#5367). This fixes a
bug wherein footnotes appeared in the wrong order, and with
duplicate numbers, when in table captions and cells.
We now use regular `\footnote` commands, even in the table
caption and the minipages containing cells. Apparently
longtable knows how to handle this.
* HTML writer: Don't add data- prefix to RDFa attributes (#5403).
* JATS writer: Ensure that plain strings go inside `<pub-id>` tag (#5397).
* Markdown writer:
+ Better rendering of numbers (#5398). If the number is integral,
we render it as an integral not a float.
+ Proper rendering of empty map in YAML metadata (#5398). Should
be `{}`, not empty string.
+ Properly escape attributes in Markdown writer (#5369).
+ Be sure implicit figures work in list contexts (#5368).
Previously they would sometimes not work: e.g., when they
occurred in final paragraphs in lists that were originally
parsed as Plain and converted later using PlainToPara.
* Docx writer: Use `w:br` without attributes for line breaks (#5377).
We previously added the attribute `type="textWrapping"`, but
this causes problems on Word Online.
* LaTeX template (Andrew Dunning):
+ Ensure correct heading/table order (#5365). Improve workaround
(#1658) for tables following headings. The new solution works whether
or not the `indent` variable is enabled.
+ Remove `subparagraph` variable. The default is now to use run-in
style for level 4 and 5 headings (`\paragraph` and `\subparagraph`).
To get the previous default behavior (where these were formatted as
blocks, like `\subsubsection`), set the `block-headings` variable.
+ Add pandoc to PDF metadata (#5388).
+ Group graphics-related code (#5389).
+ Move `\setstretch` after front matter (#5179). Ensures that
`\maketitle`, `\tableofcontents`, and so forth are not affected by
changes to line spacing.
* Update data/jats.csl to avoid commas between name-part elements
(#5397).
* Add support for golang (`go`) with `--listings` (#5427).
* Text.Pandoc.Shared - improve `metaToJSON` behavior with numbers.
We now do a better job marshalling numbers from MetaString
or MetaInlines into JSON Number.
* Text.Pandoc.Writers.Shared: `metaValueToJSON`: use Number Values for
integers. Pandoc's MetaValue doesn't have a distinguished number type,
so numbers are put in MetaStrings. If the MetaString consists
entirely of digits, we convert it to a Number. We should probably
consider adding a MetaNumber constructor to MetaValue, for better
round-tripping with JSON etc. This change aids round-tripping in
ipynb metadata fields, like `toc_depth`.
* Text.Pandoc.Class: `fetchItem`: don't treat UNC paths as
protocol-relative URLs (#5127). These are paths beginning `//?/UNC/...`.
* Text.Pandoc.ImageSize: Improve `pdfSize` so it handles
a wider range of PDFs (#4322, with help from Richard Davis).
* Text.Pandoc.Pretty: avoid stack overflow by using strict sum (#5401).
* Fix harmless error in file-scope code (#5422).
* MANUAL.txt:
+ Improve 'header' and 'heading' usage (#5423, Andrew
Dunning). The term 'header' was being used where 'heading'
is more appropriate.
+ Add paragraph on options affecting markdown in ipynb.
* stack.yaml - remove -Wmissing-home-modules
This seems to cause problems with stack ghci. Remove RTS options.
* Add ghc-options to cabal.project.
* appveyor.yml - use ghc 8.6.4. Fixes segfault issues on Windows (#5037).
* linux build process: Remove clone of pandoc-citeproc (#5366).
It wasn't being used; cabal.project specifies the version to use.
## pandoc 2.7.1 (2019-03-14)
* Add tectonic as an option for --pdf-engine (#5345, Cormac Relf).
Runs tectonic on STDIN instead of a temporary .tex file, so that it
looks in the working directory for `\include` and `\input` like the rest
of the engines. Allows overriding the output directory
args with `--pdf-engine-opt=--outdir --pdf-engine-opt="$DIR"`.
* Allow `-o/--output` to be used with `--print-default-data-file`,
`--print-highlighting-style`, `--print-default-template`.
Note that `-o` must occur BEFORE the `--print*` command on the command
line (this is documented, #5357).
* LaTeX reader:
+ Support `\underline`, `\ul`, `\uline` (#5359, Paul
Tilley). These are parsed as a Span with class `underline`, as
with other readers.
+ Ensure that `\Footcite` and `\Footcites` get put in a note.
* ipynb reader:
+ Remove sensitivity to `raw_html`, `raw_tex` extensions.
We now include every output format. Pruning is handled by
`--ipynb-output`.
+ Better handling of cell metadata. We now include even complex cell
metadata in the Div's attributes (as JSON, in complex cases, or
as plain strings in simple cases).
* ipynb writer:
+ Recurse into native divs for output cell data (#5354).
+ Render cell metadata fields from div attributes.
* Docx writer: avoid extra copy of abstractNum and num elements
in numbering.xml. This caused pandoc-produced docx files to
be uneditable using Word Online (#5358).
* Markdown writer: improve handling of raw blocks/inline.
We now emit raw content using `raw_attribute` when no more
direct method is available. Use of `raw_attribute` can be
forced by disabling `raw_html` and `raw_tex`.
* LaTeX writer: Add classes for frontmatter support (#5353, Andrew Dunning)
and remove frontmatter from `scrreprt`.
* LaTeX template:
+ Improve readability (#5363, Andrew Dunning).
+ Robust section numbering removal (#5351, Andrew Dunning).
Ensures that section numbering does not reappear with custom
section levels. See <https://tex.stackexchange.com/questions/473653/>.
+ Better handling of front/main/backmatter (#5348).
In pandoc 2.7 we assumed that every class with chapters would accept
`\frontmatter`, `\mainmatter`, and `\backmatter`. This is not so (e.g.
report does not). So pandoc 2.7 breaks on report class by including an
unsupported command. Instead of the `book-class` variable, we use two
variables, `has-chapters` and `has-frontmatter`, and set these
intelligently in the writer.
* Text.Pandoc.Shared: Improve `filterIpynbOutput`. Ensure that
images are prioritized over text. `best` should include everything
for ipynb.
* Tests.Old: specify `--data-dir=../data` to ensure tests can find
data files even if they haven't been installed. Remove old
`pandoc_datadir` environment variable, which hasn't done anything for a
long time.
* MANUAL.txt: Add recommendation to use `raw_attribute` with ipynb (#5354).
* Use cmark-gfm-hs 0.1.8 (note that 0.1.7 is buggy).
* Use latest pandoc-citeproc, texmath.
## pandoc 2.7 (2019-03-03)
* Use XDG data directory for user data directory (#3582). Instead of
`$HOME/.pandoc`, the default user data directory is now
`$XDG_DATA_HOME/pandoc`, where `XDG_DATA_HOME` defaults to
`$HOME/.local/share` but can be overridden by setting the
environment variable. If this directory is missing, then
`$HOME/.pandoc` is searched instead, for backwards compatibility.
However, we recommend moving local pandoc data files from
`$HOME/.pandoc` to `$HOME/.local/share/pandoc`. On Windows the
default user data directory remains the same.
* Slide show formats behavior change: content under headers
less than slide level is no longer ignored, but included in
the title slide (for HTML slide shows) or in a slide after
the title slide (for beamer). This change makes possible
2D reveal.js slideshows with content in the top slide on
each stack (#4317, #5237).
* Add command line option `--ipynb-output=all|none|best` (#5339).
Output cells in ipynb notebooks often contain several different
versions of an output, with different MIME types, e.g. an HTML
table and a plain-text fallback. Specifying `--ipynb-output=best`
(the default) ensures that the best version for the output format
is used. `all` includes all versions, and `none` suppresses them
all, leaving output cells empty.
* `asciidoctor` is now an output format separate from `asciidoc`,
to accommodate some minor implementation-specific differences
(currently just in the treatment of display math).
* Add `latexmk` as an option for `--pdf-engine` (#3195).
Note that you can use `--pdf-engine-opt=-outdir=bar` to specify
a persistent temp directory.
* Markdown reader:
+ Improve tight/loose list handling (#5285). Previously the
algorithm allowed list items with a mix of Para and Plain, which
is never wanted.
+ Add newline when parsing blocks in YAML (#5271). Otherwise last
block gets parsed as a Plain rather than a Para. This is a
regression in pandoc 2.x. This patch restores pandoc 1.19
behavior.
+ Make `yamlToMeta` respect extensions (#5272, Mauro Bieg).
This adds a `ReaderOptions` parameter to `yamlToMeta` [API change].
+ Fix bug parsing fenced code blocks (#5304). Previously parsing
would break if the code block contained a string of backticks of
sufficient length followed by something other than end of line.
* LaTeX reader: don't let `\egroup` match `{`. `braced` now actually
requires nested braces. Otherwise some legitimate command and
environment definitions can break.
* Docx reader (Jesse Rosenthal):
+ Rename `getDocumentPath` as `getDocumentXmlPath`.
+ Use field notation for setting `ReaderEnv`.
+ Figure out `document.xml` path once at the beginning of parsing, and
add it to the environment, so we can avoid repeated lookups.
+ Dynamically determine main document xml path (#5277).
The desktop Word program places the main document file in
`word/document.xml`, but the online word places it in
`word/document2.xml`. This file path is actually stated in the root
`_rels/.rels` file, in the `Relationship` element with an
`http://../officedocument` type.
+ Fix paths in archive to prevent Windows failure (#5277).
Some paths in archives are absolute (have an opening slash) which, for
reasons unknown, produces a failure in the test suite on MS
Windows. This fixes that by removing the leading slash if it exists.
+ Add comments to aid code readability.
+ Trim space inside the last inline (#5273).
+ Unwrap sdt elements in footnotes and comments (#5302).
* Muse reader (Alexander Krotov):
+ Test that block level markup does not break `<verbatim>`.
+ Add secondary note support.
* ipynb reader: handle images referring to attachments. Previously
we didn't strip off the attachment: prefix, so even though the
attachment was available in the mediabag, pandoc couldn't find it.
* JATS reader:
+ Fix parsing of figures (#5321). This ensures that a figure
containing a single image is parsed as a pandoc "implicit
figure" (i.e., a Para with a single Image whose title attribute
begins with `fig:`). More complex figures will still be parsed
as divs.
+ Support `fig-group` block element (#5317).
+ Handle citations with multiple references (#5310). The `rid`
attribute can have a space-separated list of ids.
* AsciiDoc Writer: Add `writeAsciiDoctor` [API change, Tarik Graba].
Handle display math appropriately for Asciidoctor.
* JATS writer: wrap figure caption in `<p>` to fix validation (#5290,
Mauro Bieg).
* HTML writer:
+ Implement WAI-ARIA roles for (end)notes, citations, and
bibliography (#4213). Note that doc-biblioref is only used when
link-citations produces links, since it belongs on links.
+ Include content (including speaker notes) in title slides
(#4317, #5237).
* ipynb writer:
+ Ensure final newline.
+ Only include metadata under `jupyter` field.
+ Don't create attachments for images with absolute URIs,
including data: URIs (#5303).
+ Keep plain text fallbacks in output even if a richer format is
included (#5293). We don't know what output format will be needed.
See the `--ipynb-output` command line option for a way to control
what formats are included in the output.
* Markdown writer: use `markdown="1"` when appropriate for Divs:
when `native_divs` and `markdown_in_html_blocks` are disabled
but `raw_html` and `markdown_attribute` are enabled.
* LaTeX writer:
+ Use right fold for `escapeString`. This is more elegant than
the explicit recursive code we were using.
+ Avoid `{}` after control sequences when escaping.
`\ldots{}.` doesn't behave as well as `\ldots.` with the latex
ellipsis package. This patch causes pandoc to avoid emitting
the `{}` when it is not necessary. Now `\ldots` and other
control sequences used in escaping will be followed by either
a `{}`, a space, or nothing, depending on context.
+ For beamer, include contents under headers superordinate to
slidelevel (#4317). Currently we keep the fancy title slide, and
add a new slide with the same title and whatever content was
under the header.
* Powerpoint writer (Jesse Rosenthal): support underlines.
Use span with single class "underline" as in docx writer.
* Muse writer: escape secondary notes (Alexander Krotov).
* FB2 writer: add section identifiers support (#5229, John KetzerX).
* Make `--fail-if-warnings` work for PDF output (#5343).
* Lua filters (Albert Krewinkel):
+ Load module `pandoc` before calling `init.lua` (#5287). The file
`init.lua` in pandoc's data directory is run as part of pandoc's
Lua initialization process. Previously, the `pandoc` module was
loaded in `init.lua`, and the structure for marshaling was
set up after. This allowed simple patching of element
marshaling, but made using `init.lua` more difficult. Now, all
required modules are now loaded before calling `init.lua`. The
file can be used entirely for user customization. Patching
marshaling functions, while discouraged, is still possible via
the `debug` module.
+ All Lua modules bundled with pandoc, i.e., `pandoc.List`,
`pandoc.mediabag`, `pandoc.utils`, and `text` are re-exported from the
`pandoc` module. They are assigned to the fields `List`, `mediabag`,
`utils`, and `text`, respectively.
* Text.Pandoc.Lua (Albert Krewinkel):
+ Split `StackInstances` into smaller Marshaling modules.
+ Get `CommonState` from Lua global. This allows more control over
the common state from within Lua scripts.
* LaTeX template:
+ Support the `subject` metadata variable (#5289, Pascal Wagler).
+ Add `\frontmatter`, `\mainmatter`, `\backmatter`
for book classes (#5306).
* epub3 template: Add titlepage class to section (#5269).
* HTML5 template: Add ARIA role `doc-toc` for table of contents (#4213).
* Make `--metadata-file` use selected extensions (#5279, #5272, Mauro Bieg).
* Text.Pandoc.Shared:
+ Remove `withTempDir` [API change].
+ Add new exported function `defaultUserDataDirs` [API change].
+ Add `filterIpynbOutput` [API change].
+ `compactify`: Avoid lists with a mix of Plain and Para elements
(#5285).
* Text.Pandoc.Translations: reorder alphabetically and remove `Author`
(#5334, Mauro Bieg).
* Text.Pandoc.Extensions:
+ More carefully groom ipynb default extensions.
+ Add `all_symbols_escapable` to `githubMarkdownExtensions`.
* Text.Pandoc.PDF:
+ Use system temp directory when possible (#1192). Previously we
created temp dirs in the working directory, partly (a) because
there were problems using the system temp directory on Windows,
when their pathnames included tildes, and partly (b) because
programs like `epstopdf.pl` would not be allowed to write to
directories outside the working directory in restricted mode. We
now (a) use the system temp dir except when the path includes
tildes, and (b) set `TEXMFOUTPUT` when creating the PDF, so that
subsidiary programs can use the system temp directory. This
addresses problems that occurred when pandoc was used in a
synced directory (such as Dropbox).
+ Change types of subsidiary functions to PandocIO, to allow
warnings to be threaded through (#5343).
* Text.Pandoc.MIME: add WebP (#5267, Mauro Bieg).
* Tests: avoid calling `findPandoc` multiple times.
* Old tests: remove need for temp files by using `pipeProcess`.
* Added simple ipynb reader/writer tests (#5274).
* Rearrange `--help` output in a more rational way, with common
options at the beginning and options grouped by function (#5336).
* trypandoc: Add JATS and other missing formats (Arfon Smith, #5291).
* Add missing copyright notices and remove license boilerplate (#4592,
Albert Krewinkel).
* Use latest basement/foundation on 32bit windows.
* Use latest skylighting (#5328). Custom syntax definitions no
longer try to load `language.dtd`.
* Require texmath 0.11.2.1
* Use latest pandoc-citeproc (0.16.1.1).
* MANUAL.txt:
+ Clarify variable substitution indentation in templates (#5338,
Agustín Martín Barbero).
+ Reorder custom-styles section (#5324, Mauro Bieg).
## pandoc 2.6 (2019-01-30)
* Support ipynb (Jupyter notebook) as input and output format.
+ Add `ipynb` as input and output format (extension `.ipynb`).
+ Added Text.Pandoc.Readers.Ipynb [API change].
+ Added Text.Pandoc.Writers.Ipynb [API change].
+ Add `PandocIpynbDecodingError` constructor to Text.Pandoc.Error.Error
[API change].
+ Depend on ipynb library.
+ Note: there is no template for ipynb.
* Add DokuWiki reader (#1792, Alexander Krotov). This adds
Text.Pandoc.Readers.DokuWiki [API change], and adds `dokuwiki`
as an input format.
* Implement task lists (#3051, Mauro Bieg). Added `task_lists`
extension. Task lists are supported from markdown and gfm input.
They should work, to some degree, in all output formats, though in
most formats you'll get a bullet list with a unicode character for
the box. In HTML, you get checkboxes and in LaTeX/PDF output, a
box is used as the list marker. API changes:
+ Added constructor `Ext_task_lists` to `Extension`.
+ Added `taskListItemFromAscii` and `taskListItemToAscii` to
Text.Pandoc.Shared.
* Allow some command line options to take URL in addition to FILE.
`--include-in-header`, `--include-before-body`, `--include-after-body`.
* HTML reader:
+ Handle empty `start` attribute (see #5162).
+ Treat `textarea` as a verbatim environment (#5241) and preserve
spacing.
* RST reader:
+ Change treatment of `number-lines` directive (Brian Leung,
#5207). Directives of this type without numeric inputs should
not have a `startFrom` attribute; with a blank value, the
writers can produce extra whitespace.
+ Removed superfluous `sourceCode` class on code blocks (#5047).
+ Handle `sourcecode` directive as synonym for `code` (#5204).
* Markdown reader:
+ Remove `sourceCode` class for literate Haskell code blocks
(#5047). Reverse order of `literate` and `haskell` classes on
code blocks when parsing literate Haskell, so `haskell` is
first.
+ Treat `<textarea>` as a verbatim environment (#5241).
* Org reader:
+ Handle `minlevel` option differently (#5190, Brian Leung).
When `minlevel` exceeds the original minimum level observed in
the file to be included, every heading should be shifted
rightward.
+ Allow for case of `:minlevel == 0` (#5190).
+ Fix treatment of links to images (#5191, Albert Krewinkel).
Links with descriptions which are pointing to images are no
longer parsed as inline images, but as links.
+ Add support for #+SELECT_TAGS (Brian Leung).
+ Separate filtering logic from conversion function (Brian Leung).
* TWiki reader: Fix performance issue with underscores (#3921).
* MediaWiki reader: use `_` instead of `-` in auto-identifiers (#4731).
We may not still be exactly matching mediawiki's algorithm.
* LaTeX reader:
+ Remove `sourceCode` class for literate Haskell code blocks
(#5047). Reverse order of `literate` and `haskell` classes on
code blocks when parsing literate Haskell, so `haskell` is
first.
+ Support `\DeclareMathOperator` (#5149).
+ Support `\inputminted` (#5103).
+ Support `\endinput` (#5233).
+ Allow includes with dots like `cc_by_4.0`. Previously the `.0`
was interpreted as a file extension, leading pandoc not to add
`.tex` (and thus not to find the file). The new behavior matches
tex more closely.
* Man reader:
+ Use `mapLeft` from Shared instead of defining own.
* Docx reader (Jesse Rosenthal):
+ Handle level overrides (#5134).
* Docx writer:
+ Support custom properties (#3024, #5252, Agustín Martín Barbero).
Also supports additional core properties: `subject`, `lang`,
`category`, `description`.
+ Make Level into a real type, instead of an alias for a tuple
(Jesse Rosenthal).
* ICML writer (Mauro Bieg):
+ Support custom-styles (#5137, see #2106).
+ Support unnumbered headers (#5140).
* Texinfo writer: Use header identifier for anchor if present (#4731).
Previously we were overwriting an existing identifier with a new one.
* Org writer: Preserve line-numbering for example and code blocks
(Brian Leung).
* Man/Ms writers: Don't escape `-` as `\-`. The `\-` gets rendered
in HTML and PDF as a unicode minus sign.
* Ms writer: Ensure we have a newline after .EN in display math (#5251).
* RST writer: Don't wrap simple table header lines (#5128).
* Asciidoc writer: Shorter delimiters for tables, blockquotes
(#4364). This matches asciidoctor reference docs.
* Dokuwiki writer: Remove automatic `:` prefix before internal image
links (#5183, Damien Clochard). This prevented users from making
relative image links.
* Zimwiki writer: remove automatic colon prefix before internal
images (#5183, Damien Clochard).
* MediaWiki writer: fix caption, use 'thumb' instead of 'frame'
(#5105). Captions used to have the word 'caption' prepended; this
has been removed. Also, 'thumb' is used instead of 'frame' to
allow images to be resized.
* reveal.js writer:
+ Ensure that we don't get > 2 levels of section nesting,
even with slide level > 2 (#5168).
+ If slide level == N but there is no N-level header, make
sure the next header with level > N gets treated as a slide
and put in a section, rather than remaining loose (#5168).
* Markdown writer:
+ Make `plain` RawBlocks pass through in `plain` output.
+ Include needed whitespace after HTML figure (#5121).
We use HTML for a figure in markdown dialects that can't
represent it natively.
* Commonmark writer:
+ Fix handling of SoftBreak with `hard_line_breaks` (#5195).
+ Implement `--toc` (`writerTableOfContents`)
in commonmark/gfm writers (#5172).
* EPUB writer:
+ Ensure that picture transforms are done on metadata too.
+ Small fixes to `nav.xhtml`:
Add 'landmarks' id attribute to the landmarks nav.
Replace old default CSS removing numbers from ol.toc li
with new rules that match `nav#toc ol, nav#landmarks ol`.
We keep the `toc` class on `ol` for backwards compatibility.
* LaTeX writer:
+ Make raw content marked `beamer` pass through in `beamer`
output (pandoc/lua-filters#40).
+ Beamer: avoid duplicated `fragile` property in some cases
(#5208).
+ Add `#` special characters for listings (#4939).
This character needs special handling in `\lstinline`.
* RTF writer: use `toTableOfContents` from Shared to replace
old duplicated code.
* Pptx writer:
+ Support custom properties. Also supports additional core
properties: `subject`, `category`, `description` (#5252,
Agustín Martín Barbero).
+ Use `toTableOfContents` from Shared to replace old duplicated code.
* ODT writer (Augustín Martín Barbero):
+ Fix typo in custom properties (#2839).
+ Improve standard properties, including the following core
properties: `generator` (Pandoc/VERSION), `description`, `subject`,
`keywords`, `initial-creator` (from authors), `creation-date`
(actual creation date) (#5252).
* Custom writers:
+ Allow '-' in filenames for custom lua writers (#5187).
+ sample.lua: add `SingleQuoted`, `DoubleQuoted` (#5104).
+ sample.lua: Add a missing `>` (MichaWiedenmann).
* reveal.js template: Add `zoomKey` config (#4249).
* HTML5 template: Remove unnecessary type="text/css" on style and
link for HTML5 (#5146).
* LaTeX template (Andrew Dunning, except where noted):
+ Prevent fontspec from scaling `mainfont` to match the default
font, Latin Modern. A main font set to 12pt could
previously appear between 11pt to 13pt depending on its design.
To return to the earlier rendering, use `-V
mainfontoptions="Scale=MatchLowercase"` (#5212, #5218).
+ Display monospaced fonts without TeX ligatures when using
`--pdf-engine=lualatex`. It now matches the behaviour of other
engines (#5212, #5218).
+ Remove the deprecated `romanfont` variable. The functionality of
`mainfont` is identical (#5218).
+ Render `\subtitle` with the standard document classes.
Previously, `subtitle` only appeared when using the KOMA-Script
classes or Beamer (#5213, #5244).
+ Use Babel instead of Polyglossia for LuaLaTeX. This avoids
several language selection problems, notably with retaining
French spacing conventions when switching to a verbatim
environment or another language; and in printing Greek text
without hyphenation (#5193).
+ Use the [`xurl`](https://ctan.org/pkg/xurl) package if
available, improving the appearance of URLs by allowing them to
break at additional points (#5193).
+ Use [`bookmark`](https://ctan.org/pkg/bookmark) if available
to correct heading levels in PDF bookmarks: see the [KOMA-Script
3.26 release notes](https://komascript.de/release3.26) (#5193).
+ Require the [`xcolor`](https://ctan.org/pkg/xcolor) package to
avoid a possible error when using additional packages alongside
footnotes in tables (#5193, closes #4861).
+ Remove obsolete `fixltx2e` package, which has no functionality
with TeX Live 2015 or later (#5193).
+ Allow multiple `fontfamilies.options` (#5193, closes #5194).
+ Restrict `institute` variable to Beamer (#5219).
+ Use [`footnotehyper`](https://ctan.org/pkg/footnotehyper)
package if available to make footnotes in tables compatible
with `hyperref` (#5234).
+ Number parts and chapters in book classes only if the
`numbersections` variable is set, for consistency with other
output formats. To return to the previous behaviour, use
`-V numbersections -V secnumdepth=0` (#5235).
+ Reindent file (#5193).
+ Use built-in parskip handling with KOMA-Script classes (#5143, Enno).
+ Set default listings language for lua, assembler (#5227, John
MacFarlane). Otherwise we get an error when trying to compile code
with lua or assembler code. To change the default dialect
(currently 5.3 for lua and x86masm for assembler), you can use
`--include-in-header` to inject something like
`\lstset{defaultdialect=[5.2]Lua}`.
* Text.Pandoc.Readers: Changed types of `readJSON`; it now runs
in an instance of PandocMonad, like the other readers and
writers. [API change]
* Text.Pandoc.Writers: Changed types of `writeJSON`; it now runs
in an instance of PandocMonad, like the other readers and
writers. [API change]
* Text.Pandoc.Error: Added `PandocUTF8DecodingError` constructor
for `PandocError`. [API change]
* Text.Pandoc.Writers.Shared - add `toTableOfContents`. [API change]
This is refactored out from the Markdown writer.
It can be used in other writers to create a table of contents.
* Improve error messages for UTF-8 decoding errors. Now we give
the filename and byte offset (#4765).
* Text.Pandoc.XML: Strip out illegal XML characters in
`escapeXMLString` (#5119).
* Text.Pandoc.Process: update `pipeProcess` (Albert Krewinkel).
The implementation of `pipeProcess` was rewritten to fix sporadic
failures caused by prematurely closed pipes.
* Use `safeRead` instead of `read` everywhere in the code
(John MacFarlane, Mauro Bieg, #5162, #5180).
* Text.Pandoc.SelfContained: Decompress `.svgz` when
converting to `data:` URI (#5163, Alexander Krotov).
* Text.Pandoc.Parsing: Remove unused `HasHeaderMap`
(#5175, Alexander Krotov). [API change]
* Normalize Windows paths to account for change in ghc 8.6 (#5127).
When pandoc is compiled with ghc 8.6, Windows paths are treated
differently, and paths beginning `\\server` no longer work.
This commit rewrites such patsh to `\\?\UNC\server` which works.
The change operates at the level of argument parsing, so it
only affects the command line program.
* Simplify/fix reading of `--metadata` values on command line
to avoid problems relating to hvr/HsYAML#7 (#5177).
* data/pandoc.lua: auto-fix nested constructor arguments (Albert
Krewinkel). Incorrect types to pandoc element constructors are
automatically converted to the correct types when possible. This was
already done for most constructors, but conversions are now also done
for nested types (like lists of lists).
* Removed custom Setup.hs, use build-type: simple. The only thing we
gained from the custom build was automatic installation of the man
page when using 'cabal install'. But custom builds cause problems,
e.g., with cross-compilation. Installation of the man page is
better handled by packagers. Note to packagers (e.g. Debian): it
may be necessary to add a step installing the man page with the
next release.
* Allow latest http-client, tasty, zip-archive, Glob.
* Require skylighting >= 0.7.5, adding support for sml, J,
typescript.
* Tests: Cleaned up `findPandoc` in `Tests.Helpers`, so it
works well with cabal v2.
* INSTALL.md:
+ Use button for installer links (John MacFarlane, Mauro Bieg,
#5167).
+ Fix links and bump required stack version (max).
+ Improve installation notes on associated software (Andrew
Dunning). Includes explanation of how to install related tools
with package managers (since the method of installing
`rsvg-convert` is not obvious).
* doc/org.md: improve documentation of org features (Albert
Krewinkel).
* doc/lua-filters.md: use 3rd level headers for module fields.
* MANUAL:
+ Clarify automatic identifiers (#5201). We remove
non-alphanumerics. This includes, e.g., emojis.
+ Fix example for Div with id (Geoffrey Ely).
+ Update list of LaTeX packages used.
+ Make it clear that `hard_line_breaks` works in `gfm` (see #5195).
+ Mention `raw_attribute` in documentation for `raw_html` and
`raw_tex` (#5240, thanks to @eiro).
+ Clarify that `$sep$` must come right before `$endfor$` in templates
(#5243, Lev Givon).
+ Document metadata support for docx, odt, pptx writers (Agustín
Martín Barbero).
+ Reorganize template variables (#5249, Andrew Dunning).
Add additional headings to categorize variables, and
alphabetize when there is large number; add more examples.
+ Document `date-meta` template variable (#5260, Tristan Stenner).
* trypandoc: Fix CSS and viewport.
## pandoc 2.5 (2018-11-27)
* Text.Pandoc.App: split into several unexported submodules (Albert
Krewinkel): Text.Pandoc.App.FormatHeuristics,
Text.Pandoc.App.Opt, Text.Pandoc.App.CommandLineOptions,
Text.Pandoc.App.OutputSettings. This is motivated partly by the
desire to reduce recompilations when something is modified,
since App previously depended on virtually every other module.
* Text.Pandoc.Extensions
+ Semantically, `gfm_auto_identifiers` is now a modifier of
`auto_identifiers`; for identifiers to be set, `auto_identifiers` must
be turned on, and then the type of identifier produced depends on
`gfm_auto_identifiers` and `ascii_identifiers` are set. Accordingly,
`auto_identifiers` is now added to `githubMarkdownExtensions` (#5057).
+ Remove `ascii_identifiers` from `githubMarkdownExtensions`.
GitHub doesn't seem to strip non-ascii characters any more.
* Text.Pandoc.Lua.Module.Utils (Albert Krewinkel)
+ Test AST object equality via Haskell (#5092). Equality of Lua
objects representing pandoc AST elements is tested by unmarshalling
the objects and comparing the result in Haskell.
A new function `equals` which performs this test has been added to the
`pandoc.utils` module.
+ Improve stringify. Meta value strings (MetaString)
and booleans (MetaBool) are now converted to the literal string and the
lowercase boolean name, respectively. Previously, all values of these
types were converted to the empty string.
* Text.Pandoc.Parsing: Remove Functor and Applicative constraints where Monad
already exists (Alexander Krotov).
* Text.Pandoc.Pretty: Don't render BreakingSpace at end of line
or beginning of line (#5050).
* Text.Pandoc.Readers.Markdown
+ Fix parsing of citations, quotes, and underline emphasis
after symbols. Starting with pandoc 2.4, citations, quoted inlines,
and underline emphasis were no longer recognized after certain
symbols, like parentheses (#5099, #5053).
+ In pandoc 2.4, a soft break after an abbreviation would be
relocated before it to allow for insertion of a nonbreaking
space after the abbreviation. This behavior is here reverted.
A soft break after an abbreviation will remain, and no nonbreaking
space will be added. Those who care about this issue should take care not
to end lines with an abbreviation, or to insert nonbreaking spaces
manually.
* Text.Pandoc.Readers.FB2: Do not throw error for unknown elements in
`<body>` (Alexander Krotov). Some libraries include custom elements
in their FB2 files.
* Text.Pandoc.Readers.HTML
+ Allow `tfoot` before body rows (#5079).
+ Parse `<small>` as a Span with class "small" (#5080).
+ Allow thead containing a row with `td` rather than `th` (#5014).
* Text.Pandoc.Readers.LaTeX
+ Cleaned up handling of dimension arguments. Allow decimal points,
preceding space.
+ Don't allow arguments for verbatim, etc.
+ Allow space before bracketed options.
+ Allow optional arguments after `\\` in tables.
+ Improve parsing of `\tiny`, `\scriptsize`, etc. Parse as raw,
but know that these font changing commands take no arguments.
* Text.Pandoc.Readers.Muse
+ Trim whitespace before parsing grid table cells (Alexander Krotov).
+ Add grid tables support (Alexander Krotov).
* Text.Pandoc.Shared
+ For bibliography match Div with id `refs`, not class `references`.
This was a mismatch between pandoc's docx, epub, latex, and markdown
writers and the behavior of pandoc-citeproc, which actually looks for a
div with id `refs` rather than one with class `references`.
+ Exactly match GitHub's identifier generating algorithm (#5057).
+ Add parameter for `Extensions` to `uniqueIdent` and
`inlineListToIdentifier` (#5057). [API change]
This allows these functions to be sensitive to the settings of
`Ext_gfm_auto_identifiers` and `Ext_ascii_identifiers`, and allows us to
use `uniqueIdent` in the CommonMark reader, replacing custom code. It
also means that `gfm_auto_identifiers` can now be used in all formats.
* Text.Pandoc.Writers.AsciiDoc
+ Use `.`+ as list markers to support nested ordered lists (#5087).
+ Support list number styles (#5089).
+ Render Spans using `[#id .class]#contents#` (#5080).
* Text.Pandoc.Writers.CommonMark
+ Respect `--ascii` (#5043, quasicomputational).
+ Make sure `--ascii` affects quotes, super/subscript.
* Text.Pandoc.Writers.Docx
+ Fix bookmarks to headers with long titles (#5091).
Word has a 40 character limit for bookmark names. In addition, bookmarks
must begin with a letter. Since pandoc's auto-generated identifiers may
not respect these constraints, some internal links did not work. With
this change, pandoc uses a bookmark name based on the SHA1 hash of the
identifier when the identifier isn't a legal bookmark name.
+ Add bookmarks to code blocks (Nikolay Yakimov).
+ Add bookmarks to images (Nikolay Yakimov).
+ Refactor common bookmark creation code into a function (Nikolay Yakimov).
* Text.Pandoc.Writers.EPUB: Handle calibre metadata (#5098).
Nodes of the form
<meta name="calibre:series" content="Classics on War and Politics"/>
are now included from an epub XML metadata file. You can also include
this information in your YAML metadata, like so:
calibre:
series: Classics on War and Policitics
In addition, ibooks-specific metadata can now be included via an XML
file. (Previously, it could only be included via YAML metadata, see
#2693.)
* Text.Pandoc.Writers.HTML: Use plain `"` instead of `"` outside of
attributes.
* Text.Pandoc.Writers.ICML: Consolidate adjacent strings, inc. spaces.
This avoids splitting up the output unnecessarily into separate elements.
* Text.Pandoc.Writers.LaTeX: Don't emit `[<+->]` unless beamer output, even
if `writerIncremental` is True (#5072).
* Text.Pandoc.Writers.Muse (Alexander Krotov).
+ Output tables as grid tables if they have multi-line cells.
+ Indent simple tables only on the top level.
+ Output tables with one column as grid tables.
+ Add support for `--reference-location`.
+ Internal improvements.
* Text.Pandoc.Writers.OpenDocument: Fix list indentation (Nils Carlson,
#5095). This was a regression in pandoc 2.4.
* Text.Pandoc.Writers.RTF: Fix warnings for skipped raw inlines.
* Text.Pandoc.Writers.Texinfo: Add blank line before `@menu` section (#5055).
* Text.Pandoc.XML: in `toHtml5Entities`, prefer shorter entities
when there are several choices for a particular character.
* data/abbreviations
+ Add additional abbreviations (Andrew Dunning)
Many of these borrowed from the Chicago Manual of Style 10.42,
'Scholarly abbreviations'.
* Templates
+ Asciidoc template: add :lang: to title header is lang is set in
metadata (#5088).
* pandoc.cabal: Add cabal flag `derive_json_via_th` (Albert Krewinkel)
Disabling the flag will cause derivation of ToJSON and FromJSON
instances via GHC Generics instead of Template Haskell. The flag is
enabled by default, as deriving via Generics can be slow (see #4083).
* trypandoc:
+ Tweaked drop-down lists.
+ Put link to site in footer.
+ Preselect output format.
+ Update on change of in or out format.
+ Add man input format.
* MANUAL.txt:
+ Fix outdated description of latex_macros extension.
+ Clarified placement of bibliography.
+ Added "A note on security."
+ Fix note on curly brace syntx for locators.
+ Document new explicit syntax for citeproc locators.
+ Remove confusing cross-links for some extensions.
+ Don't put pandoc in code ticks in heading.
+ Document that `--ascii` works for gfm and commonmark too.
+ Add `man` to `--from` options.
* doc/customizing-pandoc.md: various improvements (Mauro Bieg).
## pandoc 2.4 (2018-11-03)
### New features
* New input format `man` (Yan Pashkovsky, John MacFarlane).
### Behavior changes
* `--ascii` is now implemented in the writers, not in Text.Pandoc.App,
via the new `writerPreferAscii` field in `WriterOptions`.
Now the `write*` functions for Docbook, HTML, ICML, JATS, LaTeX,
Ms, Markdown, and OPML are sensitive to `writerPreferAscii`.
Previously the to-ascii translation was done in Text.Pandoc.App,
and thus not available to those using the writer functions
directly.
* `--ascii` now works with Markdown output. HTML5 character reference
entities are used.
* `--ascii` now works with LaTeX output. 100% ASCII output can't be
guaranteed, but the writer will use commands like `\"{a}` and `\l`
whenever possible, to avoid emitting a non-ASCII character.
* For HTML5 output, `--ascii` now uses HTML5 character reference
entities rather than numerical entities.
* Improved detection of format based on extension (in Text.Pandoc.App).
We now ensure that if someone tries to convert a file for a
format that has a pandoc writer but not a reader, it won't just
default to markdown.
* Add viz. to abbreviations file (#5007, Nick Fleisher).
* AsciiDoc writer: always use single-line section headers,
instead of the old underline style (#5038). Previously the single-line
style would be used if `--atx-headers` was specified, but
now it is always used.
* RST writer: Use simple tables when possible (#4750).
* CommonMark (and gfm) writer: Add plain text fallbacks. (#4528,
quasicomputational). Previously, the writer would unconditionally
emit HTML output for subscripts, superscripts, strikeouts (if the
strikeout extension is disabled) and small caps, even with
`raw_html` disabled. Now there are plain-text (and, where
possible, fancy Unicode) fallbacks for all of these corresponding
(mostly) to the Markdown fallbacks, and the HTML output is only
used when `raw_html` is enabled.
* Powerpoint writer: support raw openxml (Jesse Rosenthal, #4976).
This allows raw openxml blocks and inlines to be used in the pptx
writer. Caveats: (1) It's up to the user to write
well-formed openxml. The chances for corruption, especially with
such a brittle format as pptx, is high. (2) Because of
the tricky way that blocks map onto shapes, if you are using
a raw block, it should be the only block on a slide
(otherwise other text might end up overlapping it). (3) The
pptx ooxml namespace abbreviations are different from the
docx ooxml namespaces. Again, it's up to the user to get it
right. Unzipped document and ooxml specification should be
consulted.
* With `--katex` in HTML formats, do not use the autorenderer (#4946).
We no longer surround formulas with `\(..\)` or `\[..\]`. Instead,
we tell katex to convert the contents of span elements with
class "math". Since math has already been identified, this
avoids wasted time parsing for LaTeX delimiters. Note, however,
that this may yield unexpected results if you have span elements
with class "math" that don't contain LaTeX math.
Also, use latest version of KaTeX by default (0.9.0).
* The man writer now produces ASCII-only output, using groff escapes,
for portability.
* ODT writer:
+ Add title, author and date to metadata; any remaining
metadata fields are added as `meta:user-defined` tags.
+ Implement table caption numbering (#4949, Nils Carlson).
Captioned tables are numbered and labeled with format "Table 1:
caption", where "Table" is replaced by a translation, depending
on the value of `lang` in metadata. Uncaptioned tables are not
enumerated.
+ OpenDocument writer: Implement figure numbering in captions (#4944,
Nils Carlson). Figure captions are now numbered 1, 2, 3, ...
The format in the caption is "Figure 1: caption" and so on
(where "Figure" is replaced by a translation, depending on the
value of `lang` in the metadata). Captioned figures are numbered
consecutively and uncaptioned figures are not enumerated. This
is necessary in order for LibreOffice to generate an
Illustration Index (Table of Figures) for included figures.
* RST reader: Pass through fields in unknown directives as div attributes
(#4715). Support `class` and `name` attributes for all directives.
* Org reader: Add partial support for `#+EXCLUDE_TAGS` option. (#4284,
Brian Leung). Headers with the corresponding tags should not
appear in the output.
* Log warnings about missing title attributes now include a
suggestion about how to fix the problem (#4909).
* Lua filter changes (Albert Krewinkel):
+ Report traceback when an error occurs. A proper Lua traceback is
added if either loading of a file or execution of a filter
function fails. This should be of help to authors of Lua filters
who need to debug their code.
+ Allow access to pandoc state (#5015). Lua filters and custom
writers now have read-only access to most fields of pandoc's
internal state via the global variable `PANDOC_STATE`.
+ Push ListAttributes via constructor (Albert Krewinkel).
This ensures that ListAttributes, as present in OrderedList elements,
have additional accessors (viz. `start`, `style`, and `delimiter`).
+ Rename ReaderOptions fields, use snake_case. Snake case is used
in most variable names, using camelCase for these fields was an
oversight. A metatable is added to ensure that the old field
names remain functional.
+ Iterate over AST element fields when using `pairs`. This makes
it possible to iterate over all ield names of an AST element by
using a generic `for` loop with pairs`:
for field_name, field_content in pairs(element) do
...
end
Raw table fields of AST elements should be considered an
implementation detail and might change in the future. Accessing
element properties should always happen through the fields
listed in the Lua filter docs.
Note that the iterator currently excludes the `t`/`tag` field.
+ Ensure that MetaList elements behave like Lists. Methods usable
on Lists can also be used on MetaList objects.
+ Fix MetaList constructor (Albert Krewinkel). Passing a MetaList
object to the constructor `pandoc.MetaList` now returns the
passed list as a MetaList. This is consistent with the
constructor behavior when passed an (untagged) list.
* Custom writers: Custom writers have access to the global variable
`PANDOC_DOCUMENT`(Albert Krewinkel, #4957). The variable contains
a userdata wrapper around the full pandoc AST and exposes two
fields, `meta` and `blocks`. The field content is only
marshaled on-demand, performance of scripts not accessing the
fields remains unaffected.
### API changes
* Text.Pandoc.Options: add `writerPreferAscii` to `WriterOptions`.
* Text.Pandoc.Shared:
+ Export `splitSentences`. This was previously duplicated in the Man and
Ms writers.
+ Add `ToString` typeclass (Alexander Krotov).
* New exported module Text.Pandoc.Filter (Albert Krewinkel).
* Text.Pandoc.Parsing
+ Generalize `gridTableWith` to any `Char` Stream (Alexander Krotov).
+ Generalize `readWithM` from `[Char]` to any `Char` Stream
that is a `ToString` instance (Alexander Krotov).
* New exposed module Text.Pandoc.Filter (Albert Krewinkel).
* Text.Pandoc.XML: add `toHtml5Entities`.
* New exported module Text.Pandoc.Readers.Man (Yan Pashkovsky, John
MacFarlane).
* Text.Pandoc.Writers.Shared
+ Add exported functions `toSuperscript` and
`toSubscript` (quasicomputational, #4528).
+ Remove exported functions `metaValueToInlines`,
`metaValueToString`. Add new exported functions
`lookupMetaBool`, `lookupMetaBlocks`, `lookupMetaInlines`,
`lookupMetaString`. Use these whenever possible for uniformity
in writers (Mauro Bieg, #4907). (Note that
removed function `metaValueToInlines` was in previous
released versions.)
+ Add `metaValueToString`.
* Text.Pandoc.Lua
+ Expose more useful internals (Albert Krewinkel):
- `runFilterFile` to run a Lua filter from file;
- data type `Global` and its constructors; and
- `setGlobals` to add globals to a Lua environment.
This module also contains `Pushable` and `Peekable` instances
required to get pandoc's data types to and from Lua. Low-level
Lua operation remain hidden in Text.Pandoc.Lua.
+ Rename `runPandocLua` to `runLua` (Albert Krewinkel).
+ Remove `runLuaFilter`, merging this into Text.Pandoc.Filter.Lua's
`apply` (Albert Krewinkel).
### Bug fixes and under-the-hood improvements
* Text.Pandoc.Parsing
+ Make `uri` accept any stream with Char tokens (Alexander Krotov).
+ Rewrite `uri` without `withRaw` (Alexander Krotov).
+ Generalize `parseFromString` and `parseFromString'` to any
streams with Char token (Alexander Krotov)
+ Rewrite `nonspaceChar` using `noneOf` (Alexander Krotov)
* Text.Pandoc.Shared: Reimplement `mapLeft` using `Bifunctor.first`
(Alexander Krotov).
* Text.Pandoc.Pretty: Simplify `Text.Pandoc.Pretty.offset`
(Alexander Krotov).
* Text.Pandoc.App
+ Work around HXT limitation for --syntax-definition with windows
drive (#4836).
+ Always preserve tabs for man format. We need it for tables.
+ Split command line parsing code into a separate unexported
module, Text.Pandoc.App.CommandLineOptions (Albert Krewinkel).
* Text.Pandoc.Readers.Roff: new unexported module for tokenizing
roff documents.
* New unexported module Text.Pandoc.RoffChar, provided character
escape tables for roff formats.
* Text.Pandoc.Readers.HTML: Fix `htmlTag` and `isInlineTag` to
accept processing instructions (#3123, regression since 2.0).
* Text.Pandoc.Readers.JATS: Use `foldl'` instead of `maximum` to
account for empty lists (Alexander Krotov).
* Text.Pandoc.Readers.RST: Don't allow single-dash separator in
headerless table (#4382).
* Text.Pandoc.Readers.Org: Parse empty argument array in inline src
blocks (Brian Leung).
* Text.Pandoc.Readers.Vimwiki:
+ Get rid of `F`, `runF` and `stateMeta'` in favor of `stateMeta`
(Alexander Krotov).
+ Parse `Text` without converting to `[Char]` (Alexander Krotov).
* Text.Pandoc.Readers.Creole: Parse `Text` without converting to
`[Char]` (Alexander Krotov).
* Text.Pandoc.Readers.LaTeX
+ Allow space at end of math after `\` (#5010).
+ Add support for `nolinkurl` command (#4992, Brian Leung).
+ Simplified type on `doMacros'`.
+ Tokenize before pulling tokens, rather than after (#4408). This
has some performance penalty but is more reliable.
+ Make macroDef polymorphic and allow in inline context.
Otherwise we can't parse something like `\lowercase{\def\x{Foo}}`.
I have actually seen tex like this in the wild.
+ Improved parsing of `\def`, `\let`. We now correctly parse:
```
\def\bar{hello}
\let\fooi\bar
\def\fooii{\bar}
\fooi +\fooii
\def\bar{goodbye}
\fooi +\fooii
```
+ Improve parsing of `\def` argspec.
+ Skip `\PackageError` commands (see #4408).
+ Fix bugs omitting raw tex (#4527). The default is `-raw_tex`,
so no raw tex should result unless we explicitly say `+raw_tex`.
Previously some raw commands did make it through.
+ Moved `isArgTok` to Text.Pandoc.Readers.LaTeX.Parsing.
+ Moved `babelLangToBCP`, `polyglossiaLangToBCP` to new module,
Text.Pandoc.Readers.LaTeX.Lang (unexported).
+ Simplified accent code using unicode-transforms.
New dependency on unicode-transforms package for normalization.
+ Allow verbatim blocks ending with blank lines (#4624).
+ Support `breq` math environments: `dmath`, `dgroup`, `darray`.
This collects some of the general-purpose code from the LaTeX reader,
with the aim of making the module smaller.
* Text.Pandoc.Readers.Markdown
+ Fix awkward soft break movements before abbreviations (#4635).
+ Add updateStrPos in a couple places where needed.
* Text.Pandoc.Readers.Docx: Trigger bold/italic with bCs, iCs
(#4947). These are variants for "complex scripts" like Arabic
and are now treated just like b, i (bold, italic).
* Text.Pandoc.Readers.Muse (Alexander Krotov)
+ Try to parse lists before trying to parse table.
This ensures that tables inside lists are parsed correctly.
+ Forbid whitespace after opening and before closing markup
elements.
+ Parse page breaks.
+ Simplify `museToPandocTable` to get rid of partial functions.
+ Allow footnotes to start with empty line.
+ Make sure that the whole text is parsed.
+ Allow empty headers. Previously empty headers caused parser to
terminate without parsing the rest of the document.
+ Allow examples to be indented with tabs.
+ Remove indentation from examples indicated by `{{{` and `}}}`.
+ Fix parsing of empty cells.
+ Various changes to internals.
+ Rewrite some parsers in applicative style.
+ Avoid tagsoup dependency.
+ Allow table caption to contain `+`.
* Text.Pandoc.Writers.LaTeX
+ Add newline if math ends in a comment (#4880). This prevents the
closing delimiter from being swalled up in the comment.
+ With `--listings`, don't pass through org-babel attributes (#4889).
+ With `--biblatex`, use `\autocite` when possible (#4960).
`\autocites{a1}{a2}{a3}` will not collapse the entries. So, if
we don't have prefixes and suffixes, we use instead
`\autocite{a1,a2,a3}`.
+ Fix description lists contining highlighted code (#4662).
* Text.Pandoc.Writers.Man
+ Don't wrap `.SH` and `.SS` lines (#5019).
+ Avoid unnecessary `.RS`/`.RE` pair in definition lists with
one paragraph definitions.
+ Moved common groff functions to Text.Pandoc.Writers.Groff.
* Fix strong/code combination on man (should be `\f[CB]` not
`\f[BC]`, see #4973).
+ Man writer: use `\f[R]` instead of `\f[]` to reset font
(Alexander Krotov, #4973).
+ Move `splitSentences` to Text.Pandoc.Shared.
* Text.Pandoc.Writers.Docx
+ Add framework for custom properties (#3034). So far, we don't
actually write any custom properties, but we have the
infrastructure to add this.
+ Handle tables in table cells (#4953). Although this is not
documented in the spec, some versions of Word require a `w:p`
element inside every table cell. Thus, we add one when the
contents of a cell do not already include one (e.g. when a table
cell contains a table).
* Text.Pandoc.Writers.AsciiDoc: Prevent illegal nestings.
Adjust header levels so that n+1 level headers are only
found under n level headers, and the top level is 1.
* Text.Pandoc.Writers.OpenDocument: Improve bullet/numbering
alignment (#4385). This change eliminates the large gap we used
to have between bullet and text, and also ensures that numbers
in numbered lists will be right-aligned.
* Text.Pandoc.Writers.ZimWiki
+ Number ordered list items sequentially, rather than always
with 1 (#4962).
+ Remove extra indentation on lists (#4963).
* Text.Pandoc.Writers.EPUB: Use metadata field `css` instead of
`stylesheet` (Mauro Bieg, #4990).
* Text.Pandoc.Writers.Markdown: Ensure blank between raw block and
normal content (#4629). Otherwise a raw block can prevent a
paragraph from being recognized as such.
* Text.Pandoc.Writers.Ms
+ Removed old `escapeBar`. We don't need this now that we use
`@` for math delim.
+ Moved common code to Text.Pandoc.Writers.Roff and to
Text.Pandoc.RoffChar.
+ Move `splitSentences` to Text.Pandoc.Shared (to avoid duplication
with the man writer).
* Text.Pandoc.Writers.Muse (Alexander Krotov).
+ Add support for grid tables.
+ Fix Muse writer style.
+ Use `length` instead of `realLength` to calculate definition
indentation. Muse parsers don't take character width into
account when calculating indentation.
+ Do not insert newline before lists.
+ Use lightweight markup after `</em>` tag.
* New unexported module Text.Pandoc.Writers.Roff, providing functions
useful for all roff format writers (man, ms).
* Text.Pandoc.Lua
+ Move globals handling to separate module Text.Pandoc.Lua.Global
(Albert Krewinkel).
+ Lua filter internals: push Shared.Element as userdata (Albert
Krewinkel). Hierarchical Elements were pushed to Lua as plain
tables. This is simple, but has the disadvantage that marshaling
is eager: all child elements will be marshaled as part of the
object. Using a Lua userdata object instead allows lazy access
to fields, causing content marshaling just (but also each time)
when a field is accessed. Filters which do not traverse the full
element contents tree become faster as a result.
### Default template changes
* LaTeX template:
+ Add variable `hyperrefoptions` (#4925, Mathias Walter).
+ Add variable `romanfont`, `romanfontoptions` (#4665, OvidiusCicero).
* AsciiDoc template: use single-line style for title.
* revealjs template: Fix typo in the socket.io javascript plugin (#5006,
Yoan Blanc).
* Text.Pandoc.Lua.Util: add missing docstring to `defineHowTo`
(Albert Krewinkel).
* data/pandoc.lua: add datatype ListAttributes (Albert Krewinkel)
* data/sample.lua: replace custom pipe function with pandoc.utils.pipe
(Albert Krewinkel).
### Documentation improvements
* INSTALL.md
+ Add chromeos install instructions (#4958) (Evan Pratten).
+ Add note about TinyTeX.
* MANUAL.txt
+ Change `groff` -> `roff`.
+ Implement `--ascii` for Markdown writer.
+ Clarify LaTeX image dimensions output (Mauro Bieg).
* doc/customizing-pandoc.md: added skeleton (Mauro Bieg, #3288).
* doc/getting-started.md: Added title to test1.md to avoid warning.
* doc/lua-filters.md: merge type references into main document,
fix description of Code.text (Albert Krewinkel).
### Build infrastructure improvements
* Makefile
+ Makefile: added quick-cabal, full-cabal targets.
+ Make .msi download targets insensitive to order of appveyor builds.
* Update benchmarks for ghc 8.6.1.
* pandoc.cabal:
+ Enable more compiler warnings (Albert Krewinkel).
+ Make base lower bound 4.8.
+ Bump upper bound for QuickCheck.
+ Bump upper bound for binary.
+ Updated version bounds for containers and haddock-library (#4974).
+ Added docx/docPropos/custom.xml to cabal data-files.
+ Require skylighting 0.7.4 (#4920).
+ New dependency on unicode-transforms package for normalization.
* Improved .travis.yml testing and test with GHC 8.6.1 (Albert Krewinkel).
* Added `tools/changelog-helper.sh`.
* Added test/grofftest.sh for testing the man reader on real man pages.
## pandoc 2.3.1 (2018-09-28)
* RST reader:
+ Parse RST inlines containing newlines (#4912, Francesco Occhipinti).
This eliminates a regression introduced after pandoc 2.1.1, which
caused inline constructions containing newlines not to be recognized.
+ Fix bug with internal link targets (#4919). They were gobbling up
indented content underneath.
* Markdown reader: distinguish autolinks in the AST. With this change,
autolinks are parsed as Links with the `uri` class. (The same is true
for bare links, if the `autolink_bare_uris` extension is enabled.)
Email autolinks are parsed as Links with the `email` class. This
allows the distinction to be represented in the AST.
* Org reader:
+ Force inline code blocks to honor export options (Brian Leung).
+ Parse empty argument array in inline src blocks (Brian Leung).
* Muse reader (Alexander Krotov):
+ Added additional tests.
+ Do not allow code markup to be followed by digit.
+ Remove heading level limit.
+ Simplify `<literal>` tag parsers
+ Parse Text instead of String. Benchmark shows 7% improvement.
+ Get rid of HTML parser dependency.
+ Various code improvements.
* ConTeXt writer: change `\` to `/` in Windows image paths (#4918).
We do this in the LaTeX writer, and it avoids problems.
Note that `/` works as a LaTeX path separator on Windows.
* LaTeX writer:
+ Add support for multiprenote and multipostnote arguments
with `--biblatex` (Brian Leung, #4930). The multiprenotes occur before
the first prefix of a multicite, and the multipostnotes follow the
last suffix.
+ Fix a use of `last` that might take empty list. If you ran with
`--biblatex` and have an empty document (metadata but no blocks),
pandoc would previously raise an error because of the use of
`last` on an empty list.
* RTF writer: Fix build failure with ghc-8.6.1 caused by missing
MonadFail instance (Jonas Scholl).
* ODT Writer: Improve table header row style handling (Nils Carlson).
This changes the way styles for cells in the header row
and normal rows are handled in ODT tables.
Previously a new (but identical) style was generated for
every table, specifying the style of the cells within the table.
After this change there are two style definitions for table cells,
one for the cells in the header row, one for all other cells.
This doesn't change the actual styles, but makes post-processing
changes to the table styles much simpler as it is no longer
necessary to introduce new styles for header rows and there are
now only two styles where there was previously one per table.
* HTML writer:
+ Don't add `uri` class to presumed autolinks. Formerly the `uri`
class was added to autolinks by the HTML writer, but it had to
guess what was an autolink and could not distinguish
`[http://example.com](http://example.com)` from
`<http://example.com>`. It also incorrectly recognized
`[pandoc](pandoc)` as an autolink. Now the HTML writer
simply passes through the `uri` attribute if it is present,
but does not add anything.
+ Avoid adding extra section nestings for revealjs.
Previously revealjs title slides at level (slidelevel - 1)
were nested under an extra section element, even when
the section contained no additional (vertical) content.
That caused problems for some transition effects.
+ Omit unknown attributes in EPUB2 output. For example,
`epub:type` attributes should not be passed through,
or the epub produced will not validate.
* JATS writer: remove 'role' attribute on 'bold' and 'sc' elements (#4937).
The JATS spec does not allow these.
* Textile writer: don't represent `uri` class explicitly
for autolinks (#4913).
* Lua filters (Albert Krewinkel):
+ Cleanup filter execution code.
+ Better error on test failure.
* HTML, Muse reader tests: reduce time taken by round-trip test.
* Added cabal.project.
* MANUAL: `epub:type` is only useful for epub3 (Maura Bieg).
* Use hslua v1.0.0 (Albert Krewinkel).
* Fix `translations/ru` to use modern Russian orthography
(Ivan Trubach).
* Build Windows binary using ghc 8.6.1 and cabal new-build. This
fixes issues with segfaults in the 32-bit Windows binaries (#4283).
## pandoc 2.3 (2018-09-16)
* Add `--metadata-file` option (Mauro Bieg, #1960), which allows
users to specify metadata in a YAML file, regardless of the
input format (#1960).
* Text.Pandoc.Writers.Shared: export `isDisplayMath` (API change).
* Text.Pandoc.Readers.Markdown: export `yamlToMeta` (API change,
Mauro Bieg).
* Text.Pandoc.Readers.LaTeX.Types:
+ New type `ArgSpec` (API change).
+ Second parameter of `Macro` constructor is now `[ArgSpec]` instead of
`Int` (API change).
* Markdown reader:
+ Use `tex` instead of `latex` for raw tex-ish content. We can't
always tell if it's LaTeX, ConTeXt, or plain TeX. Better just to
use `tex` always. Note that if `context` or `latex` specifically
is desired, you can still force that in a markdown document by
using the raw attribute. Note that this change may affect some
filters, if they assume that raw tex parsed by the Markdown reader
will be RawBlock (Format `latex`). In most cases it should be
trivial to modify the filters to accept `tex` as well.
+ Refactor and reorganize YAML code (Mauro Bieg).
+ Make `example_lists` work for interrupted lists
without `startnum` (#4908).
* HTML reader:
+ Parse `<script type="math/tex` tags as math (#4877).
These are used by MathJax in some configurations.
+ Extract spaces inside links instead of trimming them
(Alexander Krotov, #4845).
+ Added round-trip tests (Alexander Krotov).
+ Make parsing sensitive to the `raw_tex` extension (#1126). This now
allows raw LaTeX environments, `\ref`, and `\eqref` to be parsed
(which is helpful for translation HTML documents using MathJaX).
* Org reader (Albert Krewinkel):
+ Respect export option `p` for planning info. Inclusion of planning info
(`*DEADLINE*`, `*SCHEDULED*`, and `*CLOSED*`) can be controlled via the
`p` export option: setting the option to `t` will add all planning
information in a *Plain* block below the respective headline.
+ Org reader internals: don't rely on RecordWildCards and ViewPatterns
ghc extensions.
+ Strip planning info from output. Planning info is parsed, but not
included in the output (as is the default with Emacs Org-mode, #4867).
* LaTeX reader:
+ Handle parameter patterns for `\def` (#4768, #4771).
For example: `\def\foo#1[#2]{#1 and #2}`.
+ Allow `%` characters in URLs. This affects `\href` and `\url` (#4832).
+ Fixed parsing of `\texorpdfstring`. We were returning the wrong
argument as the content.
+ Support `blockcquote`, `foreignblockquote`, `foreigncblockquote`,
`hyphenblockquote`, `hyphencblockquote`, `enquote*`, `foreignquote`,
`hyphenquote` from `csquotes` (#4848). Note that `foreignquote`
will be parsed as a regular Quoted inline (not using the quotes
appropriate to the foreign language).
+ Support more text-mode accents (#4652). Add support for `\|`, `\b`, `\G`,
`\h`, `\d`, `\f`, `\r`, `\t`, `\U`, `\i`, `\j`, `\newtie`,
`\textcircled`. Also fall back to combining characters when composed
characters are not available.
+ Resolve `\ref` for figure numbers.
+ Support `mintinline` (#4365, Marc Schreiber).
+ Fix siunitx unit commands so they are only recognized in
siunitx contexts (#4842). For example, `\l` outside of an
siunitx context should be l-slash, not l (for liter).
+ Fix double `unnumbered` class (#4838). The `unnumbered` class
was being included twice for starred sections.
* RST reader: Don't skip link definitions after comments (#4860).
* Muse reader (Alexander Krotov):
+ Close the `</quote>` in indented tag test.
There is already a separate test for unclosed `</quote>`.
+ Autonumber sections in the correct order. Parsing now stops
at each section header to ensure the header is registered before
parsing of the next section starts.
+ Move duplicate code into `headingStart` function.
+ Allow newline after opening `*` or `**`.
+ Don't allow digits after closing marker in lightweight markup
This change makes reader more compatible with Emacs Muse.
+ Parse `<verse>` tag in one pass instead of using
`parseFromString`. This change makes it possible to have
verbatim `</verse>` tag inside verse.
* ODT reader: deal gracefully with missing `<office:font-face-decls/>`
(#4336). This allows pandoc to parse ODT document produced by KDE's
Calligra.
* Muse writer (Alexander Krotov):
+ Output headers without asterisks if not on the top level.
+ Never wrap definition list terms.
+ Set `envInsideBlock = True` when rendering notes.
+ Use `""` instead of `[]` for empty String.
+ Check for whitespace in the beginning and end of Str's.
+ Escape `-`, `;` and `>` in the beginning of strings.
+ Escape list markers in the beginning of notes.
+ Normalize inline list before testing if tags should be used.
+ Use tags instead of lightweight markup for empty strings.
+ Use lightweight markup when possible.
+ Escape empty strings. This guarantees that `conditionalEscapeString`
never returns empty string.
+ Wrap conditionalEscapeString result into `Muse` type.
This removes the need to pass `envInsideLinkDescription` to it.
+ Separate `shouldEscapeString` function.
+ Simplify inline list rendering.
+ Replace newlines in strings with spaces.
* Docx writer:
+ Add MetaString case for abstract, subtitle (#4900, Mauro Bieg).
+ Properly handle display math in spans (#4826). This isn't a
complete solution, since other nestings of display math may still
cause problems, but it should work for what is by far the most
common case.
* HTML writer:
+ Always output `<dt>` element, even if it is empty (#4883,
Alexander Krotov).
+ Don't prefix `epub:` attributes with `data-`.
* Org writer: Don't escape literal `_`, `^` (#4882). Org doesn't
recognize these escapes.
* ODT writer: Fix percentage image scaling (#4881, Nils Carlson).
Image scaling was broken when a width was set to a percentage.
* EPUB writer: set `epub:type` on body element in each chapter,
depending on the `epub:type` of the first section (#4823). This
only affects epub3. See
http://www.idpf.org/epub/profiles/edu/structure/#h.l0bzsloklt10
* FB2 writer: put `coverpage` element between title and date rather than in
`document-info` element (#4854).
* Markdown writer: Escape `~` if strikeout extension enabled (#4840).
* Haddock writer: Use proper format for latex math in haddock (#4571, Joe
Hermaszewski). Inline math in `\(..\)`, display math in `\[..\]`,
tex is now used. Previously we'd "fake it with unicode" and fall
back to tex when that didn't work. But newer haddock versions
support latex math.
* TEI writer:
+ Ensure that title element is always present, even if empty (#4839).
+ Put author tags in the template, rather than adding them in
the writer (#4839).
* LaTeX writer/template: be sensitive to `filecolor` variable (#4822).
`linkcolor` only affects internal links, and `urlcolor` only
affects linked URLs. For external links, the option to use is
`filecolor`.
* ConTeXt writer: output raw `tex` blocks as well as `context` (#969).
* RST writer:
+ Use `.. raw:: latex` for `tex` content.
+ Use `.. container` for generic Divs, instead of raw HTML.
+ Render Divs with admonition classes as admonitions (#4833).
Also omit Div with class `admonition-title`. These are generated
by the RST reader and should be omitted on round-trip.
* Text.Pandoc.PDF: fix message printed when rsvg-convert is not available
(#4855, Antonio Terceiro).
* HTML5 template: add the `title-block-header` identifier to the
`header` element, to make it easier to style precisely (#4767,
J. B. Rainsberger).
* OpenDocument template: Remove unnecessary indenting of TOC title (#4798,
José de Mattos Neto).
* latex template: Add support for $toc-title$ to LaTeX (and PDF)
(#4853, Wandmalfarbe).
* TEI template: improve `publicationStmt`. Add support for
`publisher`, `address`, `pubPlace`, and `date` variables.
* beamer template: Support "toc-title" (#4835, Cyril Roelandt).
* Text.Pandoc.Extensions: Fix haddock on `Ext_footnotes` (Chris Martin).
* Lua: cleanup Lua utils, remove unused functions (Albert Krewinkel).
* MANUAL.txt:
+ Clarify that `--biblatex/--natbib` don't work directly for PDF
(#4904).
+ Document `epub:type` attribute (Mauro Bieg, #4901)
+ Clarify when `--resource-path` has an effect.
+ More detail on customization in syntax highlighting section.
+ Document encoding issue with `--listings` (#4871, Damien Clochard).
+ Remove docs on removed `--katex-stylesheet` (Mauro Bieg, #4862).
+ Use https for context wiki links (#4910).
* CONTRIBUTING.md:
+ Link to lua-filters repository (#4874).
+ Fix mistake in REPL instructions for stack. (#4849, Brian Leung).
* lua-filters.md: add links to filters, and to lua-filters repository
(#4874).
* INSTALL.md:
+ Indicate that cabal >= 2.0 is needed.
+ Added chocolatey installation method (#4844, Miodrag Milić).
* Travis: exclude round-trip tests, except for nightly test which can fail.
* Use latest texmath, pandoc-citeproc.
* Use a patched version of foundation until
https://github.com/haskell-foundation/foundation/pull/503
is fixed.
* Clean up appveyor build and Windows package creation.
We now use 64-bit stack and ghc 8.4.3, lts-12 for the 64-bit build. The
WiX-based msi is now 64-bit for 64-bit builds (fixing #4795).
* Remove obsolete RELEASE-CHECKLIST.md.
* Added additional compiler warnings in Makefile and CI builds.
## pandoc 2.2.3.2 (2018-08-07)
* Markdown reader: Properly handle boolean values in YAML metadata (#4819).
This fixes a regression in 2.2.3, which cause boolean values to
be parsed as MetaInlines instead of MetaBool.
We here record another undocumented (but desirable) change in 2.2.3:
numerical metadata fields are now parsed as MetaInlines rather than
MetaString.
## pandoc 2.2.3.1 (2018-08-06)
* Markdown reader: Fix parsing of embedded mappings in YAML metadata
(#4817). This fixes a regression in 2.2.3 which caused embedded
mappings (e.g. mappings in sequences) not to work in YAML metadata.
## pandoc 2.2.3 (2018-08-05)
* RST reader: improve parsing of inline interpreted text roles (#4811).
+ Use a Span with class "title-reference" for the default
title-reference role.
+ Use `B.text` to split up contents into `Space`s, `SoftBreak`s,
and `Str`s for `title-reference`.
+ Use Code with class "interpreted-text" instead of Span and Str for
unknown roles. (The RST writer has also been modified to round-trip
this properly.)
+ Disallow blank lines in interpreted text.
+ Backslash-escape now works in interpreted text.
+ Backticks followed by alphanumerics no longer end interpreted text.
+ Remove support for nested inlines (Francesco Occhipinti).
RST does not allow nested emphasis, links, or other inline
constructs. This fixes several bugs (#4581, #4561, #4792).
* Org reader: fix parsers relying on `parseFromString` (#4784, Albert
Krewinkel). Emphasis was not parsed when it followed directly after
some block types (e.g., lists).
* Markdown reader: Allow unquoted numbers and booleans as YAML mapping
keys. Previously in 2.2.2 you could not do
```
---
0: bar
...
```
but only
```
---
'0': bar
...
```
With this change, both forms work.
* DocBook reader: metadata handling improvements.
Now we properly parse title and subtitle elements that are direct
children of book and article (as well as children of bookinfo,
articleinfo, or info). We also now use the `subtitle` metadata
field for subtitles, rather than tacking the subtitle on to the
title.
* RST writer:
+ Allow images to be directly nested within links (#4810, Francesco
Occhipinti).
+ Use `titleblock` instead of `title` variable for title block (#4803,
Francesco Occhipinti). `titleblock` contains a properly formatted
title and subtitle (using top-level headers). `title` and
`subtitle` variables are still available and just contain the
title and subtitle text. Note that this change will require an
update to custom rst templates.
+ Render Code with class "interpreted-text" as interpreted text role.
* MediaWiki writer: Avoid extra blank line in tables with empty cells
(#4794). Note that the old output is semantically identical, but the
new output looks better.
* Lua Utils module: add function `blocks_to_inlines` (#4799, Albert
Krewinkel). Exposes a function converting which flattenes a list of
blocks into a list of inlines. An example use case would be the
conversion of Note elements into other inlines.
* RST template: use `titleblock` instead of `title`. Users of
custom RST templates will want to update this.
* LaTeX template: Moved some beamer code in default.latex template.
This change allows beamer themes to change the template and font (as
Metropolis does) (#4450).
* Better error message on `-t pdf -o out.pdf` (#1155, Mauro Bieg).
* Added test case for #4669 to repository.
* INSTALL.md: Fix broken link for cabal-install (#4806, ChanHoHo).
* MANUAL.txt:
+ Add beamer info for slide backgrounds (#4802, John Muccigrosso).
+ Clarify when `csquotes` is used in LaTeX writer (#4514).
+ Add `commonmark` to list of output formats where `raw_tex` has an
effect (see #4527).
## pandoc 2.2.2.1 (2018-07-19)
* Fix regression finding templates in user data directory (#4777).
Under version 2.2.1 and prior pandoc found latex templates in the
templates directory under the data directory, but this broke in 2.2.2.
* Fix for bug in parsing `\input` in `rawLaTeXBlock` and
`rawLaTeXInline` (#4781). (This primarily affects the markdown
reader, and other readers that accept raw tex.)
Starting in 2.2.2, everything after an `\input` (or `\include`)
in a markdown file would be parsed as raw LaTeX.
* MANUAL:
+ Clarify `gfm` vs `markdown_github` (#4783, Mauro Bieg).
* Use `keywords` instead of `tags` in YAML metadata example (#4779).
Unlike `tags`, `keywords` is used in some of the writers
and default templates.
* Add missing `rollingLinks` option to revealjs template (#4778,
Igor Khorlo).
## pandoc 2.2.2 (2018-07-16)
* Use HsYAML instead of yaml for translations and YAML metadata (#4747).
yaml wraps a C library; HsYAML is pure Haskell. Advances #4535.
Note: HsYAML implements YAML 1.2, in which the valid true
values are `true`, `True`, `TRUE`. This means a change in
the semantics of YAML metadata that could affect users:
`y`, `yes`, and `on` no longer count as true values.
* Fix regression: make `--pdf-engine` work with full paths (#4681, Mauro
Bieg).
* CommonMark reader: Handle `ascii_identifiers` extension (#4742,
Anders Waldenborg). Non-ascii characters were not stripped from
identifiers even if the `ascii_identifiers` extension was
enabled (which is is by default for gfm).
* TikiWiki reader: Improve list parsing (#4722, Mauro Bieg).
Remove trailing Space from list items. Parse lists that have no space
after marker.
* LaTeX reader:
+ Treat `lilypond` as a verbatim environment (#4725).
+ Parse figure label into Image id (#4700, Mauro Bieg).
+ Beamer: Allow "noframenumbering" option (#4696, Raymond Ehlers).
+ Allow spaces around `\graphicspath` arguments (#4698).
+ Handle includes without surrounding blanklines (#4553).
In addition, `\input` can now be used in an inline context,
e.g. to provide part of a paragraph, as it can in LaTeX.
+ In `rawLaTeXBlock`, handle macros that resolve to a
`\begin` or `\end` (#4667).
+ In `rawLaTeXBlock`, don't expand macros in macro definitions (#4653).
Note that this only affected LaTeX in markdown.
+ Tighten up reading of beamer overlay specifications (#4669).
Ideally we'd turn these on only when reading beamer, but currently
beamer is not distinguished from latex as an input format.
This commit also activates parsing of overlay specifications
after commands in general (e.g. `\item`), since they can occur
in many contexts in beamer.
+ Parse more siunitx unit commands (#4296, #4773).
+ Be more forgiving in key/value option parsing (#4761).
* Markdown reader:
+ Allow empty code spans, e.g. `` ` ` ``.
+ Emojis are now wrapped in Spans with class `emoji` and
attribute `data-emoji` (Anders Waldenborg, #4743).
This allows the writer to handle them in a special way
(e.g. using a special font, or just rendering the
emoji name).
* Muse reader (Alexander Krotov, except where indicated):
+ Get rid of non-exhaustive pattern match warning (Mauro Bieg).
+ Add support for floating images.
+ Add support for images with specified width.
+ Parse image URLs without "guard" and "takeExtension".
+ Split link and image parsing into separate functions.
+ Parse links starting with "URL:" explicitly instead of trying to strip
"URL:" prefix after parsing.
* Texinfo writer: Use `@sup` and `@sub` instead of custom macros (#4728,
Alexander Krotov).
* Markdown writer: Preserve `implicit_figures` with attributes, even if
`implicit_attributes` is not set, by rendering in raw HTML (#4677).
* Markdown and commonmark/github writers now respect the `emoji`
extension. So, `-f markdown+emoji -t markdown+emoji` now leaves
`:smile:` as `:smile:` rather than converting it to a smile
character.
* Docx writer: Be sensitive to `toc` in YAML metadata (#4645).
* ODT/OpenDocument writer: Make internal links work (#4358).
This adds proper bookmarks to the headers with non-null IDs.
* EPUB writer: Properly escape pagetitle. Previously we weren't
escaping `&` and other XML characters in the pagetitle, so a title
containing a `&` would be invalid.
* AsciiDoc Writer: Eescape square brackets at start of line (#4545,
Mauro Bieg).
* RST writer:
+ Don't treat 'example' as a syntax name (#4748).
This fixes conversions from org with example blocks.
+ Support `--number-sections` via the `section-numbering`
directive in standalone output.
* reveal.js writer and template: reuse mathjax URL
provided by the argument to `--mathjax` or the normal pandoc default,
rather than a hard-coded one in the template (#4701).
* LaTeX writer:
+ Properly handle footnotes in table captions (#4683).
Refactored code from figure captions to use in both places.
+ In beamer output, fix single digit column percentage (#4690, Mauro
Bieg).
* FB2 writer (Alexander Krotov):
+ Convert Plain to Para in annotation (#2424).
+ Fix order of items in title-info (#2424).
* Custom writer: fix error message on script failure (Albert Krewinkel).
Error messages produced by Lua were not displayed by Pandoc.
* Text.Pandoc.Emoji now exports `emojiToInline`, which returns a Span
inline containing the emoji character and some attributes with metadata
(class `emoji`, attribute `data-emoji` with emoji name). (API change,
Anders Waldenborg, #4743).
* Text.Pandoc.PDF:
+ Revert fix for #4484 (only compress images on last run, #4755).
This will mean some increase in the time it takes to
produce an image-heavy PDF with xelatex, but it will
make tables of contents correct, which is more important.
+ Fix logic error in `runTeXProgram`. We were running the tex program
one more time than requested. This should speed up PDF production.
* Allow `--template` to take a URL as argument.
* Text.Pandoc.Highlighting: Add missing re-export of `breezeDark`
highlighting style (#4687, Adrian Sieber, API change).
* Clarify macOS install in INSTALL.md (#4661). Make the binary package
installer the recommended method, and note that on some older versions of
macOS, homebrew installs from source and takes a lot of disk space
(#4664, Ian).
* MANUAL:
+ Clarify EPUB linked media (#4756, Mauro Bieg)
+ Update manual for "true" YAML values. Now that we're using HsYAML and
YAML 1.2, the valid true values are `true`, `True`, `TRUE`. NOTE!
`y`, `yes`, `on` no longer count as true values.
+ Document `-F` as alias for `--filter` (thanks to Gandalf Saxe).
+ Update manual on how math is rendered in LaTeX.
+ Add proxy description (#4131, Mauro Bieg).
+ Clarify that `--toc` requires `--standalone` (#4703).
+ Update citation styles link (#4699, wiefling).
* In API docs, clarify how `Ext_east_asian_line_breaks` extension works
(kaizshang91). Note that it will not take effect when readers/writers
are called as libraries (#4674).
* Improved translations/fr (#4766, lux-lth).
* Removed inadvertently added `.orig` files from repository (#4648).
* Remove `network-uri` flag and use 'Network.Socket'.
This removes a compiler warning. There is no need for the old
`network-uri` flag, since network 2.6 was released in 2014.
* Add stack.lts10.yaml, stack.lts11.yaml. use lts-12 in stack.yaml.
* Bump upper bounds for dependent packages.
* Exclude foundation 0.0.21 for ghc 7.10. Otherwise cabal gets
confused because of the way ghc 7.10 is excluded in foundation's
cabal file. This can be removed when haskell-foundation/foundation#500
is fixed.
* Require cabal-version >= 2.0. This is needed for haddock-library.
## pandoc 2.2.1 (2018-05-10)
* Restored and undeprecated gladtex for HTML math (#4607).
+ Added `GladTeX` constructor to `Text.Pandoc.Options.HTMLMathMethod`
[API change, reverts removal in v2.2]
+ Restored and undeprecated `--gladtex` option, removed in v2.2.
* LaTeX reader: Handle `$` in `/text{..}` inside math (#4576).
* Org reader: Fix image filename recognition (Albert Krewinkel).
Use a function from the filepath library to check whether a string is a
valid file name. The custom validity checker that was used before gave
wrong results (e.g. for absolute file paths on Windows,
kawabata/ox-pandoc#52).
* FB2 reader: Replace some errors with warnings (Alexander Krotov).
* HTML writer:
+ Strip links from headers when creating TOC (#4340).
Otherwise the TOC entries will not link to the sections.
+ Fix regression with tex math environments in HTML + MathJax (#4639).
* Muse writer (Alexander Krotov): Add support for left-align and
right-align classes (#4542).
* Docx writer: Support underline (#4633).
* Text.Pandoc.Parsing: Lookahead for non-whitespace after
`singleQuoteStart` and `doubleQuoteStart` (#4637).
* `test-pandoc-utils.lua`: more robust testing on both windows
and \*nix. Previously the pipe tests were only run if
`\bin/false` and `/bin/sed` were present, which they aren't
in default MacOS and Windows systems. Fixed by using `tr`
and `false`, which should always be in the path on a \*nix
system, and `find` and `echo` for Windows.
* Text.Pandoc.Shared: add `uriPathToPath`.
This adjusts the path from a file: URI in a way that is sensitive
to Windows/Linux differences. Thus, on Windows,
`/c:/foo` gets interpreted as `c:/foo`, but on Linux,
`/c:/foo` gets interpreted as `/c:/foo`. See #4613.
* Use `uriPathToPath` with file: URIs (#4613).
* Revert piping HTML to pdf-engine (Mauro Bieg, #4413). Use a temp
file as before.
* Text.Pandoc.Class: Catch IO errors when writing media files
and issue a warning, rather than an error (Francesco Occhipinti, #4559).
* Don't lowercase custom writer filename (Alexander Krotov, #4610).
* MANUAL (Mauro Bieg):
+ Clarify truthiness in template variables (#2281).
+ Clarify pipe table width calculation (#4520).
* ConTeXt template: New Greek fallback typeface (Pablo Rodríguez, #4405).
CMU Serif gives better typographic results than the previous
Greek fallback DejaVu Serif.
* Make HTML template polyglot (#4606, OvidiusCicero), by making
`<link rel="stylesheet" href="$css$">` self-closing.
* Use texmath 0.11, allowing better translation of non-ASCII
characters in math (#4642).
## pandoc 2.2 (2018-04-27)
* New input format: `fb2` (FictionBook2) (Alexander Krotov).
* Make `--ascii` work for all XML formats (ICML, OPML, JATS,...),
and for `ms` and `man`.
* Remove deprecated `--latexmathml`, `--gladtex`, `--mimetex`, `--jsmath`, `-m`,
`--asciimathml` options.
* New module Text.Pandoc.Readers.FB2, exporting readFB2 (Alexander
Krotov, API change).
* Markdown reader:
+ Allow empty key-value attributes, like `title=""` (#2944).
+ Handle table w/o following blank line in fenced div (#4560).
+ Remove "fallback" for `doubleQuote` parser. Previously the
parser tried to be efficient -- if no end double quote was found,
it would just return the contents. But this could backfire in a
case `**this should "be bold**`, since the fallback would return
the content `"be bold**` and the closing boldface delimiter
would never be encountered.
+ Improve computation of the relative width of the last column in a
multiline table, so we can round-trip tables without constantly
shrinking the last column.
* EPUB reader:
+ Fix images with space in file path (#4344).
* LaTeX reader:
+ Properly resolve section numbers with `\ref` and chapters (#4529).
+ Parse sloppypar environment (#4517, Marc Schreiber).
+ Improve handling of raw LaTeX (for markdown etc.) (#4589, #4594).
Previously there were some bugs in how macros were handled.
+ Support `\MakeUppercase`, `\MakeLowercase`, `\uppercase`,
`\lowercase`, and also `\MakeTextUppercase` and
`\MakeTextLowercase` from textcase (#4959).
* Textile reader:
+ Fixed tables with no body rows (#4513).
Previously these raised an exception.
* Mediawiki reader:
+ Improve table parsing (#4508). This fixes detection of table
attributes and also handles `!` characters in cells.
* DocBook reader:
+ Properly handle title in `section` element (#4526).
Previously we just got `section_title` for `section` (though `sect1`,
`sect2`, etc. were handled properly).
+ Read tex math as output by asciidoctor (#4569, Joe Hermaszewski).
* Docx reader:
+ Combine adjacent CodeBlocks with the same attributes into
a single CodeBlock. This prevents a multiline codeblock in
Word from being read as different paragraphs.
* RST reader:
+ Allow < 3 spaces indent under directives (#4579).
+ Fix anonymous redirects with backticks (#4598).
* Muse reader (Alexander Krotov):
+ Add support for Text::Amuse multiline headings.
+ Add `<math>` tag support.
+ Add support for `<biblio>` and `<play>` tags.
+ Allow links to have empty descriptions.
+ Require block `<literal>` tags to be on separate lines.
+ Allow `-` in anchors.
+ Allow verse to be indented.
+ Allow nested footnotes.
+ Internal improvements.
* Muse writer (Alexander Krotov):
+ Escape `>` only at the beginning of a line.
+ Escape `]` in image title.
+ Escape `]` brackets in URLs as `%5D`.
+ Only escape brackets when necessary.
+ Escape ordered list markers.
+ Do not escape list markers unless preceded by space.
+ Escape strings starting with space.
+ Escape semicolons and markers after line break.
+ Escape `;` to avoid accidental comments.
+ Don't break headers, line blocks and tables with line breaks.
+ Correctly output empty headings.
+ Escape horizontal rule only if at the beginning of the line.
+ Escape definition list terms starting with list markers.
+ Place header IDs before header.
+ Improve span writing.
+ Do not join Spans in normalization.
+ Don't align ordered list items.
+ Remove key-value pairs from attributes before normalization.
+ Enable `--wrap=preserve` for all tests by default.
+ Reduced `<verbatim>` tags in output.
+ Internal changes.
* RST writer:
+ Use more consistent indentation (#4563). Previously we
used an odd mix of 3- and 4-space indentation. Now we use 3-space
indentation, except for ordered lists, where indentation must
depend on the width of the list marker.
+ Flatten nested inlines (#4368, Francesco Occhipinti).
Nested inlines are not valid RST syntax, so we flatten them following
some readability criteria discussed in #4368.
* EPUB writer:
+ Ensure that `pagetitle` is always set, even when structured titles
are used. This prevents spurious warnings about empty title
elements (#4486).
* FB2 writer (Alexander Krotov):
+ Output links inline instead of producing notes. Previously all links
were turned into footnotes with unclickable URLs inside.
+ Allow emphasis and notes in titles.
+ Don't intersperse paragraph with empty lines.
+ Convert metadata value `abstract` to book annotation.
+ Use `<empty-line />` for `HorizontalRule` rather than `LineBreak`.
FB2 does not have a way to represent line breaks inside paragraphs;
previously we used `<empty-line />` elements, but these are not allowed
inside paragraphs.
* Powerpoint writer (Jesse Rosenthal):
+ Handle Quoted Inlines (#4532).
+ Simplify code with `ParseXml`.
+ Allow fallback options when looking for placeholder type.
+ Check reference-doc for all layouts.
+ Simplify speaker notes logic.
+ Change notes state to a simpler per-slide value.
+ Remove `Maybe` from `SpeakerNotes` in `Slide`. `mempty`
means no speaker notes.
+ Add tests for improved speaker notes.
+ Handle speaker notes earlier in the conversion process.
+ Keep notes with related blocks (#4477). Some blocks automatically
split slides (imgs, tables, `column` divs). We assume that any
speaker notes immediately following these are connected to these
elements, and keep them with the related blocks, splitting after them.
+ Remove `docProps/thumbnail.jpeg` in data dir (Jesse Rosenthal, #4588).
It contained a nonfree ICC color calibration profile and is not needed
for production of a powerpoint document.
* Markdown writer:
+ Include a blank line at the end of the row in a single-row multiline
table, to prevent it from being interpreted as a simple table (#4578).
* CommonMark writer:
+ Correctly ignore LaTeX raw blocks when `raw_tex` is not
enabled (#4527, quasicomputational).
* EPUB writer:
+ Add `epub:type="footnotes"` to notes section in EPUB3 (#4489).
* LaTeX writer:
+ In beamer, don't use format specifier for default ordered lists
(#4556). This gives better results for styles that put ordered list
markers in boxes or circles.
+ Update `\lstinline` delimiters (#4369, Tim Parenti).
* Ms writer:
+ Use `\f[R]` rather than `\f[]` to reset font (#4552).
+ Use `\f[BI]` and `\f[CB]` in headers, instead of `\f[I]` and `\f[C]`,
since the header font is automatically bold (#4552).
+ Use `\f[CB]` rather than `\f[BC]` for monospace bold (#4552).
+ Create pdf anchor for a Div with an identifier (#4515).
+ Escape `/` character in anchor ids (#4515).
+ Improve escaping for anchor ids: we now use _uNNN_ instead of uNNN
to avoid ambiguity.
* Man writer:
+ Don't escape U+2019 as `'` (#4550).
* Text.Pandoc.Options:
+ Removed `JsMath`, `LaTeXMathML`, and `GladTeX` constructors from
`Text.Pandoc.Options.HTMLMathMethod` [API change].
* Text.Pandoc.Class:
+ `writeMedia`: unescape URI-escaping in file path. This avoids
writing things like `file%20one.png` to the file system.
* Text.Pandoc.Parsing:
+ Fix `romanNumeral` parser (#4480). We previously accepted 'DDC'
as 1100.
+ `uri`: don't treat `*` characters at end as part of URI (#4561).
* Text.Pandoc.MIME:
+ Use the alias `application/eps` for EPS (#2067).
This will ensure that we retain the eps extension after reading the
image into a mediabag and writing it again.
* Text.Pandoc.PDF:
+ Use `withTempDir` in `html2pdf`.
+ With `xelatex`, don't compress images til the last run (#4484).
This saves time for image-heavy documents.
+ Don't try to convert EPS files (#2067). `pdflatex` converts them
itself, and JuicyPixels can't do it.
+ For `pdflatex`, use a temp directory in the working directory.
Otherwise we can have problems with the EPS conversion pdflatex
tries to do, which can't operate on a file above the working
directory without `--shell-escape`.
* Changes to tests to accommodate changes in pandoc-types.
In <https://github.com/jgm/pandoc-types/pull/36> we changed
the table builder to pad cells. This commit changes tests
(and two readers) to accord with this behavior.
* Set default extensions for `beamer` same as `latex`.
* LaTeX template:
+ Add `beameroption` variable (#4359, Étienne Bersac).
+ Use `pgfpages` package; this is needed for notes on second
screen in beamer (Étienne Bersac).
+ Add `background-image` variable (#4601, John Muccigrosso).
* reveal.js template: Add `background-image` variable (#4600,
John Muccigrosso).
* ms template: Fix date. Previously `.ND` was used, but this only
works if you have a title page, which we don't. Thanks to @teoric.
* Removed pragmas for unused extensions (#4506, Anabra).
* Fix bash completion for `--print-default-data-file` (#4549).
Previously this looked in the filesystem, even if pandoc
was compiled with `embed_data_files` (and sometimes it looked
in a nonexistent build directory). Now the bash completion
script just includes a hard-coded list of data file names.
* MANUAL:
+ Clarify template vs metadata variables (#4501, Mauro Bieg).
+ Fix raw content example (#4479, Mauro Bieg).
+ Specify that you use html for raw output in epub.
+ Add examples for raw docx blocks (#4472, Tristan Stenner).
The documentation states that the target format name should match
the output format, which isn't the case for `docx`/`openxml` and
some others.
+ Don't say that `empty_paragraphs` affects markdown output (#4540).
+ Consolidate input/output format documentation (#4577, Mauro Bieg).
* New README template. Take in/out formats from manual.
* Fix example in lua-filters docs (#4459, HeirOfNorton).
* Use the `-threaded` GHC flag when building benchmarks (#4587,
Francesco Occhipinti).
* Bump temporary upper bound to 1.4.
* Use pandoc-citeproc 0.14.3.1.
* Use texmath-0.10.1.2 (fixes escapes in math in ms, #4597).
* Removed old lib directory. This was used for something long ago,
but plays no role now.
* Removed unneeded data file `LaTeXMathML.js`.
* Create 64- and 32-bit versions of Windows binary packages.
## pandoc 2.1.3 (2018-03-18)
* Docx reader (Jesse Rosenthal):
+ Add tests for nested smart tags.
+ Parse nested smart tags.
+ Make unwrapSDT into a general `unwrap` function that can unwrap both
nested SDT tags and smartTags. This makes the SmartTags constructor in
the Docx type unnecessary, so we remove it (#4446).
+ Remove unused `docxWarnings` (Alexander Krotov).
* RST reader: Allow unicode bullet characters (#4454).
* Haddock reader: Better table handling, using haddock-library's
new table support, if compiled against a version that
includes it. Note that tables with col/rowspans will not
translate well into Pandoc.
* Muse reader (Alexander Krotov):
+ Various internal improvements.
+ Require closing tag to have the same indentation as opening.
+ Do not reparse blocks inside unclosed block tag (#4425).
+ Parse `<class>` tag (supported by Emacs Muse).
+ Do not produce empty Str element for unindented verse lines.
* LaTeX reader:
+ Add support to parse unit string of `\SI` command (closes #4296,
Marc Schreiber).
* Haddock writer: In the writer, we now render tables always as
grid tables, since Haddock supports these.
* DokuWiki writer: rewrite backSlashLineBreaks (#4445, Mauro Bieg).
* Docx writer: Fixed formatting of `DefaultStyle` ordered lists in
docx writer. We want decimal for the top level, not lower roman.
* RST writer:
+ Strip whitespace at beginning and ending of inline containers
(#4327, Francesco Occhipinti).
+ Filter out empty inline containers (#4434). There is nothing in
RST that corresponds to e.g. `Emph []`, so we just ignore elements
like this (Francesco Occhipinti).
* Muse writer (Alexander Krotov):
+ Support spans with anchors.
+ Replace smallcaps with emphasis before normalization.
+ Output smallcaps as emphasis.
+ Expand Cite before list normalization.
+ Write empty inline lists as `<verbatim></verbatim>`.
+ Remove empty Str from the beginning of inline lists during normalization.
+ Escape "-" to avoid creating bullet lists.
+ Fix math expansion for more than one expression per paragraph.
+ Expand math before inline list normalization.
* Dokuwiki writer: fix LineBreaks in Tables (#4313, Mauro Bieg).
* Ms writer:
+ Asciify pdf anchors, since unicode anchors don't work (#4436).
Internal links should be converted automatically, so this shouldn't
affect users directly.
+ Don't escape hyphens as `\-`; that's for a minus sign (#4467).
* Beamer writer: put hyperlink after `\begin{frame}` and not in the title
(#4307). If it's in the title, then we get a titlebar on slides with
the `plain` attribute, when the id is non-null. This fixes a regression
in 2.0.
* EPUB writer: Remove notes from TOC in nav.xhtml (#4453, Mauro Bieg).
* JATS writer: Remove extraneous, significant whitespace (#4335,
Nokome Bentley).
* html2pdf: inject base tag with current working directory (#4413, Mauro
Bieg). This helps ensure that linked resources are included.
* Add Semigroup instances for everything for which we defined a
Monoid instance previously (API change):
+ Text.Pandoc.Class.FileTree.
+ Text.Pandoc.Translations.Translations.
+ Text.Pandoc.Extensions.Extensions.
+ Text.Pandoc.Readers.Odt.StyleReader.Styles.
+ Text.Pandoc.Pretty.Doc.
+ Text.Pandoc.MediaBag.MediaBag.
* Add custom Prelude to give clean code for Monoid and Semigroup
that works with ghc 7.10-8.4. The custom Prelude (`prelude/Prelude`)
is used for ghc versions < 8.4. `NoImplicitPrelude` is used
in all source files, and Prelude is explicitly imported
(this is necessary for ghci to work properly with the custom prelude).
* Text.Pandoc.Writers.Shared (Francesco Occhipinti):
+ Export `stripLeadingTrailingSpace`.
+ Don't wrap lines in grid tables when `--wrap=none` (#4320).
+ `gridTable`: Don't wrap lines in tables when `--wrap=none`. Instead,
expand cells, even if it results in cells that don't respect relative
widths or surpass page column width. This change affects RST,
Markdown, and Haddock writers.
* Raise error if someone tries to print docx, odt, etc. template (#4441).
* LaTeX template: Provide `bidi` package's option using
`\PassOptionsToPackage` (#4357, Václav Haisman). This avoid a
clash when `polyglossia` loads it first and then it is loaded again
for XeLaTeX.
* ConTeXt template: Added `pdfa` variable to generate PDF/A (#4294, Henri
Menke). Instructions on how to install the ICC profiles on ConTeXt
standalone can be found in the wiki:
<http://wiki.contextgarden.net/PDFX#ICC_profiles>.
If the ICC profiles are not available the log will contain error
messages.
* Use latest pandoc-types, skylighting
* Use latest pandoc-citeproc in binary package.
* Bump upper bound for time, criterion, haddock-library, exceptions,
http-types, aeson, haddock-library.
* Bump upper bound tasty-quickcheck 0.10 (#4429, Felix Yan).
* pandoc.cabal: fix up other-extensions and language fields.
Language is now consistently `Haskell2010`, and other-extensions
is consistently `NoImplicitPrelude`. Everything else to be specified
in the module header as needed.
* Removed `old-locale` flag and Text.Pandoc.Compat.Time.
This is no longer necessary since we no longer support ghc 7.8.
* Make `weigh-pandoc` into a benchmark program.
Remove `weigh-pandoc` flag. `weigh-pandoc` is now built (and run)
automatically when you build (and run) benchmarks.
* MANUAL: add instructions for background images reveal.js (#4325, John
Muccigrosso).
* appveyor: use VS 2013 environment instead of VS 2015 for Windows builds.
## pandoc 2.1.2 (2018-03-02)
* Markdown reader:
+ Fix parsing bug with nested fenced divs (#4281). Previously we allowed
"nonindent spaces" before the opening and closing `:::`, but this
interfered with list parsing, so now we require the fences to be flush with
the margin of the containing block.
* Commonmark reader:
+ `raw_html` is now on by default. It can be disabled explicitly
using `-f commonmark-raw_html`.
* Org reader (Albert Krewinkel):
+ Move citation tests to separate module.
+ Allow changing emphasis syntax (#4378). The characters allowed before
and after emphasis can be configured via `#+pandoc-emphasis-pre` and
`#+pandoc-emphasis-post`, respectively. This allows to change which
strings are recognized as emphasized text on a per-document or even
per-paragraph basis. Example:
#+pandoc-emphasis-pre: "-\t ('\"{"
#+pandoc-emphasis-post: "-\t\n .,:!?;'\")}["
* LaTeX reader:
+ Fixed comments inside citations (#4374).
+ Fix regression in package options including underscore (#4424).
+ Make `--trace` work.
+ Fixed parsing of `tabular*` environment (#4279).
* RST reader:
+ Fix regression in parsing of headers with trailing space (#4280).
* Muse reader (Alexander Krotov):
+ Enable `<literal>` tags even if amuse extension is enabled.
Amusewiki disables <literal> tags for security reasons.
If user wants similar behavior in pandoc, RawBlocks and RawInlines
can be removed or replaced with filters.
+ Remove space prefix from `<literal>` tag contents.
+ Do not consume whitespace while looking for closing end tag.
+ Convert alphabetical list markers to decimal in round-trip test.
Alphabetical lists are an addition of Text::Amuse.
They are not present in Emacs Muse and can be ambiguous
when list starts with "i.", "c." etc.
+ Allow `<quote>` and other tags to be indented.
+ Allow single colon in definition list term.
+ Fix parsing of verse in lists.
+ Improved parsing efficiency. Avoid `parseFromString`.
Lists are parsed in linear instead of exponential time now.
+ Replace ParserState with MuseState.
+ Prioritize lists with roman numerals over alphabetical lists.
This is to make sure "i." starts a roman numbered list,
instead of a list with letter "i" (followed by "j", "k", ...").
+ Fix directive parsing.
+ Parse definition lists with multiple descriptions.
+ Parse next list item before parsing more item contents.
+ Fixed a bug: headers did not terminate lists.
+ Move indentation parsing from `definitionListItem` to `definitionList`.
+ Paragraph indentation does not indicate nested quote.
Muse allows indentation to indicate quotation or alignment,
but only on the top level, not within a <quote> or list.
+ Require that block tags are on separate lines.
Text::Amuse already explicitly requires it anyway.
+ Fix matching of closing inline tags.
+ Various internal changes.
+ Fix parsing of nested definition lists.
+ Require only one space for nested definition list indentation.
+ Do not remove trailing whitespace from `<code>`.
+ Fix parsing of trailing whitespace. Newline after whitespace now
results in softbreak instead of space.
* Docx reader (Jesse Rosenthal, except where noted):
+ Handle nested sdt tags (#4415).
+ Don't look up dependant run styles if `+styles` is enabled.
+ Move pandoc inline styling inside custom-style span.
+ Read custom styles (#1843). This will read all paragraph and
character classes as divs and spans, respectively. Dependent styles
will still be resolved, but will be wrapped with appropriate style
tags. It is controlled by the `+styles` extension (`-f docx+styles`).
This can be used in conjunction with the `custom-style` feature in the
docx writer for a pandoc-docx editing workflow. Users can convert from
an input docx, reading the custom-styles, and then use that same input
docx file as a reference-doc for producing an output docx file. Styles
will be maintained across the conversion, even if pandoc doesn't
understand them.
+ Small change to Fields hyperlink parser. Previously, unquoted string
required a space at the end of the line (and consumed it). Now we
either take a space (and don't consume it), or end of input.
+ Pick table width from the longest row or header (Francesco Occhipinti,
#4360).
* Muse writer (Alexander Krotov):
+ Change verse markup: `> ` instead of `<verse>` tag.
+ Remove empty strings during inline normalization.
+ Don't indent nested definition lists.
+ Use unicode quotes for quoted text.
+ Write image width specified in percent in Text::Amuse mode.
+ Don't wrap displayMath into `<verse>`.
+ Escape nonbreaking space (`~~`).
+ Join code with different attributes during normalization.
+ Indent lists inside Div.
+ Support definitions with multiple descriptions.
* Powerpoint writer (Jesse Rosenthal):
+ Use table styles This will use the default table style in the
reference-doc file. As a result they will be easier when using
in a template, and match the color scheme.
+ Remove empty slides. Because of the way that slides were split, these
could be accidentally produced by comments after images. When animations
are added, there will be a way to add an empty slide with either
incremental lists or pauses.
+ Implement syntax highlighting. Note that background colors can't
be implemented in PowerPoint, so highlighting styles that require
these will be incomplete.
+ New test framework for pptx. We now compare the output of the
Powerpoint writer with files that we know to (a) not be corrupt,
and (b) to show the desired output behavior (details below).
+ Add `notesMaster` to `presentation.xml` if necessary.
+ Ignore links and (end)notes in speaker notes.
+ Output speaker notes.
+ Read speaker note templates conditionally. If there are speaker
notes in the presentation, we read in the notesMasters templates
from the reference pptx file.
+ Fix deletion track changes (#4303, Jesse Rosenthal).
* Markdown writer: properly escape @ to avoid capture as citation
(#4366).
* LaTeX writer:
+ Put hypertarget inside figure environment (#4388).
This works around a problem with the endfloat package and
makes pandoc's output compatible with it.
+ Fix image height with percentage (#4389). This previously caused
the image to be resized to a percentage of textwidth, rather than
textheight.
* ConTeXt writer (Henri Menke):
+ New section syntax and support `--section-divs` (#2609).
`\section[my-header]{My Header}` ->
`\section[title={My Header},reference={my-header}]`.
The ConTeXt writer now supports the `--section-divs` option to
write sections in the fenced style, with `\startsection` and
`\stopsection`.
+ xtables: correct wrong usage of caption (Henri Menke).
* Docx writer:
+ Fix image resizing with multiple images (#3930, Andrew Pritchard).
+ Use new golden framework (Jesse Rosenthal).
+ Make more deterministic to facilitate testing (Jesse Rosenthal).
- `getUniqueId` now calls to the state to get an incremented digit,
instead of calling to P.uniqueHash.
- we always start the PRNG in mkNumbering/mkAbstractNum with the same
seed (1848), so our randoms should be the same each time.
+ Fix ids in comment writing (Jesse Rosenthal). Comments from
`--track-changes=all` were producing corrupt docx, because the
writer was trying to get id from the `(ID,_,_)` field of
the attributes, and ignoring the "id" entry in the key-value pairs. We
now check both.
* Ms writer: Added papersize variable.
* TEI writer:
+ Use `height` instead of `depth` for images (#4331).
+ Ensure that id prefix is always used.
+ Don't emit `role` attribute; that was a leftover from the
Docbook writer.
+ Use 'xml:id', not 'id' attribute (#4371).
* AsciiDoc writer:
+ Do not output implicit heading IDs (#4363, Alexander
Krotov). Convert to `asciidoc-auto_identifiers` for old behaviour.
* RST writer:
+ Remove `blockToRST'` moving its logic into `fixBlocks`
(Francesco Occhipinti).
+ Insert comment between lists and quotes (#4248, Francesco Occchipinti).
* RST template: remove definition of 'math' role as raw.
This used to be needed prior to v 0.8 of docutils, but
now math support is built-in.
* Slides: Use divs to set incremental/non-incremental (#4381,
Jesse Rosenthal). The old method (list inside blockquote) still
works, but we are encouraging the use of divs with class
`incremental` or `nonincremental`.
* Text.Pandoc.ImageSize:
+ Make image size detection for PDFs more robust (#4322).
+ Determine image size for PDFs (#4322).
+ EMF Image size support (#4375, Andrew Pritchard).
* Text.Pandoc.Extensions:
+ Add `Ext_styles` (Jesse Rosenthal, API change). This will be used in
the docx reader (defaulting to off) to read pargraph and character
styles not understood by pandoc (as divs and spans, respectively).
+ Made `Ext_raw_html` default for `commonmark` format.
* Text.Pandoc.Parsing:
+ Export `manyUntil` (Alexander Krotov, API change).
+ Export improved `sepBy1` (Alexander Krotov).
+ Export list marker parsers: `upperRoman`, `lowerRoman`,
`decimal`, `lowerAlpha`, `upperAlpha` (Alexander Krotov, API change).
* Tests/Lua: fix tests on windows (Albert Krewinkel).
* Lua: register script name in global variable (#4393). The name of the Lua
script which is executed is made available in the global Lua variable
`PANDOC_SCRIPT_FILE`, both for Lua filters and custom writers.
* Tests: Abstract powerpoint tests out to OOXML tests (Jesse Rosenthal).
There is very little pptx-specific in these tests, so we abstract out
the basic testing function so it can be used for docx as well. This
should allow us to catch some errors in the docx writer that slipped
by the roundtrip testing.
* Lua filters: store constructors in registry (Albert Krewinkel). Lua
functions used to construct AST element values are stored in the Lua
registry for quicker access. Getting a value from the registry is much
faster than getting a global value (partly to idiosyncrasies of hslua);
this change results in a considerable performance boost.
* Documentation:
+ `doc/org.md` Add draft of Org-mode documentation (Albert Krewinkel).
+ `doc/lua-filters.md`: document global vars set for filters
(Albert Krewinkel).
+ INSTALL.md: mention Stack version. (#4343, Adam Brandizzi).
+ MANUAL: add documentation on custom styles (Jesse Rosenthal).
+ MANUAL.txt: Document incremental and nonincremental divs (Jesse
Rosenthal). Blockquoted lists are still described, but fenced divs are
presented in preference.
+ MANUAL.txt: document header and footer variables (newmana).
+ MANUAL.txt: self-contained implies standalone (#4304, Daniel Lublin).
+ CONTRIBUTING.md: label was renamed. (#4310, Alexander Brandizzi).
* Require tagsoup 0.14.3 (#4282), fixing HTML tokenization bug.
* Use latest texmath.
* Use latest pandoc-citeproc.
* Allow exceptions 0.9.
* Require aeson-pretty 0.8.5 (#4394).
* Bump blaze-markup, blaze-html lower bounds to 0.8, 0.9 (#4334).
* Update tagsoup to 0.14.6 (Alexander Krotov, #4282).
* Removed ghc-prof-options. As of cabal 1.24, sensible defaults are used.
* Update default.nix to current nixpkgs-unstable for hslua-0.9.5 (#4348,
jarlg).
## pandoc 2.1.1 (2018-01-18)
* Markdown reader:
+ Don't coalesce adjacent raw LaTeX blocks if they are separated by a
blank line. See lierdakil/pandoc-crossref#160.
+ Improved `inlinesInBalancedBrackets` (#4272, jgm/pandoc-citeproc#315).
The change both improves performance and fixes a regression whereby
normal citations inside inline notes and figure captions were not
parsed correctly.
* RST reader:
+ Better handling for headers with an anchor (#4240). Instead of creating a
Div containing the header, we put the id directly on the header.
This way header promotion will work properly.
+ Add aligned environment when needed in math (#4254). `rst2latex.py`
uses an `align*` environment for math in `.. math::` blocks, so this
math may contain line breaks. If it does, we put the math in an
`aligned` environment to simulate `rst2latex.py`'s behavior.
* HTML reader:
+ Fix col width parsing for percentages < 10% (#4262, n3fariox).
* LaTeX reader:
+ Advance source position at end of stream.
+ Pass through macro defs in `rawLaTeXBlock` even if the `latex_macros`
extension is set (#4246). This reverts to earlier behavior and is
probably safer on the whole, since some macros only modify things in
included packages, which pandoc's macro expansion can't modify.
+ Fixed pos calculation in tokenizing escaped space.
+ Allow macro definitions inside macros (#4253). Previously we went into
an infinite loop with
```
\newcommand{\noop}[1]{#1}
\noop{\newcommand{\foo}[1]{#1}}
\foo{hi}
```
+ Fix inconsistent column widths (#4238). This fixes a bug whereby column
widths for the body were different from widths for the header in some
tables.
* Docx reader (Jesse Rosenthal):
+ Parse hyperlinks in `instrText` tags (#3389, #4266). This was a form of
hyperlink found in older versions of word. The changes introduced for
this, though, create a framework for parsing further fields in MS Word
(see the spec, ECMA-376-1:2016, §17.16.5, for more on these fields).
We introduce a new module, `Text.Pandoc.Readers.Docx.Fields` which
contains a simple parsec parser. At the moment, only simple hyperlink
fields are accepted, but that can be extended in the future.
* Muse reader (Alexander Krotov):
+ Parse `~~` as non-breaking space in Text::Amuse mode.
+ Refactor list parsing.
* Powerpoint writer (Jesse Rosenthal):
+ Change reference to `notesSlide` to `endNotesSlide`.
+ Move image sizing into `picProps`.
+ Improve table placement.
+ Make our own `_rels/.rels` file.
+ Import reference-doc images properly.
+ Move `Presentation.hs` out of `PandocMonad`.
+ Refactor into separate modules. T.P.W.Powerpoint.Presentation
defines the Presentation datatype and goes Pandoc->Presentation;
T.P.W.Pandoc.Output goes Presentation->Archive.
Text.Pandoc.Writers.Powerpoint a thin wrapper around the two modules.
+ Avoid overlapping blocks in column output.
+ Position images correctly in two-column layout.
+ Make content shape retrieval environment-aware.
+ Improve image handling. We now determine image and caption placement
by getting the dimensions of the content box in a given layout.
This allows for images to be correctly sized and positioned in a
different template. Note that images without captions and headers are
no longer full-screened. We can't do this dependably in different
layouts, because we don't know where the header is (it could be to
the side of the content, for example).
+ Read presentation size from reference file. Our presentation size is
now dependent on the reference/template file we use.
+ Handle (sub)headers above slidelevel correctly. Above the slidelevel,
subheaders will be printed in bold and given a bit of extra space
before them. Note that at the moment, no distinction is made between
levels of headers above the slide header, though that can be changed.
+ Check for required files. Since we now import from reference/dist
file by glob, we need to make sure that we're getting the files we
need to make a non-corrupt Powerpoint. This performs that check.
+ Improve templating using `--reference-doc`. Templating should work
much more reliably now.
+ Include Notes slide in TOC.
+ Set notes slide header to slide-level.
+ Add table of contents. This is triggered by the `--toc` flag. Note
that in a long slide deck this risks overrunning the text box. The user
can address this by setting `--toc-depth=1`.
+ Set notes slide number correctly.
+ Clean up adding metadata slide. We want to count the slide numbers
correctly if it's in there.
+ Add anchor links. For anchor-type links (`[foo](#bar)`) we produce
an anchor link. In powerpoint these are links to slides, so we keep
track of a map relating anchors to the slides they occur on.
+ Make the slide number available to the blocks. For anchors,
block-processing functions need to know what slide number
they're in. We make the `envCurSlideId` available to blocks.
+ Move `curSlideId` to environment.
+ Allow setting `toc-title` in metadata.
+ Link notes to endnotes slide.
* Markdown writer:
+ Fix cell width calculation (#4265). Previously we could get
ever-lengthening cell widths when a table was run repeatedly through
`pandoc -f markdown -t markdown`.
* LaTeX writer:
+ Escape `&` in lstinline (Robert Schütz).
* ConTeXt writer:
+ Use xtables instead of Tables (#4223, Henri Menke).
Default to xtables for context output. Natural Tables are used
if the new `ntb` extension is set.
* HTML writer:
+ Fixed footnote backlinks with `--id-prefix` (#4235).
* `Text.Pandoc.Extensions`: Added `Ext_ntb` constructor (API change,
Henri Menke).
* `Text.Pandoc.ImageSize`: add derived `Eq` instance to `Dimension`
(Jesse Rosenthal, API change).
* Lua filters (Albert Krewinkel):
+ Make `PANDOC_READER_OPTIONS` available.
The options which were used to read the document are made available to
Lua filters via the `PANDOC_READER_OPTIONS` global.
+ Add lua module `pandoc.utils.run_json_filter`, which runs a JSON filter
on a Pandoc document.
+ Refactor filter-handling code into `Text.Pandoc.Filter.JSON`,
`Text.Pandoc.Filter.Lua`, and `Text.Pandoc.Filter.Path`.
+ Improve error messages. Provide more context about the task
which caused an error.
* data/pandoc.lua (Albert Krewinkel):
+ Accept singleton inline as a list. Every constructor which accepts a
list of inlines now also accepts a single inline element for
convenience.
+ Accept single block as singleton list. Every constructor which accepts
a list of blocks now also accepts a single block element for
convenience. Furthermore, strings are accepted as shorthand for
`{pandoc.Str "text"}` in constructors.
+ Add attr, listAttributes accessors. Elements with
attributes got an additional `attr` accessor. Attributes were
accessible only via the `identifier`, `classes`, and `attributes`,
which was in conflict with the documentation, which indirectly states
that such elements have the an `attr` property.
+ Drop `_VERSION`. Having a `_VERSION` became superfluous, as this
module is closely tied to the pandoc version, which is available via
`PANDOC_VERSION`.
+ Fix access to Attr components. Accessing an Attr value (e.g.,
` Attr().classes`) was broken; the more common case of accessing it via
an Inline or Block element was unaffected by this.
* Move `metaValueToInlines` to from Docx writer to
`Text.Pandoc.Writers.Shared`, so it can be used by other writers
(Jesse Rosenthal).
* MANUAL.txt:
+ Clarify otherlangs in LaTeX (#4072).
+ Clarify `latex_macros` extension.
+ Recommend use of `raw_attribute` extension in header includes (#4253).
* Allow latest QuickCheck, tasty, criterion.
* Remove custom prelude and ghc 7.8 support.
* Reduce compiler noise (exact paths for compiled modules).
## pandoc 2.1 (2018-01-07)
* Allow filters and lua filters to be interspersed (#4196). Previously
we ran all lua filters before JSON filters. Now we run filters in
the order they are presented on the command line, whether lua or JSON.
There are two incompatible API changes: The type of `applyFilters`
has changed, and `applyLuaFilters` has been removed. `Filter` is
also now exported.
* Use latest skylighting and omit the `missingIncludes` check, fixing
a major performance regression in earlier releases of the 2.x series
(#4226). Behavior change: If you use a custom syntax definition that
refers to a syntax you haven't loaded, pandoc will now complain when
it is highlighting the text, rather than doing a check at the start.
This change dramatically speeds up invocations of pandoc on short
inputs.
* Text.Pandoc.Class: make `FileTree` opaque (don't export
`FileTree` constructor). This forces users to interact with it using
`insertInFileTree` and `getFileInfo`, which normalize file names.
* Markdown reader:
+ Rewrite `inlinesInBalancedBrackets`. The rewrite is much more
direct, avoiding `parseFromString`. And it performs significantly
better; unfortunately, parsing time still increases exponentially
(see #1735).
+ Avoid parsing raw tex unless `\` + letter seen. This seems to
help with the performance problem, #4216.
* LaTeX reader: Simplified a check for raw tex command.
* Muse reader (Alexander Krotov):
+ Enable round trip test (#4107).
+ Automatically translate `#cover` into `#cover-image`.
Amusewiki uses #cover directive to specify cover image.
* Docx reader (Jesse Rosenthal):
+ Allow for insertion/deletion of paragraphs (#3927).
If the paragraph has a deleted or inserted paragraph break (depending
on the track-changes setting) we hold onto it until the next
paragraph. This takes care of accept and reject. For this we introduce
a new state which holds the ils from the previous para if necessary.
For `--track-changes=all`, we add an empty span with class
`paragraph-insertion`/`paragraph-deletion` at the end of the paragraph
prior to the break to be inserted or deleted.
+ Remove unused anchors (#3679). Docx produces a lot of anchors with
nothing pointing to them---we now remove these to produce cleaner
output. Note that this has to occur at the end of the process
because it has to follow link/anchor rewriting.
+ Read multiple children of `w:sdtContents`.
+ Combine adjacent anchors. There isn't any reason to have numerous
anchors in the same place, since we can't maintain docx's
non-nesting overlapping. So we reduce to a single anchor.
+ Improved tests.
* Muse writer (Alexander Krotov): don't escape URIs from AST
* Docx writer:
+ Removed redundant subtitle in title (Sebastian Talmon).
+ `firstRow` table definition compatibility for Word 2016 (Sebastian
Talmon). Word 2016 seems to use a default value of "1" for table
headers, if there is no firstRow definition (although a default
value of 0 is documented), so all tables get the first Row formatted
as header. Setting the parameter to 0 if the table has no header
row fixes this for Word 2016
+ Fix custom styles with spaces in the name (#3290).
* Powerpoint writer (Jesse Rosenthal):
+ Ignore Notes div for parity with other slide outputs.
+ Set default slidelevel correctly. We had previously defaulted to
slideLevel 2. Now we use the correct behavior of defaulting to the
highest level header followed by content. We change an expected test
result to match this behavior.
+ Split blocks correctly for linked images.
+ Combine adjacent runs.
+ Make inline code inherit code size. Previously (a) the code size
wasn't set when we force size, and (b) the properties was set from
the default, instead of inheriting.
+ Simplify `replaceNamedChildren` function.
+ Allow linked images. The following markdown:
`[](http://www.example.com)`
will now produce a linked image in the resulting PowerPoint file.
+ Fix error with empty table cell. We require an empty `<a:p>` tag,
even if the cell contains no paragraphs---otherwise PowerPoint
complains of corruption.
+ Implement two-column slides. This uses the columns/column div
format described in the pandoc manual. At the moment, only two
columns (half the screen each) are allowed. Custom widths are not
supported.
+ Added more tests.
* OpenDocument/ODT writers: improved rendering of formulas (#4170, oltolm).
* Lua filters (Albert Krewinkel):
+ `data/pandoc.lua`: drop 'pandoc-api-version' from Pandoc objects
+ The current pandoc-types version is made available to Lua programs in
the global `PANDOC_API_VERSION`. It contains the version as a list of
numbers.
+ The pandoc version available as a global `PANDOC_VERSION` (a list
of numbers).
+ `data/pandoc.lua`: make `Attr` an `AstElement`.
+ `data/pandoc.lua`: make all types subtypes of `AstElement`.
`Pandoc`, `Meta`, and `Citation` were just plain functions and did
not set a metatable on the returned value, which made it difficult
to amend objects of these types with new behavior. They are now
subtypes of AstElement, meaning that all their objects can gain
new features when a method is added to the behavior object
(e.g., `pandoc.Pandoc.behavior`).
+ `data/pandoc.lua`: split type and behavior tables. Clearly distinguish
between a type and the behavioral properties of an instance of that
type. The behavior of a type (and all its subtypes) can now be
amended by adding methods to that types `behavior` object, without
exposing the type objects internals. E.g.:
```lua
pandoc.Inline.behavior.frob = function () print'42' end
local str = pandoc.Str'hello'
str.frob() -- outputs '42'
```
+ `data/pandoc.lua`: fix Element inheritance. Extending all elements
of a given type (e.g., all inline elements) was difficult, as the
table used to lookup unknown methods would be reset every time a
new element of that type was created, preventing recursive property
lookup. This is was changed in that all methods and attributes of
supertypes are now available to their subtypes.
+ `data/pandoc.lua`: fix attribute names of Citation (#4222). The
fields were named like the Haskell fields, not like the documented,
shorter version. The names are changed to match the documentation
and Citations are given a shared metatable to enable simple
extensibility.
+ `data/pandoc.lua`: drop function `pandoc.global_filter`.
+ Bump `hslua` version to 0.9.5. This version fixes a bug that made it
difficult to handle failures while getting lists or a Map from Lua.
A bug in pandoc, which made it necessary to always pass a tag when
using MetaList or MetaBlock, is fixed as a result. Using the pandoc
module's constructor functions for these values is now optional
(if still recommended).
+ Stop exporting `pushPandocModule` (API change). The introduction
of `runPandocLua` renders direct use of this function obsolete.
+ Update generation of module docs for lua filters.
+ `Lua.Module.Utils`: make stringify work on `MetaValues` (John
MacFarlane). I'm sure this was intended in the first place,
but currently only `Meta` is supported.
* Improve benchmarks.
+ Set the default extensions properly.
+ Improve benchmark argument parsing. You can now say
`make bench BENCHARGS="markdown latex reader"` and both the
markdown and latex readers will be benchmarked.
* MANUAL.txt simplify and add more structure (Mauro Bieg).
* Generate README.md from template and MANUAL.txt.
`make README.md` will generate the README.md after changes
to MANUAL.txt have been made.
* Update copyright notices to include 2018 (Albert Krewinkel).
## pandoc 2.0.6 (2017-12-28)
* Added `jats` as an input format.
+ Add Text.Pandoc.Readers.JATS, exporting `readJATS` (API
change) (Hamish Mackenzie).
+ Improved citation handling in JATS reader. JATS citations
are now converted to pandoc citations, and JATS ref-lists
are converted into a `references` field in metadata, suitable
for use with pandoc-citeproc. Thus a JATS article with embedded
bibliographic information can be processed with pandoc and
pandoc-citeproc to produce a formatted bibliography.
* Allow `--list-extensions` to take an optional FORMAT argument.
This lists the extensions set by default for the selected FORMAT.
The extensions are now alphabetized, and the `+` or `-`
indicating the default setting comes before, rather than after,
the extension.
* Markdown reader:
+ Preserve original whitespace between blocks.
+ Recognize `\placeformula` as context.
+ Be pickier about table captions. A caption starts with a `:` which
can't be followed by punctuation. Otherwise we can falsely interpret
the start of a fenced div, or even a table header line like
`:--:|:--:`, as a caption.
+ Always use four space rule for example lists. It would be awkward
to indent example list contents to the first non-space character after
the label, since example list labels are often long. Thanks to
Bernhard Fisseni for the suggestion.
+ Improve raw tex parsing. Note that the Markdown reader is also
affected by the `latex_macros` extension changes described below
under the LaTeX reader.
* LaTeX reader:
+ `latex_macros` extension changes (#4179). Don't pass through macro
definitions themselves when `latex_macros` is set. The macros
have already been applied. If `latex_macros` is enabled, then
`rawLaTeXBlock` in Text.Pandoc.Readers.LaTeX will succeed in parsing
a macro definition, and will update pandoc's internal macro map
accordingly, but the empty string will be returned.
+ Export `tokenize`, `untokenize` (API change).
+ Use `applyMacros` in `rawLaTeXBlock`, `rawLaTeXInline`.
+ Refactored `inlineCommand`.
+ Fix bug in tokenizer. Material following `^^` was
dropped if it wasn't a character escape. This only affected
invalid LaTeX, so we didn't see it in the wild, but it appeared
in a QuickCheck test failure.
+ Fix regression in LateX tokenization (#4159). This mainly affects the
Markdown reader when parsing raw LaTeX with escaped spaces.
+ Add tests of LaTeX tokenizer.
+ Support `\foreignlanguage` from babel.
+ Be more tolerant of `&` character (#4208). This allows us to parse
unknown tabular environments as raw LaTeX.
* Muse reader (Alexander Krotov):
+ Parse anchors immediately after headings as IDs.
+ Require that note references does not start with 0.
+ Parse empty comments correctly.
* Org reader (Albert Krewinkel):
+ Fix asterisks-related parsing error (#4180).
+ Support minlevel option for includes (#4154). The level of headers
in included files can be shifted to a higher level by specifying a
minimum header level via the `:minlevel` parameter. E.g.
`#+include: "tour.org" :minlevel 1` will shift the headers in
tour.org such that the topmost headers become level 1 headers.
+ Break-up org reader test file into multiple modules.
* OPML reader:
+ Enable raw HTML and other extensions by default for notes
(#4164). This fixes a regression in 2.0. Note that extensions can
now be individually disabled, e.g. `-f opml-smart-raw_html`.
* RST reader:
+ Allow empty list items (#4193).
+ More accurate parsing of references (#4156). Previously we erroneously
included the enclosing backticks in a reference ID (#4156). This
change also disables interpretation of syntax inside references, as
in docutils. So, there is no emphasis in `` `my *link*`_ ``.
* Docx reader:
+ Continue lists after interruption (#4025, Jesse Rosenthal).
Docx expects that lists will continue where they left off after an
interruption and introduces a new id if a list is starting again. So
we keep track of the state of lists and use them to define a "start"
attribute, if necessary.
+ Add tests for structured document tags unwrapping (Jesse Rosenthal).
+ Preprocess Document body to unwrap `w:sdt` elements (Jesse Rosenthal,
#4190).
* Plain writer:
+ Don't linkify table of contents.
* RST writer:
+ Fix anchors for headers (#4188). We were missing an `_`.
* PowerPoint writer (Jesse Rosenthal):
+ Treat lists inside BlockQuotes as lists. We don't yet produce
incremental lists in PowerPoint, but we should at least treat lists
inside BlockQuotes as lists, for compatibility with other slide formats.
+ Add ability to force size. This replaces the more specific
`blockQuote runProp`, which only affected the size of blockquotes. We
can use this for notes, etc.
+ Implement notes. This currently prints all notes on a final slide.
Note that at the moment, there is a danger of text overflowing the
note slide, since there is no logic for adding further slides.
+ Implement basic definition list functionality to PowerPoint writer.
+ Don't look for default template file for Powerpoint (#4181).
+ Add pptx to isTextFormat list. This is used to check standalone
and not writing to the terminal.
+ Obey slide level option (Jesse Rosenthal).
+ Introduce tests.
* Docx writer:
+ Ensure that `distArchive` is the one that comes with pandoc
(#4182). Previously a `reference.docx` in `~/.pandoc` (or the user data
dir) would be used instead, and this could cause problems because a
user-modified docx sometimes lacks vital sections that we count
on the `distArchive` to supply.
* Org writer:
+ Do not wrap "-" to avoid accidental bullet lists (Alexander Krotov).
+ Don't allow fn refs to wrap to beginning of line (#4171, with help from
Alexander Krotov). Otherwise they can be interpreted as footnote
definitions.
* Muse writer (Alexander Krotov):
+ Don't wrap note references to the next line (#4172).
* HTML writer:
+ Use br elements in line blocks instead of relying on CSS
(#4162). HTML-based templates have had the custom CSS for
`div.line-block` removed. Those maintaining custom templates will want
to remove this too. We still enclose line blocks in a div with class
`line-block`.
* LaTeX writer:
+ Use `\renewcommand` for `\textlatin` with babel (#4161).
This avoids a clash with a deprecated `\textlatin` command defined
in Babel.
+ Allow fragile=singleslide attribute in beamer slides (#4169).
+ Use `\endhead` after `\toprule` in headerless tables (#4207).
* FB2 writer:
+ Add cover image specified by `cover-image` meta (Alexander Krotov,
#4195).
* JATS writer (Hamish Mackenzie):
+ Support writing `<fig>` and `<table-wrap>` elements
with `<title>` and `<caption>` inside them by using Divs with class set
to one of `fig`, `table-wrap` or `caption` (Hamish Mackenzie). The
title is included as a Heading so the constraint on where Heading can
occur is also relaxed.
+ Leave out empty alt attributes on links.
+ Deduplicate image mime type code.
+ Make `<p>` optional in `<td>` and `<th>` (#4178).
+ Self closing tags for empty xref (#4187).
+ Improve support for code language.
* Custom writer:
+ Use init file to setup Lua interpreter (Albert Krewinkel).
The same init file (`data/init`) that is used to setup the Lua
interpreter for Lua filters is also used to setup the interpreter of
custom writers.lua.
+ Define instances for newtype wrapper (Albert Krewinkel). The custom
writer used its own `ToLuaStack` instance definitions, which made
it difficult to share code with Lua filters, as this could result
in conflicting instances. A `Stringify` wrapper is introduced to
avoid this problem.
+ Added tests for custom writer.
+ Fixed definition lists and tables in `data/sample.lua`.
* Fixed regression: when target is PDF, writer extensions were being
ignored. So, for example, `pandoc -t latex-smart -o file.pdf`
did not work properly.
* Lua modules (Albert Krewinkel):
+ Add `pandoc.utils` module, to hold utility functions.
+ Create a Haskell module Text.Pandoc.Lua.Module.Pandoc to
define the `pandoc` lua module.
+ Make a Haskell module for each Lua module. Move definitions for the
`pandoc.mediabag` modules to a separate Haskell module.
+ Move `sha1` from the main `pandoc` module to `pandoc.utils`.
+ Add function `pandoc.utils.hierarchicalize` (convert list of
Pandoc blocks into (hierarchical) list of Elements).
+ Add function `pandoc.utils.normalize_date` (parses a date and
converts it (if possible) to "YYYY-MM-DD" format).
+ Add function `pandoc.utils.to_roman_numeral` (allows conversion
of numbers below 4000 into roman numerals).
+ Add function `pandoc.utils.stringify` (converts any AST element
to a string with formatting removed).
+ `data/init.lua`: load `pandoc.utils` by default
+ Turn pipe, read into full Haskell functions. The `pipe` and `read`
utility functions are converted from hybrid lua/haskell functions
into full Haskell functions. This avoids the need for intermediate
`_pipe`/`_read` helper functions, which have dropped.
+ pandoc.lua: re-add missing MetaMap function. This was a bug
introduced in version 2.0.4.
* Text.Pandoc.Class: Add `insertInFileTree` [API change]. This gives
a pure way to insert an ersatz file into a `FileTree`. In addition, we
normalize paths both on insertion and on lookup.
* Text.Pandoc.Shared: export `blocksToInlines'` (API change, Maura Bieg).
* Text.Pandoc.MIME: Add opus to MIME type table as audio/ogg (#4198).
* Text.Pandoc.Extensions: Alphabetical order constructors for
`Extension`. This makes them appear in order in `--list-extensions`.
* Allow lenient decoding of latex error logs, which are not always
properly UTF8-encoded (#4200).
* Update latex template to work with recent versions of beamer.
The old template produced numbered sections with some recent
versions of beamer. Thanks to Thomas Hodgson.
* Updated reference.docx (#4175). Instead of just "Hello, world", the
document now contains exemplars of most of the styles that have an
effect on pandoc documents. This makes it easier to see the effect
of style changes.
* Removed `default.theme` data file (#4096). It is no longer needed now
that we have `--print-highlight-style`.
* Added `stack.lts9.yaml` for building with lts 9 and ghc 8.0.2.
We still need this for the alpine static linux build, since
we don't have ghc 8.2.2 for that yet.
* Removed `stack.pkg.yaml`. We only really need `stack.yaml`; we
can put flag settings for pandoc-citeproc there.
* Makefile: Add 'trypandoc' and 'pandoc-templates' targets to
make releases easier.
* MANUAL.txt:
+ Add note on what formats have `+smart` by default.
+ Use native syntax for custom-style (#4174, Mauro Bieg).
+ Introduce dedicated Extensions section, since some extensions
affect formats other than markdown (Mauro Bieg, #4204).
+ Clarify default html output for `--section-divs` (Richard Edwards).
* filters.md: say that Text.Pandoc.JSON comes form pandoc-types.
Closes jgm/pandoc-website#16.
* epub.md: Delete removed `-S` option from command (#4151, Georger Araújo).
## pandoc 2.0.5 (2017-12-12)
* Fix a bug in 2.0.4, whereby pandoc could not read the theme files
generated with `--print-highlight-style` (#4133). Improve JSON
serialization of styles.
* Fix CSS issues involving line numbers (#4128).
Highlighted code blocks are now enclosed in a div with class `sourceCode`.
Highlighting CSS no longer sets a generic color for pre and code; we only
set these for class `sourceCode`.
* `--pdf-engine-opt`: fix bug where option order was reversed (#4137).
* Add PowerPoint (pptx) writer (Jesse Rosenthal).
It works following the standard Pandoc conventions for making other
sorts of slides. Caveats:
+ Syntax highlighting is not yet implemented. (This is difficult
because there are no character classes in Powerpoint.)
+ Footnotes and Definition lists are not yet implemented. (Notes will
usually take the form of a final slide.
+ Image placement and auto-resizing has a few glitches.
+ Reference powerpoint files don't work dependably from the command
line. This will be implemented, but at the moment users are advised
to change themes from within Powerpoint.
* Create shared Text.Pandoc.Writers.OOXML module (Jesse Rosenthal).
This is for functions used by both Powerpoint and Docx writers.
* Add default pptx data for Powerpoint writer (Jesse Rosenthal).
* Add `empty_paragraphs` extension.
+ Deprecate `--strip-empty-paragraphs` option. Instead we now
use an `empty_paragraphs` extension that can be enabled on
the reader or writer. By default, disabled.
+ Add `Ext_empty_paragraphs` constructor to `Extension`.
+ Revert "Docx reader: don't strip out empty paragraphs."
This reverts commit d6c58eb836f033a48955796de4d9ffb3b30e297b.
+ Implement `empty_paragraphs` extension in docx reader and writer,
opendocument writer, html reader and writer.
+ Add tests for `empty_paragraphs` extension.
* Markdown reader:
+ Don't parse native div as table caption (#4119).
+ Improved computation of column widths in pipe tables.
Pipe tables with lines longer than the text width (as set
by `--columns`) are now scaled to text width, with the relative
widths of columns determined by the ratios between the
header lines. Previously we computed column widths using
the ratio of header line lengths to column width, so that
tables with narrow header lines were extremely thin, which
was very rarely the desired result.
* LaTeX reader: fix `\` before newline (#4134). This should be a space,
as long as it's not followed by a blank line. This has been fixed at the
tokenizer level.
* Muse reader (Alexander Krotov):
+ Add test for `#disable-tables` directive in Emacs mode.
+ Don't allow emphasis to be preceded by letter.
+ Add underline support in Emacs Muse mode..
+ Support multiline directives in Amusewiki mode
* Man writer: omit internal links (#4136). That is, just print the link
text without the URL.
* Markdown reader: accept processing instructions as raw HTML (#4125).
* Lua filters (Albert Krewinkel):
+ Use script to initialize the interpreter. The file `init.lua` is
used to initialize the Lua interpreter which is used in Lua filters.
This gives users the option to require libraries which they want to
use in all of their filters, and to extend default modules.
+ Fix package loading for Lua 5.1. The list of package searchers is
named `package.loaders` in Lua 5.1 and LuaJIT, and `package.searchers`
in Lua 5.2 and later.
+ Refactor lua module handling. The integration with Lua's package/module
system is improved: A pandoc-specific package searcher is prepended to
the searchers in `package.searchers`. The modules `pandoc` and
`pandoc.mediabag` can now be loaded via `require`.
+ Bump lower bound of hslua. The release hslua 0.9.3 contains a new
function which makes using Haskell functions as package loaders much
easier.
* reveal.js template: add title-slide identifier to title slide (#4120).
This allows it to be styled more easily.
* LaTeX template: Added support for `pagestyle` variable (#4135,
Thomas Hodgson)
* Add `-threaded` to ghc-options for executable (#4130, fixes a build
error on linux).
## pandoc 2.0.4 (2017-12-03)
* Add `--print-highlight-style` option. This generates a JSON version
of a highlighting style, which can be saved as a `.theme` file, modified,
and used with `--highlight-style` (#4106, #4096).
* Add `--strip-empty-paragraphs` option. This works for any input format.
It is primarily intended for use with docx and odt documents where
empty paragraphs have been used for inter-paragraph spaces.
* Support `--webtex` for `gfm` output.
* Recognize `.muse` file extension.
* Support beamer `\alert` in LaTeX reader. Closes #4091.
* Docx reader: don't strip out empty paragraphs (#2252).
Users who have a conversion pipeline from docx may want to consider adding
`--strip-empty-paragraphs` to the command line.
* Org reader (Albert Krewinkel): Allow empty list items (#4090).
* Muse reader (Alexander Krotov):
+ Parse markup in definition list terms.
+ Allow definition to end with EOF.
+ Make code blocks round trip.
+ Drop common space prefix from list items.
+ Add partial round trip test.
+ Don't interpret XML entities.
+ Remove `nested`.
+ Parse `~~` as non-breaking space in Emacs mode.
+ Correctly remove indentation from notes. Exactly one space is
required and considered to be part of the marker.
+ Allow list items to be empty.
+ Add ordered list test.
+ Add more multiline definition tests.
+ Don't allow blockquotes within lists.
+ Fix reading of multiline definitions.
+ Add inline `<literal>` support.
+ Concatenate inlines of the same type
* Docx writer: allow empty paragraphs (#2252).
* CommonMark/gfm writer:
+ Use raw html for native divs/spans (#4113). This allows a pandoc
markdown native div or span to be rendered in gfm using raw html tags.
+ Implement `raw_html` and `raw_tex` extensions. Note that `raw_html`
is enabled by default for `gfm`, while `raw_tex` is disabled by default.
* Muse writer (Alexander Krotov):
+ Test that inline math conversion result is normalized.
Without normalization this test produced
`<em>a</em><em>b</em><em>c</em>`.
+ Improve inline list normalization and move to writer.
+ Escape hash symbol.
+ Escape `----` to avoid accidental horizontal rules.
+ Escape only `</code>` inside code tag.
+ Additional `<verbatim>` is not needed as `<code>` is verbatim already.
* LaTeX writer:
+ Allow specifying just width or height for image size.
Previously both needed to be specified (unless the image was
being resized to be smaller than its original size).
If height but not width is specified, we now set width to
textwidth. If width but not height is specified, we now set
height to textheight. Since we have `keepaspectratio`, this
yields the desired result.
+ Escape `~` and `_` in code with `--listings` (#4111).
* HTML writer: export `tagWithAttributes`. This is a helper allowing
other writers to create single HTML tags.
* Let papersizes `a0`, `a1`, `a2`, ... be case-insensitive by
converting the case as needed in LaTeX and ConTeXt writers.
* Change `fixDisplayMath` from `Text.Pandoc.Writers.Shared`
so that it no longer produces empty `Para`'s as an artifact.
* `Text.Pandoc.Shared.blocksToInlines`: rewrote using builder.
This gives us automatic normalization, so we don't get
for example two consecutive Spaces.
* Include default CSS for 'underline' class in HTML-based templates.
* revealjs template: add `tex2jax` configuration for the
math plugin. With the next release of reveal.js, this will
fix the problem of `$`s outside of math contexts being
interpreted as math delimiters (#4027).
* `pandoc.lua` module for use in lua filters (Albert Krewinkel):
+ Add basic lua List module (#4099, #4081). The List module is
automatically loaded, but not assigned to a global variable. It can be
included in filters by calling `List = require 'List'`. Lists of blocks,
lists of inlines, and lists of classes are now given `List` as a metatable,
making working with them more convenient. E.g., it is now possible to
concatenate lists of inlines using Lua's concatenation operator `..`
(requires at least one of the operants to have `List` as a metatable):
function Emph (emph)
local s = {pandoc.Space(), pandoc.Str 'emphasized'}
return pandoc.Span(emph.content .. s)
end
The `List` metatable is assigned to the tables which get passed to
the constructors `MetaBlocks`, `MetaInline`, and `MetaList`. This
enables the use of the resulting objects as lists.
+ `Lua/StackInstances`: push Pandoc and Meta via constructor.
Pandoc and Meta elements are now pushed by calling the respective
constructor functions of the pandoc Lua module. This makes serialization
consistent with the way blocks and inlines are pushed to lua and allows
to use List methods with the `blocks` value.
+ Add documentation for pandoc.List in `lua-filters.md`.
* Use latest tagsoup. This fixes a bug in parsing HTML tags with
`&` (but not a valid entity) following them (#4094, #4088).
* Use skylighting 0.4.4.1, fixing the color of unmarked code text
when `numberLines` is used (#4103).
* Make `normalizeDate` more forgiving (Mauro Bieg, #4101), not
requiring a leading 0 on single-digit days.
* Fix `--help` output for `--highlight-style` to include `FILE` (Mauro
Bieg, #4095).
* Clearer deprecation warning for `--latexmathml, --asciimathml, -m`.
Previously we only mentioned `--latexmathml`, even if `-m` was
used.
* Changelog: fix description of lua filters in 2.0 release
(Albert Krewinkel). Lua filters were initially run *after* conventional
(JSON) filters. However, this was changed later to make it easier to deal
with files in the mediabag. The changelog is updated to describe that
feature of the 2.0 release correctly.
* Change Generic JSON instances to TemplateHaskell (Jasper Van der Jeugt,
#4085). This reduces compile time and memory usage significantly.
* `lua-filters.md`: Added tikz filter example.
* Create alternative zip file for macOS binaries.
* Create alternative zip file for Windows binaries.
* Update INSTALL.md since we now provide zips for binaries.
* Relax `http-types` dependency (Justus Sagemüller, #4084).
* Add `epub.md`, `getting-started.md` to docs. These used to live in
the website repo.
* Add `packages` target to Makefile.
* Bump bounds for binary, http-types, tasty-hunit
## pandoc 2.0.3 (2017-11-20)
* Lua filters: preload text module (Albert Krewinkel, #4077).
The `text` module is preloaded in lua. The module contains some UTF-8
aware string functions, implemented in Haskell. The module is loaded on
request only, e.g.:
text = require 'text'
function Str (s)
s.text = text.upper(s.text)
return s
end
* Allow table-like access to attributes in lua filters (Albert Krewinkel,
#4071). Attribute lists are represented as associative lists in Lua. Pure
associative lists are awkward to work with. A metatable is attached to
attribute lists, allowing to access and use the associative list as if
the attributes were stored in as normal key-value pair in table.
Note that this changes the way `pairs` works on attribute lists. Instead
of producing integer keys and two-element tables, the resulting iterator
function now returns the key and value of those pairs. Use `ipairs` to
get the old behavior. Warning: the new iteration mechanism only works if
pandoc has been compiled with Lua 5.2 or later (current default: 5.3).
* Text.Pandoc.Parsing.uri: allow `&` and `=` as word characters (#4068).
This fixes a bug where pandoc would stop parsing a URI with an
empty attribute: for example, `&a=&b=` wolud stop at `a`.
(The uri parser tries to guess which punctuation characters
are part of the URI and which might be punctuation after it.)
* Introduce `HasSyntaxExtensions` typeclass (Alexander Krotov, #4074).
+ Added new `HasSyntaxExtensions` typeclass for `ReaderOptions` and
`WriterOptions`.
+ Reimplemented `isEnabled` function from `Options.hs` to accept both
`ReaderOptions` and `WriterOptions`.
+ Replaced `enabled` from `CommonMark.hs` with new `isEnabled`.
* Add `amuse` extension (Alexander Krotov) to enable Amuse wiki
behavior for `muse`. New `Ext_amuse` constructor for
`Extension`. Note: this is switched on by default; for
Emacs behavior, use `muse-amuse`.
* Muse reader (Alexander Krotov):
+ Count only one space as part of list item marker.
+ Produce SoftBreaks on newlines. Now wrapping can be preserved
with `--wrap=preserve`.
+ Add Text::Amuse footnote extensions. Footnote end is indicated by
indentation, so footnotes can be placed anywhere in the text,
not just at the end of it.
+ Accept Emacs Muse definition lists when `-amuse`.
Emacs Muse does not require indentation.
* HTML reader:
+ Ensure we don't produce level 0 headers (#4076), even for chapter
sections in epubs. This causes problems because writers aren't set
up to expect these.
+ Allow spaces after `\(` and before `\)` with `tex_math_single_backslash`.
Previously `\( \frac{1}{a} < \frac{1}{b} \)` was not parsed as math in
`markdown` or `html` `+tex_math_single_backslash`.
* MANUAL: clarify that math extensions work with HTML.
Clarify that `tex_math_dollars` and `tex_math_single_backslash`
will work with HTML as well as Markdown.
* Creole reader: Fix performance issue for longer lists (Sascha Wilde,
#4067).
* RST reader: better support for 'container' directive (#4066).
Create a div, incorporate name attribute and classes.
* LaTeX reader:
+ Support column specs like `*{2}{r}` (#4056). This is equivalent to
`rr`. We now expand it like a macro.
+ Allow optional args for parbox (#4056).
+ Allow optional arguments on `\footnote` (#4062).
* EPUB writer: Fixed path for cover image (#4069). It was previously
`media/media/imagename`, and should have been `media/imagename`.
* Markdown writer: fix bug with doubled footnotes in grid tables
(#4061).
* LaTeX template: include natbib/biblatex after polyglossia (#4073).
Otherwise we seem to get an error; biblatex wants polyglossia
language to be defined.
* Added examples to lua filters documentation.
## pandoc 2.0.2 (2017-11-12)
* Deprecated ancient HTML math methods: `--latexmathml`, `--gladtex`,
`--mimetex`, `--jsmath`.
* Fixed URIs in `data/jats.csl`. They were being rendered twice,
leading to invalid XML in default JATS output with pandoc-citeproc.
* `lua-filters.md`: use real-world man page filter as example.
* Add lua filter functions `walk_inline` and `walk_block`
in the pandoc module, to apply filters inside particular
inline and block elements.
* Refactored some code from `Text.Pandoc.Lua.PandocModule`
into new internal module `Text.Pandoc.Lua.Filter`.
* Markdown reader:
+ Allow fenced code blocks to be indented 1-3 spaces (#4011).
This brings our handling of them into alignment with CommonMark's.
+ Fix YAML metadata with "chomp" (`|-`). Previously if a
YAML block under `|-` contained a blank line, pandoc would
not parse it as metadata.
* Removed `etc.` from abbreviations file. Often `etc.` ends a
sentence, and we want the period to be treated as a
sentence-ending period.
* Fix regression with `--metadata` (#4054). Values specified with
`--metadata` should replace a metadata value set in the document
itself, rather than creating a list including a new value.
* EPUB writer:
+ Fix EPUB OCF structure. #3720 had been improperly implemented.
+ Fix modified paths for raw HTML tags (src, poster, etc.)
(#4050, #4055). This had not been updated for the new EPUB
container layout, with a separate text/ subdirectory.
+ Fix image paths with empty `--epub-subdirectory`.
* Miscellaneous code cleanup (Alexander Krotov).
* Use pandoc-types 1.17.3, which adds `Walkable` instances
for `[Block] Block` and `[Inline] Inline`.
* Remove obsolete `stack.full.yaml` (#4052).
* Change to using pandoc-citeproc 0.12.1 in binary packages.
* Consolidate math output method documentation (#4049, Mauro Bieg).
* `MANUAL.txt`: fix header level of "Extension: emoji" (Albert Krewinkel).
* Use lua filter to generate man page from `MANUAL.txt`, replacing old
Haskell filters. This is easier and faster.
* Improved `INSTALL.md`.
* Update commands to extract deb archive on Linux (#4043, Salim B).
## pandoc 2.0.1.1 (2017-11-04)
* Improved fix to #3989 (parsing of HTML tags containing
`>` in an attribute or comment). The previous fix (in 2.0.1) only
worked in certain cases.
* FB2 writer (Alexander Krotov):
+ Add `unrecognised` genre to `<title-info>`
(Alexander Krotov). XML schema requires at least one genre.
+ Remove `<annotation>` from `<body>`.
* CommonMark writer: fix strikethrough for `gfm` (#4038).
* Use texmath 0.10, which adds support for a wider range of
symbols and fixes default column alignments in MathML
and OMML.
* Highlighting fixes, using skylighting 0.4.3.2:
+ Fix invalid CSS.
+ Support `lineAnchors` (or `line-anchors`) in HTML code blocks.
+ Ensure that code lines don't get duplicate identifiers (#4031).
The line identifiers are built using the code block's identifier
as a prefix. If the code block has null identifier, we use
`cb1`, `cb2`, etc.
* Added a few abbreviations to `data/abbreviations`,
and sorted the list (#3984, Wandmalfarbe).
* Improved support for columns in HTML writer (#4028).
+ Remove `width` attribute from the `div`.
+ Remove space between `<div class="column">` elements,
since this prevents columns whose widths sum to 100%
(the space takes up space).
+ Move as much as possible of the CSS to the template.
+ Ensure that all the HTML-based templates (including epub)
contain the CSS for columns.
+ Columns default to 50% width unless they are given a width
attribute. So if you want two equal-width columns, you
can use a div with class `column` and no `width` attribute.
* SelfContained: use `base64` for css links with media attribute (#4026).
This fixes `--self-contained` with S5.
* Improve `pandoc-template-mode.el` (Vaclav Haisman).
* INSTALL.md: MacOS instructions needed xar -f (adam234).
* MANUAL.txt:
+ Clarify that --setext-headers doesn't affect gfm output (#4035).
+ Clarify what is needed to open and close a div in `fenced_divs`
(#4039, Tristano Ajmone).
+ Removed reference to `default.beamer` in docs (#4024).
Also added mention of other templates affecting PDF output
with different settings.
## pandoc 2.0.1 (2017-10-31)
* Fixed regression in parsing of HTML comments in markdown and other
non-HTML formats (`Text.Pandoc.Readers.HTML.htmlTag`) (#4019).
The parser stopped at the first `>` character, even if it wasn't
the end of the comment.
* Creole reader (Sascha Wilde):
+ Fix some minor typos and formatting.
+ Add additional test on nowiki-block after para.
+ Fix lists with trailing white space.
* LaTeX reader: handle `%` comment right after command.
For example, `\emph%`.
* Markdown reader: make sure fenced div closers work in lists.
Previously the following failed:
::: {.class}
1. one
2. two
:::
and you needed a blank line before the closing `:::`.
* Make `fenced_divs` affect the Markdown writer. If `fenced_divs` is
enabled, Divs will be rendered as fenced divs.
* LaTeX/Beamer writer: support "blocks" inside columns and other Divs
(#4016).
* HTML Writer: consistently use dashed class-names (Mauro Bieg, #3556).
Note: this change may require some changes in CSS rules.
`footnoteRef` has become `footnote-ref`, `titleslide` has
become `title-slide`, and `footnoteBack` has become `footnote-back`.
* JATS writer: Properly pass through author metadata (#4020).
* FB2 writer (Alexander Krotov):
+ Write blocks outside of `<p>` in definitions.
+ Make bullet lists consistent with ordered lists, repeating
the marker for the outer list rather than indenting sublists,
since indentation does not work in readers.
+ Add new style FB2 tests.
* `Text.Pandoc.ImageSize`: Add `Millimeter` constructor to `Dimension`
(#4012) [API change]. Now sizes given in 'mm' are no longer converted
to 'cm'.
* Revise documentation of small caps syntax (Andrew Dunning, #4013).
* Fix broken reference links in manual (Andrew Dunning, #4014)
* Fixed example of slide columns structure in changelog (#4015).
Also documented this feature in MANUAL.txt.
## pandoc 2.0.0.1 (2017-10-30)
* EPUB writer:
+ Fixed filepaths for nonstandard epub-subdirectory values.
+ Ensure that epub2 is recognized as a non-text format,
so that a template is used.
+ Don't include "prefix" attribute for ibooks for epub2.
It doesn't validate.
+ Fix stylesheet paths; previously we had an incorrect
stylesheet path for the cover page and nav page.
* LaTeX reader:
+ Insert space when needed in macro expansion (#4007).
Sometimes we need to insert a space after a control sequence
to prevent it merging with a following letter.
+ Allow unbraced arguments for macros (#4007).
+ Allow body of macro definition to be unbraced (#4007).
* Linux package build: ensure that pandoc-citeproc is statically linked.
* trypandoc: add native, ms.
## pandoc 2.0 (2017-10-29)
### New features
* New output format `ms` (groff ms). Complete support, including
tables, math, syntax highlighting, and PDF bookmarks. The writer uses
texmath's new eqn writer to convert math to eqn format, so a ms file
produced with this writer should be processed with `groff -ms -e` if
it contains math.
* New output format `jats` (Journal Article Tag Suite). This is an XML
format used in archiving and publishing articles. Note that a
URI-encoded CSL stylesheet (`data/jats.csl`) is added automatically
unless a stylesheet is specified using `--css`.
* New output format `gfm` (GitHub-flavored CommonMark) (#3841).
This uses bindings to GitHub's fork of cmark, so it should parse
gfm exactly as GitHub does (excepting certain postprocessing
steps, involving notifications, emojis, etc.). `markdown_github`
has been deprecated in favor of `gfm`.
* New output format `muse` (Emacs Muse) (Alexander Krotov, #3489).
* New input format `gfm` (GitHub-flavored CommonMark) (#3841).
This uses bindings to GitHub's fork of cmark. `markdown_github`
has been deprecated in favor of `gfm`.
* New input format `muse` (Emacs Muse) reader (Alexander Krotov, #3620).
* New input format `tikiwiki` (TikiWiki markup) (rlpowell, #3800).
* New input format `vimwiki` (Vimwiki markup) (Yuchen Pei, #3705).
Note that there is a new data file, `data/vimwiki.css`, which can
be used to display the HTML produced by this reader and
pandoc's HTML writer in the style of vimwiki's own HTML
export.
* New input format `creole` (Creole 1.0) (#3994, Sascha Wilde).
* New syntax for Divs, with `fenced_divs` extension enabled by
default (#168). This gives an attractive, plain-text way to create
containers for block-level content.
* Added new syntax for including raw content in any output format,
enabled by the `raw_attribute` extension (which is on by default
for `markdown` and `multimarkdown`). The syntax is the same as
for fenced code blocks or code inlines, only with `{=FORMAT}` for
attributes, where `FORMAT` is the name of the output format
(e.g., `ms`, `html`).
* Implement multicolumn support for slide formats (#1710).
The structure expected is:
:::::::::::::: {.columns}
::: {.column width="40%"}
contents...
:::
::: {.column width="60%"}
contents...
:::
::::::::::::::
Support has been added for beamer and all HTML slide formats.
* Allows line comments in templates, beginning with `$--` (#3806).
(Requires doctemplates 0.2.1.)
* Add `--eol=crlf|lf|native` flag and writer option to control line endings
(Stefan Dresselhaus, #3663, #2097).
* Add `--log` option to save log messages in JSON format to a file (#3392).
* Add `--request-header` option, to set request headers when pandoc
makes HTTP requests to fetch external resources. For example:
`--request-header User-Agent:blah`.
* Added lua filters (Albert Krewinkel, #3514). The new `--lua-filter`
option works like `--filter` but takes pathnames of special lua filters
and uses the lua interpreter baked into pandoc, so that no external
interpreter is needed. Note that lua filters are all applied after
regular filters, regardless of their position on the command line.
For documentation of lua filters, see `doc/lua-filters.md`.
* Set `PANDOC_READER_OPTIONS` in environment where filters are run.
This contains a JSON representation of `ReaderOptions`, so filters
can access it.
* Support creation of pdf via groff `ms` and pdfroff.
`pandoc -t ms -o output.pdf input.txt`.
* Support for PDF generation via HTML and `weasyprint` or `prince`
(Mauro Bieg, #3909). `pandoc -t html5 -o output.pdf --pdf-engine=prince`.
* Added `--epub-subdirectory` option (#3720). This specifies the
subdirectory in the OCF container that holds the EPUB specific content.
We now put all EPUB related content in an `EPUB/` subdirectory by default
(later this will be configurable).
```
mimetype
META-INF/
com.apple.ibooks.display-options.xml
container.xml
EPUB/ <<--configurable-->>
fonts/ <<--static-->>
font.otf
media/ <<--static-->>
cover.jpg
fig1.jpg
styles/ <<--static-->>
stylesheet.css
content.opf
toc.ncx
text/ <<--static-->>
ch001.xhtml
```
* Added `--resource-path=SEARCHPATH` command line option (#852).
SEARCHPATH is separated by the usual character, depending on OS
(: on unix, ; on windows). Default resource path is just working
directory. However, the working directory must be explicitly
specified if the `--resource-path` option is used.
* Added --abbreviations=FILE option for custom abbreviations file
(#256). Dfault abbreviations file (`data/abbreviations`) contains
a list of strings that will be recognized by pandoc's
Markdown parser as abbreviations. (A nonbreaking space will
be inserted after the period, preventing a sentence space in
formats like LaTeX.) Users can override the default by putting a file
abbreviations in their user data directory (`~/.pandoc` on *nix).
* Allow a theme file as argument to `--highlight-style`.
Also include a sample, `default.theme`, in `data/`.
* Allow `--syntax-definition` option for dynamic loading of syntax
highlighting definitions (#3334).
* Lists in `markdown` by default now use the CommonMark variable
nesting rules (#3511). The indentation required for a block-level
item to be included in a list item is no longer fixed, but is
determined by the first line of the list item. To be included in
the list item, a block must be indented to the level of the first
non-space content after the list marker. Exception: if are 5 or more
spaces after the list marker, then the content is interpreted as an
indented code block, and continuation paragraphs must be indented
two spaces beyond the end of the list marker. See the CommonMark
spec for more details and examples.
Documents that adhere to the four-space rule should, in most cases,
be parsed the same way by the new rules. Here are some examples
of texts that will be parsed differently:
- a
- b
will be parsed as a list item with a sublist; under the four-space
rule, it would be a list with two items.
- a
code
Here we have an indented code block under the list item, even though it
is only indented six spaces from the margin, because it is four spaces
past the point where a continuation paragraph could begin. With the
four-space rule, this would be a regular paragraph rather than a code
block.
- a
code
Here the code block will start with two spaces, whereas under
the four-space rule, it would start with `code`. With the four-space
rule, indented code under a list item always must be indented eight
spaces from the margin, while the new rules require only that it
be indented four spaces from the beginning of the first non-space
text after the list marker (here, `a`).
This change was motivated by a slew of bug reports from people
who expected lists to work differently (#3125, #2367, #2575, #2210,
#1990, #1137, #744, #172, #137, #128) and by the growing prevalance
of CommonMark (now used by GitHub, for example). Those who
prefer the old behavior can use `-f markdown+four_space_rule`.
* Added `four_space_rule` extension. This triggers the old pandoc
parsing rule for content nested under list items (the "four space
rule").
* Added `spaced_reference_links` extension (#2602). It allows whitespace
between the two parts of a reference link: e.g.
[a] [b]
[b]: url
This was previously enabled by default; now it is forbidden by default.
* Add `space_in_atx_header` extension (#3512). This is enabled by default
in pandoc and GitHub markdown but not the other flavors.
This requirse a space between the opening #'s and the header
text in ATX headers (as CommonMark does but many other implementations
do not). This is desirable to avoid falsely capturing things ilke
#hashtag
or
#5
* Add `sourcefile` and `outputfile` template variables (Roland Hieber,
#3431).
* Allow ibooks-specific metadata in epubs (#2693). You can now have
the following fields in your YAML metadata, and it will be treated
appropriately in the generated EPUB:
```
ibooks:
version: 1.3.4
specified-fonts: false
ipad-orientation-lock: portrait-only
iphone-orientation-lock: landscape-only
binding: true
scroll-axis: vertical
```
### Behavior changes
* Reader functions no longer presuppose that CRs have been
stripped from the input. (They strip CRs themselves, before
parsing, to simplify the parsers.)
* Added support for translations (localization) (#3559).
Currently this only affects the LaTeX reader, for things
like `\figurename`. Translation data files for 46 languages
can be found in `data/translations`.
* Make `--ascii` work with DocBook output too.
* Rename `--latex-engine` to `--pdf-engine`,
and `--latex-engine-opt` to `--pdf-engine-opt`.
* Removed `--parse-raw` and `readerParseRaw`. These were confusing.
Now we rely on the `+raw_tex` or `+raw_html` extension with latex or html
input. Thus, instead of `--parse-raw -f latex` we use `-f latex+raw_tex`,
and instead of `--parse-raw -f html` we use `-f html+raw_html`.
* With `--filter` R filters are now recognized, even if they are
not executable (#3940, #3941, Andrie de Vries).
* Support SVG in PDF output, converting with `rsvg2pdf` (#1793).
* Make epub an alias for epub3, not epub2.
* Removed `--epub-stylesheet`; use `--css` instead (#3472, #847).
Multiple stylesheets may be used. Stylesheets will be taken both from
`--css` and from the `stylesheet` metadata field (which can contain
either a file path or a list of them).
* `--mathml` and MathML in HTMLMathMethod no longer take an argument.
The argument was for a bridge JavaScript that used to be necessary
in 2004. We have removed the script already.
* `--katex` improvements. The latest version is used, and the
autoload script is loaded by default.
* Change MathJax CDN default since old one is shutting down (#3544).
Note: The new URL requires a version number, which we'll have
to update manually in subsequent pandoc releases in order to
take advantage of mathjax improvements.
* `--self-contained`: don't incorporate elements with `data-external="1"`
(#2656). You can leave an external link as it is by adding the attribute
data-external="1" to the element. Pandoc will then not try to
incorporate its content when `--self-contained` is used. This is
similar to a feature already supported by the EPUB writer.
* Allow `--extract-media` to work with non-binary input formats
(#1583, #2289). If `--extract-media` is supplied with a non-binary
input format, pandoc will attempt to extract the contents of all
linked images, whether in local files, data: uris, or external uris.
They will be named based on the sha1 hash of the contents.
* Make `papersize: a4` work regardless of the case of `a4`.
It is converted to `a4` in LaTeX and `A4` in ConTeXt.
* Make `east_asian_line_breaks` affect all readers/writers (#3703).
* Underlined elements are now treated consistently by readers
(#2270, hftf); they are always put in a Span with class `underline`.
This allows the user to treat them differently from other emphasis,
using a filter. Docx, Org, Textile, Txt2Tags, and HTML readers
have been changed.
* Improved behavior of `auto_identifiers` when there are explicit ids
(#1745). Previously only autogenerated ids were added to the list
of header identifiers in state, so explicit ids weren't taken
into account when generating unique identifiers. Duplicated
identifiers could result. This simple fix ensures that explicitly given
identifiers are also taken into account.
* Use `table-of-contents` for contents of toc, make `toc` a boolean
(#2872). Changed markdown, rtf, and HTML-based templates accordingly.
This allows you to set `toc: true` in the metadata; this
previously produced strange results in some output formats.
For backwards compatibility, `toc` is still set to the
toc contents. But it is recommended that you update templates
to use `table-of-contents` for the toc contents and `toc`
for a boolean flag.
* Change behavior with binary format output to stdout.
Previously, for binary formats, output to stdout was disabled
unless we could detect that the output was being piped (and not
sent to the terminal). Unfortunately, such detection is not
possible on Windows, leaving windows users no way to pipe binary
output. So we have changed the behavior in the following way:
+ Output to stdout is allowed when it can be determined that
the output is being piped (on non-Windows platforms).
+ If the `-o` option is not used, binary output is never sent
to stdout by default; instead, an error is raised.
+ If `-o -` is used, binary output is sent to stdout, regardless
of whether it is being piped. This works on Windows too.
* Better error behavior: uses of `error` have been replaced by
raising of `PandocError`, which can be trapped and handled by the
calling program.
* Removed `hard_line_breaks` extension from `markdown_github` (#3594).
GitHub has two Markdown modes, one for long-form documents like READMEs
and one for short things like issue comments. In issue comments, a line
break is treated as a hard line break. In README, wikis, etc., it is
treated as a space as in regular Markdown. Since pandoc is more likely to
be used to convert long-form documents from GitHub Markdown,
`-hard_line_breaks` is a better default.
* Include `backtick_code_blocks` extension in `mardkown_mmd` (#3637).
* Escape `MetaString` values (as added with `-M/--metadata` flag) (#3792).
Previously they would be transmitted to the template without any
escaping. Note that `--M title='*foo*'` yields a different result from
---
title: *foo*
---
In the latter case, we have emphasis; in the former case, just
a string with literal asterisks (which will be escaped
in formats, like Markdown, that require it).
* Allow `em`, `cm`, `in` for image height/width in HTML, LaTeX (#3450).
* HTML writer: Insert `data-` in front of unsupported attributes. Thus,
a span with attribute `foo` gets written to HTML5 with `data-foo`, so
it is valid HTML5. HTML4 is not affected. This will allow us to use
custom attributes in pandoc without producing invalid HTML. (With help
from Wandmalfarbe, #3817.)
* Plain writer: improved super/subscript rendering. We now
handle more non-digit characters for which there are
sub/superscripted unicode characters. When unicode
sub/superscripted characters are not available, we use
`_(..)` or `^(..)` (#3518).
* Docbook, JATS, TEI writers: print INFO message when omitting interior
header (#3750). This only applies to section headers inside list items,
e.g., which were otherwise silently omitted.
* Change to `--reference-links` in Markdown writer (#3701). With
`--reference-location` of `section` or `block`, pandoc will now repeat
references that have been used in earlier sections. The Markdown
reader has also been modified, so that *exactly* repeated references
do not generate a warning, only references with the same label but
different targets. The idea is that, with references after every block,
one might want to repeat references sometimes.
* ODT/OpenDocument writer:
+ Support `lang` attribute (#1667).
+ Added support for `--toc` (#2836). Thanks to @anayrat.
* Docx writer:
+ `lang` meta, see #1667 (Mauro Bieg, #3515).
+ Change `FigureWithCaption` to `CaptionedFigure` (iandol, #3658).
+ Use `Table` rather than `Table Normal` for table style (#3275).
`Table Normal` is the default table style and can't be modified.
+ Pass through comments (#2994). We assume that comments are defined as
parsed by the docx reader:
I want <span class="comment-start" id="0" author="Jesse Rosenthal"
date="2016-05-09T16:13:00Z">I left a comment.</span>some text to
have a comment <span class="comment-end" id="0"></span>on it.
We assume also that the id attributes are unique and properly
matched between comment-start and comment-end.
+ Bookmark improvements. Bookmark start/end now surrounds content rather
than preceding it. Bookmarks generated for Div with id
(jgm/pandoc-citeproc#205).
+ Add `keywords` metadata to docx document properties (Ian).
* RST writer: support unknown interpreted text roles by
parsing them as `Span` with `role` attributes (#3407). This
way they can be manipulated in the AST.
* HTML writer:
+ Line block: Use class instead of style attribute (#1623). We now
issue `<div class="line-block">` and include a default definition
for `line-block` in the default templates, instead of hard-coding a
`style` on the div.
+ Add class `footnoteBack` to footnote back references (Timm Albers).
This allows for easier CSS styling.
+ Render SmallCaps as span with smallcaps class (#1592), rather than
using a style attribute directly. This gives the user more flexibility
in styling small caps in CSS.
+ With reveal.js we use `data-src` instead of `src` for images for
lazy loading.
+ Special-case `.stretch` class for images in reveal.js (#1291).
Now in reveal.js, an image with class `stretch` in a paragraph
by itself will stretch to fill the whole screen, with no
caption or figure environment.
* Added warnings for non-rendered blocks to writers.
* Writers now raise an error on template failure.
* When creating a PDF via LaTeX, warn if the font is missing some
characters (#3742).
* Remove initial check for PDF-creating program (#3819).
Instead, just try running it and raise the exception if it
isn't found at that point. This improves things for users of Cygwin
on Windows, where the executable won't be found by `findExecutable`
unless `.exe` is added. The same exception is raised as before, but
at a later point.
* Readers issue warning for duplicate header identifiers (#1745).
Autogenerated header identifiers are given suffixes so as not to clash
with previously used header identifiers. But they may still coincide with
an explicit identifier that is given for a header later in the document,
or with an identifier on a div, span, link, or image. We now issue
a warning in this case, so users can supply an explicit identifier.
* CommonMark reader now supports `emoji`, `hard_line_breaks`, `smart`,
and `raw_html` extensions.
* Markdown reader:
+ Don't allow backslash + newline to affect block structure (#3730).
Note that as a result of this change, the following, which formerly
produced a header with two lines separated by a line break, will
now produce a header followed by a paragraph:
# Hi\
there
This may affect some existing documents that relied on
this undocumented and unintended behavior. This change makes pandoc
more consistent with other Markdown implementations, and with itself
(since the two-space version of a line break doesn't work inside ATX
headers, and neither version works inside Setext headers).
* Org reader (Albert Krewinkel, unless noted):
+ Support `table.el` tables (#3314).
+ Support macros (#3401).
+ Support the `#+INCLUDE:` file inclusion mechanism (#3510).
Recognized include types are `example`, `export`, `src`, and
normal org file inclusion. Advanced features like line numbers
and level selection are not implemented yet.
+ Interpret more meta value as inlines. The values of the following
meta variables are now interpreted using org-markup instead of
treating them as pure strings: `keywords` (comma-separated list of
inlines), `subtitle` (inline values), `nocite` (inline values, can
be repeated).
+ Support `\n` export option (#3940). This turns all newlines in the
text into hard linebreaks.
* RST reader:
+ Improved admonition support (#223). We no longer add an
`admonition` class, we just use the class for the type of admonition,
`note` for example. We put the word corresponding to the label in
a paragraph inside a `Div` at the beginning of the admonition with
class `admonition-title`. This is about as close as we can get to
RST's own output.
+ Initial support of `.. table` directive. This allows adding captions
to tables.
+ Support `.. line-block` directive. This is deprecated but may still
be in older documents.
+ Support scale and align attributes of images (#2662).
+ Implemented implicit internal header links (#3475).
+ Support RST-style citations (#853). The citations appear at the end
of the document as a definition list in a special div with id
`citations`. Citations link to the definitions.
+ Recurse into bodies of unknown directives (#3432).
In most cases it's better to preserve the content than
to emit it. This isn't guaranteed to have good results;
it will fail spectacularly for unknown raw or verbatim directives.
+ Handle chained link definitions (#262). For example,
.. _hello:
.. _goodbye: example.com
Here both `hello` and `goodbye` should link to `example.com`.
+ Support anchors (#262). E.g.
`hello`
.. _hello:
paragraph
This is supported by putting "paragraph" in a `Div` with id `hello`.
+ Support `:widths:` attribute for table directive.
+ Implement csv-table directive (#3533). Most attributes are supported,
including `:file:` and `:url:`.
+ Support unknown interpreted text roles by parsing them as Span
with "role" attributes (#3407). This way they can be manipulated in
the AST.
* HTML reader: parse a span with class `smallcaps` as `SmallCaps`.
* LaTeX reader:
+ Implemented `\graphicspath` (#736).
+ Properly handle column prefixes/suffixes. For example, in
`\begin{tabular}{>{$}l<{$}>{$}l<{$} >{$}l<{$}}`
each cell will be interpreted as if it has a `$`
before its content and a `$` after (math mode).
+ Handle komascript `\dedication` (#1845). It now adds a
`dedication` field to metadata. It is up to the user to supply
a template that uses this variable.
+ Support all `\textXX` commands, where XX = `rm`, `tt`, `up`, `md`,
`sf`, `bf` (#3488). Spans with a class are used when there is
nothing better.
+ Expand `\newenvironment` macros (#987).
+ Add support for LaTeX subfiles package (Marc Schreiber, #3530).
+ Better support for subfigure package (#3577).
A figure with two subfigures turns into two pandoc
figures; the subcaptions are used and the main caption
ignored, unless there are no subcaptions.
+ Add support for `\vdots` (Marc Schreiber, #3607).
+ Add basic support for hyphenat package (Marc Schreiber, #3603).
+ Add basic `\textcolor` support (Marc Schreiber).
+ Add support for `tabularx` environment (Marc Schreiber, #3632).
+ Better handling of comments inside math environments (#3113).
This solves a problem with commented out `\end{eqnarray}` inside
an eqnarray (among other things).
+ Parse tikzpicture as raw verbatim environment if `raw_tex` extension
is selected (#3692). Otherwise skip with a warning. This is better
than trying to parse it as text!
+ Add `\colorbox` support (Marc Schreiber).
+ Set identifiers on Spans used for `\label`.
+ Have `\setmainlanguage` set `lang` in metadata.
+ Support etoolbox's `\ifstrequal`.
+ Support `plainbreak`, `fancybreak` et al from the memoir class
(bucklereed, #3833).
+ Support `\let`. Also, fix regular macros so they're expanded at the
point of use, and NOT also the point of definition. `\let` macros,
by contrast, are expanded at the point of definition. Added an
`ExpansionPoint` field to `Macro` to track this difference.
+ Support simple `\def` macros. Note that we still don't support
macros with fancy parameter delimiters, like `\def\foo#1..#2{...}`.
+ Support `\chaptername`, `\partname`, `\abstractname`, etc. (#3559,
obsoletes #3560).
+ Put content of `\ref`, `\label`, `\eqref` commands into `Span` with
attributes, so they can be handled in filters (Marc Schreiber, #3639)
+ Add Support for `glossaries` and `acronym` package (Marc Schreiber,
#3589). Acronyms are not resolved by the reader, but acronym and
glossary information is put into attributes on Spans so that they
can be processed in filters.
+ Use `Link` instead of `Span` for `\ref`. This makes more sense
semantically and avoids unnecessary `Span [Link]` nestings when
references are resolved.
+ Rudimentary support for `\hyperlink`.
+ Support `\textquoteleft|right`, `\textquotedblleft|right` (#3849).
+ Support `\lq`, `\rq`.
+ Implement `\newtoggle`, `\iftoggle`, `\toggletrue|false` from etoolbox
(#3853).
+ Support `\RN` and `\Rn`, from biblatex (bucklereed, #3854).
+ Improved support for `\hyperlink`, `\hypertarget` (#2549).
+ Support `\k` ogonek accent.
+ Improve handling of accents. Handle ogonek, and fall back correctly
with forms like `\"{}`.
+ Better support for ogonek accents.
+ Support for `\faCheck` and `\faClose` (Marc Schreiber, #3727).
+ Support for `xspace` (Marc Schreiber, #3797).
+ Support `\setmainlanguage` or `\setdefaultlanguage` (polyglossia)
and `\figurename`.
+ Better handling of `\part` in LaTeX (#1905). Now we parse chapters as
level 0 headers, and parts as level -1 headers. After parsing, we
check for the lowest header level, and if it's less than 1 we bump
everything up so that 1 is the lowest header level. So `\part` will
always produce a header; no command-line options are needed.
+ Add block version of `\textcolor` (Marc Schreiber).
+ `\textcolor` works as inline and block command (Marc Schreiber).
+ `\textcolor` will be parse as span at the beginning of a paragraph
(Marc Schreiber).
+ Read polyglossia/babel `\text(LANG){...}` (bucklereed)
+ Improved handling of include files in LaTeX reader (#3971).
Previously `\include` wouldn't work if the included file
contained, e.g., a begin without a matching end.
+ Support `\expandafter` (#3983).
+ Handle `\DeclareRobustCommand` (#3983). Currently it's just treated
as a synonym for `\newcommand`.
+ Handle `\lettrine` (Mauro Bieg).
* Math improvements due to updates in texmath:
+ Improved handling of accents and upper/lower delimiters.
+ Support for output in GNU eqn format (used with *roff).
+ Allow `\boldsymbol` + a token without braces, and similarly
with other styling commands.
+ Improve parsing of `\mathop` to allow multi-character operator names.
+ Add thin space after math operators when "faking it with
unicode."
* `walk` is now used instead of `bottomUp` in the `ToJSONFilter`
instance for `a -> [a]` (pandoc-types). Note that behavior
will be slightly different, since `bottomUp`'s treatment of
a function `[a] -> [a]` is to apply it to each sublist of a
list, while walk applies it only to maximal sublists.
Usually the latter behavior is what is wanted, and the
former can be simulated when needed. But there may be
existing filters that need to be rewritten in light of the
new behavior. Performance should be improved.
* There are some changes to syntax highlighting due to revisions
in the `skylighting` library:
+ Support for `powershell` has been added, and many syntax
definitions have been updated.
+ Background colors have been added to the `kate` style.
+ The way highlighted code blocks are formatted in HTML has
been changed (David Baynard), in ways that may require
changes in hard-coded CSS affecting highlighting.
(If you haven't included hard-coded highlighting CSS in
your template, you needn't change anything.)
### API changes
* New module `Text.Pandoc.Class` (Jesse Rosenthal, John MacFarlane).
This contains definitions of the `PandocMonad` typeclass, the
`PandocIO` and `PandocPure` monads, and associated functions.
* Changed types of all writers and readers.
+ We now use `Text` instead of `String` in the interface (#3731).
(We have not yet changed the internals of most readers to work
with `Text`, but making this change in the API now opens up a
path to doing that.)
+ The result is now of form `m a` with constraint `PandocMonad m`.
Readers and writers can be combined to form monadic values which
can be run using either `runIO` or `runPure`. If `runIO` is used,
then both readers and writers will be able to do IO when needed
(for include files, for example); if `runPure` is used,
then the functions are pure and will not touch IO.
+ Where previously you used
`writeRST def (readMarkdown def "[foo](url)")`, now you
would use
`runPure $ readMarkdown def (pack "[foo](url)") >>= writeRST def`.
* New module `Text.Pandoc.Readers` (Albert Krewinkel). This
contains reader helper functions formerly defined in the
top-level `Text.Pandoc` module.
+ Changed `StringReader` -> `TextReader`.
+ `getReader` now returns a pair of a reader and
`Extensions`, instead of building the extensions into the
reader (#3659). The calling code must explicitly set
`readerExtensions` using the `Extensions` returned. The
point of the change is to make it possible for the calling
code to determine what extensions are being used.
* New module `Text.Pandoc.Writers` (Albert Krewinkel).
This contains writer helper functions formerly defined in the
top-level `Text.Pandoc` module.
+ Changed `StringWriter` -> `TextWriter`.
+ `getWriter` now returns a pair of a reader and
`Extensions`, instead of building the extensions into the
reader (#3659). The calling code must explicitly set
`readerExtensions` using the `Extensions` returned. The
point of the change is to make it possible for the calling
code to determine what extensions are being used.
* New module `Text.Pandoc.Lua`, exporting `runLuaFilter` (Albert Krewinkel,
#3514).
* New module `Text.Pandoc.App`. This abstracts out the functionality
of the command line program (`convertWithOpts`), so it can be reproduced
e.g. in a desktop or web application. Instead of exiting, we throw errors
(#3548), which are caught (leading to exit) in pandoc.hs, but allow other
users of `Text.Pandoc.App` to recover. `pandoc.hs` is now a 2-liner.
The module also exports some utility functions for parsing options
and running filters.
* New module `Text.Pandoc.Logging` (exported module) (#3392).
This now contains the `Verbosity` definition previously in
`Text.Pandoc.Options`, as well as a new `LogMessage` datatype that will
eventually be used instead of raw strings for warnings. This will enable
us, among other things, to provide machine-readable warnings if desired.
Include ToJSON instance and showLogMessage. This gives us the possibility
of both machine-readable and human-readable output for log messages.
* New module `Text.Pandoc.BCP47`, with `getLang`, `Lang(..)`, `parseBCP47`.
* New module `Text.Pandoc.Translations`, exporting `Term`,
`Translations`, `readTranslations`.
* New module `Text.Pandoc.Readers.LaTeX.Types', exporting `Macro`, `Tok`,
`TokType`, `Line`, `Column`.
* `Text.Pandoc.Error`: added many new constructors for `PandocError`.
* Expose some previously private modules (#3260). These are often
helpful to people writing their own reader or writer modules:
+ `Text.Pandoc.Writers.Shared`
+ `Text.Pandoc.Parsing`
+ `Text.Pandoc.Asciify`
+ `Text.Pandoc.Emoji`
+ `Text.Pandoc.ImageSize`
+ `Text.Pandoc.Highlighting`
`
* New module `Text.Pandoc.Extensions` (Albert Krewinkel):
Extension parsing and processing functions were defined in the top-level
`Text.Pandoc` module. These functions are moved to the Extensions
submodule as to enable reuse in other submodules.
* Add `Ext_raw_attribute` constructor for `Extension`.
* Add `Ext_fenced_divs` constructor for `Extension'.
* Add `Ext_four_space_rule` constructor in `Extension`.
* Add `Ext_gfm_auto_identifiers` constructor for `Extension`.
* Add `Monoid` instance for `Extensions`.
* Add `Text.Pandoc.Writers.Ms`, exporting `writeMs`.
* Add `Text.Pandoc.Writers.JATS`, exporting `writeJATS`.
* Add `Text.Pandoc.Writers.Muse`, exporting `writeMuse`.
* Add `Text.Pandoc.Readers.Muse`, exporting `readMuse`.
* Add `Text.Pandoc.Readers.TikiWiki`, exporting `readTikiWiki`.
* Add `Text.Pandoc.Readers.Vimwiki`, exporting `readVimwiki`.
* Add `Text.Pandoc.Readers.Creole`, exporting `readCreole`.
* Export `setVerbosity` from `Text.Pandoc`.
* `Text.Pandoc.Pretty`: Add `Eq` instance for `Doc`.
* `Text.Pandoc.XML`: `toEntities`: changed type to `Text -> Text`.
* `Text.Pandoc.UTF8`:
+ Export `fromText`, `fromTextLazy`, `toText`, `toTextLazy`.
Define `toString`, `toStringLazy` in terms of them.
+ Add new functions parameterized on `Newline`: `writeFileWith`,
`putStrWith`, `putStrLnWith`, `hPutStrWith`, `hPutStrLnWith`.
* `Text.Pandoc.MediaBag`: removed `extractMediaBag`.
* `Text.Pandoc.Highlighting`:
+ `highlighting` now returns an Either rather than Maybe.
This allows us to display error information returned by the skylighting
library. Display a warning if the highlighting library throws an error.
+ Add parameter for `SyntaxMap` to `highlight`.
* `Text.Pandoc.Writers.Math`:
+ Export `defaultMathJaxURL`, `defaultKaTeXURL`. This will ensure that
we only need to update these in one place.
* `Text.Pandoc.SelfContained`:
+ Removed `WriterOptions` parameter from `makeSelfContained`.
+ Put `makeSelfContained` in PandocMonad instead of IO. This removes
the need to pass MediaBag around and improves exceptions. It also
opens up the possibility of using makeSelfContained purely.
+ Export `makeDataURI`.
* `Text.Pandoc.ImageSize`:
+ Export `lengthToDim`, new function `scaleDimension`.
+ Export `inEm` from ImageSize (#3450).
+ Change `showFl` and `show` instance for `Dimension` so
extra decimal places are omitted.
+ Added `Em` as a constructor of `Dimension`.
+ Add `WriterOptions` parameter to `imageSize` signature (Mauro Bieg).
* `Text.Pandoc.Templates`:
+ Change type of `renderTemplate'`. Now it runs in `PandocMonad`
and raises a proper `PandocTemplateError` if there are problems, rather
than failing with uncatchable `error`.
+ Change signature of `getDefaultTemplate`. Now it runs in any instance
of `PandocMonad`, and returns a `String` rather than an `Either` value.
And it no longer takes a `datadir` parameter, since this can be
retrieved from `CommonState`.
* `Text.Pandoc.Options`:
+ Added `writerEpubSubdirectory` to `WriterOptions` (#3720).
The EPUB writer now takes its EPUB subdirectory from this option.
+ In `WriterOptions`, rename `writerLaTeXEngine` to `writerPdfEngine`
and `writerLaTeXArgs` to `writerPdfArgs` (Mauro Bieg, #3909).
+ Add `writerSyntaxMap` to `WriterOptions`.
+ Removed `writerEpubStylesheet` from `WriterOptions`.
+ Remove `writerUserDataDir` from `WriterOptions`. It is now carried
in `CommonState` in `PandocMonad` instances. (And thus it can be used
by readers too.)
+ Changed `writerEpubMetadata` to a `Maybe String`.
+ Removed `readerApplyMacros` from `ReaderOptions`. Now we just check
the `latex_macros` reader extension.
+ FromJSON/ToJSON instances for `ReaderOptions`.
+ In `HTMLMathMethod`, the `KaTeX` contsructor now takes only
one string (for the KaTeX base URL), rather than two.
+ Removed `writerSourceURL` from `WriterOptions`. We now use
`stSourceURL` in `CommonState`, which is set by `setInputFiles`.
* `Text.Pandoc.Shared`:
+ `tabFilter` now takes a `Text`, not `String`.
+ `openURL`: Changed type from an Either. Now it will just raise
an exception to be trapped later.
+ Remove `normalizeSpaces` (#1530).
+ Remove `warn`. (Use `report` from `Text.Pandoc.Class` instead.)
+ Export a new function `crFilter`.
+ Add `eastAsianLineBreakFilter` (previously in Markdown reader).
+ Provide custom `isURI` that rejects unknown schemes.
(Albert Krewinkel, #2713). We also export the set of known
`schemes`. The new function replaces the function of the same name
from `Network.URI`, as the latter did not check whether a scheme is
well-known. All official IANA schemes (as of 2017-05-22) are
included in the set of known schemes. The four non-official schemes
`doi`, `isbn`, `javascript`, and `pmid` are kept.
+ Remove `err`.
+ Remove `readDataFile`, `readDefaultDataFile`, `getReferenceDocx`,
`getReferenceODT`. These now live in `Text.Pandoc.Class`,
where they are defined in terms of `PandocMonad`
primitives and have different signatures.
+ Remove `openURL`. Use `openURL` from `Text.Pandoc.Class` instead.
+ Add `underlineSpan`.
* `Text.Pandoc.Readers.HTML`: export new `NamedTag` class.
* `Text.Pandoc.Readers.Markdown`: remove `readDocxWithWarnings`.
With the new API one can simply use `getLog` after running
the reader.
* `Text.Pandoc.Readers.LaTeX`: Changed types for `rawLaTeXInline`
and `rawLaTeXBlock`. (Both now return a `String`, and they are
polymorphic in state.)
### Bug fixes and under-the-hood improvements
* TEI writer: Added identifiers on `<div>` elements.
* DokuWiki reader: Better handling for code block in list item (#3824).
* Custom writer: Remove old preprocesesor conditionals (Albert Krewinkel).
* ZimWiki writer: Removed internal formatting from note and table cells,
because ZimWiki does not support it (Alex Ivkin, #3446).
* MediaWiki writer:
+ Updated list of syntax highlighting languages (#3461).
Now `r` gets you `<source>` rather than `<code>` (among others).
+ Add display attribute on `<math>` tags (#3452). This allows display
math to be rendered properly.
+ Remove newline before `</ref>` (#2652).
+ Don't softbreak lines inside list items (#3531).
* Org writer:
+ Reduce to two spaces after bullets (#3417, Albert Krewinkel).
+ Add unit tests (Alexander Krotov).
+ Stop using raw HTML to wrap divs (Albert Krewinkel, #3771).
+ Do not strip `#` from Org anchor links (Alexander Krotov).
* CommonMark writer:
+ Avoid excess blank lines at end of output.
+ Prefer pipe tables to HTML tables even if it means losing relative
column width information (#3734).
+ Support table, strikethrough extensions, when enabled (as with gfm).
Note that we bypass the commonmark writer from cmark and construct our
own pipe tables, with better results.
+ Properly support `--wrap=none`.
+ Use smallcaps class for `SmallCaps` (#1592).
+ Omit "fig:" prefix in image titles. This is used internally to
indicate internal figures.
* RST writer:
+ Properly handle table captions.
+ Don't wrap lines in in definition list terms. Wrapping is not allowed.
+ Implemented `+/-smart` and improved escaping with `+smart`.
+ Add empty comments when needed to avoid including a blockquote
in the indented content of a preceding block (#3675).
+ Improve grid table output, fix bug with empty rows (#3516).
Uses the new `gridTable` in Writers.Shared, which is here
improved to better handle 0-width cells.
+ Remove space at beginning/end of RST code span (#3496). Otherwise
we get invalid RST. There seems to be no way to escape the space.
+ Add header anchors when header has non-standard id (#3937).
+ Correctly handle inline code containing backticks, using a `:literal:`
role (#3974).
+ Don't backslash-escape word-internal punctuation (#3978).
* Markdown writer:
+ Don't include variables in metadata blocks. Previously variables set
on the command line were included in e.g. YAML metadata, contrary to
documentation and intentions.
+ Improved escaping with `+smart`.
+ Fixed grid tables embedded in grid tables (#2834).
+ Use span with class 'smallcaps' for SmallCaps, instead of a style
attribute as before (#1592).
+ Escape initial `%` in a paragraph if the `pandoc_title_blocks`
extension is enabled (#3454). Otherwise in a document starting with
a literal `%` the first line is wrongly interpreted as a title.
+ Fixed false ordered lists in YAML metadata (#3492, #1685). Now we
properly escape things that would otherwise start ordered lists,
such as
---
title: 1. inline
...
+ Better handling of tables with empty columns (#3337). We now
calculate the number of columns based on the longest row (or the
length of aligns or widths).
+ Escape unordered list markers at beginning of paragraph (#3497), to
avoid false interpretation as a list.
+ Escape `|` appropriately.
+ Ensure space before list at top level (#3487).
+ Avoid spurious blanklines at end of document after tables and list,
for example.
+ Fixed bugs in simple/multiline list output (#3384).
Previously we got overlong lists with `--wrap=none`. This is fixed.
Previously a multiline list could become a simple list (and would
always become one with `--wrap=none`).
+ Don't emit a simple table if `simple_tables` disabled (#3529).
+ Case-insensitive reference links (David A Roberts, #3616).
Ensure that we do not generate reference links whose labels differ only
by case. Also allow implicit reference links when the link
text and label are identical up to case.
+ Put space before reference link definitions (Mauro Bieg, #3630).
+ Better escaping for links (David A. Roberts, #3619). Previously the
Markdown writer would sometimes create links where there were none
in the source. This is now avoided by selectively escaping bracket
characters when they occur in a place where a link might be created.
+ Added missing `\n` (David A. Roberts, #3647).
+ Fixed duplicated reference links with `--reference-links`
and `--reference-location=section` (#3674). Also ensure that there
are no empty link references `[]`.
+ Avoid inline surround-marking with empty content (#3715).
E.g. we don't want `<strong></strong>` to become `****`.
Similarly for emphasis, super/subscript, strikeout.
+ Don't allow soft break in header (#3736).
+ Make sure `plain`, `markdown_github`, etc. work for raw.
Previously only `markdown` worked. Note: currently a raw block labeled
`markdown_github` will be printed for any `markdown` format.
+ Ensure that `+` and `-` are escaped properly so they don't cause
spurious lists (#3773). Previously they were only
if succeeded by a space, not if they were at end of line.
+ Use pipe tables if `raw_html` disabled and `pipe_tables` enabled,
even if the table has relative width information (#3734).
+ Markdown writer: don't crash on `Str ""`.
+ Make `Span` with null attribute transparent. That is, we don't use
brackets or `<span>` tags to mark spans when there are no attributes;
we simply output the contents.
+ Escape pipe characters when `pipe_tables` enabled (#3887).
+ Better escaping of `<` and `>`. If `all_symbols_escapable` is set,
we backslash escape these. Otherwise we use entities as before.
+ When writing plain, don't use ` ` to separate list and indented
code. There's no need for it in this context, since this isn't to be
interpreted using Markdown rules.
+ Preserve classes in JS obfuscated links (Timm Albers, #2989).
HTML links containing classes originally now preserve them when using
javascript email obfuscation.
+ Render `SmallCaps` as a native span when `native_spans` are enabled.
+ Always write attributes with `bracketed_spans` (d-dorazio).
* Man writer:
+ Fix handling of nested font commands (#3568). Previously pandoc emitted
incorrect markup for bold + italic, for example, or bold + code.
+ Avoid error for definition lists with no definitions (#3832).
* DocBook writer:
+ Fix internal links with `writerIdentifierPrefix opt`
(#3397, Mauro Bieg).
* Docx writer:
+ Don't include bookmarks on headers unless non-null id (#3476).
+ Support 9 levels of headers (#1642).
+ Allow 9 list levels (#3519).
+ Don't take `distArchive` from datadir (#3322). The docx writer takes
components from the distribution's version of `reference.docx` when it
can't find them in a user's custom `reference.docx`. Previously, we
allowed a `reference.docx` in the data directory (e.g. `~/.pandoc`)
to be used as the distribution's reference.docx. This led to a
bizarre situation where pandoc would produce a good docx using
`--template ~/.pandoc/ref.docx`, but if `ref.docx` were moved to
`~/.pandoc/reference.docx`, it would then produce a corrupted docx.
+ Fixed handling of soft hyphen (0173) (#3691).
+ Better handling of keywords (#3719).
+ Cleaner code for handling dir and style attributes for `Div`.
+ Use `Set` for dynamic styles to avoid duplicates.
+ Removed redundant element from data/docx/word/numbering.xml.
The elements we need are generated when the document is
compiled; this didn't do anything.
+ Activate `evenAndOddHeaders` from reference docx (#3901,
Augustín Martín Barbero).
* ODT/OpenDocument writer:
+ Calculate aspect ratio for percentage-sized images (Mauro Bieg, #3239).
+ Use more widely available bullet characters (#1400). The old
characters weren't available in some font sets. These seem to work
well on Windows and Linux versions of LibreOffice.
+ Wider labels for lists (#2421). This avoids overly narrow labels for
ordered lists with `()` delimiters. However, arguably it creates
overly wide labels for bullets. Also, lists now start flush with
the margin, rather than indented.
+ Fixed dropped elements in some ordered lists (#2434).
* FB2 writer:
+ Don't render `RawBlock` as code.
+ Don't fail with an error on interior headers (e.g. in list) (#3750).
Instead, omit them with an INFO message.
+ Add support for "lang" metadata (Alexander Krotov, #3625).
+ Format `LineBlock` as poem (Alexander Krotov). Previously writer
produced one paragraph with `<empty-line/>` elements, which are not
allowed inside `<p>` according to FB2 schema.
+ Replace `concatMap` with `cMap` (Alexander Krotov).
+ Write FB2 lists without nesting blocks inside `<p>` (Alexander
Krotov, #4004)
* HTML writer:
+ Make sure `html4`, `html5` formats work for raw blocks/inlines.
+ Render raw inline environments when `--mathjax` used (#3816).
We previously did this only with raw blocks, on the assumption
that math environments would always be raw blocks. This has changed
since we now parse them as inline environments.
+ Ensure we don't get two style attributes for width and height.
+ Report when not rendering raw inline/block.
+ Issue warning if no title specified and template used (#3473).
+ Info message if `lang` is unspecified (#3486).
+ Removed unused parameter in `dimensionsToAttributeList`.
+ Avoid two class attributes when adding `uri` class (#3716).
+ Fix internal links with `writerIdentifierPrefix opt` (#3397, Mauro
Bieg).
+ Use revealjs's math plugin for mathjax (#3743). This is a thin
wrapper around mathjax that makes math look better on revealjs.
+ Slidy: use h1 for all slides, even if they were originally
level 2 headers (#3566). Otherwise the built-in table of contents
in Slidy breaks.
* LaTeX writer:
+ Don't render LaTeX images with data: URIs (#3636). Note that
`--extract-media` can be used when the input contains data: URIs.
+ Make highlighted code blocks work in footnotes (Timm Albers).
+ Don't use figure inside table cell (#3836).
+ Use proper code for list enumerators (#3891). This should fix problems
with lists that don't use arabic numerals.
+ Always add hypertarget when there's a non-empty identifier (#2719).
Previously the hypertargets were only added when there was actually
a link to that identifier.
+ Use `%` after hypertarget before code block.
+ Add `\leavevmode` before hypertarget at start of paragraph (#2704,
fixes formatting problems in beamer citations).
+ Don't use `lstinline` in `\item[..]` (#645). If you do, the contents
of item disappear or are misplaced. Use `\texttt` instead.
+ Fix problem with escaping in `lstinline` (#1629). Previously the
LaTeX writer created invalid LaTeX when `--listings` was specified and
a code span occurred inside emphasis or another construction.
+ Fix error with line breaks after empty content (#2874). LaTeX
requires something before a line break, so we insert a `~` if no
printable content has yet been emitted.
+ Use BCP47 parser.
+ Fixed detection of otherlangs (#3770). We weren't recursing into
inline contexts.
+ Handle language in inline code with `--listings` (#3422).
+ Write euro symbol directly in LaTeX (Andrew Dunning, #3801).
The textcomp package allows pdfLaTeX to parse `€` directly, making the
`\euro` command unneeded.
+ Fixed footnotes in table captions (#2378). Note that if the table has
a first page header and a continuation page header, the notes will
appear only on the first occurrence of the header.
+ In `writeBeamer` output, allow hyperlinks to frames (#3220).
Previously you could link to a header above or below slide level but
not *to* slide level. This commit changes that. Hypertargets are
inserted inside frame titles; technically the reference is to just
after the title, but in normal use (where slides are viewed full
screen in a slide show), this does not matter.
+ Remove `\strut` at beginning of table cells (#3436). This fixes a
problem with alignment of lists in table cells. The `\strut` at the
end seems to be enough to avoid the too-close spacing that motivated
addition of the strut in #1573.
+ Add partial siunitx Support (Marc Schreiber, #3588).
* ConTeXt writer:
+ Refactored to use BCP47 module.
+ Remove unnecessary `$` (Alexander Krotov, #3482).
+ Use header identifiers for chapters (#3968).
* EPUB writer:
+ `title_page.xhtml` is now put in `text/`.
+ Don't strip formatting in TOC (#1611).
* Textile reader:
+ Fix bug for certain links in table cells (#3667).
+ Allow 'pre' code in list item (#3916).
* HTML reader:
+ Added warnings for ignored material (#3392).
+ Better sanity checks to avoid parsing unintended things as
raw HTML in the Markdown reader (#3257).
+ Revise treatment of `li` with `id` attribute (#3596). Previously we
always added an empty div before the list item, but this created
problems with spacing in tight lists. Now we do this: If the list
item contents begin with a `Plain` block, we modify the `Plain`
block by adding a `Span` around its contents. Otherwise, we add a
`Div` around the contents of the list item (instead of adding an
empty `Div` to the beginning, as before).
+ Add `details` tag to list of block tags (#3694).
+ Removed `button` from block tag list (#3717). It is already in the
`eitherBlockOrInlineTag` list, and should be both places.
+ Use `Set`s instead of lists for block tag lookup.
+ Rewrote to use `Text` throughout. Effect on memory usage is modest
(< 10%).
+ Use the lang value of `<html>` to set the lang meta value (bucklereed,
#3765).
+ Ensure that paragraphs are closed properly when the parent block
element closes, even without `</p>` (#3794).
+ Parse `<figure>` and `<figcaption>` (Mauro Bieg, #3813).
+ Parse `<main>` like `<div role=main>` (bucklereed, #3791).
`<main>` closes `<p>` and behaves like a block element generally
+ Support column alignments (#1881). These can be set either
with a `width` attribute or with `text-width` in a `style` attribute.
+ Modified state type to be an instance of `HasLogMessages`, so
`registerHeader` can issue warnings.
+ `</td>` or `</th>` should close any open block tag (#3991).
+ `<td>` should close an open `<th>` or `<td>`.
+ `htmlTag` improvements (#3989). We previously failed on cases
where an attribute contained a `>` character. This patch fixes the
bug, which especially affects raw HTML in Markdown.
* Txt2Tags reader:
+ Newline is not indentation (Alexander Krotov).
* MediaWiki reader:
+ Allow extra hyphens after `|-` in tables (#2649).
+ Allow blank line after table start (#2649).
+ Fixed more table issues (#2649).
+ Ensure that list starts begin at left margin (#2606). Including when
they're in tables or other list items.
+ Make smart double quotes depend on `smart` extension (#3585).
+ Don't do curly quotes inside `<tt>` contexts (#3585). Even if `+smart`.
+ Modified state type to be an instance of `HasLogMessages`, so
`registerHeader` can issue warnings.
* TWiki reader (Alexander Krotov):
+ Remove unnecessary `$` (#3597).
+ Simplify `linkText` (#3605).
* EPUB reader:
+ Minor refactoring, avoiding explicit MediaBag handling.
This all works behind the scenes in CommonState plumbing.
* Docx reader:
+ Don't drop smartTag contents (#2242).
+ Handle local namespace declarations (#3365). Previously we didn't
recognize math, for example, when the xmlns declaration occurred on
the element and not the root.
+ More efficient trimSps (#1530). Replacing `trimLineBreaks`. This
does the work of `normalizeSpaces` as well, so we avoid the need for
that function here.
+ Avoid 0-level headers (Jesse Rosenthal, #3830). We used to parse
paragraphs styled with "HeadingN" as "nth-level header." But if a
document has a custom style named "Heading0", this will produce a
0-level header, which shouldn't exist. We only parse this style
if N>0. Otherwise we treat it as a normal style name, and
follow its dependencies, if any.
+ Add tests for avoiding zero-level header (Jesse Rosenthal).
* ODT reader:
+ Replaced `collectRights` with Rights from `Data.Either`.
+ Remove dead code (Albert Krewinkel).
* Org reader (Albert Krewinkel, unless noted).
+ Don't allow tables inside list items (John MacFarlane, #3499).
+ Disallow tables on list marker lines (#3499).
+ Convert markup at beginning of footnotes (John MacFarlane, #3576).
+ Allow emphasized text to be followed by `[` (#3577).
+ Handle line numbering switch for src blocks.
The line-numbering switch that can be given to source blocks (`-n` with
an start number as an optional parameter) is parsed and translated to a
class/key-value combination used by highlighting and other readers and
writers.
+ Stop adding rundoc prefix to src params. Source block parameter names
are no longer prefixed with `rundoc`. This was intended to simplify
working with the rundoc project, a babel runner. However, the rundoc
project is unmaintained, and adding those markers is not the reader's
job anyway. The original language that is specified for a source
element is now retained as the `data-org-language` attribute and only
added if it differs from the translated language.
+ Allow multi-word arguments to src block params (#3477). The reader now
correctly parses src block parameter list even if parameter arguments
contain multiple words.
+ Avoid creating `nullMeta` by applying `setMeta` directly
(Alexander Krotov).
+ Replace `sequence . map` with `mapM`.
+ Fix smart parsing behavior. Parsing of smart quotes and special
characters can either be enabled via the `smart` language extension or
the `'` and `-` export options. Smart parsing is active if either the
extension or export option is enabled. Only smart parsing of special
characters (like ellipses and en and em dashes) is enabled by default,
while smart quotes are disabled. Previously, all smart parsing was
disabled unless the language extension was enabled.
+ Subject full doc tree to headline transformations (Albert Krewinkel,
#3695). Emacs parses org documents into a tree structure, which is
then post-processed during exporting. The reader is changed to do the
same, turning the document into a single tree of headlines starting
at level 0.
+ Fix cite parsing behaviour (Herwig Stuetz). Until now, `org-ref`
cite keys included special characters also at the end. This caused
problems when citations occur right before colons or at the end of
a sentence. With this change, all non alphanumeric characters at
the end of a cite key are ignored. This also adds `,` to the list
of special characters that are legal in cite keys to better mirror
the behaviour of org-export.
+ Fix module names in haddock comments. Copy-pasting had lead to
haddock module descriptions containing the wrong module names.
+ Recognize babel result blocks with attributes (#3706). Babel
result blocks can have block attributes like captions and names.
Result blocks with attributes were not recognized and were parsed
as normal blocks without attributes.
+ Include tags in headlines. The Emacs default is to include tags in the
headline when exporting. Instead of just empty spans, which contain the
tag name as attribute, tags are rendered as small caps and wrapped in
those spans. Non-breaking spaces serve as separators for multiple tags.
+ Respect export option for tags (#3713). Tags are appended to
headlines by default, but will be omitted when the `tags` export option
is set to nil.
+ Use `tag-name` attribute instead of `data-tag-name`.
+ Use `org-language` attribute rather than `data-org-language`.
+ Modified state type to be an instance of `HasLogMessages`, so
`registerHeader` can issue warnings.
+ End footnotes after two blank lines. Footnotes can not only be
terminated by the start of a new footnote or a header, but also by two
consecutive blank lines.
+ Update emphasis border chars (#3933). The org reader was updated to
match current org-mode behavior: the set of characters which are
acceptable to occur as the first or last character in an org emphasis
have been changed and now allows all non-whitespace chars at the
inner border of emphasized text (see `org-emphasis-regexp-components`).
* RST reader:
+ Fixed small bug in list parsing (#3432). Previously the parser didn't
handle properly this case:
* - a
- b
* - c
- d
+ Handle multiline cells in simple tables (#1166).
+ Parse list table directive (Keiichiro Shikano, #3432).
+ Make use of `anyLineNewline` (Alexander Krotov, #3686).
+ Use `anyLineNewline` in `rawListItem` (Alexander Krotov, #3702).
+ Reorganize block parsers for ~20% faster parsing.
+ Fixed `..include::` directive (#3880).
+ Handle blank lines correctly in line blocks (Alexander Krotov, #3881).
Previously pandoc would sometimes combine two line blocks separated
by blanks, and ignore trailing blank lines within the line block.
+ Fix indirect hyperlink targets (#512).
* Markdown reader:
+ Allow attributes in reference links to start on next line (#3674).
+ Parse YAML metadata in a context that sees footnotes defined in
the body of the document (#1279).
+ When splitting pipe table cells, skip tex math (#3481).
You might have a `|` character inside math. (Or for that matter
something that the parser might mistake for raw HTML.)
+ Treat span with class `smallcaps` as SmallCaps.
This allows users to specify small caps in Markdown this way:
`[my text]{.smallcaps}` (#1592).
+ Fixed internal header links (#2397).
This patch also adds `shortcut_reference_links` to the list
of mmd extensions.
+ Treat certain environments as inline
when they occur without space surrounding them (#3309, #2171).
E.g. equation, math. This avoids incorrect vertical space
around equations.
+ Optimized `nonindentSpaces`. Makes the benchmark go from 40 to 36 ms.
+ Allow latex macro definitions indented 1-3 spaces.
Previously they only worked if nonindented.
+ Improved parsing of indented raw HTML blocks (#1841).
Previously we inadvertently interpreted indented HTML as
code blocks. This was a regression. We now seek to determine the
indentation level of the contents of an HTML block, and (optionally)
skip that much indentation. As a side effect, indentation may be
stripped off of raw HTML blocks, if `markdown_in_html_blocks` is
used. This is better than having things interpreted as indented
code blocks.
+ Fixed smart quotes after emphasis (#2228). E.g. in `*foo*'s 'foo'`.
+ Warn for notes defined but not used (#1718).
+ Use `anyLineNewline` (Alexander Krotov).
+ Interpret YAML metadata as Inlines when possible (#3755). If
the metadata field is all on one line, we try to interpret it as
Inlines, and only try parsing as Blocks if that fails. If it
extends over one line (including possibly the `|` or `>` character
signaling an indented block), then we parse as Blocks. This was
motivated by some German users finding that `date: '22. Juin 2017'`
got parsed as an ordered list.
+ Fixed spurious parsing as citation as reference def (#3840).
We now disallow reference keys starting with `@` if the
`citations` extension is enabled.
+ Parse `-@roe` as suppress-author citation (pandoc-citeproc#237).
Previously only `[-@roe]` (with brackets) was recognized as
suppress-author, and `-@roe` was treated the same as `@roe`.
+ Fixed parsing of fenced code after list when there is no intervening
blank line (#3733).
+ Allow raw latex commands starting with `\start` (#3558). Previously
these weren't allowed because they were interpreted as starting
ConTeXt environments, even without a corresponding `\stop`...
+ Added `inlines`, `inlines1`.
+ Require nonempty alt text for `implicit_figures` (#2844).
A figure with an empty caption doesn't make sense.
+ Removed texmath macro material; now all this is handled
in the LaTeX reader functions.
+ Fixed bug with indented code following raw LaTeX (#3947).
* LaTeX reader:
+ Rewrote LaTeX reader with proper tokenization (#1390,
#2118, #3236, #3779, #934, #982). This rewrite is primarily
motivated by the need to get macros working properly. A side benefit
is that the reader is significantly faster. We now tokenize the
input text, then parse the token stream. Macros modify the token
stream, so they should now be effective in any context, including
math. Thus, we no longer need the clunky macro processing
capacities of texmath.
+ Parse `\,` to `\8198` (six-per-em space) (Henri Werth).
+ Allow `\newcommand\foo{blah}` without braces.
+ Support `\lstinputlisting` (#2116).
+ Issue warnings when skipping unknown latex commands (#3392).
+ Include contents of `\parbox`.
+ Allow `\hspace` and `\vspace` to count as raw block or inline.
Previously we would refuse to parse anything as raw inline if
it was in the `blockCommands` list. Now we allow exceptions
if they're listed under ignoreInlines in inlineCommands.
This should make it easier e.g. to include an `\hspace`
between two side-by-side raw LaTeX tables.
+ Don't drop contents of `\hypertarget`.
+ Handle spaces before `\cite` arguments.
+ Allow newpage, clearpage, pagebreak in inline contexts as well as
block contexts (#3494).
+ Treat `{{xxx}}` the same as `{xxx}` (#2115).
+ Use `pMacroDefinition` in macro (for more direct parsing).
Note that this means that `macro` will now parse one
macro at a time, rather than parsing a whole group together.
+ Fixed failures on `\ref{}`, `\label{}` with `+raw_tex`. Now these
commands are parsed as raw if `+raw_tex`; otherwise, their argument
is parsed as a bracketed string.
+ Don't crash on empty `enumerate` environment (#3707).
+ Handle escaped `&` inside table cell (#3708).
+ Handle block structure inside table cells (#3709). `minipage` is no
longer required.
+ Handle some width specifiers on table columns (#3709). Currently
we only handle the form `0.9\linewidth`. Anything else would have
to be converted to a percentage, using some kind arbitrary assumptions
about line widths.
+ Make sure `\write18` is parsed as raw LaTeX. The change is in the
LaTeX reader's treatment of raw commands, but it also affects the
Markdown reader.
+ Fixed regression with starred environment names (#3803).
+ Handle optional args in raw `\titleformat` (#3804).
+ Improved heuristic for raw block/inline. An unknown command at the
beginning of the line that could be either block or inline is
treated as block if we have a sequence of block commands followed by
a newline or a `\startXXX` command (which might start a raw ConTeXt
environment).
+ Don't remove macro definitions from the output, even if
`Ext_latex_macros` is set, so that macros will be applied.
Since they're only applied to math in Markdown, removing the macros
can have bad effects. Even for math macros, keeping them should be
harmless.
+ Removed `macro`. It is no longer necessary, since the
`rawLaTeXBlock` parser will parse macro definitions. This also avoids
the need for a separate `latexMacro` parser in the Markdown reader.
+ Use `label` instead of `data-label` for label in caption (#3639).
+ Fixed space after `\figurename` etc.
+ Resolve references to section numbers.
+ Fix `\let\a=0` case, with single character token.
+ Allow `@` as a letter in control sequences. `@` is commonly used
in macros using `\makeatletter`. Ideally we'd make the tokenizer
sensitive to `\makeatletter` and `\makeatother`, but until then this
seems a good change.
+ Track header numbers and correlate with labels.
+ Allow `]` inside group in option brackets (#3857).
+ lstinline with braces can be used (verb cannot be used with braces)
(Marc Schreiber, #3535).
+ Fix keyval function: pandoc did not parse options in braces correctly
(Marc Schreiber, #3642).
+ When parsing raw LaTeX commands, include trailing space (#1773).
Otherwise things like `\noindent foo` break and turn into
`\noindentfoo`. Affects `-f latex+raw_tex` and `-f markdown` (and other
formats that allow `raw_tex`).
+ Don't treat "..." as Quoted (#3958). This caused quotes to be omitted in
`\texttt` contexts.
+ Add tests for existing `\includegraphics` behaviour (Ben Firshman).
+ Allow space before `=` in bracketd options (Ben Firshman).
+ Be more forgiving in parsing command options. This was needed, for
example, to make some minted options work.
+ Strip off quotes in `\include` filenames.
* Added `Text.Pandoc.CSV`, simple (unexported) CSV parser.
* `Text.Pandoc.PDF`:
+ Got `--resource-path` working with PDF output (#852).
+ Fetch images when generating PDF via context (#3380).
To do this, we create the temp directory as a subdirectory
of the working directory. Since context mk IV by default looks
for images in the parent directory, this works.
+ Use `report` instead of `warn`, make it sensitive to verbosity settings.
+ Use `fillMediaBag` and `extractMedia` to extract media to temp dir.
This reduces code duplication.
+ `html2pdf`: use stdin instead of intermediate HTML file
+ Removed useless `TEXINPUTS` stuff for `context2pdf`. mkiv context
doesn't use `TEXINPUTS`.
* `Text.Pandoc.Pretty`:
+ Simplified definition of `realLength`.
+ Don't error for blocks of size < 1. Instead, resize to 1 (see #1785).
* `Text.Pandoc.MIME`:
+ Use `application/javascript` (not `application/x-javascript`).
+ Added `emf` to mimeTypes with type `application/x-msmetafile` (#1713).
* `Text.Pandoc.ImageSize`:
+ Improve SVG image size code (Marc Schreiber, #3580).
+ Make `imageSize` recognize basic SVG dimensions (Mauro Bieg, #3462).
* Use `Control.Monad.State.Strict` throughout. This gives 20-30% speedup
and reduction of memory usage in most of the writers.
* Use `foldrWithKey` instead of deprecated `foldWithKey`.
* `Text.Pandoc.SelfContained`:
+ Fixed problem with embedded fonts (#3629).
+ Refactored getData from `getDataURI` in `SelfContained`.
+ Don't use data URIs for script or style (#3423). Instead, just use
script or style tags with the content inside. The old method with
data URIs prevents certain optimizations outside pandoc. Exception:
data URIs are still used when a script contains `</script>` or a
style contains `</`.
+ SelfContained: Handle URL inside material retrieved from a URL
(#3629). This can happen e.g. with an @import of a google web font.
(What is imported is some CSS which contains an url reference
to the font itself.) Also, allow unescaped pipe (|) in URL.
+ Load resources from `data-src` (needed for lazy loading in
reveal.js slide shows).
+ Handle `data-background-image` attribute on section (#3979).
* `Text.Pandoc.Parsing`:
+ Added `indentWith` (Alexander Krotov, #3687).
+ Added `stateCitations` to `ParserState`.
+ Removed `stateChapters` from `ParserState`.
+ In `ParserState`, make `stateNotes'` a Map, add `stateNoteRefs`.
+ Added `gobbleSpaces` and `gobbleAtMostSpaces`.
+ Adjusted type of `insertIncludedFile` so it can be used with token
parser.
+ Replace old texmath macro stuff from Parsing. Use Macro from
Text.Pandoc.Readers.LaTeX.Types instead.
+ Export `insertIncludedFile`.
+ Added `HasLogMessages`, `logMessage`, `reportLogMessages` (#3447).
+ Replace partial with total function (Albert Krewinkel).
+ Introduce `HasIncludeFiles` type class (Albert Krewinkel). The
`insertIncludeFile` function is generalized to work with all parser
states which are instances of that class.
+ Add `insertIncludedFilesF` which returns F blocks (Albert Krewinkel).
The `insertIncludeFiles` function was generalized and renamed
to `insertIncludedFiles'`; the specialized versions are based on that.
+ `many1Till`: Check for the end condition before parsing (Herwig
Stuetz). By not checking for the end condition before the first
parse, the parser was applied too often, consuming too much of the
input. This only affects `many1Till p end` where `p` matches on a
prefix of `end`.
+ Provide `parseFromString` (#3690). This is a version of
`parseFromString` specialied to ParserState, which resets
`stateLastStrPos` at the end. This is almost always what we want.
This fixes a bug where `_hi_` wasn't treated as emphasis in the
following, because pandoc got confused about the position of the
last word: `- [o] _hi_`.
+ Added `takeP`, `takeWhileP` for efficient parsing of `[Char]`.
+ Fix `blanklines` documentation (Alexander Krotov, #3843).
+ Give less misleading line information with `parseWithString`.
Previously positions would be reported past the end of the chunk.
We now reset the source position within the chunk and report
positions "in chunk."
+ Add `anyLineNewline` (Alexander Krotov).
+ Provide shared F monad functions for Markdown and Org readers
(Albert Krewinkel). The `F` monads used for delayed evaluation
of certain values in the Markdown and Org readers are based on a
shared data type capturing the common pattern of both `F` types.
+ Add `returnF` (Alexander Krotov).
+ Avoid parsing `Notes:**` as a bare URI (#3570). This avoids parsing
bare URIs that start with a scheme + colon + `*`, `_`, or `]`.
+ Added `readerAbbreviations` to `ParserState`. Markdown reader
now consults this to determine what is an abbreviation.
+ Combine grid table parsers (Albert Krewinkel, #3638). The grid table
parsers for markdown and rst was combined into one single
parser `gridTable`, slightly changing parsing behavior of both
parsers: (1) The markdown parser now compactifies block content
cell-wise: pure text blocks in cells are now treated as paragraphs
only if the cell contains multiple paragraphs, and as plain blocks
otherwise. Before, this was true only for single-column tables. (2)
The rst parser now accepts newlines and multiple blocks in header
cells.
+ Generalize tableWith, gridTableWith (Albert Krewinkel).
The parsing functions `tableWith` and `gridTableWith` are generalized
to work with more parsers. The parser state only has to be an
instance of the `HasOptions` class instead of requiring a concrete
type. Block parsers are required to return blocks wrapped into a
monad, as this makes it possible to use parsers returning results
wrapped in `Future`s.
* `Text.Pandoc.Shared`:
+ Simplify `toRomanNumeral` using guards (Alexander Krotov, #3445)
+ `stringify`: handle Quoted better (#3958). Previously we were losing
the quotation marks in Quoted elements.
* `Text.Pandoc.Writers.Shared`:
+ Export `metaToJSON'`, `addVariablesToJSON` (#3439).
This allows us to add the variables AFTER using the metadata
to generate a YAML header (in the Markdown writer).
+ Added `unsmartify` (previously in RST writer).
Undo literal double curly quotes. Previously we left these.
+ Generalize type of `metaToJSON` so it can take a Text. Previously a
String was needed as argument; now any ToJSON instance will do.
+ Added `gridTable` (previously in Markdown writer).
+ `gridTable`: Refactored to use widths in chars.
+ `gridTable`: remove unnecessary extra space in cells.
+ Fixed `addVariablesToJSON`. It was previously not allowing multiple
values to become lists.
+ Pipe tables: impose minimum cell size (see #3526).
### Default template changes
* HTML templates (including EPUB and HTML slide show templates):
+ Make default.html5 polyglot markup conformant (John Luke Bentley,
#3473). Polyglot markup is HTML5 that is also valid XHTML. See
<https://www.w3.org/TR/html-polyglot>. With this change, pandoc's
html5 writer creates HTML that is both valid HTML5 and valid XHTML.
+ Regularized CSS in html/epub/html slide templates (#3485).
All templates now include `code{white-space: pre-wrap}`
and CSS for `q` if `--html-q-tags` is used. Previously some templates
had `pre` and others `pre-wrap`; the `q` styles were only sometimes
included.
+ CSS for `.smallcaps`, (Mauro Bieg, #1592)
+ `default.revealjs`: make `history` default to true.
+ `default.revealjs`: use lazy loading (#2283).
+ `default.revealjs`: add `mathjax` variable and some conditional code
to use the MathJaX plugin.
+ `default.slidy` uses `https` instead of `http` (ickc, #3848).
+ `default.dzslides`: Load Google Font using HTTPS by default
(Yoan Blanc).
* DocBook5 template: Use `lang` and `subtitle` variables (Jens Getreu,
#3855).
* LaTeX/Beamer template:
+ Combine LaTeX/Beamer templates (Andrew Dunning, #3878).
`default.beamer` has been removed; beamer now uses the
`default.latex` template. Beamer-specific parts are conditional
on the `beamer` variable set by the writer. Note that
`pandoc -D beamer` will return this (combined) template.
+ Use `xcolor` for `colorlinks` option (Andrew Dunning, #3877).
Beamer loads `xcolor` rather than `color`, and thus the
`dvipsnames` option doesn't take effect. This also provides a wider
range of colour selections with the `svgnames` option.
+ Use starred versions of `xcolor` names (Andrew Dunning).
Prevents changes to documents defined using the `dvipsnames` list (e.g.
`Blue` gives a different result with svgnames enabled).
+ Load `polyglossia` after header-includes (#3898). It needs to be
loaded as late as possible.
+ Use `unicode-math` (Vaclav Haisman). Use `mathspec` with only
XeLaTeX on request.
+ Don't load `fontspec` before `unicode-math` (over there).
The `unicode-math` package loads `fontspec` so explicit loading of
`fontspec` before `unicode-math` is not necessary.
+ Use `unicode-math` by default in default.latex template. mathspec will
be used in xelatex if the `mathspec` variable is set; otherwise
unicode-math will be used (Václav Haisman).
+ Use `dvipsnames` options when `colorlinks` specified (otherwise
we get an error for `maroon`) (Thomas Hodgson).
+ Added beamer `titlegraphic` and `logo` variables (Thomas Hodgson).
+ Fix typo in fix for notes in tables (#2378, zeeMonkeez).
+ Fix `hyperref` options clash (Andrew Dunning, #3847) Avoids an options
clash when loading a package (e.g. `tufte-latex`) that uses
`hyperref` settings different from those in the template.
+ Add `natbiboptions` variable (#3768).
+ Fix links inside captions in LaTeX output with links-as-notes
(Václav Haisman, #3651). Declare our redefined `\href` robust.
+ Load `parskip` before `hyperref` (Václav Haisman, #3654).
+ Allow setting Japanese fonts when using LuaLaTeX (Václav Haisman,
#3873). by using the `luatexja-fontspec` and `luatexja-preset`
packages. Use existing `CJKmainfont` and `CJKoptions` template
variables. Add `luatexjafontspecoptions` for `luatexja-fontspec`
and `luatexjapresetoptions` for `luatexja-preset`.
+ Added `aspectratio` variable to beamer template (Václav Haisman,
#3723).
+ Modified template.latex to fix XeLaTex being used with tables
(lwolfsonkin, #3661). Reordered `lang` variable handling to
immediately before `bidi`.
* ConTeXt template: Improved font handling: `simplefonts` is now
obsolete in ConTeXt (Pablo Rodríguez).
### Documentation improvements
* MANUAL.txt:
+ Add URL for Prince HTML > PDF engine (Ian, #3919).
+ Document that content above slide-level will be omitted in
slide shows. See #3460, #2265.
+ Explain `--webtex` SVG url (Mauro Bieg, #3471)
+ Small clarification in YAML metadata section.
+ Document that html4 is technically XHTML 1.0 transitional.
+ Remove refs to highlighting-kate (#3672).
+ Document ibooks specific epub metadata.
+ Clarify that mathml is used for ODT math.
+ Mention limitations of Literate Haskell Support (#3410,
Joachim Breitner).
+ Add documentation of limitations of grid tables (Stephen
McDowell, #3864).
+ Clarify that meta-json contains transformed values (Jakob Voß,
#3491) Make clear that template variable `meta-json` does not
contain plain text values or JSON output format but field values
transformed to the selected output format.
* COPYRIGHT:
+ Clarify that templates are dual-licensed.
+ Clarify that pandoc-types is BSD3 licensed.
+ List new files not written by jgm (Albert Krewinkel).
+ Update dates in copyright notices (Albert Krewinkel). This follows
the suggestions given by the FSF for GPL licensed software.
<https://www.gnu.org/prep/maintain/html_node/Copyright-Notices.html>
* INSTALL.md:
+ Improved instructions for tests with patterns.
+ Put RPM-based distros on separate point (Mauro Bieg, #3449)
* CONTRIBUTING.md:
+ Fixed typos (Wandmalfarbe, #3479).
+ Add "ask on pandoc-discuss" (Mauro Bieg).
* Add lua filter documentation in `doc/lua-filters.md`. Note that the
end of this document is autogenerated from `data/pandoc.lua`
using `make doc/lua-filters.md`, which uses `tools/ldoc.ltp`
(Albert Krewinkel).
* Add `doc/filters.md`. This is the old scripting tutorial from
the website.
* Add `doc/using-the-pandoc-api.md` (#3289). This gives an introduction
to using pandoc as a Haskell library.
### Build infrastructure improvements
* Removed `data/templates` submodule. Templates are now a subtree
in `data/templates`. This removes the need to do `git submodule
update`.
* Renamed `tests` -> `test`.
* Remove `https` flag. Always build with HTTPS support.
* Use `file-embed` instead of `hsb2hs` to embed data files when
`embed_data_files` flag is set. `file-embed` gives us better dependency
tracking: if a data file changes, ghc/stack/cabal know to recompile
the Data module. This also removes `hsb2hs` as a build dependency.
* Add `custom-setup` stanza to pandoc, lowercase field names.
* Add `static` Cabal flag.
* Name change OSX -> MacOS. Add a -MacOS suffix to mac package rather
than -OSX. Changed local names from osx to macos.
* make_macos_package.sh - Use strip to reduce executable size.
* Revised binary linux package. Now a completely static executable
is created, using Docker and alpine. We create both a deb and a
tarball. The old `deb` directory has been replaced with a `linux`
directory. Running `make` in the `linux` directory should
perform the build, putting the binary packages in `artifacts/`.
* `linux/control.in`: add `Replaces:`, so existing pandoc-citeproc and
pandoc-data packages will be uninstalled; this package provides
both (#3822). Add latex packages as 'suggested', update
description.
* Remove cpphs build requirement -- it is no longer needed.
* Replaced `{deb,macos,windows}/stack.yaml` with `stack.pkg.yaml`.
* Name change OSX -> macOS (ickc, #3869).
* Fix casing of Linux, UNIX, and Windows (ickc).
* `.travis.yml`: create a source dist and do cabal build and test there.
That way we catch errors due to files missing from the data
section of pandoc.cabal.
* Makefile:
+ Split `make haddock` from `make full`.
+ Add BRANCH variable for winpkg.
+ Add `lint` target.
+ Improve `make full`. Disable optimizations.
Build everything, inc. trypandoc and benchmarks. Use parallel build.
+ Allow `make test` to take `TESTARGS`.
* Added new command tests (`Tests.Command`), using small text files
in `test/command/`. Any files added in this directory will be treated
as shell tests (see smart.md for an example). This makes it very easy
to add regression tests etc.
* Test fixes so we can find data files. In old tests & command tests,
we now set the environment variable `pandoc_datadir`. In lua tests,
we set the datadir explicitly.
* Refactored `compareOutput` in docx writer test.
* Consolidated some common functions in `Tests.Helper`.
* Small change to unbalanced bracket test to speed up test suite.
* Speed up Native writer quickcheck tests.
* Use tasty for tests rather than test-framework.
* Add simple Emacs mode to help with Pandoc templates editing.
(Václav Haisman, #3889). `tools/pandoc-template-mode.el`
## pandoc 1.19.2.4 (2017-09-10)
* Add dependencies on texmath and skylighting to the executable.
This is needed for dependency version numbers to be available,
with Cabal > 2.
## pandoc 1.19.2.3 (2017-09-09)
* Add CPP to Setup.hs so it works with Cabal >= 2 and < 2.
## pandoc 1.19.2.2 (2017-09-08)
* Fix build with GHC 8.2.1 (#3876, Peter Simons). Setup.hs does not
compile with Cabal 2.x, so we require an earlier version via
setup-depends. The following packages need newer versions with
GHC 8.2.1 and had their constraints relaxed accordingly:
executable-path, process, syb, and time.
## pandoc 1.19.2.1 (2017-01-31)
* Require skylighting >= 0.1.1.4.
* Adjust test output for skylighting version.
* Relax upper bounds on blaze-html and blaze-markup.
## pandoc 1.19.2 (2017-01-29)
* Use skylighting library instead of highlighting-kate for syntax
highlighting. Skylighting is faster and more accurate (#3363).
Later we'll be able to add features like warning messages, dynamic
loading of xml syntax definitions, and dynamic loading of themes.
* Added a new highlight style, `breezeDark`.
* Text.Pandoc.Highlighting: Update list of `listings` languages (#3374).
This allows more languages to be used when using the `--listings`
option.
* OpenDocument writer:
+ Small refactoring. Removed separate 'parent' parameter in paraStyle.
+ Don't profilerate text styles unnecessarily (#3371).
This change makes the writer create only as many temporary
text styles as are absolutely necessary. It also consolidates
adjacent nodes with the same style.
* Org reader (Albert Krewinkel):
+ Allow short hand for single-line raw blocks (Albert Krewinkel,
#3366). Single-line raw blocks can be given via `#+FORMAT: raw line`,
where `FORMAT` must be one of `latex`, `beamer`, `html`, or `texinfo`.
+ Accept org-ref citations followed by commas (Albert Krewinkel).
Bugfix for an issue which, whenever the citation was immediately
followed by a comma, prevented correct parsing of org-ref citations.
+ Ensure emphasis markup can be nested. Nested emphasis markup (e.g.
`/*strong and emphasized*/`) was interpreted incorrectly in that the
inner markup was not recognized.
+ Remove pipe char irking the haddock coverage tool (Albert Krewinkel).
* Docx reader: Empty header should be list of lists (Jesse Rosenthal).
In the past, the docx reader wrote an empty header as an empty list. It
should have the same width as a row (and be filled with empty cells).
* MediaWiki reader:
+ Improved handling of display math (#3362). Sometimes display math is
indented with more than one colon. Previously we handled these cases
badly, generating definition lists and missing the math.
+ Fix quotation mark parsing (#3336, tgkokk). Change MediaWiki reader's
behavior when the smart option is parsed to match other readers'
behavior.
* Markdown reader:
+ Fixed `-f markdown_github-hard_line_breaks+escaped_line_breaks`
(#3341). Previously this did not properly enable escaped line breaks.
+ Disallow space between inline code and attributes (#3326, #3323,
Mauro Bieg).
* DocBook5 writer: make id attribute xml:id, fixes #3329 (#3330, Mauro Bieg).
* Added some test cases for ODT reader (#3306, #3308, Hubert Plociniczak).
* LaTeX writer: allow tables with empty cells to count as "plain."
This addresses a problem of too-wide tables when empty cells
are used. Thanks to Joost Kremers for reporting the issue.
* Org writer: prefix footnote numbers with `fn:` (Albert Krewinkel).
Unprefixed numbers where used by older org-mode versions, but are no
longer supported.
* HTML writer: don't process pars with empty RawInline, (#1040, #3327,
Mauro Bieg).
* Markdown writer: Fix display math with `--webtex` (#3298).
* Fix sample.lua so it properly handles raw blocks/inlines (#3358,
bumper314).
* Templates:
+ default.latex: Moved geometry after hyperref (Václav Haisman).
Otherwise PDF sizes can be wrong in some circumstances.
+ Copied a few changes from default.latex to default.beamer
(Wandmalfarbe).
+ default.latex, default.beamer: Changed position of `\VerbatimNotes`
and `fancyvrb`. This fixes hyperlinks on footnotes in documents
that contain verbatim in notes (#3361). (Note: the beamer template
was updated to match the LaTeX template, but at this point verbatim
in notes seems not to work in beamer.)
+ default.latex: Allow passing `microtypeoptions` to microtype
(Václav Haisman).
+ default.latex: Add hyphen option to url package.
+ default.docbook5: Fix namespace declarations (Mauro Bieg).
* Moved `make_osx_package.sh` to `osx/` directory.
* Travis continuous integration:
+ Fix false positives with dist build.
+ Speed improvements (Kolen Cheung, #3304, #3357).
* MANUAL.txt:
+ Clarify that blank space is needed around footnotes (#3352).
+ Fixed typo (#3351, Alexey Rogechev).
+ Note that `--wrap=auto` does not work in HTML output.
+ Default `--columns` width is 72, not 80.
+ Fixed broken links (#3316, Kolen Cheung).
+ Document usage of `@*` in nocite section (#3333, John Muccigrosso).
* INSTALL.md:
+ Indent code so it's properly formatted (#3335, Bheesham Persaud).
+ Added instructions for extracting binary from OSX, Windows packages.
* CONTRIBUTING.md: Describe labels currently used in issue tracker
(Albert Krewinkel). The labels have changed over time, the list of
labels is updated to reflect the current set of labels used in the
issue tracker.
* Rearrange and extend badges in README (Albert Krewinkel, #3354)
* Bumped version bounds for dependencies.
## pandoc 1.19.1 (2016-12-10)
* Set `PANDOC_VERSION` environment variable for filters (#2640).
This allows filters to check the pandoc version that produced
the JSON they are receiving.
* Docx reader: Ensure one-row tables don't have header (#3285,
Jesse Rosenthal). Tables in MS Word are set by default to have
special first-row formatting, which pandoc uses to determine whether
or not they have a header. This means that one-row tables will, by
default, have only a header -- which we imagine is not what people
want. This change ensures that a one-row table is not understood to
be a header only. Note that this means that it is impossible to
produce a header-only table from docx, even though it is legal
pandoc. But we believe that in nearly all cases, it will be an
accidental (and unwelcome) result
* HTML reader:
+ Fixed some bad regressions in HTML table parser (#3280).
This regression leads to the introduction of empty rows
in some circumstances.
+ Understand `style=width:` as well as `width` in `col` (#3286).
* RST reader:
+ Print warnings when keys, substitition, notes not found.
Previously the parsers failed and we got raw text. Now we get a
link with an empty URL, or empty inlines in the case of a note or
substitution.
+ Fix hyperlink aliases (#3283).
* Man writer: Ensure that periods are escaped at beginning of line
(#3270).
* LaTeX writer: Fix unnumbered headers when used with `--top-level`
(#3272, Albert Krewinkel). Fix interaction of top-level
divisions `part` or `chapter` with unnumbered headers when
emitting LaTeX. Headers are ensured to be written using
stared commands (like `\subsection*{}`).
* LaTeX template: use comma not semicolon to separate keywords for
`pdfkeywords`. Thanks to Wandmalfarbe.
* Markdown writer: Fixed incorrect word wrapping (#3277).
Previously pandoc would sometimes wrap lines too early due to
this bug.
* Text.Pandoc.Pretty: Added `afterBreak` [API change]. This makes it
possible to insert escape codes for content that needs escaping at the
beginning of a line.
* Removed old MathMLInHTML.js from 2004, which should no longer
be needed for MathML with modern browsers.
* Fixed tests with dynamic linking (#2709).
* Makefile: Use stack instead of cabal for targets. This is just
a convenience for developers.
* Fixed bash completion of filenames with space (#2749).
* MANUAL: improved documentation on how to create a custom
`reference.docx`.
* Fix minor spelling typos in the manual (#3273, Anthony Geoghegan)
## pandoc 1.19 (2016-12-01)
* Changed resolution of filter paths.
+ We now first treat the argument of `--filter` as a full (absolute
or relative) path, looking for a program there. If it's found, we
run it.
+ If not, and if it is a simple program name or a relative path, we
try resolving it relative to `$DATADIR/filters`.
+ If this fails, then we treat it as a program name and look in the
user's PATH.
+ Removed a hardcoded '/' that may have caused problems with
Windows paths.
Previously if you did `--filter foo` and you had `foo` in your path and
also an executable `foo` in your working directory, the one in the path
would be used. Now the one in the working directory is used.
In addition, when you do `--filter foo/bar.hs`, pandoc will now find a
filter `$DATADIR/filters/foo/bar.hs` -- assuming there isn't a
`foo/bar.hs` relative to the working directory.
* Allow `file://` URIs as arguments (#3196). Also improved default reader
format detection. Previously with a URI ending in .md or .markdown,
pandoc would assume HTML input. Now it treats these as markdown.
* Allow to overwrite top-level division type heuristics (#3258,
Albert Krewinkel). Pandoc uses heuristics to determine the most
reasonable top-level division type when emitting LaTeX or
Docbook markup. It is now possible to overwrite this implicitly set
top-level division via the `top-level-division` command line parameter.
* Text.Pandoc.Options \[API changes\]:
+ Removed `writerStandalone` field in `WriterOptions`, made
`writerTemplate` a `Maybe` value. Previously setting
`writerStandalone = True` did nothing unless a template was provided
in writerTemplate. Now a fragment will be generated if
`writerTemplate` is `Nothing`; otherwise, the specified template
will be used and standalone output generated.
+ `Division` has been renamed `TopLevelDivision` (#3197). The
`Section`, `Chapter`, and `Part` constructors were renamed to
`TopLevelSection`, `TopLevelChapter`, and
`TopLevelPart`, respectively. An additional `TopLevelDefault`
constructor was added, which is now also the new default value of
the `writerTopLevelDivision` field in `WriterOptions`.
* Improved error if they give wrong arg to `--top-level-division`.
* Use new module from texmath to lookup MS font codepoints in Docx reader.
Removed unexported module Text.Pandoc.Readers.Docx.Fonts. Its code now
lives in texmath (0.9).
* DocBook reader: Fixed xref lookup (#3243). It previously only worked
when the qnames lacked the docbook namespace URI.
* HTML reader:
+ Improved table parsing (#3027). We now check explicitly for non-1
rowspan or colspan attributes, and fail when we encounter them.
Previously we checked that each row had the same number of cells,
but that could be true even with rowspans/colspans. And there are
cases where it isn't true in tables that we can handle fine -- e.g.
when a tr element is empty. So now we just pad rows with empty cells
when needed.
+ Treat `<math>` as MathML by default unless something else is
explicitly specified in xmlns. Provided it parses as MathML,
of course. Also fixed default which should be to inline math if no
display attribute is used.
+ Only treat "a" element as link if it has href (#3226). Otherwise
treat as span.
* Docx reader (Jesse Rosenthal):
+ Add a placeholder value for CHART. We wrap `[CHART]` in a
`<span class="chart">`. Note that it maps to inlines because, in
docx, anything in a drawing tag can be part of a larger paragraph.
+ Be more specific in parsing images We not only want `w:drawing`,
because that could also include charts. Now we specify
`w:drawing/pic:pic`. This shouldn't change behavior at all, but it's
a first step toward allowing other sorts of drawing data as well.
+ Abstract out function to avoid code repetition.
+ Update tests for img title and alt (#3204).
+ Handle Alt text and titles in images. We use the "description" field
as alt text and the "title" field as title. These can be accessed
through the "Format Picture" dialog in Word.
+ Docx reader utils: handle empty namespace in `elemName`. Previously,
if given an empty namespace `(elemName ns "" "foo")` `elemName`
would output a QName with a `Just ""` namespace. This is never what
we want. Now we output a `Nothing`. If someone *does* want a
`Just ""` in the namespace, they can enter the QName
value explicitly.
* ODT reader/writer:
+ Inline code when text has a special style (Hubert Plociniczak). When
a piece of text has a text `Source_Text` then we assume that this is
a piece of the document that represents a code that needs to
be inlined. Adapted the writer to also reflect that change.
Previously it was just writing a 'preformatted' text using a
non-distinguishable font style. Code blocks are still not recognized
by the ODT reader. That's a separate issue.
+ Infer table's caption from the paragraph (#3224,
Hubert Plociniczak). ODT's reader always put empty captions for the
parsed tables. This commit
1. checks paragraphs that follow the table definition
2. treats specially a paragraph with a style named 'Table'
3. does some postprocessing of the paragraphs that combines tables
followed immediately by captions
The ODT writer used the `TableCaption` style for the caption
paragraph. This commit follows the OpenOffice approach which allows
for appending captions to table but uses a built-in style named
`Table` instead of `TableCaption`. Users of a custom `reference.odt`
should change the style's name from `TableCaption` to `Table`.
* ODT reader: Infer tables' header props from rows (#3199,
Hubert Plociniczak). ODT reader simply provided an empty header list
which meant that the contents of the whole table, even if not empty, was
simply ignored. While we still do not infer headers we at least have to
provide default properties of columns.
* Markdown reader:
+ Allow reference link labels starting with `@...` if `citations`
extension disabled (#3209). Example: in
\[link text\]\[@a\]
`link text` isn't hyperlinked because `[@a]` is parsed as
a citation. Previously this happened whether or not the `citations`
extension was enabled. Now it happens only if the `citations`
extension is enabled.
+ Allow alignments to be specified in Markdown grid tables. For
example,
+-------+---------------+--------------------+
| Right | Left | Centered |
+=========:+:=================+:=============:+
| Bananas | $1.34 | built-in wrapper |
+-------+---------------+--------------------+
+ Allow Small Caps elements to be created using bracketed spans (as
they already can be using HTML-syntax spans) (#3191, Kolen Cheung).
* LaTeX reader:
+ Don't treat `\vspace` and `\hspace` as block commands (#3256).
Fixed an error which came up, for example, with `\vspace` inside
a caption. (Captions expect inlines.)
+ Improved table handling. We can now parse all of the tables emitted
by pandoc in our tests. The only thing we don't get yet are
alignments and column widths in more complex tables. See #2669.
+ Limited support for minipage.
+ Allow for `[]`s inside LaTeX optional args. Fixes cases like:
+ Handle BVerbatim from fancyvrb (#3203).
+ Handle hungarumlaut (#3201).
+ Allow beamer-style `<...>` options in raw LaTeX (also in Markdown)
(#3184). This allows use of things like `\only<2,3>{my content}` in
Markdown that is going to be converted to beamer.
* Use pre-wrap for code in dzslides template (Nicolas Porcel). Otherwise
overly long code will appear on every slide.
* Org reader (Albert Krewinkel):
+ Respect column width settings (#3246). Table column properties can
optionally specify a column's width with which it is displayed in
the buffer. Some exporters, notably the ODT exporter in org-mode
v9.0, use these values to calculate relative column widths. The org
reader now implements the same behavior. Note that the org-mode
LaTeX and HTML exporters in Emacs don't support this feature yet,
which should be kept in mind by users who use the column
widths parameters.
+ Allow HTML attribs on non-figure images (#3222). Images which are
the only element in a paragraph can still be given HTML attributes,
even if the image does not have a caption and is hence not a figure.
The following will add set the `width` attribute of the image to
`50%`:
+ATTR\_HTML: :width 50%
=======================
\[\[file:image.jpg\]\]
+ Support `ATTR_HTML` for special blocks (#3182). Special
blocks (i.e. blocks with unrecognized names) can be prefixed with an
`ATTR_HTML` block attribute. The attributes defined in that
meta-directive are added to the `Div` which is used to represent the
special block.
+ Support the `todo` export option. The `todo` export option allows to
toggle the inclusion of TODO keywords in the output. Setting this to
`nil` causes TODO keywords to be dropped from headlines. The default
is to include the keywords.
+ Add support for todo-markers. Headlines can have optional
todo-markers which can be controlled via the `#+TODO`, `#+SEQ_TODO`,
or `#+TYP_TODO` meta directive. Multiple such directives can be
given, each adding a new set of recognized todo-markers. If no
custom todo-markers are defined, the default `TODO` and `DONE`
markers are used. Todo-markers are conceptually separate from
headline text and are hence excluded when autogenerating
headline IDs. The markers are rendered as spans and labelled with
two classes: One class is the markers name, the other signals the
todo-state of the marker (either `todo` or `done`).
* LaTeX writer:
+ Use `\autocites*` when "suppress-author" citation used.
+ Ensure that simple tables have simple cells (#2666). If cells
contain more than a single Plain or Para, then we need to set
nonzero widths and put contents into minipages.
+ Remove invalid inlines in sections (#3218, Hubert Plociniczak).
* Markdown writer:
+ Fix calculation of column widths for aligned multiline tables
(#1911, Björn Peemöller). This also fixes excessive CPU and memory
usage for tables when `--columns` is set in such a way that cells
must be very tiny. Now cells are guaranteed to be big enough so that
single words don't need to line break, even if this pushes the line
length above the column width.
+ Use bracketed form for native spans when `bracketed_spans`
enabled (#3229).
+ Fixed inconsistent spacing issue (#3232). Previously a tight bullet
sublist got rendered with a blank line after, while a tight ordered
sublist did not. Now we don't get the blank line in either case.
+ Fix escaping of spaces in super/subscript (#3225). Previously two
backslashes were inserted, which gave a literal backslash.
+ Adjust widths in Markdown grid tables so that they match
on round-trip.
* Docx writer:
+ Give full detail when there are errors converting tex math.
+ Handle title text in images (Jesse Rosenthal). We already handled
alt text. This just puts the image "title" into the docx
"title" attr.
+ Fixed XML markup for empty cells (#3238). Previously the Compact
style wasn't being applied properly to empty cells.
* HTML writer:
+ Updated `renderHtml` import from blaze-html.
* Text.Pandoc.Pretty:
+ Fixed some bugs that caused blank lines in tables (#3251). The bugs
caused spurious blank lines in grid tables when we had things like
`blankline $$ blankline`.
+ Add exported function `minOffet` \[API change\] (Björn Peemöller).
+ Added error message for illegal call to `block` (Björn Peemöller).
* Text.Pandoc.Shared:
+ Put `warn` in MonadIO.
+ `fetchItem`: Better handling of protocol-relative URL (#2635). If
URL starts with `//` and there is no "base URL" (as there would be
if a URL were used on the command line), then default to http:.
* Export Text.Pandoc.getDefaultExtensions \[API change\] (#3178).
* In --version, trap error in `getAppUserDataDirectory` (#3241). This
fixes a crash with `pandoc --version` on unusual systems with no real
user (e.g. SQL Server 2016).
* Added weigh-pandoc for memory usage diagnostics (#3169).
* Use correct mime types for woff and woff2 (#3228).
* Remove make\_travis\_yml.hs (#3235, Kolen Cheung).
* changelog: Moved an item that was misplaced in the 1.17.2 section to the
1.18 section where it belongs.
* CONTRIBUTING.md: minor change in wording and punctuation (#3252,
Kolen Cheung).
* Further revisions to manual for `--version` changes (#3244).
## pandoc 1.18 (2016-10-26)
* Added `--list-input-formats`, `--list-output-formats`,
`--list-extensions`, `--list-highlight-languages`, and
`--list-highlight-styles` (#3173). Removed list of highlighting
languages from `--version` output. Removed list of input and output
formats from default `--help` output.
* Added `--reference-location=block|section|document` option
(Jesse Rosenthal). This determines whether Markdown link references
and footnotes are placed at the end of the document, the end of the
section, or the end of the top-level block.
* Added `--top-level-division=section|chapter|part` (Albert Krewinkel).
This determines what a level-1 header corresponds to in LaTeX,
ConTeXt, DocBook, and TEI output. The default is `section`.
The `--chapters` option has been deprecated in favor of
`--top-level-division=chapter`.
* Added `LineBlock` constructor for `Block` (Albert Krewinkel). This
is now used in parsing RST and Markdown line blocks, DocBook
`linegroup`/`line` combinations, and Org-mode `VERSE` blocks.
Previously `Para` blocks with hard linebreaks were used. `LineBlock`s
are handled specially in the following output formats: AsciiDoc
(as `[verse]` blocks), ConTeXt (`\startlines`/`\endlines`),
HTML (`div` with a style), Markdown (line blocks if `line_blocks`
is enabled), Org-mode (`VERSE` blocks), RST (line blocks). In
other output formats, a paragraph with hard linebreaks is emitted.
* Allow binary formats to be written to stdout (but not to tty) (#2677).
Only works on posix, since we use the unix library to check whether
output is to tty. On Windows, pandoc works as before and always requires
an output file parameter for binary formats.
* Changed JSON output format (Jesse Rosenthal). Previously we used
generically generated JSON, but this was subject to change depending
on the version of aeson pandoc was compiled with. To ensure stability,
we switched to using manually written ToJSON and FromJSON
instances, and encoding the API version. **Note:** pandoc filter
libraries will need to be revised to handle the format change.
Here is a summary of the essential changes:
+ The toplevel JSON format is now `{"pandoc-api-version" :
[MAJ, MIN, REV], "meta" : META, "blocks": BLOCKS}`
instead of `[{"unMeta": META}, [BLOCKS]]`.
Decoding fails if the major and minor version numbers don't
match.
+ Leaf nodes no longer have an empty array for their "c" value.
Thus, for example, a `Space` is encoded as `{"t":"Space"}`
rather than `{"t":"Space","c":[]}` as before.
* Removed `tests/Tests/Arbitrary.hs` and added a `Text.Pandoc.Arbitrary`
module to pandoc-types (Jesse Rosenthal). This makes it easier
to use QuickCheck with pandoc types outside of pandoc itself.
* Add `bracketed_spans` Markdown extension, enabled by default
in pandoc `markdown`. This allows you to create a native span
using this syntax: `[Here is my span]{#id .class key="val"}`.
* Added `angle_brackets_escapable` Markdown extension (#2846).
This is needed because github flavored Markdown has a slightly
different set of escapable symbols than original Markdown;
it includes angle brackets.
* Export `Text.Pandoc.Error` in `Text.Pandoc` [API change].
* Print highlighting-kate version in `--version`.
* `Text.Pandoc.Options`:
+ `Extension` has new constructors `Ext_brackted_spans` and
`Ext_angle_brackets_escapable` [API change].
+ Added `ReferenceLocation` type [API change] (Jesse Rosenthal).
+ Added `writerReferenceLocation` field to `WriterOptions` (Jesse
Rosenthal).
* `--filter`: we now check `$DATADIR/filters` for filters before
looking in the path (#3127, Jesse Rosenthal, thanks to Jakob
Voß for the idea). Filters placed in this directory need not
be executable; if the extension is `.hs`, `.php`, `.pl`, `.js`,
or `.rb`, pandoc will run the right interpreter.
* For `--webtex`, replace deprecated Google Chart API by CodeCogs as
default (Kolen Cheung).
* Removed `raw_tex` extension from `markdown_mmd` defaults (Kolen Cheung).
* Execute .js filters with node (Jakob Voß).
* Textile reader:
+ Support `bc..` extended code blocks (#3037). Also, remove trailing
newline in code blocks (consistently with Markdown reader).
+ Improve table parsing. We now handle cell and row attributes, mostly
by skipping them. However, alignments are now handled properly.
Since in pandoc alignment is per-column, not per-cell, we
try to devine column alignments from cell alignments.
Table captions are also now parsed, and textile indicators
for thead and tfoot no longer cause parse failure. (However,
a row designated as tfoot will just be a regular row in pandoc.)
+ Improve definition list parsing. We now allow multiple terms
(which we concatenate with linebreaks). An exponential parsing
bug (#3020) is also fixed.
+ Disallow empty URL in explicit link (#3036).
* RST reader:
+ Use Div instead of BlockQuote for admonitions (#3031).
The Div has class `admonition` and (if relevant) one of the
following: `attention`, `caution`, `danger`, `error`, `hint`,
`important`, `note`, `tip`, `warning`. **Note:** This will change
the rendering of some RST documents! The word ("Warning", "Attention",
etc.) is no longer added; that must be done with CSS or a filter.
+ A Div is now used for `sidebar` as well.
+ Skip whitespace before note (Jesse Rosenthal, #3163). RST requires a
space before a footnote marker. We discard those spaces so that footnotes
will be adjacent to the text that comes before it. This is in line with
what rst2latex does.
+ Allow empty lines when parsing line blocks (Albert Krewinkel).
* Markdown reader:
+ Allow empty lines when parsing line blocks (Albert Krewinkel).
+ Allow attributes on autolinks (#3183, Daniele D'Orazio).
* LaTeX reader:
+ More robust parsing of unknown environments (#3026).
We no longer fail on things like `^` inside options for tikz.
+ Be more forgiving of non-standard characters, e.g. `^` outside of math.
Some custom environments give these a meaning, so we should try not to
fall over when we encounter them.
+ Drop duplicate `*` in bibtexKeyChars (Albert Krewinkel)
* MediaWiki reader:
+ Fix for unquoted attribute values in mediawiki tables (#3053).
Previously an unquoted attribute value in a table row
could cause parsing problems.
+ Improved treatment of verbatim constructions (#3055).
Previously these yielded strings of alternating Code and Space
elements; we now incorporate the spaces into the Code. Emphasis
etc. is still possible inside these.
+ Properly interpret XML tags in pre environments (#3042). They are meant
to be interpreted as literal text.
* EPUB reader: don't add root path to data: URIs (#3150).
Thanks to @lep for the bug report and patch.
* Org reader (Albert Krewinkel):
+ Preserve indentation of verse lines (#3064). Leading spaces in verse
lines are converted to non-breaking spaces, so indentation is preserved.
+ Ensure image sources are proper links. Image sources as those in plain
images, image links, or figures, must be proper URIs or relative file
paths to be recognized as images. This restriction is now enforced
for all image sources. This also fixes the reader's usage of uncleaned
image sources, leading to `file:` prefixes not being deleted from
figure images. Thanks to @bsag for noticing this bug.
+ Trim verse lines properly (Albert Krewinkel).
+ Extract meta parsing code to module. Parsing of meta-data is well
separable from other block parsing tasks. Moving into new module to
get small files and clearly arranged code.
+ Read markup only for special meta keys. Most meta-keys should be read
as normal string values, only a few are interpreted as marked-up text.
+ Allow multiple, comma-separated authors. Multiple authors can be
specified in the `#+AUTHOR` meta line if they are given as a
comma-separated list.
+ Give precedence to later meta lines. The last meta-line of any given
type is the significant line. Previously the value of the first line
was kept, even if more lines of the same type were encountered.
+ Read LaTeX_header as header-includes. LaTeX-specific header commands
can be defined in `#+LaTeX_header` lines. They are parsed as
format-specific inlines to ensure that they will only show up in LaTeX
output.
+ Set documentclass meta from LaTeX_class.
+ Set classoption meta from LaTeX_class_options.
+ Read HTML_head as header-includes. HTML-specific head content can be
defined in `#+HTML_head` lines. They are parsed as format-specific
inlines to ensure that they will only show up in HTML output.
+ Respect `author` export option. The `author` option controls whether
the author should be included in the final markup. Setting
`#+OPTIONS: author:nil` will drop the author from the final meta-data
output.
+ Respect `email` export option. The `email` option controls whether the
email meta-field should be included in the final markup. Setting
`#+OPTIONS: email:nil` will drop the email field from the final
meta-data output.
+ Respect `creator` export option. The `creator` option controls whether
the creator meta-field should be included in the final markup. Setting
`#+OPTIONS: creator:nil` will drop the creator field from the final
meta-data output. Org-mode recognizes the special value `comment` for
this field, causing the creator to be included in a comment. This is
difficult to translate to Pandoc internals and is hence interpreted the
same as other truish values (i.e. the meta field is kept if it's
present).
+ Respect unnumbered header property (#3095). Sections the `unnumbered`
property should, as the name implies, be excluded from the automatic
numbering of section provided by some output formats. The Pandoc
convention for this is to add an "unnumbered" class to the header. The
reader treats properties as key-value pairs per default, so a special
case is added to translate the above property to a class instead.
+ Allow figure with empty caption (Albert Krewinkel, #3161).
A `#+CAPTION` attribute before an image is enough to turn an image into
a figure. This wasn't the case because the `parseFromString` function,
which processes the caption value, would fail on empty values. Adding
a newline character to the caption value fixes this.
* Docx reader:
+ Use XML convenience functions (Jesse Rosenthal).
The functions `isElem` and `elemName` (defined in Docx/Util.hs) make
the code a lot cleaner than the original XML.Light functions, but they
had been used inconsistently. This puts them in wherever applicable.
+ Handle anchor spans with content in headers. Previously, we would only
be able to figure out internal links to a header in a docx if the
anchor span was empty. We change that to read the inlines out of the
first anchor span in a header.
+ Let headers use existing id. Previously we always generated an id for
headers (since they wouldn't bring one from Docx). Now we let it use an
existing one if possible. This should allow us to recurs through anchor
spans.
+ Use all anchor spans for header ids. Previously we only used the first
anchor span to affect header ids. This allows us to use all the anchor
spans in a header, whether they're nested or not (#3088).
+ Test for nested anchor spans in header. This ensures that anchor spans
in header with content (or with other anchor spans inside) will resolve
to links to a header id properly.
* ODT reader (Hubert Plociniczak)
+ Include list's starting value. Previously the starting value of
the lists' items has been hardcoded to 1. In reality ODT's list
style definition can provide a new starting value in one of its
attributes.
+ Infer caption from the text following the image.
Frame can contain other frames with the text boxes.
+ Add `fig:` to title for Image with a caption (as expected
by pandoc's writers).
+ Basic support for images in ODT documents.
+ Don't duplicate text for anchors (#3143). When creating an anchor
element we were adding its representation as well as the original
content, leading to text duplication.
* DocBook writer:
+ Include an anchor element when a div or span has an id (#3102).
Note that DocBook does not have a class attribute, but at least this
provides an anchor for internal links.
* LaTeX writer:
+ Don't use * for unnumbered paragraph, subparagraph. The starred
variants don't exist. This helps with part of #3058...it gets rid of
the spurious `*`s. But we still have numbers on the 4th and 5th level
headers.
+ Properly escape backticks in verbatim (#3121, Jesse Rosenthal).
Otherwise they can cause unintended ligatures like `` ?` ``.
+ Handle NARRAOW NO-BREAK SPACE into LaTeX (Vaclav Zeman) as `\,`.
+ Don't include `[htbp]` placement for figures (#3103, Václav Haisman).
This allows figure placement defaults to be changed by the user
in the template.
* TEI writer: remove heuristic to detect book template (Albert Krewinkel).
TEI doesn't have `<book>` elements but only generic `<divN>` division
elements. Checking the template for a trailing `</book>` is nonsensical.
* MediaWiki writer: transform filename with underscores in images (#3052).
`foo bar.jpg` becomes `foo_bar.jpg`. This was already done
for internal links, but it also needs to happen for images.
* ICML writer: replace partial function (!!) in table handling (#3175,
Mauro Bieg).
* Man writer: allow section numbers that are not a single digit (#3089).
* AsciiDoc writer: avoid unnecessary use of "unconstrained" emphasis
(#3068). In AsciiDoc, you must use a special form of emphasis
(double `__`) for intraword emphasis. Pandoc was previously using
this more than necessary.
* EPUB writer: use stringify instead of plain writer for metadata
(#3066). This means that underscores won't be used for emphasis,
or CAPS for bold. The metadata fields will just have unadorned
text.
* Docx Writer:
+ Implement user-defined styles (Jesse Rosenthal). Divs and Spans
with a `custom-style` key in the attributes will apply the corresponding
key to the contained blocks or inlines.
+ Add ReaderT env to the docx writer (Jesse Rosenthal).
+ Clean up and streamline RTL behavior (Jesse Rosenthal, #3140).
You can set `dir: rtl` in YAML metadata, or use `-M dir=rtl`
on the command line. For finer-grained control, you can set
the `dir` attribute in Div or Span elements.
* Org writer (Albert Krewinkel):
+ Remove blank line after figure caption. Org-mode only treats an image
as a figure if it is directly preceded by a caption.
+ Ensure blank line after figure. An Org-mode figure should be surrounded
by blank lines. The figure would be recognized regardless, but images
in the following line would unintentionally be treated as figures as
well.
+ Ensure link targets are paths or URLs. Org-mode treats links as
document internal searches unless the link target looks like a URL or
file path, either relative or absolute. This change ensures that this
is always the case.
+ Translate language identifiers. Pandoc and Org-mode use different
programming language identifiers. An additional translation between
those identifiers is added to avoid unexpected behavior. This fixes a
problem where language specific source code would sometimes be output
as example code.
+ Drop space before footnote markers (Albert Krewinkel, #3162).
The writer no longer adds an extra space before footnote markers.
* Markdown writer:
+ Don't emit HTML for tables unless `raw_html` extension is set (#3154).
Emit `[TABLE]` if no suitable table formats are enabled and raw HTML
is disabled.
+ Check for the `raw_html` extension before emitting a raw HTML block.
+ Abstract out note/ref function (Jesse Rosenthal).
+ Add ReaderT monad for environment variables (Jesse Rosenthal).
* HTML, EPUB, slidy, revealjs templates: Use `<p>` instead of `<h1>` for
subtitle, author, date (#3119). Note that, as a result of this change,
authors may need to update CSS.
* revealjs template: Added `notes-server` option
(jgm/pandoc-templates#212, Yoan Blanc).
* Beamer template:
+ Restore whitespace between paragraphs. This was
a regression in the last release (jgm/pandoc-templates#207).
+ Added `themeoptions` variable (Carsten Gips).
+ Added `beamerarticle` variable. This causes the `beamerarticle`
package to be loaded in beamer, to produce an article from beamer
slides. (Carsten Gips)
+ Added support for `fontfamilies` structured variable
(Artem Klevtsov).
+ Added hypersetup options (Jake Zimmerman).
* LaTeX template:
+ Added dummy definition for `\institute`.
This isn't a standard command, and we want to avoid a crash when
`institute` is used with the default template.
+ Define default figure placement (Václav Haisman), since pandoc
no longer includes `[htbp]` for figures. Users with custom templates
will want to add this. See #3103.
+ Use footnote package to fix notes in tables (jgm/pandoc-templates#208,
Václav Haisman).
* Moved template compiling/rendering code to a separate library.
`doctemplates`. This allows the pandoc templating system to be
used independently.
* Text.Pandoc.Error: Fix out of index error in `handleError`
(Matthew Pickering). The fix is to not try to show the exact line when
it would cause an out-of-bounds error as a result of included files.
* Text.Pandoc.Shared: Add `linesToBlock` function (Albert Krewinkel).
* Text.Pandoc.Parsing.emailAddress: tighten up parsing of email
addresses. Technically `**@user` is a valid email address, but if we
allow things like this, we get bad results in markdown flavors
that autolink raw email addresses (see #2940). So we exclude a few
valid email addresses in order to avoid these more common bad cases.
* Text.Pandoc.PDF: Don't crash with nonexistent image (#3100). Instead,
emit the alt text, emphasized. This accords with what the ODT writer
currently does. The user will still get a warning about a nonexistent
image.
* Fix example in API documentation (#3176, Thomas Weißschuh).
* Tell where to get tarball in INSTALL (#3062).
* Rename README to MANUAL.txt and add GitHub-friendly README.md
(Albert Krewinkel, Kolen Cheung).
* Replace COPYING with Markdown version COPYING.md from GNU (Kolen Cheung).
* MANUAL.txt:
+ Put note on structured vars in separate paragraph (#2148, Albert
Krewinkel). Make it clearer that structured author variables require a
custom template
+ Note that `--katex` works best with `html5` (#3077).
+ Fix the LaTeX and EPUB links in manual (Morton Fox).
+ Document `biblio-title` variable.
* Improve spacing of footnotes in `--help` output (Waldir Pimenta).
* Update KaTeX to v0.6.0 (Kolen Cheung).
* Allow latest dependencies.
* Use texmath 0.8.6.6 (#3040).
* Allow http-client 0.4.30, which is the version in stackage lts.
Previously we required 0.5.
Remove CPP conditionals for earlier versions.
* Remove support for GHC < 7.8 (Jesse Rosenthal).
+ Remove Compat.Monoid.
+ Remove an inline monad compatibility macro.
+ Remove Text.Pandoc.Compat.Except.
+ Remove directory compat.
+ Change constraint on mtl.
+ Remove unnecessary CPP condition in UTF8.
+ Bump base lower bound to 4.7.
+ Remove 7.6 build from .travis.yaml.
+ Bump supported ghc version in CONTRIBUTING.md.
+ Add note about GHC version support to INSTALL.
+ Remove GHC 7.6 from list of tested versions (Albert Krewinkel).
+ Remove TagSoup compat.
+ Add EOL note to time compat module. Because time 1.4 is a boot library
for GHC 7.8, we will support the compatibility module as long as we
support 7.8. But we should be clear about when we will no longer need
it.
+ Remove blaze-html CPP conditional.
+ Remove unnecessary CPP in custom Prelude.
## pandoc 1.17.2 (2016-07-17)
* Added Zim Wiki writer, template and tests. `zimwiki` is now
a valid output format. (Alex Ivkin)
* Changed email-obfuscation default to no obfuscation (#2988).
+ `writerEmailObfuscation` in `defaultWriterOptions` is now
`NoObfuscation`.
+ the default for the command-line `--email-obfuscation` option is
now `none`.
* Docbook writer: Declare xlink namespace in Docbook5 output (Ivo Clarysse).
* Org writer:
+ Support arbitrary raw inlines (Albert Krewinkel).
Org mode allows arbitrary raw inlines ("export snippets" in Emacs
parlance) to be included as `@@format:raw foreign format text@@`.
+ Improve Div handling (Albert Krewinkel). Div blocks handling is
changed to make the output look more like idiomatic org mode:
- Div-wrapped content is output as-is if the div's attribute is the
null attribute.
- Div containers with an id but neither classes nor key-value pairs
are unwrapped and the id is added as an anchor.
- Divs with classes associated with greater block elements are
wrapped in a `#+BEGIN`...`#+END` block.
- The old behavior for Divs with more complex attributes is kept.
* HTML writer: Better support for raw LaTeX environments (#2758).
Previously we just passed all raw TeX through when MathJax
was used for HTML math. This passed through too much.
With this patch, only raw LaTeX environments that MathJax
can handle get passed through.
This patch also causes raw LaTeX environments to be treated
as math, when possible, with MathML and WebTeX output.
* Markdown writer: use raw HTML for simple, pipe tables with linebreaks
(#2993). Markdown line breaks involve a newline, and simple and pipe
tables can't contain one.
* Make --webtex work with the Markdown writer (#1177).
This is a convenient option for people using
websites whose Markdown flavors don't provide for math.
* Docx writer:
+ Set paragraph to FirstPara after display math (Jesse Rosenthal).
We treat display math like block quotes, and apply FirstParagraph style
to paragraphs that follow them. These can be styled as the user
wishes. (But, when the user is using indentation, this allows for
paragraphs to continue after display math without indentation.)
+ Use actual creation time as doc prop (Jesse Rosenthal).
Previously, we had used the user-supplied date, if available, for Word's
document creation metadata. This could lead to weird results, as in
cases where the user post-dates a document (so the modification might be
prior to the creation). Here we use the actual computer time to set the
document creation.
* LaTeX writer:
+ Don't URI-escape image source (#2825). Usually this is a local file,
and replacing spaces with `%20` ruins things.
+ Allow 'standout' as a beamer frame option (#3007).
`## Slide title {.standout}`.
* RST reader: Fixed links with no explicit link text. The link
`` `<foo>`_ `` should have `foo` as both its link text and its URL.
See RST spec at <http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#embedded-uris-and-aliases>
Closes Debian #828167 -- reported by Christian Heller.
* Textile reader:
+ Fixed attributes (#2984). Attributes can't be followed by
a space. So, `_(class)emph_` but `_(noclass) emph_`.
+ Fixed exponential parsing bug (#3020).
+ Fix overly aggressive interpretation as images (#2998).
Spaces are not allowed in the image URL in textile.
* LaTeX reader:
+ Fix `\cite` so it is a NormalCitation not AuthorInText.
+ Strip off double quotes around image source if present (#2825).
Avoids interpreting these as part of the literal filename.
* Org reader:
+ Add semicolon to list of special chars (Albert Krewinkel)
Semicolons are used as special characters in citations syntax. This
ensures the correct parsing of Pandoc-style citations: `[prefix; @key;
suffix]`. Previously, parsing would have failed unless there was a space
or other special character as the last <prefix> character.
+ Add support for "Berkeley-style" cites (Albert Krewinkel, #1978).
A specification for an official Org-mode citation syntax was drafted by
Richard Lawrence and enhanced with the help of others on the orgmode
mailing list. Basic support for this citation style is added to the
reader.
+ Support arbitrary raw inlines (Albert Krewinkel).
Org mode allows arbitrary raw inlines ("export snippets" in Emacs
parlance) to be included as `@@format:raw foreign format text@@`.
+ Remove partial functions (Albert Krewinkel, #2991).
Partial functions like `head` lead to avoidable errors and should be
avoided. They are replaced with total functions.
+ Support figure labels (Albert Krewinkel, #2496, #2999).
Figure labels given as `#+LABEL: thelabel` are used as the ID of the
respective image. This allows e.g. the LaTeX to add proper `\label`
markup.
+ Improve tag and properties type safety (Albert Krewinkel).
Specific newtype definitions are used to replace stringly typing of tags
and properties. Type safety is increased while readability is improved.
+ Parse as headlines, convert to blocks (Albert Krewinkel).
Emacs org-mode is based on outline-mode, which treats documents as trees
with headlines are nodes. The reader is refactored to parse into a
similar tree structure. This simplifies transformations acting on
document (sub-)trees.
* Refactor comment tree handling (Albert Krewinkel).
Comment trees were handled after parsing, as pattern matching on lists
is easier than matching on sequences. The new method of reading
documents as trees allows for more elegant subtree removal.
* Support archived trees export options (Albert Krewinkel).
Handling of archived trees can be modified using the `arch` option.
Archived trees are either dropped, exported completely, or collapsed to
include just the header when the `arch` option is nil, non-nil, or
`headline`, respectively.
* Put export setting parser into module (Albert Krewinkel).
Export option parsing is distinct enough from general block parsing to
justify putting it into a separate module.
* Support headline levels export setting (Albert Krewinkel).
The depths of headlines can be modified using the `H` option. Deeper
headlines will be converted to lists.
* Replace ugly code with view pattern (Albert Krewinkel).
Some less-than-smart code required a pragma switching of overlapping
pattern warnings in order to compile seamlessly. Using view patterns
makes the code easier to read and also doesn't require overlapping
pattern checks to be disabled.
* Fix parsing of verbatim inlines (Albert Krewinkel, #3016).
Org rules for allowed characters before or after markup chars were not
checked for verbatim text. This resultet in wrong parsing outcomes of
if the verbatim text contained e.g. space enclosed markup characters as
part of the text (`=is_substr = True=`). Forcing the parser to update
the positions of allowed/forbidden markup border characters fixes this.
* LaTeX template: fix for obscure hyperref/xelatex issue.
Here's a minimal case:
\documentclass[]{article}
\usepackage{hyperref}
\begin{document}
\section{\%á}
\end{document}
Without this change, this fails on the second invocation of xelatex.
This affects inputs this like `# %á` with pdf output via xelatex.
* trypandoc: call results 'html' instead of 'result'.
This is for better compatibility with babelmark2.
* Document MultiMarkdown as input/output format (Albert Krewinkel, #2973).
MultiMarkdown was only mentioned as a supported Markdown dialect but not
as a possible input or output format. A brief mention is added
everywhere the other supported markdown dialects are mentioned.
* Document Org mode as a format containing raw HTML (Albert Krewinkel)
Raw HTML is kept when the output format is Emacs Org mode.
* Implement `RawInline` and `RawBlock` in sample lua custom writer (#2985).
* Text.Pandoc.Shared:
+ Introduce blocksToInlines function (Jesse Rosenthal).
This is a lossy function for converting `[Block] -> [Inline]`. Its main
use, at the moment, is for docx comments, which can contain arbitrary
blocks (except for footnotes), but which will be converted to spans.
This is, at the moment, pretty useless for everything but the basic
`Para` and `Plain` comments. It can be improved, but the docx reader
should probably emit a warning if the comment contains more than this.
+ Add BlockQuote to blocksToInlines (Jesse Rosenthal).
+ Add further formats for `normalizeDate` (Jesse Rosenthal).
We want to avoid illegal dates -- in particular years with greater than
four digits. We attempt to parse series of digits first as `%Y%m%d`, then
`%Y%m`, and finally `%Y`.
+ `normalizeDate` should reject illegal years (Jesse Rosenthal).
We only allow years between 1601 and 9999, inclusive. The ISO 8601
actually says that years are supposed to start with 1583, but MS Word
only allows 1601-9999. This should stop corrupted word files if the date
is out of that range, or is parsed incorrectly.
+ Improve year sanity check in normalizeDate (Jesse Rosenthal).
Previously we parsed a list of dates, took the first one, and then
tested its year range. That meant that if the first one failed, we
returned nothing, regardless of what the others did. Now we test for
sanity before running `msum` over the list of Maybe values. Anything
failing the test will be Nothing, so will not be a candidate.
* Docx reader:
+ Add simple comment functionality. (Jesse Rosenthal).
This adds simple track-changes comment parsing to the docx reader. It is
turned on with `--track-changes=all`. All comments are converted to
inlines, which can list some information. In the future a warning will be
added for comments with formatting that seems like it will be excessively
denatured. Note that comments can extend across blocks. For that reason
there are two spans: `comment-start` and `comment-end`. `comment-start`
will contain the comment. `comment-end` will always be empty. The two
will be associated by a numeric id.
+ Enable warnings in top-level reader (Jesse Rosenthal).
Previously we had only allowed for warnings in the parser. Now we allow
for them in the `Docx.hs` as well. The warnings are simply concatenated.
+ Add warning for advanced comment formatting. (Jesse Rosenthal).
We can't guarantee we'll convert every comment correctly, though we'll
do the best we can. This warns if the comment includes something other
than Para or Plain.
+ Add tests for warnings. (Jesse Rosenthal).
+ Add tests for comments (Jesse Rosenthal).
We test for comments, using all track-changes options. Note that we
should only output comments if `--track-changes=all`. We also test for
emitting warnings if there is complicated formatting.
* README: update to include track-changes comments. (Jesse Rosenthal)
* Improved Windows installer - don't ignore properties set on command-line.
See #2708. Needs testing to see if this resolves the issue.
Thanks to @nkalvi.
* Process markdown extensions on command line in L->R order (#2995).
Previously they were processed, very unintuitively, in R->L
order, so that `markdown-tex_math_dollars+tex_math_dollars`
had `tex_math_dollars` disabled.
* Added `secnumdepth` variable to LaTeX template (#2920).
* Include table of contents in README.html in Windows package.
* Writers: treat SoftBreak as space for stripping (Jesse Rosenthal)
In Writers.Shared, we strip leading and trailing spaces for display
math. Since SoftBreak's are treated as spaces, we should strip those
too.
* beamer, latex templates: pass biblatexoptions directly in package load.
This allows runtime optinos to be used. Fixes jgm/pandoc-citeproc#201
* CPP workaround for deprecation of `parseUrl` in http-client.
* Removed some redundant class constraints.
* make_oxs_package.sh - use OSX env variable.
* Added `winpkg` target to Makefile. This downloads the windows package
from appveyor and signs it using the key.
* Document Org mode as a format containing raw TeX (Albert Krewinkel).
Raw TeX is kept verbatim when the output format is Emacs Org mode.
* Support math with haddock-library >= 1.4.
* Removed `-rtsopts` from library stanza. It has no effect, and Hackage
wouldn't accept the package.
* Update library dependency versions.
## pandoc 1.17.1 (2016-06-04)
* New output format: `docbook5` (Ivo Clarysse).
* `Text.Pandoc.Options`: Add `writerDocBook5` to `WriterOptions`
(API change).
* Org writer:
+ Add :PROPERTIES: drawer support (Albert Krewinkel, #1962).
This allows header attributes to be added to org documents in the form
of `:PROPERTIES:` drawers. All available attributes are stored as
key/value pairs. This reflects the way the org reader handles
`:PROPERTIES:` blocks.
+ Add drawer capability (Carlos Sosa). For the implementation of the
Drawer element in the Org Writer, we make use of a generic Block
container with attributes. The presence of a `drawer` class defines
that the `Div` constructor is a drawer. The first class defines the
drawer name to use. The key-value list in the attributes defines
the keys to add inside the Drawer. Lastly, the list of Block elements
contains miscellaneous blocks elements to add inside of the Drawer.
+ Use `CUSTOM_ID` in properties (Albert Krewinkel). The `ID` property is
reserved for internal use by Org-mode and should not be used.
The `CUSTOM_ID` property is to be used instead, it is converted to the
`ID` property for certain export format.
* LaTeX writer:
+ Ignore `--incremental` unless output format is beamer (#2843).
+ Fix polyglossia to babel env mapping (Mauro Bieg, #2728).
Allow for optional argument in square brackets.
+ Recognize `la-x-classic` as Classical Latin (Andrew Dunning).
This allows one to access the hyphenation patterns in CTAN's
hyph-utf8.
+ Add missing languages from hyph-utf8 (Andrew Dunning).
+ Improve use of `\strut` with `\minipage` inside tables
(Jose Luis Duran). This improves spacing in multiline
tables.
+ Use `{}` around options containing special chars (#2892).
+ Avoid lazy `foldl`.
+ Don't escape underscore in labels (#2921). Previously they were
escaped as `ux5f`.
+ brazilian -> brazil for polyglossia (#2953).
* HTML writer: Ensure mathjax link is added when math appears in footnote
(#2881). Previously if a document only had math in a footnote, the
MathJax link would not be added.
* EPUB writer: set `navpage` variable on nav page.
This allows templates to treat it differently.
* DocBook writer:
+ Use docbook5 if `writerDocbook5` is set (Ivo Clarysse).
+ Properly handle `ulink`/`link` (Ivo Clarysse).
* EPUB reader:
+ Unescape URIs in spine (#2924).
+ EPUB reader: normalise link id (Mauro Bieg).
* Docx Reader:
+ Parse `moveTo` and `moveFrom` (Jesse Rosenthal).
`moveTo` and `moveFrom` are track-changes tags that are used when a
block of text is moved in the document. We now recognize these tags and
treat them the same as `insert` and `delete`, respectively. So,
`--track-changes=accept` will show the moved version, while
`--track-changes=reject` will show the original version.
+ Tests for track-changes moving (Jesse Rosenthal).
* ODT, EPUB, Docx readers: throw `PandocError` on unzip failure
(Jesse Rosenthal) Previously, `readDocx`, `readEPUB`, and `readOdt`
would error out if zip-archive failed. We change the archive extraction
step from `toArchive` to `toArchiveOrFail`, which returns an Either value.
* Markdown, HTML readers: be more forgiving about unescaped `&` in
HTML (#2410). We are now more forgiving about parsing invalid HTML with
unescaped `&` as raw HTML. (Previously any unescaped `&`
would cause pandoc not to recognize the string as raw HTML.)
* Markdown reader:
+ Fix pandoc title blocks with lines ending in 2 spaces (#2799).
+ Added `-s` to markdown-reader-more test.
* HTML reader: fixed bug in `pClose`. This caused exponential parsing
behavior in documnets with unclosed tags in `dl`, `dd`, `dt`.
* MediaWiki reader: Allow spaces before `!` in MediaWiki table header
(roblabla).
* RST reader: Support `:class:` option for code block in RST reader
(Sidharth Kapur).
* Org reader (all Albert Krewinkel, except where noted otherwise):
+ Stop padding short table rows.
Emacs Org-mode doesn't add any padding to table rows. The first
row (header or first body row) is used to determine the column count,
no other magic is performed.
+ Refactor rows-to-table conversion. This refactors
the codes conversing a list table lines to an org table ADT.
The old code was simplified and is now slightly less ugly.
+ Fix handling of empty table cells, rows (Albert Krewinkel, #2616).
This fixes Org mode parsing of some corner cases regarding empty cells
and rows. Empty cells weren't parsed correctly, e.g. `|||` should be
two empty cells, but would be parsed as a single cell containing a pipe
character. Empty rows where parsed as alignment rows and dropped from
the output.
+ Fix spacing after LaTeX-style symbols.
The org-reader was dropping space after unescaped LaTeX-style symbol
commands: `\ForAll \Auml` resulted in `∀Ä` but should give `∀ Ä`
instead. This seems to be because the LaTeX-reader treats the
command-terminating space as part of the command. Dropping the trailing
space from the symbol-command fixes this issue.
+ Print empty table rows. Empty table rows should not
be dropped from the output, so row-height is always set to be at least 1.
+ Move parser state into separate module.
The org reader code has become large and confusing. Extracting smaller
parts into submodules should help to clean things up.
+ Add support for sub/superscript export options.
Org-mode allows to specify export settings via `#+OPTIONS` lines.
Disabling simple sub- and superscripts is one of these export options,
this options is now supported.
+ Support special strings export option Parsing of special strings
(like `...` as ellipsis or `--` as en dash) can be toggled using the `-`
option.
+ Support emphasized text export option. Parsing of emphasized text can
be toggled using the `*` option. This influences parsing of text marked
as emphasized, strong, strikeout, and underline. Parsing of inline math,
code, and verbatim text is not affected by this option.
+ Support smart quotes export option. Reading of smart quotes can be
toggled using the `'` option.
+ Parse but ignore export options. All known export options are parsed
but ignored.
+ Refactor block attribute handling. A parser state attribute was used
to keep track of block attributes defined in meta-lines. Global state
is undesirable, so block attributes are no longer saved as part of the
parser state. Old functions and the respective part of the parser state
are removed.
+ Use custom `anyLine`. Additional state changes need to be made after
a newline is parsed, otherwise markup may not be recognized correctly.
This fixes a bug where markup after certain block-types would not be
recognized.
+ Add support for `ATTR_HTML` attributes (#1906).
Arbitrary key-value pairs can be added to some block types using a
`#+ATTR_HTML` line before the block. Emacs Org-mode only includes these
when exporting to HTML, but since we cannot make this distinction here,
the attributes are always added. The functionality is now supported
for figures.
+ Add `:PROPERTIES:` drawer support (#1877).
Headers can have optional `:PROPERTIES:` drawers associated with them.
These drawers contain key/value pairs like the header's `id`. The
reader adds all listed pairs to the header's attributes; `id` and
`class` attributes are handled specially to match the way `Attr` are
defined. This also changes behavior of how drawers of unknown type
are handled. Instead of including all unknown drawers, those are not
read/exported, thereby matching current Emacs behavior.
+ Use `CUSTOM_ID` in properties. See above on Org writer changes.
+ Respect drawer export setting. The `d` export option can be used
to control which drawers are exported and which are discarded.
Basic support for this option is added here.
+ Ignore leading space in org code blocks (Emanuel Evans, #2862).
Also fix up tab handling for leading whitespace in code blocks.
+ Support new syntax for export blocks. Org-mode version 9
uses a new syntax for export blocks. Instead of `#+BEGIN_<FORMAT>`,
where `<FORMAT>` is the format of the block's content, the new
format uses `#+BEGIN_export <FORMAT>` instead. Both types are
supported.
+ Refactor `BEGIN...END` block parsing.
+ Fix handling of whitespace in blocks, allowing content to be indented
less then the block header.
+ Support org-ref style citations. The *org-ref* package is an
org-mode extension commonly used to manage citations in org
documents. Basic support for the `cite:citeKey` and
`[[cite:citeKey][prefix text::suffix text]]` syntax is added.
+ Split code into separate modules, making for cleaner code and
better decoupling.
* Added `docbook5` template.
* `--mathjax` improvements:
+ Use new CommonHTML output for MathJax (updated default MathJax URL,
#2858).
+ Change default mathjax setup to use `TeX-AMS_CHTML` configuration.
This is designed for cases where the input is always TeX and maximal
conformity with TeX is desired. It seems to be smaller and load faster
than what we used before. See #2858.
+ Load the full MathJax config to maximize loading speed (KolenCheung).
* Bumped upper version bounds to allow use of latest packages
and compilation with ghc 8.
* Require texmath 0.8.6.2. Closes several texmath-related bugs (#2775,
#2310, #2310, #2824). This fixes behavior of roots, e.g.
`\sqrt[3]{x}`, and issues with sub/superscript positioning
and matrix column alignment in docx.
* README:
+ Clarified documentation of `implicit_header_references` (#2904).
+ Improved documentation of `--columns` option.
* Added appveyor setup, with artefacts (Jan Schulz).
* stack.yaml versions: Use proper flags used for texmath, pandoc-citeproc.
* LaTeX template: support for custom font families (vladipus).
Needed for correct polyglossia operation with Cyrillic fonts and perhaps
can find some other usages. Example usage in YAML metadata:
fontfamilies:
- name: \cyrillicfont
font: Liberation Serif
- name: \cyrillicfonttt
options: Scale=MatchLowercase
font: Liberation
* Create unsigned msi as build artifact in appveyor build.
* On travis, test with ghc 8.0.1; drop testing for ghc 7.4.1.
## pandoc 1.17.0.3 (2016-03-24)
* LaTeX writer: Fixed position of label in figures (#2813).
Previously the label wasn't in the right place, and `\ref`
wouldn't work properly.
* Added .tei test files to pandoc.cabal so they'll be included
in tarball (#2811).
* Updated copyright dates.
## pandoc 1.17.0.2 (2016-03-23)
* Fixed serious regression in `htmlInBalanced`, which caused
newlines to be omitted in some raw HTML blocks in Markdown
(#2804).
## pandoc 1.17.0.1 (2016-03-21)
* File scope is no longer used when there are no input files (i.e.,
when input comes from stdin). Previously file scope was triggered
when the `json` reader was specified and input came from `stdin`,
and this caused no output to be produced. (Fix due to Jesse Rosenthal;
thanks to Fedor Sheremetyev for calling the bug to our attention.)
* Improved documentation of templates (#2797).
## pandoc 1.17 (2016-03-20)
* Added `--file-scope` option (Jesse Rosenthal).
By default pandoc operates on multiple files by first concatenating
them (around extra line breaks) and then processing the joined file. So
it only parses a multi-file document at the document scope. This has the
benefit that footnotes and links can be in different files, but for
some purposes it is useful to parse the individual files first
and then combine their outputs (e.g. when the files use footnotes
or links with the same labels). The `--file-scope` option causes
pandoc to parse the files first, and then combine the parsed output,
instead of combining before parsing. `--file-scope` is selected
automatically for binary input files (which cannot be concatenated)
and for pandoc json.
* Add TEI Writer (Chris Forster) and `tei` output format.
* Added a general `ByteStringReader` with warnings, used by the docx
reader (API change, Jesse Rosenthal).
* Add `readDocxWithWarnings` (API change, Jesse Rosenthal).
* Changed type of `Shared.uniqueIdent` argument from
`[String]` to `Set String`. This avoids performance problems in documents
with many identically named headers (API change, #2671).
* Removed `tex_math_single_backslash` from `markdown_github` options
(#2707).
* Make language extensions as well as full language names
trigger syntax highlighting. For example, `py` will now work as
well as `python` (jgm/highlighting-kate#83).
* Added `institute` variable to latex, beamer templates (Fraser
Tweedale, Josef Svenningsson).
* Docx reader (Jesse Rosenthal):
+ Handle alternate content. Some word functions (especially graphics)
give various choices for content so there can be backwards compatibility.
+ Don't turn numbered headers into lists.
+ Docx Reader: Add state to the parser, for warnings
+ Update feature checklist in source code.
+ Get rid of `Modifiable` typeclass.
+ Add tests for adjacent hyperlinks.
+ Add a "Link" modifier to `Reducible`. We want to make sure that
links have their spaces removed, and are appropriately smushed
together (#2689).
* HTML reader:
+ Fixed behavior of base tag (#2777).
If the base path does not end with slash, the last component
will be replaced. E.g. base = `http://example.com/foo`
combines with `bar.html` to give `http://example.com/bar.html`.
If the href begins with a slash, the whole path of the base
is replaced. E.g. base = `http://example.com/foo/` combines
with `/bar.html` to give `http://example.com/bar.html`.
+ Rewrote `htmlInBalanced`. This version avoids an exponential
performance problem with `<script>` tags, and it should be faster
in general (#2730).
+ Properly handle an empty cell in a simple table (#2718).
+ Handle multiple `<meta>` tags with same name. Put them in a list
in the metadata so they are all preserved, rather than (as before)
throwing out all but one..
* Markdown reader:
+ Improved pipe table parsing (#2765).
+ Allow `+` separators in pipe table cells. We already allowed
them in the header, but not in the body rows, for some reason.
This gives compatibility with org-mode tables.
+ Don't cross line boundary parsing pipe table row.
Previously an Emph element could be parsed across the newline
at the end of the pipe table row.
+ Use `htmlInBalanced` for `rawVerbatimBlock`, for better
performance (#2730).
+ Fixed bug with smart quotes around tex math.
* LaTeX reader:
+ Handle interior `$` characters in math (#2743). For example,
`$$\hbox{$i$}$$`.
+ `inlineCommand` now gobbles an empty `{}` after any command (#2687).
This gives better results when people write e.g. `\TeX{}` in Markdown.
+ Properly handle LaTeX "math" environment as inline math (#2171).
* Textile reader: Support `>`, `<`, `=`, `<>` text alignment attributes.
Closes #2674.
* Org reader (Albert Krewinkel):
+ Prefix even empty figure names with "fig:" (#2643). The
convention used by pandoc for figures is to mark them by prefixing
the name with `fig:`. The org reader failed to do this if a figure
had no name.
+ Refactor link-target processing (#2684).
* ConTeXt writer: Fix whitespace at line beginning in line blocks (#2744).
Thanks to @c-foster.
* HTML writer: Don't include alignment attribute for default table columns.
Previously these were given "left" alignment. Better to leave off
alignment attributes altogether (#2694).
* Markdown writer: Use hyphens for YAML metadata block bottom line, for
better compatibility with other Markdown flavors (Henrik Tramberend).
* LaTeX writer:
+ Use image identifier to create a label and hypertarget for
figures (Mauro Bieg).
+ Avoid double toprule in headerless table with caption (#2742).
+ Clean up options parser (Jesse Rosenthal).
+ Treat `memoir` template with `article` option as article, instead
of treating all `memoir` templates as books.
+ Allow more flexible table alignment (Henrik Tramberend, #2665).
New default is not to include `[c]` option (which is the default
anyway if no positioning is specified). Now LaTeX emplates can
control the overall table alignment in a document by setting the
longtable length variables `LTleft` and `LTright`. For example,
`\setlength\LTleft\parindent\setlength\LTright\fill`
will create left-aligned tables that respect paragraph indentation.
* Docx writer: Handle image alt text (#2754, Mauro Bieg).
* Org writer - pass through RawInline with format "org".
* DokuWiki writer: use `$$` for display math.
* Custom writer: Pass attributes parameter to CaptionedImage (#2697).
* Make protocol-relative URIs work again (#2737).
* make_osx_package.sh: Use env variable for developer id certs.
* Raise `tagsoup` lower bound to 0.13.7 to fix entity-related
problems (#2734).
* Allow `zip-archive` 0.3.
* Allow `aeson` 0.11.
## pandoc 1.16.0.2 (2016-01-12)
* Depend on deepseq rather than deepseq-generics (fpco/stackage#1096).
* Fixed regression in latex smart quote parsing (#2645).
In cases where a match was not found for a quote, everything
from the open quote to the end of the paragraph was being dropped.
## pandoc 1.16.0.1 (2016-01-10)
* Fixed regression with `--latex-engine` (#2618). In 1.16
`--latex-engine` raises an error if a full path is given.
* Org reader: Fix function dropping subtrees tagged `:noexport`
(Albert Krewinkel, #2628):
* Markdown reader: renormalize table column widths if they exceed 100%
(#2626).
* Textile reader: don't allow block HTML tags in inline contexts.
The reader previously did allow this, following redcloth,
which happily parses
Html blocks can be <div>inlined</div> as well.
as
<p>Html blocks can be <div>inlined</div> as well.</p>
This is invalid HTML. The above sample now produces;
<p>Html blocks can be</p>
<div>
<p>inlined</p>
</div>
<p>as well.</p>
* Improved default template lookup for custom lua scripts (#2625).
Previously, if you tried to do `pandoc -s -t /path/to/lua/script.lua`,
pandoc would look for the template in
`~/.pandoc/templates/default./path/to/lua/script.lua`.
With this change it will look in the more reasonable
`~/.pandoc/templates/default.script.lua`. This makes it possible to
store default templates for custom writers.
* RST, Markdown writers: Fixed rendering of grid tables with blank rows
(#2615).
* LaTeX writer: restore old treatment of Span (#2624). A Span is
now rendered with surrounding `{}`, as it was before 1.16.
* Entity handling fixes: improved handling of entities like
`⟨` that require a trailing semicolon. Allow uppercase
`x` in numerical hexadecimal character references, working
around a tagsoup bug.
* `stack.yaml` - use lts-4.0, but with older aeson to avoid excessive
memory use on compile. With aeson 0.10 we were getting an out of
memory error on a 2GB Ubuntu 64-bit VM.
* Improved deb package creation script. Made `DPKGVER` work.
Renamed `COMMIT` to `TREE`. You should now be able to do
`TREE=1.16.0.1 DPKGVER=2 make deb`.
## pandoc 1.16 (2016-01-02)
* Added `Attr` field to `Link` and `Image` (Mauro Bieg, #261, API change).
+ Added syntax for link and image attributes to pandoc's Markdown.
+ Updated readers and writers to use link and image attributes
when appropriate.
+ Support image attributes in Docx, Textile, RST readers.
* Renamed link attribute extensions. The old `link_attributes` is
now `mmd_link_attributes`, and `link_attributes` now enables the
new pandoc-style link and image attributes (API change).
Note: this change could break some existing workflows.
* Implemented `SoftBreak` and new `--wrap` option (#1701, API change).
Added threefold wrapping option.
+ Command line option: deprecated `--no-wrap`, added
`--wrap=[auto|none|preserve]`
+ Added `WrapOption`, exported from `Text.Pandoc.Options`
+ Changed type of `writerWrapText` in `WriterOptions` from
`Bool` to `WrapOption`.
+ Modified `Text.Pandoc.Shared` functions to allow `SoftBreak`.
+ Supported `SoftBreak` in readers and writers.
* Text.Pandoc.Options: Added `writerDpi` to `WriterOptions` (API
change, Mauro Bieg).
* Added `--dpi` command-line option (Mauro Bieg).
* Rationalized behavior of `--no-tex-ligatures` and `--smart` (#2541).
This change makes `--no-tex-ligatures` affect the LaTeX reader
as well as the LaTeX and ConTeXt writers. If it is used,
the LaTeX reader will parse characters `` ` ``, `'`, and `-`
literally, rather than parsing ligatures for quotation marks
and dashes. And the LaTeX writer will print unicode quotation
mark and dash characters literally, rather than converting
them to the standard ASCII ligatures. Note that `--smart` has
no effect on the LaTeX reader. `--smart` is still the default
for all input formats when LaTeX or ConTeXt is the output format,
*unless* `--no-tex-ligatures` is used.
Some examples to illustrate the logic:
```
% echo "'hi'" | pandoc -t latex
`hi'
% echo "'hi'" | pandoc -t latex --no-tex-ligatures
'hi'
% echo "'hi'" | pandoc -t latex --no-tex-ligatures --smart
‘hi’
% echo "'hi'" | pandoc -f latex --no-tex-ligatures
<p>'hi'</p>
% echo "'hi'" | pandoc -f latex
<p>’hi’</p>
```
* Removed deprecated options `--offline` and `--html5`.
* Fixed language code for Czech (`cs` not `cz`) (#2597).
* Implemented `east_asian_line_breaks` extension (#2586).
In `Text.Pandoc.Options`, added `Ext_east_asian_line_breaks` constructor
to `Extension` (API change). This extension is like
`ignore_line_breaks`, but smarter -- it only ignores line breaks
between two East Asian wide characters. This makes it better suited
for writing with a mix of East Asian and non-East Asian scripts.
* Added support for PDF creation via `wkhtmltopdf`.
To use this: `pandoc -t html5 -o result.pdf` (and add `--mathjax`
if you have math.) Margins can be set using the variables
`margin-top`, `margin-bottom`, `margin-left`, `margin-right`.
Other styling can be done through CSS.
* Fixed cite key parsing regression (jgm/pandoc-citeproc#201).
We were capturing final colons as in `[@foo: bar]`; the citation id
was being parsed as `@foo:`.
* ICML writer:
+ Fixed image syntax for local files (#2589).
+ Changed type of `writeICML` (Mauro Bieg).
API change: It is now `WriterOptions -> Pandoc -> IO String`.
Also handle new image attributes.
+ Intersperse line breaks instead of appending them to
every `ParagraphStyleRange` (Mauro Bieg, #2501).
+ Add `Cite` style to citations (Mauro Bieg).
+ Added figure handling (#2590, Mauro Bieg).
+ Better handling of math. Instead of just printing the raw tex,
we now try to fake it with unicode characters.
* HTML writer: Include `example` class for example lists (#2524).
* ODT/OpenDocument writer: improved image attributes (Mauro Bieg).
+ Support for percentage widths/heights
+ Use `Attr` instead of title to get dimensions from ODT walker
to `writeOpenDocument`.
* AsciiDoc writer:
+ Support anchors in spans and divs with id elements
(jgm/pandoc-citeproc#143).
+ Fixed code blocks (#1861).
* Haddock writer: omit formatting inside links, which isn't supported
by Haddock (#2515).
* MediaWiki writer: Fixed spacing issues in table cells.
+ Start cell on new line unless it's a single Para or Plain
(#2606).
+ For single Para or Plain, insert a space after the `|` to
avoid problems when the text begins with a character like
`-` (#2604).
* Beamer writer: mark frame as fragile when it contains verbatim (#1613).
* LaTeX writer:
+ Add support for GAP highlighting using listings (Raniere Silva).
+ Consider `header-includes` content as well as templates
when determining whether to use csquotes (Andreas Lööw).
+ Create defaults for geometry using `margin-left` etc.
If `geometry` has no value, but `margin-left`, `margin-right`,
`margin-top`, and/or `-margin-bottom` are given, a default value
for `geometry` is created from these. Note that these variables
already affect PDF production via HTML5 with `wkhtmltopdf`.
* ConTeXt writer: set default layout based on `margin-left`, etc.
This sets up `\setuplayout` based on the variables `margin-left`,
`margin-right`, `margin-bottom`, and `margin-top`, if no layout
is given.
* Docx writer: better handling of PDF images. Previously we tried
to get the image size from the image even if an explicit size was
specified. Since we still can't get image size for PDFs, this made
it impossible to use PDF images in docx. Now we don't try to get
the image size when a size is already explicitly specified.
* Markdown writer: use raw HTML for link/image attributes when
the `link_attributes` extension is unset and `raw_html` is set (#2554).
* MediaWiki reader: interpret markup inside `<tt>`, `<code>` (#2607).
* LaTeX reader:
+ Improved smart quote parsing (#2555). This fixes redering of
unmatched quotes.
+ Use curly quotes for unmatched ` (#2555).
+ Allow blank space between braced arguments of commands (#2592).
* Markdown reader:
+ Improved pipe table relative widths. Previously pipe table
columns got relative widths (based on the header underscore lines)
when the source of one of the rows was greater in width than the
column width. This gave bad results in some cases where much of
the width of the row was due to nonprinting material (e.g. link
URLs). Now pandoc only looks at printable width (the width of a
plain string version of the source), which should give better results.
Thanks to John Muccigrosso for bringing up the issue.
+ Fixed parsing bug with macros. Previously macro definitions in
indented code blocks were being parsed as macro definitions, not code.
* Textile reader: skip over attribute in image source (#2515).
We don't have a place yet for styles or sizes on images, but
we can skip the attributes rather than incorrectly taking them
to be part of the filename.
* Docx reader: Handle dummy list items (Jesse Rosenthal).
These come up when people create a list item and then delete the
bullet. It doesn't refer to any real list item, and we used to ignore
it.
* CommonMark reader/writer rewritten to use latest `cmark`.
* Fixed Emoji character definitions (#2523). There were many bugs in the
definitions.
* `Text.Pandoc.CSS`:
+ Added `pickStylesToKVs` function to extract multiple properties at
once (API change, Mauro Bieg).
+ Parse CSS that doesn't contain the optional semicolon (Mauro Bieg).
* `trypandoc`: sort drop-down lists.
* Beamer template:
+ Made `\euro` conditional on presence of character.
for xelatex and lualatex, as it is for pdflatex (Andrew Dunning).
+ Moved `header-includes` before setting of title (Thomas Hodgson),
to match the LaTeX template (jgm/pandoc-templates#168).
+ Added `section-titles` variable (defaults to true)
to enable/suppress section title pages in beamer
slide shows (Thomas Hodgson).
+ Moved beamer themes after fonts, so that themes can
change fonts. (Previously the fonts set were being
clobbered by lmodern.sty.) (Thomas Hodgson).
* Beamer/LaTeX template changes (Thomas Hodgson):
+ Added `thanks` variable
+ Use `parskip.sty` when `indent` isn't set (fall back to using
`setlength` as before if `parskip.sty` isn't available).
+ Use `biblio-style` with biblatex.
+ Added `biblatexoptions` variable.
* LaTeX template changes:
+ Added `paper` after `$papersize$` variable in latex template.
Thus you can say `papersize: a4` and the latex will contain
`a4paper`. This change may break some existing workflows; if
you currently specify `a4paper`, you'll get `a4paperpaper` which
is meaningless. However, the change seems worth it, as it will
make the `papersize` variable work uniformly across ConTeXt, LaTeX,
and html->pdf via wkhtmltopdf.
+ Only pass options to color package if `colorlinks` is set
(Andrew Dunning).
+ Make definition of `\euro` conditional in xelatex/lualatex,
as it is already for pdflatex (Andrew Dunning).
+ Removed setting of `subject` in PDF metadata.
This used to be set to the subtitle, but really the subtitle
need not give the subject. Also, `subtitle` can contain formatting,
so we'd need, at least, a plain text version for this.
+ Moved `header-includes` before setting of `\title`, `\author`,
etc. This allows these macros to be redefined.
+ Use `\subtitle` command for `subtitle`, instead of tacking it
on to the title as before. We give a no-op fallback definition if it
is not defined. This change should produce much better results
in classes that support `\subtitle`. With the default article
class, which does not define `\subtitle`, subtitles will no
longer be printed unless the user defines `\subtitle` and
redefines `\maketitle`.
+ Moved redefinitions of `\paragraph` and `\subparagraph` to
before header-includes.
* Context template:
+ Use `simplefonts` for font loading (Paolo Rodríguez). This is
needed for things to work on ConTeXt stable from TeXLive 2015.
+ Revert use of `\setuphead` in title block (Andrew Dunning,
Rik Kabel).
* Update LaTeX/ConTeXt link colour usage (Andrew Dunning).
* Fixed man template so disabling hyphenation actually works.
The command needs to come after .TH.
* Added 'navigation' variable to beamer template (#2543).
Valid values are `empty` (the default), `horizontal`, `vertical`,
and `frame`. Note that this changes the default behavior from
`horizontal` to `empty`. Closes #2543.
* Added `toc` to HTML slide format templates (Andrew Dunning),
so that `--toc` creates a contents slide.
* Added `stack.full.yaml` to build `pandoc-citeproc` as well.
* Allow pipe tables with no body rows (#2556).
Previously this raised a runtime error.
* Shared: Improved `fetchItem` so that `C:/Blah/Blah.jpg` isn't treated
as URL. The Haskell URI parsing routines will accept "C:" as a
scheme, so we rule that out manually. This helps with
`--self-contained` and absolute Windows paths.
* Define a `meta-json` variable for all writers (#2019). This contains
a JSON version of all the metadata, in the format selected for the
writer. So, for example, to get just the YAML metadata, you can run
pandoc with the following custom template: `$meta-json$`. The intent
is to make it easier for static site generators and other tools to get
at the metadata.
* Document limitations of --self-contained (#2553).
* Improved Citations section of README (#2551). Added information
about `link-citations` and a link to the pandoc-citeproc man page.
* `ImageSize`: use `safeRead` instead of `readMaybe`, which isn't
in base < 4.6.
* Allow .adoc file extension for AsciiDoc (Andrew Dunning).
* Improved implicit pandoc-citeproc inclusion.
The filter pandoc-citeproc is automatically used when
`--bibliography` is specified on the command line, unless
`--natbib` or `--biblatex` is used. However, previously this
only worked if `--bibliography` was spelled out in full, and not
if `--biblio` was used.
* reveal.js: Interpret pauses correctly for all headers (#2530).
Previously, when using headers below the slide level, pauses are left
uninterpreted into pauses. In my opinion, unexpected behavior but
intentional looking at the code.
* Remove redundant `center` variable for reveal.js (Andrew Dunning).
* Parsing: Add `extractIdClass`, modified type of `KeyTable` (Mauro
Bieg, API change).
* ImageSize: Added functions for converting between image dimensions
(Mauro Bieg).
* Use lts-3.18 in stack.yaml. This avoids Windows build
issues with the HTTP library.
* Bump version bounds for dependencies.
## pandoc 1.15.2.1 (2015-11-16)
* Added two missing test files, and `stack.yaml`, to
`extra-source-files` so they're included in the source tarball.
* reveal.js template: Fixed parallaxBackground options.
`parallaxBackgroundHorizontal` and `parallaxBackgroundVertical`
need integer values, not strings. (Vaughn Iverson)
## pandoc 1.15.2 (2015-11-15)
* `pandoc my.md -t context -o my.pdf` will now create a PDF using
ConTeXt rather than LaTeX (#2463).
* Fixed omitted `url(...)` in CSS data-uri with `--self-contained` (#2489).
* Added `emoji` Markdown extension, enabled by default in `markdown_github`
(#2523). Added `Ext_emoji` to `Extension` in `Text.Pandoc.Options`
(API change).
* `Text.Pandoc.Readers.HTML.parseTags`: Fixed over-eager raw HTML inline
parsing (#2469). Tightened up the inline HTML parser so it disallows
TagWarnings.
* Derive `Generic` instances for the types in `Text.Pandoc.Options`.
* Org reader:
+ Fix paragraph/list interaction (Albert Krewinkel, #2464).
Paragraphs can be followed by lists, even if there is no blank line
between the two blocks. However, this should only be true if the
paragraph is not within a list, were the preceding block should be
parsed as a plain instead of paragraph (to allow for compact lists).
Thanks to @rgaiacs for bringing this up.
+ Allow toggling header args (Albert Krewinkel, #2269).
Org-mode allows to skip the argument of a code block header argument if
it's toggling a value. Argument-less headers are now recognized,
avoiding weird parsing errors.
+ Fix markup parsing in headers (Albert Krewinkel, #2504).
Markup as the very first item in a header wasn't recognized. This was
caused by an incorrect parser state: positions at which inline markup
can start need to be marked explicitly by changing the parser state.
This wasn't done for headers. The proper function to update the state
is now called at the beginning of the header parser, fixing this issue.
+ Fix emphasis rules for smart parsing (Albert Krewinkel, #2513).
Smart quotes, ellipses, and dashes should behave like normal quotes,
single dashes, and dots with respect to text markup parsing.
+ Require whitespace around definition list markers (#2518).
This rule was not checked before, resulting in bugs with footnotes
and some link types.
* Markdown reader:
+ Pipe tables with long lines now get relative cell widths (#2471).
If a pipe table contains a line longer than the column width (as set by
`--columns` or 80 by default), relative widths are computed based on the
widths of the separator lines relative to the column width. This should
solve persistent problems with long pipe tables in LaTeX/PDF output, and
give more flexibility for determining relative column widths in other
formats, too. For narrower pipe tables, column widths of 0 are used,
telling pandoc not to specify widths explicitly in output formats that
permit this.
+ Improved parser for `mmd_title_block`. We now allow blank metadata
fields. These were explicitly disallowed before.
+ Citation keys can now contain `://`, so URLs and DOIs can be used
as citation keys (jgm/pandoc-citeproc#166).
* Beamer template: fix incompatibility of section slides with natbib.
Natbib (and presumably biblatex) bibliography commands create
their own section. Since these are in frame environments,
we have an incompatibility with the `\AtBeginSection` macro
which creates a special frame when a new section occurs.
(We can't have a frame inside another frame.) This change disables
`\AtBeginSection` inside bibliography slides. Thinks to Yihui Xie for
bringing the problem to my attention. This supersedes #145. See
discussion there.
* Textile reader: don't do smart punctuation unless explicitly asked
(#2480). Note that although smart punctuation is part of the textile
spec, it's not always wanted when converting from textile
to, say, Markdown. So it seems better to make this an option.
* LaTeX reader: Handle `comment` environment (Arata Mizuki).
The `comment` environment is handled in a similar way to the
`verbatim` environment, except that its content is discarded.
* Docx reader: Follow relationships correctly in foot/endnotes (#2258,
Jesse Rosenthal). This fixes a problem with links in notes.
* LaTeX and ConTeXt writers: support `lang` attribute on divs and spans
(mb21). For LaTeX, also collect `lang` and `dir` attributes on spans and
divs to set the `lang`, `otherlangs` and `dir` variables if they aren’t set
already. See #895.
* LaTeX writer:
+ Use proper command for `\textarabic` (mb21).
+ Added `de-CH-1901`, fixed `el-polyton` in `toPloyglossia` (Nick Bart).
+ Use `\hypertarget` and `\hyperlink` for links. This works correctly
to link to Div or Span elements. We now don't bother defining `\label`
for Div or Span elements. Closes jgm/pandoc-citeproc#174.
+ Avoid footnotes in list of figures (#1506).
+ Properly handle footnotes in captions (#1506).
+ Add `\protect` to `\hyperlink` (#2490). Thanks to Hadrien Mary.
+ Set `colorlinks` if `linkcolor`, `urlcolor`, `citecolor`, or
`toccolor` is set (#2508).
* Textile writer: support start number in ordered lists (#2465).
* OpenDocument writer: Allow customization of opendocument
automatic styles. Automatic styles can now be inserted in the
template, which now provides the enclosing `<office:automatic-styles>`
tags (#2520).
* Docx writer: insert space between footnote reference and note (#2527).
This matches Word's default behavior.
* EPUB writer: don't download linked media when `data-external` attribute
set (#2473). By default pandoc downloads all linked media and includes it
in the EPUB container. This can be disabled by setting `data-external` on
the tags linking to media that should not be downloaded. Example:
<audio controls="1">
<source src="http://www.sixbarsjail.it/tmp/bach_toccata.mp3"
type="audio/mpeg"></source>
</audio>
* HTML writer: use width on whole table if col widths sum to < 100%.
Otherwise some browsers display the table with the columns
separated far apart.
* AsciiDoc template: Fix `author` and `date`; add `keywords`,
`abstract` (Andrew Dunning).
* HTML-based templates (Andrew Dunning):
+ Use en dash instead of hyphen between title prefix and title.
+ Add `keywords` to metadata.
+ Add `lang`, `dir`, `quotes` where missing.
+ Always make author and date display conditional.
+ Updated dzslides template from source.
* Man template: make "generated by" comment conditional.
* LaTeX, Beamer templates:
+ Add `babel-otherlangs` for language divs/spans; `babel-newcommands`,
filled by commands that make babel understand the polyglossia-style
language directives (mb21, #137).
+ Improved formatting of conditionals; `$for$` is always provided to allow
multiple options (Andrew Dunning, #141).
+ Use `Ligatures=TeX` rather than `Mapping=tex-text` with `fontspec`
to improve support for LuaTeX (Andrew Dunning, #135).
+ Revise `hyperref` usage (Andrew Dunning, #139, #141):
- use same options for all LaTeX engines;
- add `subtitle` and `keywords` to PDF metadata;
- do not override `hyperref` link coloring without user input, effectively making
the `hidelinks` option the default (removed as a separate variable);
- link colors can be enabled (using a slightly darker version of the old
defaults) using a new `colorlinks` variable, automatically used by
the LaTeX writer when custom colors are specified;
- `pdfborder={0 0 0}` is automatically set by `hyperref` with
`colorlinks`, and is only applied if `colorlinks` is disabled.
* ConTeXt template (Andrew Dunning):
+ New variables for controlling styles: `linkstyle`, `linkcolor`,
`linkcontrastcolor`, `layout`, `pagenumbering`, `whitespace`, `indenting`,
`interlinespace`, `headertext`, `footertext`, `mainfont`, `sansfont`,
`monofont`, `mathfont`, `fontsize`.
+ Default template no longer supports MkII.
+ Improve writing of title block (suppressing numbering of first page).
+ Add `title` `subtitle`, `author`, `date`, `keywords` to PDF metadata.
+ Support `subtitle`, `abstract`.
+ Support list of figures (`lof`), list of tables (`lot`).
+ Disable link styling by default.
+ Define styles for all section types.
+ Enable microtype.
+ Improved formatting of conditionals.
* Beamer template: added code to prevent slide breaks inside paragraphs
(#2422, thanks to Nick Bart). This will matter, in practice, only when
`allowframebreaks` is used. It is especially helpful for bibliography
slides.
* OpenDocument template: Add `<office:automatic-styles>` tag around
automatic styles. The writer now longer provides this (see #2520).
* Restored Text.Pandoc.Compat.Monoid.
* Do not export (<>) from custom Prelude. The Prelude now matches
base 4.8 Prelude's API.
* Don't use custom prelude with ghc 7.10. Use the custom prelude
only for earlier versions. This change makes `stack ghci` and
`cabal repl` work (#2503), at least with ghc 7.10.
* Changed § to % in operators from Odt.Arrows.Utils (#2457).
This prevents problems building haddocks with "C" locale.
* Change default for old-locale flag to False.
* Use stack in deb, osx, and Windows package generators.
* Added Vagrantfile for building deb in vm.
This should help in automating binary package creation. 'make package'
will make the package. 'make package COMMIT=blah' will make the package
from commit blah.
* README:
+ Consistent capitalization for pandoc and Markdown.
+ Fixed `auto_identifiers` examples (Benoit Schweblin).
+ Improved documentation of template variables (Andrew Dunning).
## pandoc 1.15.1 (2015-10-15)
* `pandocVersion` is now defined in `Text.Pandoc.Shared`
and reexported from `Text.Pandoc` (Alex Vong). This allows
writers to access it. (Alex Vong) (API change)
* For `markdown_mmd`, add: `implicit_figures`, `superscripts`,
`subscripts` (#2401).
* Added `odt` as input format (MarLinn). Added new module
`Text.Pandoc.Reader.ODT` (API change). Fully implemented features:
Paragraphs, Headers, Basic styling, Unordered lists, Ordered lists,
External Links, Internal Links, Footnotes, Endnotes, Blockquotes.
Partly implemented features: Citations, Tables.
* Markdown Reader:
+ Add basic tests for each header style (Ophir Lifshitz).
+ Add implicit header ref tests for headers with spaces (Ophir Lifshitz).
+ Skip spaces in headers (Ophir Lifshitz).
+ Handle 'id' and 'class' in parsing key/value attributes (#2396).
`# Header {id="myid" class="foo bar"}`
is now equivalent to `# Header {#myid .foo .bar}`.
+ Use '=' instead of '#' for atx-style headers in markdown+lhs.
(Kristof Bastiaensen)
+ Pipe tables: allow indented columns. Previously the left-hand column
could not start with 4 or more spaces indent. This was inconvenient
for right-aligned left columns. Note that the first (header column)
must still have 3 or fewer spaces indentation, or the table will be
treated as an indented code block.
+ Fix regression: allow HTML comments containing `--`.
Technically this isn't allowed in an HTML comment, but
we've always allowed it, and so do most other implementations.
It is handy if e.g. you want to put command line arguments
in HTML comments.
* LaTeX reader:
+ Don't eat excess whitespace after macros with only optional
arguments (#2446).
+ Support longtable (#2411).
+ Implement `\Cite` (#2335).
+ Support abstract environment. The abstract populates an
`abstract` metadata field.
+ Properly handle booktabs lines. Lines aren't part of the
pandoc table model, so we just ignore them (#2307).
* HTML reader:
+ Handle type attribute on ol, e.g. `<ol type="i">` (#2313).
+ Updated for new automatic header attributes.
+ Add auto identifiers if not present on headers. This makes
TOC linking work properly.
+ Detect `font-variant` with `pickStyleAttrProps` (Ophir Lifshitz).
+ Test `<ol>` type, class, and inline list-style(-type) CSS
(Ophir Lifshitz).
+ Better handling of "section" elements (#2438). Previously
`<section>` tags were just parsed as raw HTML blocks. With
this change, section elements are parsed as Div elements with
the class "section".
* MediaWiki reader: handle unquoted table attributes (#2355).
* DocBook reader:
+ Added proper support for DocBook `xref` elements (Frerich Raabe).
Added `dbContent` field to reader state, so we can lookup
cross refs.
+ Handle `informalexample` (#2319).
* Docx Reader:
+ Create special punctuation test (Ophir Lifshitz).
+ Parse soft, no-break hyphen elements (Ophir Lifshitz).
+ Updated headers test (Ophir Lifshitz). Replaced `styles.xml`
in `headers.docx` with pandoc's current `styles.xml`, which
contains styles for Heading 1 through 6. Added Heading 4
through 7 to the test document. Note that Heading 7 is not
parsed as a Heading because there is no Heading 7 style.
* RST reader: better handling of indirect roles.
Previously the parser failed on this kind of case
.. role:: indirect(code)
.. role:: py(indirect)
:language: python
:py:`hi`
Now it correctly recognizes `:py:` as a code role.
* Org reader:
+ Add auto identifiers if not present on headers
(#2354, Juliusz Gonera).
+ Allow verse blocks to contain empty lines (#2402,
Albert Krewinkel).
* EPUB reader: stop mangling external URLs (#2284).
* RST writer:
+ Don't insert `\ ` when complex expression in matched pairs.
E.g. `` [:sup:`3`] `` is okay; you don't need `` [:sup:`3`\ ] ``.
+ Ensure that `\ ` is inserted when needed before Cite and Span
elements that begin with a "complex" element (jgm/pandoc-citeproc#157).
+ Normalize headers only in "standalone" mode (#2394).
* Haddock writer: escape `*` and `^` (G. Bataille).
* Markdown writer:
+ In TOC, add links to headers (#829).
+ Use unicode super/subscripts for digits in plain output
(when the `superscripts` and `subscripts` extensions are
not enabled).
* Docx writer:
+ Moved invalid character stripping to `formattedString`.
This avoids an inefficient generic traversal (#2356).
+ Use user data directory for `reference.docx` archive.
This allows the test suite to work without installing pandoc first.
It also brings the docx writer in line with the odt writer.
+ Tests: docx writer tests now use `../data` for data directory.
This allows tests to be run without installing first.
+ Tests: Use real jpg (not empty) for docx tests to avoid warning.
* LaTeX writer:
+ Fixed detection of 'chapters' from template.
If a documentclass isn't specified in metadata, but the
template has a hardwired bookish documentclass, act as if
`--chapters` was used. This was the default in earlier
versions, but it has been broken for a little while.
+ Correctly recognize book documentclass in metadata (#2395).
+ Set language-related variables automatically, depending
on the value of the `lang` field, which is now always
assumed to be in BCP47 format (mb21, #1614, #2437).
+ Add `\protect` to `\hyperdef` in inline context. This way we
don't get an error when this is used as a moveable argument (#2136).
+ Support all frame attributes in Beamer.
+ Percent-encode more special characters in URLs (#1640, #2377).
The special characters are '<','>','|','"','{','}','[',']','^', '`'.
* HTML writer:
+ Update KaTeX JS and CSS versions (Emily Eisenberg).
+ For dzslides, add `role="note"` for speaker notes (#1693).
+ Percent-encode more special characters in URLs (#1640, #2377).
The special characters are '<','>','|','"','{','}','[',']','^', '`'.
+ Render Div with class `section` as `<section>` in HTML5.
* EPUB writer:
+ In TOC, replace literal `<br/>` with space (#2105).
+ With `--webtex`, include image file rather than `data:` URI (#2363).
* Native writer: format Div properly, with blocks separated.
* Support bidirectional text output with XeLaTeX, ConTeXt and HTML
(#2191, mb21).
* Reference Docx:
+ Add missing Header 6 style (steel blue) (Ophir Lifshitz).
+ Correct `outlineLvl` for Header styles (Ophir Lifshitz).
* Templates
+ Beamer: Add `innertheme`, `outertheme` variables
(Guilhem Bonnefille, #121). Add space after colon in figure caption.
Integrate recent font and language updates from LaTeX template;
allow use of `mainfont` variable for changing the slide text
in XeTeX and LuaTeX (Andrew Dunning, #131).
+ LaTeX: Add `mainfontoptions`, `sansfontoptions`,
`monofontoptions`, `mathfontoptions`, `fontfamilyoptions`
(Andrew Dunning, #122). Support handling of bidirectional
text (mb21, #120). Improve reliability of superscripts/subscripts
under XeTeX and prevent letters and numbers from appearing on a
different baseline by removing use of the `realscripts` package
(via `xltxtra`). To restore use of OpenType characters for these
features under XeTeX or LuaTeX, add `\usepackage{realscripts}` to
`header-includes` (Andrew Dunning, #130). Remove redundant
reference to `xunicode` (Andrew Dunning, #130). Add `fontenc`,
`indent`, `subparagraph` variables (Andrew Dunning).
Allow use of `hidelinks` variable for `hyperref` package (Hugo Roy,
#113). Prevent package clash with `tufte-latex` and other classes that
include `hyperref` or `color` (Xavier Olive, #115).
+ ConTeXt: Support handling of bidirectional text (mb21, #120).
+ LaTeX and ConTeXt: Use more specific language variables.
Instead of directly using `lang`, we now use `babel-lang` and
`polyglossia-lang` and `context-lang`. These variables are set by
the writers to the necessary values, based on the `lang` variable
(which now always takes a value in BCP47 format). (mb21, #114, #129).
+ HTML: Support handling of bidirectional text (mb21, #120).
Move HTML5 shiv after CSS and fix URL (Andrew Dunning).
Add dir attribute in html5 (Andrew Dunning).
+ reveal.js: Add `controls`, `progress` variables (Grégoire Pineau, #127).
Add `width`, `height` variables (Anrew Dunning). Update template
from 3.1 source (Andrew Dunning). All configuration options are now
available as variables, but are only be included if set (reveal.js
uses defaults otherwise).
+ man: Added comment stating that the page is autogenerated by pandoc,
giving version. Added `adjusting` and `hyphenate` variables
(Alex Vong, #123).
* epub.css: added selectors for nested emphasis (Pablo Rodriguez).
* MediaBag: ensure that `/` is always used as path separator.
* `sample.lua`: define `CaptionedImage`, add newline at end (#2393).
* Added `--bash-completion` option. This generates a bash completion
script. To use: `eval "$(pandoc --bash-completion)"`.
* Text.Pandoc.Error: Define Typeable and Exception instances
for PandocError (#2386).
* Text.Pandoc.Parsing: `toKey`: strip off outer brackets.
This makes keys with extra space at the beginning and end
work: e.g.
[foo]: bar
[ foo ]
will now be a link to bar (it wasn't before).
* Text.Pandoc: disable `auto_identifiers` for epub.
The epub writer inserts its own auto identifiers;
this is more complex due to splitting into "chapter" files.
* Renamed Text.Pandoc.Compat.Locale -> Text.Pandoc.Compat.Time.
It now reexports Data.Time.
* Use custom Prelude to avoid compiler warnings.
+ The (non-exported) prelude is in prelude/Prelude.hs.
+ It exports Monoid and Applicative, like base 4.8 prelude,
but works with older base versions.
+ It exports (<>) for mappend.
+ It hides 'catch' on older base versions.
* Added a `stack.ymal` and stack install instructions to INSTALL.
* Clarified what is "out of scope" in README and CONTRIBUTING.md.
* Added note to CONTRIBUTING.md about ghc versions and travis.
* Clarify docs on block quotes. The space after `>` is optional (#2346).
* Removed obsolete reference to default.csl (#2372).
* List all styles in manual for `--reference-docx` (Chris Black)
* Don't capitalize header links in man page.
* Added section on repl to CONTRIBUTING.md.
* README: Added space after backslash in image example (#2329).
* Document details of citation locator terms (Nick Bart).
* Fixed some internal links in README (#2309).
* Improve CSL documentation, variables documentations,
links, and cross-references in README. (Andrew Dunning)
* Fix build failure with `--flags=-https` (Sergei Trofimovich).
* Use `newManager` instead of `withManager` in recent `http-client`.
This avoids a deprecation warning.
* Allow building with latest versions of http-types,
HUnit, criterion, syb, aeson.
* Updated benchmark program for new criterion API.
* Setup.hs: rewrite so as not to use process, directory, filepath.
Using anything outside base is dangerous, since older
versions of ghc may link against two different versions.
* Added appveyor (Windows continuous integration) builds.
* New `.travis.yml`. Autgenerated using `make_travis_yml.hs`.
This script has been modified in a few ways, e.g. to add `GHCOPTS`.
`make .travis.yml` regenerates it based on the tested-with
field of the cabal file.
## pandoc 1.15.0.6 (2015-07-15)
* `--self-contained`: Fixed overaggressive CSS minimization
(#2301, 2286). Previously `--self-contained` wiped out all
spaces in CSS, including semantically significant spaces.
This was a regression from 1.14.x.
* Markdown reader: don't allow bare URI links or autolinks in link
label (#2300). Added test cases.
* `Text.Pandoc.Parsing`, `uri`: Improved bare autolink detection (#2299).
Previously we disallowed `-` at the end of an autolink,
and disallowed the combination `=-`. This commit liberalizes the
rules for allowing punctuation in a bare URI, and adds test cases.
One potential drawback is that you can no longer put a bare
URI in em dashes like this:
`this uri---http://example.com---is an example.`
But in this respect we now match github's treatment of bare URIs.
* HTML writer: support speaker notes in dzslides.
With this change `<div class="notes">` and also `<div class="notes"
role="note">` will be output if `-t dzslides` is used. So we can
have speaker notes in dzslides too. Thanks to maybegeek.
* Updated dzslides template.
* Improved documentation of options to print system default files (#2298).
`--print-default-data-file` and `--print-default-template`.
* DokuWiki writer: use `$..$` for Math instead of `<math>..</math>`
(Tiziano Müller). MathJax seems currently to be the only maintained
math rendering extension for DokuWiki.
* `Text.Pandoc.Shared`: Changed `hierarchicalize` so it treats references
div as top-level header (#2294). This fixes a bug with `--section-divs`,
where the final references section added by pandoc-citeproc, enclosed in
its own div, got nested in the div for the section previous to it.
* Allow vector 0.11.
* Require cmark > 0.4.
## pandoc 1.15.0.5 (2015-07-10)
* HTML writer: Fixed email javascript obfuscation with `mailto:`
URLs (#2280). This fixes a potential security issue. Because
single quotes weren't being escaped in the link portion, a
specially crafted email address could allow javascript code injection.
* RST reader: allow inline formatting in definition list field
names (Lars-Dominik Braun).
* PDF: Make sure `--latex-engine-opt` goes before the filename
on the command line. LaTeX needs the argument to come after
the options (#1779).
* CommonMark writer: fixed tags used for super/subscript.
* ConTeXt template: activate hanging indent for definition lists
(mb21).
* Make cabal require `hsb2hs` >= 0.3.1 if `embed_data_files` specified.
This is done by adding `hookedPrograms` in `Setup.hs`, which allows us
to include `hsb2hs` in Build-Tools in cabal.
* Improved Windows installer (thanks to nkalvi).
+ When per-machine installation is chosen, the system path
is updated instead of the user's.
+ An appropriate default is used for per-machine installation
directory.
+ Admin privileges are no longer required for a per-user install
* Travis: unpack sdist for build to catch packaging bugs.
* Improved documentation on where user templates go (#2272).
## pandoc 1.15.0.4 (2015-07-03)
* Added pandoc.1 man page to the repository. It is no longer
built as part of the cabal build process. (This proved too
fragile.) pandoc.1 can be regenerated (`make man/pandoc.1`)
when `README` is changed.
* Copying of the man page now respects `--destdir` (#2262).
* Improved error messages for filters. User is now informed if
the filter requires an interpreter that isn't found in the path,
or if the filter returns an error status.
## pandoc 1.15.0.3 (2015-07-02)
* Ensure target directory is created when installing man page.
## pandoc 1.15.0.2 (2015-07-02)
* Added files needed for building man page to Extra-Source-Files.
## pandoc 1.15.0.1 (2015-07-01)
* Man page is now built and installed as part of the cabal build
process. Removed Makefile target for man page.
## pandoc 1.15 (2015-07-01)
* Man page changes:
+ Removed `--man1`, `--man5` options (breaking change).
+ Removed `Text.Pandoc.ManPages` module (breaking API change).
+ Makefile target for `man/man1/pandoc.1`. This uses pandoc to
create the man page from README using a custom template and filters.
+ Added `man/` directory with template and filters needed to build
man page.
+ We no longer have two man pages: `pandoc.1` and `pandoc_markdown.5`.
Now there is just pandoc.1, which has all the content from README.
This change was needed because of the extensive cross-references
between parts of the README.
+ Removed old `data/pandoc.1.template` and
`data/pandoc_markdown.5.template`.
* OpenDocument writer: Do not add a carriage return after a hard
line break (Michael Chladek).
* ConTeXt writer:
+ use `\goto` for internal links.
+ Added a `%` at end for `\reference` to avoid spurious space.
* Ignore sandbox on 'make quick'
## pandoc 1.14.1 (2015-06-30)
* Added `--man1` and `--man5` options to pandoc, allowing
pandoc to generate its own man pages. Man pages are no longer
automatically generated in the build process (the process for
this was too complex and prone to failure, #2190). The
`make-pandoc-man-pages` executable has been removed. The
`man/` directory has been removed, and man page templates
have been moved to `data/`. NOTE TO PACKAGERS: You will no
longer find pandoc's man pages in `man/`, but you can
generate them using `pandoc --man1 > pandoc.1` and `pandoc
--man5 > pandoc_markdown.5`.
* Added new unexported module: `Text.Pandoc.ManPages`.
* `README` now acts like a data file (even though it isn't in
`data/`). So, for example, `pandoc --print-default-data-file README`
will produce the README.) This change was required for the `--man1`
and `--man5` options, since the man pages are produced from the
README, but it may be useful for other purposes as well.
* Allow `reference.docx` and `reference.odt` to be used with
`--print-default-data-file` and to shadow defaults if placed in
the user data directory. Note that as of 1.14, we no longer
include these files as data files; instead, we include their
components. This change causes pandoc to behave as if it has
these data files; they are constructed on demand when needed
using `getDefaultReferenceDocx` and `getDefaultReferenceODT`.
* Fixed regression in CSS parsing with `--self-contained` (#2224).
Pandoc 1.14.0.x used css-text to parse the CSS, but its parser
silently drops big sections of CSS. This commit replaces the
use of css-text with a small but principled CSS preprocessor,
which removes whitespace and comments and replaces `url()` with
base 64 data when possible.
* Use `https://` instead of `//` for MathJax and KaTeX CDN URLs (#1920).
This will allow math to work when pages are being viewed locally.
* `Text.Pandoc.Options`: Export `plainExtensions`.
These are the extensions used in `plain` output.
* LaTeX reader: Don't parse `_` and `^` as sub/superscript outside of
math mode; treat them as regular inline text. Normally these will
cause an error in LaTeX, but there are contexts (e.g. `alltt`
environments) where they are allowed.
* HTML reader: allow `<body>` to close `<head>`.
* DocBook reader: support `mediaobject`s and `figures` (#2184, mb21).
* RST reader: Fix reference names with special characters
(Lars-Dominik Braun).
* Textile writer: escape `+` and `-` as entities (#2225).
* DokuWiki writer: Use proper `<code>` tags for code blocks (#2213).
* Plain writer: don't use symbols for super/subscript (#2237).
Simplified code by using `plainExtensions`.
* InDesign writer: Properly escape URLs containing more than one
colon character (gohai).
* Docx writer: Make sure we use dist version of `reference.docx`
(and not the user's version) for certain settings. Taking some
settings values from a user-supplied reference.docx can lead to
corruption. This fixes a regression from the last release (#2249).
* `Text.Pandoc.Shared`: exports `getDefaultReferenceDocx` and
`getDefaultReferenceODT` (API change). These functions have been
removed from the Docx and ODT writers.
* LaTeX template (Xavier Olive):
+ Added `CJKmainfont` and `CJKoptions` variables.
+ Allow dvipsnames (e.g. `MidnightBlue`) for colors (Xavier Olive).
* Epub templates: use `author.role`, not `author.type`.
* Bump cmark version to >= 0.3.4.
* Improved Windows installer (#2205, thanks to nkalvi).
Users can now select a per-user or systemwide install, and can set
the installation path. At the end of installation, the install location
is given. The install location is also now given in the list of
installed programs in Control Panel. Cleaner WiX syntax is used for
setting the path.
* Added `download_stats` target to Makefile.
## pandoc 1.14.0.4 (2015-06-02)
* Added missing commonmark template.
* Improved try pandoc (moved button, show raw command).
## pandoc 1.14.0.3 (2015-06-01)
* Allow compilation with syb 0.5.*.
* Custom writer: fixed some compiler warnings for ghc < 7.10.
## pandoc 1.14.0.2 (2015-05-31)
* Allow building with hslua 0.4.
## pandoc 1.14.0.1 (2015-05-28)
* Fixed problem with building of `reference.docx` and `reference.odt`
when the `embed_data_files` flag is used. Instead of having a phase
of the build where `reference.docx` and `reference.odt` are created
from their constituent data files, we now construct these archives
from their constituents when a `docx` or `odt` is built. The
constituent files have been moved from `extra-source-files` to
`data-files`, and `reference.docx` and `reference.odt` have been
removed. Users can create their own `reference.docx` or
`reference.odt` by using pandoc to create a simple `docx` or `odt`.
`make-reference-files.hs` has been removed, simplifying the build
process (#2187)
* Don't include generated man pages in extra-source-files (#2189).
* Bumped upper bound for aeson.
* ConTeXt writer: create internal link anchors for Div elements with
identifiers. (This is needed for linked citations to work.)
## pandoc 1.14 (2015-05-27)
### New features
* Added `commonmark` as input and output format.
* Added `--verbose` flag for debugging output in PDF production (#1840,
#1653).
* Allow wildcards in `--epub-embed-font` arguments (#1939).
* Added `--latex-engine-opt` option (#969, #1779, Sumit Sahrawat).
* Added `shortcut_reference_links` extension (Konstantin Zudov, #1977).
This is enabled by default for those markdown flavors that
support reading shortcut reference links, namely: `markdown`,
`markdown_strict`, `markdown_github`, `markdown_php`.
If the extension is enabled, the reader parses shortcut reference
links like `[foo]`, and the writer creates such links unless doing
so would cause problems. Users of markdown flavors that support
shortcut reference links should not notice a difference in reading
markdown, but the markdown pandoc produces may differ.
If shortcut links are not desired, the extension can be disabled
in the normal way.
### Behavior changes
* `--toc` is now supported for `docx` output (#458, Nikolay Yakimov).
A "dirty" TOC is created at the beginning of document.
It can be regenerated after the document has been opened.
* An implicit `--filter pandoc-citeproc` is now triggered only when the
`--bibliography` option is used, and not when the `bibliography`
field in metadata is specified (#1849).
* Markdown reader:
+ Reference links with `implicit_header_references` are no longer
case-sensitive (#1606).
+ Definition lists no longer require indentation for first line (#2087).
Previously the body of the definition (after the `:` or `~` marker)
needed to be in column 4. This commit relaxes that requirement,
to better match the behavior of PHP Markdown Extra. So, now
this is a valid definition list:
foo
: bar
+ Resolve a potentially ambiguity with table captions:
foo
: bar
-----
table
-----
Is "bar" a definition, or the caption for the table? We'll count
it as a caption for the table.
+ Disallow headerless pipe tables (#1996), to conform to GFM and PHP
Markdown Extra. Note: If you have been using headerless pipe tables,
this change may cause existing tables to break.
+ Allow pipe tables with header but no body (#2017).
+ Allow a digit as first character of a citation key (Matthias Troffaes).
See https://github.com/jgm/pandoc-citeproc/issues/97
* LaTeX reader:
+ Don't limit includes to `.tex` extension (#1882).
If the extension is not `.tex`, it must be given explicitly in
the `\input` or `\include`.
* Docx reader:
+ Allow numbering in the style file. This allows inherited styles
with numbering (lists) (Jesse Rosenthal).
* Org reader:
+ Support smart punctuation (Craig Bosma).
+ Drop trees with a :noexport: tag (Albert Krewinkel). Trees having a
`:noexport:` tag set are not exported. This mirrors org-mode.
+ Put header tags into empty spans (Albert Krewinkel, #2160).
Org mode allows headers to be tagged: `* Headline :TAG1:TAG2`.
Instead of being interpreted as part of the headline, the tags are now
put into the attributes of empty spans. Spans without textual content
won't be visible by default, but they are detectable by filters. They
can also be styled using CSS when written as HTML.
+ Generalize code block result parsing (Albert Krewinkel).
Previously, only code blocks were recognized as result blocks;
now, any kind of block can be the result.
* Append newline to the LineBreak in Dokuwiki, HTML, EPUB,
LaTeX, MediaWiki, OpenDocument, Texinfo writers (#1924, Tim Lin).
* HTML writer:
+ Add "inline" or "display" class to math spans (#1914).
This allows inline and display math to be styled differently.
+ Include raw latex blocks if `--mathjax` specified (#1938).
+ Require highlighting-kate >= 0.5.14 (#1903).
This ensures that all code blocks will be wrapped in a `div`
with class `sourceCode`. Also, the default highlighting CSS
now adds `div.sourceCode { x-overflow: auto; }`, which means
that code blocks (even with line numbers) will acquire a scroll
bar on screens too small to display them (e.g. mobile phones).
See also jgm/highlighting-kate#65.
* LaTeX writer:
+ Use a declaration for tight lists (Jose Luis Duran, Joseph
Harriott). Previously, pandoc hard-coded some commands to make
tight lists in LaTeX. Now we use a custom command instead,
allowing the styling to be changed in a macro in the header.
(Note: existing templates may need to be modified to include
the definition of this macro. See the current template.)
+ Beamer output: if the header introducing a slide has the
class `fragile`, add the `[fragile]` option to the slide (#2119).
* MediaWiki writer:
+ Use `File:` instead of the deprecated `Image:` for images and
other media files (Greg Rundlett).
* DocBook writer:
+ Render a `Div (id,_,_) [Para _]` element as a `para` element
with an `id` attribute. This makes links to citations work in
DocBook with pandoc-citeproc.
* RST writer:
+ Normalize headings to sequential levels (Nikolay Yakimov).
This is pretty much required by docutils.
+ Treat headings in block quotes, etc as rubrics (Nikolay Yakimov).
+ Better handling of raw latex inline (#1961). We use
`` :raw-latex:`...` `` and add a definition for this role to
the template.
* EPUB writer:
+ Remove `linear=no` from cover `itemref` (#1609).
+ Don't use `sup` element for epub footnotes (#1995).
Instead, just use an a element with class `footnoteRef`.
This allows more styling options, and provides better results
in some readers (e.g. iBooks, where anything inside the a
tag breaks popup footnotes).
+ Take TOC title from `toc-title` metadata field.
* Docx writer:
+ Implemented `FirstParagraph` style (Jesse Rosenthal).
Following the ODT writer, we add the `FirstParagraph` style to the
first text paragraph following an image, blockquote, table, heading,
or beginning of document. This allows it to be styled differently.
The default is for it to be the same as `Normal`.
+ Added `BodyText` style (Jesse Rosenthal).
We apply a `BodyText` style to all unstyled paragraphs. This is,
essentially, the same as `Normal`, except that since not everything
inherits from `BodyText` (the metadata won't, for example, or
the headers or footnote numbers), we can change the text in the body
without having to make exceptions for everything. If we do want to
change *everything*, we can still do it through `Normal`.
+ Altered `Blockquote` style slightly (Jesse Rosenthal).
Since `BlockQuote` derives from `BodyText`, we just want to specify
by default that it won't indent, regardless of what `BodyText` does.
Note that this will not produce any visible difference in the default
configuration.
+ Take TOC title from `toc-title` metadata field (Nikolay Yakimov).
+ Added a style to figure images (Nikolay Yakimov).
Figures with empty captions use style `Figure`.
Figures with nonempty captions use style `Figure with Caption`, which
is based on `Figure`, and additionally has `keepNext` set.
* ODT writer:
+ Added figure captions (Nikolay Yakimov). The following styles are
used for figures:
`Figure` -- for figure with empty caption),
`FigureWithCaption` (based on `Figure`) -- for figure with caption,
`FigureCaption` (based on `Caption`) -- for figure captions.
Also, `TableCaption` (based on `Caption`) is used for table captions.
### API changes
* New `Text.Pandoc.Error` module with `PandocError` type
(Matthew Pickering).
* All readers now return `Either PandocError Pandoc` instead of `Pandoc`
(Matthew Pickering). This allows better handling of errors.
* Added `Text.Pandoc.Writers.CommonMark`, exporting `writeCommonMark`.
* Added `Text.Pandoc.Readers.CommonMark`, exporting `readCommonMark`.
* Derive `Data` and `Typeable` instances for `MediaBag`, `Extension`,
`ReaderOptions`, `EPUBVersion`, `CiteMethod`, `ObfuscationMethod`,
`HTMLSlideVariant`, `TrackChanges`, `WriterOptions` (Shabbaz
Youssefi).
* New `Ext_shortcut_reference_links` constructor for `Extension`
(Konstantin Zudov).
### Bug fixes
* Markdown reader:
+ Allow smart `'` after inline math (#1909, Nikolay Yakimov).
+ Check for tex macros after indented code (#1973).
+ Rewrote `charsInBalancedBrackets` for efficiency.
+ Make sure a closing `</div>` doesn't get included in a
definition list item (#2127).
+ Don't parse bracketed text as citation if it might be a link,
image, or footnote (Nikolay Yakimov).
+ Require space after key in mmd title block (#2026, Nikolay
Yakimov). Require space after key-value delimiter colon in mmd title
block.
+ Require nonempty value in mmd title block (Nikolay Yakimov).
+ Disable all metadata block extensions when parsing
metadata field values (#2026, Nikolay Yakimov). Otherwise we
could get a mmd title block inside YAML metadata, for example.
* HTML reader:
+ Improve self-closing tag detection in `htmlInBalanced` (#2146).
+ Handle tables with `<th>` in body rows (#1859, mb21).
+ Fixed `htmlTag` (#1820). If the tag parses as a comment, we check
to see if the input starts with `<!--`. If not, it's bogus comment
mode and we fail `htmlTag`.
+ Handle `base` tag; if it has an `href` value, this is added to
all relative URLs in links and images.
* DocBook reader:
+ Look inside "info" elements for section titles (#1931).
* Docx reader:
+ Parse images in deprecated vml format (Jesse Rosenthal).
+ Allow sub/superscript verbatims (Jesse Rosenthal).
Verbatim usually shuts off all other run styles, but we don't want it
to shut off sub/superscript.
* LaTeX reader:
+ Handle `tabular*` environment (#1850).
Note that the table width is not actually parsed or taken into
account, but pandoc no longer chokes on it.
+ Ignore options in `\lstinline` rather than raising error (#1997).
+ Add some test cases for simple tables (Mathias Schenner).
+ Handle valign argument in tables (Mathias Schenner) (currently
we just ignore this).
+ Allow non-empty colsep in tables (Mathias Schenner).
The `tabular` environment allows non-empty column separators
with the "@{...}" syntax. Previously, pandoc would fail to
parse tables if a non-empty colsep was present. With this
commit, these separators are still ignored, but the table gets
parsed. A test case is included.
+ Recognize `\newpage` as a block command.
+ Allow block content in `\title{}` (#2001).
+ Check for block-level newcommand aliases in blockCommand (Nikolay
Yakimov).
+ Guard against paragraph starting with inline macro (Nikolay Yakimov).
+ Properly gobble spaces after `\\` (#2007).
* Textile reader:
+ Handle newlines in table cells, and empty cells (#1919).
* Org reader:
+ Allow image links with non-image targets (Hans-Peter Deifel).
This matches behavior of Org-Mode for links like
`[[http://example.com][https://www.haskell.org/static/img/logo.png]]`.
* Docbook writer:
+ Don't print empty id attributes (thanks to Steve Horne).
* HTML writer:
+ Fixed list-style-type for numbered example lists.
Should be "decimal," not "example" (#1902).
+ Do not omit missing `alt` attribute on `img` tag (#1131,
Konstantin Zudov).
+ Allow multiple colgroups in table (#2122).
+ In revealjs, ensure that lists in speaker notes don't add "fragment"
classes, which can cause additional keypresses to be needed to
advance a slide (#1394).
* LaTeX writer:
+ Don't escape `$` in URL (#1913).
+ Don't use listings in headers (Matthew Pickering, #1963).
+ Recognize book documentclass if set in metadata (#1971).
This sets `--chapters` implicitly if the documentclass in metadata
is a book documentclass. Previously this was done only if a book
documentclass was set in a variable.
+ Add a `\label` in `\hyperdef` for Div, Span (or links don't work).
+ Make `mainlang` work when `lang` is in metadata (#2174).
* Texinfo writer:
+ Fix wrapping by using breakable spaces (Tim Lin).
* RST writer:
+ Fixed toc depth in RST writer. Previously the depth was being
rendered as a floating point number with a decimal point.
* Markdown writer:
+ Improved escaping (#2086). `<` should not be escaped as `\<`, for
compatibility with original Markdown. We now escape `<` and `>`
with entities. Also, we now backslash-escape square brackets.
+ Avoid introducing spurious list items through wrapping (#1946).
+ Don't emit span tags if plain or raw HTML disabled.
* MediaWiki writer:
+ Convert spaces to underscores in wikilink URL (#1982), like MediaWiki.
* AsciiDoc writer:
+ Insert some needed blank lines (#1860).
+ Avoid wrapping after list marker (#1858).
* EPUB writer:
+ Properly handle internal links to IDs in spans, divs (#1884).
+ Use plain writer for metadata dc: fields (#2121).
This gives better results when we have, e.g. multiple paragraphs.
Note that tags aren't allowed in these fields.
+ Properly handle image links without an extension (#1855).
+ Improved chapter splitting and internal link rewriting (#1887,
#2162, #2163). This will ensure that internal links work and
that the references section produced by pandoc-citeproc is
in its own chapter.
+ Fixed handling of svg images (#2183).
* ICML writer:
+ Better handling of raw blocks and inlines (#1951).
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.
+ Fixed image URIs in ICML output (gohai).
* Custom writer:
+ Raise error if loadstring returns an error status.
+ Raise `PandocLuaException` instead of using 'error'.
Eventually we'll change the return type so that no exception
is involved, but at least this can be trapped.
+ Use UTF-8 aware bytestring conversion.
+ Set foreign encoding to UTF-8 (Nikolay Yakimov, #2101, #1634).
Also factored out ByteString, since it's only used as an intermediate
representation.
* Docx writer:
+ Copy hyphenation settings from reference.docx (Nikolay Yakimov).
+ Filter out illegal XML characters (#1992, Matthew Pickering).
+ Added `noProof` to docx syntax highlighting `SourceCode` style.
+ Added footnotes id -1 and 0 (Jesse Rosenthal).
Word uses, by default, footnotes with id -1 and 0 for separators. If a
user modifies `reference.docx`, they will end up with a `settings.xml`
file that references these footnotes, but no such footnotes in the
document. This will produce a corruption error. Here we add these to the
document and `settings.xml` file, so future modifications won't break
the file.
+ Handle lists correctly inside table cells (Jesse Rosenthal).
Previously we didn't transform lists inside table cells.
+ Set firstRow information in tables (Nikolay Yakimov).
+ Don't replace `SourceCode` style in `reference.docx` if it is defined
there (Nikolay Yakimov, #1872). If `--no-highlight` specified, remove
any `SourceCode` and `*Tok` styles in `reference.docx`.
+ Attempt to match international style names (#1607, Nikolay Yakimov).
+ Set these styles as custom (Nikolay Yakimov): `Author`, `Abstract`,
`Compact`, `Image Caption`, `Table Caption`, `Definition Term`,
`Definition`, `First Paragraph`.
+ Rename these styles to correspond with Word `Normal.dotm` (Nikolay
Yakimov): `Block Quote -> Block Text`, `Link -> Hyperlink`,
`Footnote Ref -> Footnote Reference`.
+ Added `Caption` style (Nikolay Yakimov).
+ Changed these styles' inheritance (Nikolay Yakimov):
`Image Caption <- Caption`, `Table Caption <- Caption`.
+ Remove `SourceCode` style from `reference.docx` (#1872).
This is added automatically by the docx writer.
+ Added toc heading style to `reference.docx` (Nikolay Yakimov).
* `Text.Pandoc.PDF`
+ Don't suggest "Try xelatex" if xelatex already in use (mb21, #1832).
+ More comprehensible errors on image conversion (#2067).
EPS can't be supported without shelling out to something like
ImageMagick, but at least we can avoid mysterious error messages.
* `Text.Pandoc.Shared`:
+ Make safeRead safe (#1801, Matthew Pickering).
+ Added `mapLeft`, `hush` (Matthew Pickering).
* `Text.Pandoc.Pretty`:
+ Remove partial function (Matthew Pickering).
* `Text.Pandoc.SelfContained`:
+ Add `;charset=utf-8` to script mime type if missing (#1842).
+ Improved building of data URIs (#1940). Now base64 is used except
for `text/*` mime types.
+ `cssURLs` no longer tries to fetch fragment URLs (#2121).
+ Properly handle data URIs in css urls (#2129).
Use a proper CSS parser (adds dependency on `text-css`).
* `Text.Pandoc.UTF8`:
+ Better handling of bare CRs in input files (#2132).
Previously we just stripped them out; now we convert
other line ending styles to LF line endings.
* `Text.Pandoc.ImageSize`:
+ Fixed some exif header parsing bugs (#1834).
+ Make imageSize return an Either, not a Maybe (#1834).
Use `runGetOrFail` (with `binary >= 0.7`) to return `Left` on
parse failure (rather than `error`).
+ Improved warnings when image size can't be determined.
+ Removed error landmines (Matthew Pickering).
* Added woff2 to MIME types (Alfred Wechselberger).
* pandoc: When a binary input format is used, warn that file
arguments past the first one are being ignored (Matthew Pickering).
### Template changes
* LaTeX template:
+ Degrade gracefully if `\paragraph` not defined.
+ Include `grffile` together with `graphicx` (#2074).
This properly handles filenames containing spaces and dots.
+ Redefine `\paragraph`, `\subparagraph`... to behave more
like section headers (#1658).
+ Import hyperref before polyglossia to avoid an error with xelatex,
"please load package hyperref before bidi package" (Nick Bart).
+ Added `toccolor` variable to control link color in toc (Kaixhin).
* LaTeX, Beamer templates:
+ Provide `\tightlist`, which is now used by the LaTeX writer.
+ Use polyglossia in beamer (#85).
+ Use `bibliography` instead of `biblio-files`
(#1661). Also use `\addbibresource` instead of `\bibliography` for
biblatex.
+ Added `setotherlanguages` in polyglossia. This uses an `otherlang`
variable that is derived from a comma-separated list in `lang`;
the last language is `mainlang` and the others are `otherlang`.
* EPUB templates:
+ Use `div`, not `p`, for "rights" on title page.
+ Added header-includes, include-before, include-after (#1987).
* OpenDocument template:
+ Use `text:p` instead of `text:h` for title.
Using `text:h` causes problems with numbering. Closes #2059.
Thanks to @nkalvi for diagnosing this.
* reveal.js template:
+ Link to non-minified css, js. The minified versions no longer
ship with the library.
+ Correctly include style CSS (#1949).
+ New configurable options options: `center`, `maxScale`, `slideNuber`
(Dmitry Smirnov, pandoc-templates#89).
+ Moved custom CSS after theme. This allows custom CSS to modify
themes, instead of being replaced by them.
+ Allow `center` to be set to false.
### Under the hood improvements
* Removed pre-built `reference.docx` and `reference.odt` (Nikolay
Yakimov). Instead the repository now includes the component text files,
and the zipped binaries are built from these using a helper
program, `make-reference-files`. This should make maintenance of
these components easier going forward.
* `Text.Pandoc.Parsing`:
+ Added new `<+?>` combinator (Nikolay Yakimov).
+ Added `stateHeaderKeys` to `ParserState`.
* `make_deb.sh` fixes:
+ Detect architecture.
+ Add Installed-Size to debian package control file (#1900).
+ Use `fakeroot` to get permissions right.
+ Use `mkdir` and `cp` instead of `install`.
+ Set permissions of directories to 755.
+ Install in `/usr` rather than `/usr/local`.
+ Compress man pages.
+ Combine copyright files for `pandoc`, `pandoc-citeproc`.
* Added `Text.Pandoc.Compat.Locale` and `old-locale` flag
to assist with transition to `time` 1.5.
* Updated CONTRIBUTING.md with information about issue tags (Matthew
Pickering).
* Updated travis installs to the new sudo-less syntax (Tim Lin).
* Updated dependency version bounds.
* EPUB tests: don't use `joinPath`, which varies across platforms.
Instead, use a forward-slash to join paths, regardless of the
platform. This matches the way `MediaBag` now works.
* Clarify JSON input and output in usage message (Caleb McDaniel).
* Improved INSTALL instructions.
* Always build man pages. Removed make-pandoc-man-pages flag.
* Makefile: removed man target, now that we generate man pages by default.
* README:
+ Fixed typos (J. Lewis Muir).
+ Added documentation on backtick_code_blocks (#2135, Nikolay Yakimov).
+ Added note on in-field markup in biblio databases (Nick Bart).
+ Fixed misleading example of raw HTML block.
+ Various minor formatting and consistency fixes for the program
options (Andreas Lööw).
+ Made definition lists for options all "loose" for consistency.
+ Added YAML biblio format to table, and note on `pandoc-citeproc`'s
`--bib2json` and `--bib2yaml` options (Nick Bart).
+ Removed obsolete reference to `mods2yaml` (Nick Bart).
+ Added section on syntax highlighting.
+ Documented `toccolor` variable.
## pandoc 1.13.2.1 (2015-04-15)
* Updated to build with ghc 7.10.1.
* Bumped package upper bounds for filepath, blaze-html, blaze-markup.
## pandoc 1.13.2 (2014-12-20)
* TWiki Reader: add new new twiki reader (API chaneg, Alexander Sulfrian).
* Markdown reader:
+ Better handling of paragraph in div (#1591).
Previously text that ended a div would be parsed as Plain
unless there was a blank line before the closing div tag.
+ Don't treat a citation as a reference link label (#1763).
+ Fix autolinks with following punctuation (#1811).
The price of this is that autolinked bare URIs can no longer
contain `>` characters, but this is not a big issue.
+ Fix `Ext_lists_without_preceding_blankline` bug (#1636, Artyom).
+ Allow `startnum` to work without `fancy_lists`. Formerly
`pandoc -f markdown-fancy_lists+startnum` did not work properly.
* RST reader (all Daniel Bergey):
+ Parse quoted literal blocks (#65). RST quoted literal blocks are
the same as indented literal blocks (which pandoc already supports)
except that the quote character is preserved in each line.
+ Parse RST class directives. The class directive accepts one or more
class names, and creates a Div value with those classes. If the
directive has an indented body, the body is parsed as the children of
the Div. If not, the first block following the directive is made a
child of the Div. This differs from the behavior of rst2xml, which
does not create a Div element. Instead, the specified classes are
applied to each child of the directive. However, most Pandoc Block
constructors to not take an Attr argument, so we can't duplicate this
behavior.
+ Warn about skipped directives.
+ Literal role now produces Code. Code role should have "code" class.
+ Improved support for custom roles
- Added `sourceCode` to classes for `:code:` role, and anything
inheriting from it.
- Add the name of the custom role to classes if the Inline
constructor supports Attr.
- If the custom role directive does not specify a parent role,
inherit from the `:span:` role.
This differs somewhat from the `rst2xml.py` behavior. If a custom
role inherits from another custom role, Pandoc will attach both
roles' names as classes. `rst2xml.py` will only use the class of
the directly invoked role (though in the case of inheriting from a
`:code:` role with a `:language:` defined, it will also provide the
inherited language as a class).
+ Warn about ignored fields in role directives.
* LaTeX reader:
+ Parse label after caption into a span instead of
inserting an additional paragraph of bracketed text (#1747).
+ Parse math environments as inline when possible (#1821).
+ Better handling of `\noindent` and `\greektext` (#1783).
+ Handle `\texorpdfstring` more gracefully.
+ Handle `\cref` and `\sep` (Wikiwide).
+ Support `\smartcite` and `\Smartcite` from biblatex.
* HTML reader:
+ Retain display type of MathML output (#1719, Matthew Pickering).
+ Recognise `<br>` tags inside `<pre>` blocks (#1620, Matthew Pickering).
+ Make `embed` tag either block or inline (#1756).
* DocBook reader:
+ Handle `keycombo`, `keycap` (#1815).
+ Get string content in inner tags for literal elements (#1816).
+ Handle `menuchoice` elements better, with a `>` between (#1817).
+ Include `id` on section headers (#1818).
+ Document/test "type" as implemented (Brian O'Sullivan).
+ Add support for calloutlist and callout (Brian O'Sullivan).
We treat a calloutlist as a bulleted list. This works well in practice.
+ Add support for `classname` (Bryan O'Sullivan).
* Docx reader:
+ Fix window path for image lookup (Jesse Rosenthal).
Don't use os-sensitive "combine", since we always want the paths in our
zip-archive to use forward-slashes.
+ Single-item headers in ordered lists are headers (Jesse Rosenthal).
When users number their headers, Word understands that as a single item
enumerated list. We make the assumption that such a list is, in fact,
a header.
+ Rewrite rewriteLink to work with new headers (Jesse Rosenthal).
There could be new top-level headers after making lists, so we have to
rewrite links after that.
+ Use polyglot header list (Jesse Rosenthal).
We're just keeping a list of header formats that different languages
use as their default styles. At the moment, we have English, German,
Danish, and French. We can continue to add to this.
This is simpler than parsing the styles file, and perhaps less
error-prone, since there seems to be some variations, even within a
language, of how a style file will define headers.
+ Remove header class properly in other langs (Jesse Rosenthal).
When we encounter one of the polyglot header styles, we want to remove
that from the par styles after we convert to a header. To do that, we
have to keep track of the style name, and remove it appropriately.
+ Account for external link URLs with anchors. Previously, if a URL
had an anchor, the reader would incorrectly identify it as an
internal link and return only the anchor as URL. (Caleb McDaniel)
+ Fix for Issue #1692 (i18n styles) (Nikolay Yakimov).
* Org reader:
+ Added state changing blanklines (Jesse Rosenthal).
This allows us to emphasize at the beginning of a new paragraph (or, in
general, after blank lines).
+ Fixed bug with bulleted lists:
- a
- b
* c
was being parsed as a list, even though an unindented `*`
should make a heading. See
<http://orgmode.org/manual/Plain-lists.html#fn-1>.
+ Org reader: absolute, relative paths in link (#1741, Albert
Krewinkel). The org reader was too restrictive when parsing links;
some relative links and links to files given as absolute paths
were not recognized correctly.
+ Org reader: allow empty links (jgm/gitit#471, Albert Krewinkel).
This is important for use in gitit, which uses empty links
for wikilinks.
+ Respect indent when parsing Org bullet lists (#1650, Timothy
Humphries). Fixes issue with top-level bullet list parsing.
+ Fix indent issue for definition lists (Timothy Humphries,
see #1650, #1698, #1680).
+ Parse multi-inline terms correctly in definition list (#1649,
Matthew Pickering).
+ Fix rules for emphasis recognition (Albert Krewinkel).
Things like `/hello,/` or `/hi'/` were falsy recognized as emphasised
strings. This is wrong, as `,` and `'` are forbidden border chars and
may not occur on the inner border of emphasized text.
+ Drop COMMENT document trees (Albert Krewinkel).
Document trees under a header starting with the word `COMMENT` are
comment trees and should not be exported. Those trees are dropped
silently (#1678).
+ Properly handle links to `file:target` (Albert Krewinkel).
Org links like `[[file:target][title]]` were not handled correctly,
parsing the link target verbatim. The org reader is changed such that
the leading `file:` is dropped from the link target (see #756, #1812).
+ Parse LaTeX-style MathML entities (#1657, Albert Krewinkel).
Org supports special symbols which can be included using LaTeX syntax,
but are actually MathML entities. Examples for this are
`\nbsp` (non-breaking space), `\Aacute` (the letter A with accent acute)
or `\copy` (the copyright sign ©)
* EPUB reader:
+ URI handling improvements. Now we outsource most of the work to
`fetchItem'`. Also, do not include queries in file extensions (#1671).
* LaTeX writer:
+ Use `\texorpdfstring` for section captions when needed (Vaclav Zeman).
+ Handle consecutive linebreaks (#1733).
+ Protect graphics in headers (Jesse Rosenthal).
Graphics in `\section`/`\subsection` etc titles need to be `\protect`ed.
+ Put `~` before header in list item text (Jesse Rosenthal).
Because of the built-in line skip, LaTeX can't handle a section header
as the first element in a list item.
+ Avoid using reserved characters as `\lstinline` delimiters (#1595).
+ Better handling of display math in simple tables (#1754).
We convert display math to inline math in simple tables,
since LaTeX can't deal with display math in simple tables.
+ Escape spaces in code (#1694, Bjorn Buckwalter).
* MediaWiki writer:
+ Fixed links with URL = text. Previously these were rendered as bare
words, even if the URL was not an absolute URL (#1825).
* ICML writer:
+ Don't force all citations into footnotes.
* RTF writer:
+ Add blankline at end of output (#1732, Matthew Pickering).
* RST writer:
+ Ensure blank line after figure.
+ Avoid excess whitespace after last list item (#1777).
+ Wrap line blocks with spaces before continuations (#1656).
+ Fixed double-rendering of footnotes in RST tables (#1769).
* DokuWiki writer:
+ Better handling of block quotes. This change ensures that
multiple paragraph blockquotes are rendered using native `>`
rather than as HTML (#1738).
+ Fix external images (#1739). Preface relative links with ":",
absolute URIs without. (Timothy Humphries)
* HTML writer:
+ Use protocol-relative URL for mathjax.
+ Put newline btw img and caption paragraph.
+ MathML now outputted with tex annotation (#1635, Matthew Pickering).
+ Add support for KaTeX HTML math (#1626, Matthew Pickering).
This adds `KaTeX` to `HTMLMathMethod` (API change).
+ Don't double render when `email-obfuscation=none` (#1625, Matthew
Pickering).
+ Make header attributes work outside top level (#1711).
Previously they only appeared on top level header elements.
Now they work e.g. in blockquotes.
* ODT writer:
+ Correctly handle images without extensions (#1729).
+ Strip querystring in ODT write (#1682, Todd Sifleet).
* FB2 writer:
+ Add newline to output.
* EPUB writer:
+ Don't add `sourceURL` to absolute URIs (#1669).
+ Don't use unsupported `opf:title-type` for epub2.
+ Include "landmarks" section in nav document for epub3 (#1757).
+ Removed playOrder from navpoint elements in ncx file (#1760).
These aren't required, and they make manual modification of epubs
difficult.
+ Extract title even from structured title.
+ Don't include nav node in spine unless `--toc` was requested.
Previously we included it in the spine with `linear="no"`, leading
to odd results in some readers (#1593).
+ Fixed absolute URI detection (#1672).
+ Correctly resolve relative URIs (#1671).
+ Use regular page template for `nav.xhtml`, including doctype (#1759).
* Docx writer:
+ Put docx table captions above tables (#1641, Nikolay Yakimov).
+ Get the page width from the reference docx file, and use
it to scale images that are too large to fit (Grégory Bataille).
+ Partial fix for #1607 (Nikolay Yakimov). International heading styles
are inferred based on `<w:name val="heading #">` fallback, if there
are no en-US "Heading#" styles
+ Look in user data dir for archive `reference.docx`.
+ Renumber header and footer relationships to avoid collisions (Jesse
Rosenthal). We previously took the old relationship names of the
headers and footer in secptr. That led to collisions. We now make
a map of available names in the relationships file, and then rename
in secptr.
* ConTeXt writer:
+ Add function toLabel (Mark Szepieniec).
This function can be used to sanitize reference labels so that
they do not contain any of the illegal characters \#[]",{}%()|= .
Currently only Links have their labels sanitized, because they
are the only Elements that use passed labels.
* `Text.Pandoc.Shared`:
+ Moved import of `toChunks` outside of CPP conditional (#1590).
+ Fix `inDirectory` to reset to the original directory in case
an exception occurs (Freiric Barral).
* Templates:
+ LaTeX template: load polyglossia before bibtex (jgm/pandoc-templates#70).
Thanks to bluebirch.
+ LaTeX template: Added `\VerbatimFootnotes` if there is verbatim in notes
(#1616).
+ LaTeX template: Add shorthands=off to babel options (#1648).
+ EPUB, EPUB3 templates: Added `id="cover"` to body of cover page.
This aids styling, making it possible for example to set 0 margins
on the title page (#1758).
+ EPUB, EPUB3 templates: Handle structured metadata on titlepage.
Previously we just expected 'title', 'subtitle', 'author', 'date'.
Now we still support those, but also support the format recommended
for epub metadata in the pandoc README:
---
title:
- type: main
text: My Book
- type: subtitle
text: An investigation of metadata
creator:
- role: author
text: John Smith
- role: editor
text: Sarah Jones
identifier:
- scheme: DOI
text: doi:10.234234.234/33
publisher: My Press
rights: (c) 2007 John Smith, CC BY-NC
...
* `Text.Pandoc.Templates.getDefaultTemplate`:
don't fail when called with "fb2" (#1660).
* `Text.Pandoc.Parsing`:
+ Fixed `inlineMath` so it handles `\text{..}` containing `$`.
For example: `$x = \text{the $n$th root of $y$}` (#1677).
+ Change `parseFromString` to fail if not all input is consumed.
(Matthew Pickering)
+ Moved `addWarning` from Markdown reader to `Parsing`, so it can be
used by more readers (API change, Daniel Bergey).
* `Text.Pandoc.Pretty`:
+ Improve performance of `realLength` (Matthew Pickering).
+ Make CR + BLANKLINE = BLANKLINE. This fixes an extra blank line we
were getting at the end of markdown fragments (as well as rst, org,
etc.) (#1705).
* `Text.Pandoc.MIME`:
+ Add mime type for WebVTT (Jason Ronallo).
+ Changed mime type for `otf` to `application/vnd.ms-opentype` (#1761).
This is needed for epub3 validation.
* `Text.Pandoc.MediaBag`:
+ Fix Windows specific path problems (#1597).
* `Text.Pandoc.Shared`:
+ Make `collapseFilePath` OS-agnostic (Matthew Pickering).
* Link the test suite using `-threaded`.
This allows the test suite to be run using `+RTS -N`.
* Added `network` dependency under `network-uri` flag in test section.
* Give better error messages when someone tries to convert from
pdf, doc, odt (#1683).
* Added `track` to list of tags treated by `--self-contained` (#1664).
## pandoc 1.13.1 (2014-08-30)
* Fixed `--self-contained` with Windows paths (#1558).
Previously `C:\foo.js` was being wrongly interpreted as a URI.
* HTML reader: improved handling of tags that can be block or inline.
Previously a section like this would be enclosed in a paragraph,
with RawInline for the video tags (since video is a tag that can
be either block or inline):
<video controls="controls">
<source src="../videos/test.mp4" type="video/mp4" />
<source src="../videos/test.webm" type="video/webm" />
<p>
The videos can not be played back on your system.<br/>
Try viewing on Youtube (requires Internet connection):
<a href="http://youtu.be/etE5urBps_w">Relative Velocity on
Youtube</a>.
</p>
</video>
This change will cause the video and source tags to be parsed
as RawBlock instead, giving better output.
The general change is this: when we're parsing a "plain" sequence
of inlines, we don't parse anything that COULD be a block-level tag.
* Docx reader:
+ Be sensitive to user styles. Note that "Hyperlink" is
"blacklisted," as we don't want the default underline styling to be
inherited by all links by default (Jesse Rosenthal).
+ Read single paragraph in table cell as `Plain` (Jesse Rosenthal).
This makes to docx reader's native output fit with the way the markdown
reader understands its markdown output.
* Txt2Tags reader:
+ Header is now parsed only if standalone flag is set (Matthew Pickering).
+ The header is now parsed as meta information. The first line is the
`title`, the second is the `author` and third line is the `date`
(Matthew Pickering).
+ Corrected formatting of `%%mtime` macro (Matthew Pickering).
+ Fixed crash when reading from stdin.
* Textile writer: Extended the range of cases where native textile
tables will be used (as opposed to raw HTML): we now handle any
alignment type, but only for simple tables with no captions.
* EPUB writer: Don't use page-progression-direction in EPUB2, which
doesn't support it. Also, if page-progression-direction not specified
in metadata, don't include the attribute even in EPUB3; not including it
is the same as including it with the value "default", as we did before.
(#1550)
* Org writer: Accept example lines with indentation at the beginning
(Calvin Beck).
* DokuWiki writer:
+ Refactor to use Reader monad (Matthew Pickering).
+ Avoid using raw HTML in table cells; instead, use `\\`
instead of newlines (Jesse Rosenthal).
+ Properly handle HTML table cell alignments, and use spacing
to make the tables look prettier (#1566).
* Docx writer:
+ Bibliography entries get `Bibliography` style (#1559).
+ Implement change tracking (Jesse Rosenthal).
* LaTeX writer:
+ Fixed a bug that caused a table caption to repeat across all pages
(Jose Luis Duran).
+ Improved vertical spacing in tables and made it customizable using
standard lengths set by booktab. See
<https://groups.google.com/forum/#!msg/pandoc-discuss/qMu6_5lYy0o/ZAU7lzAIKw0J>
(Jose Luis Duran).
+ Added `\strut` to fix spacing in multiline tables (Jose Luis Duran).
+ Use `\tabularnewline` instead of `\\` in table cells (Jose Luis Duran).
+ Made horizontal rules more flexible (Jose Luis Duran).
* Text.Pandoc.MIME:
+ Added `MimeType` (type synonym for `String`) and `getMimeTypeDef`.
Code cleanups (Artyom Kazak).
* Templates:
+ LaTeX template: disable microtype protrusion for typewriter font (#1549,
thanks lemzwerg).
* Improved OSX build procedure.
* Added `network-uri` flag, to deal with split of `network-uri` from
`network`.
* Fix build dependencies for the `trypandoc` flag, so that they are
ignored if `trypandoc` flag is set to False (Gabor Pali).
* Updated README to remove outdated claim that `--self-contained`
looks in the user data directory for missing files.
## pandoc 1.13.0.1 (2014-08-17)
* Docx writer:
+ Fixed regression which bungled list numbering (#1544), causing
all lists to appear as basic ordered lists.
+ Include row width in table rows (Christoffer Ackelman, Viktor Kronvall).
Added a property to all table rows where the sum of column widths
is specified in pct (fraction of 5000). This helps persuade Word
to lay out the table with the widths we specify.
* Fixed a bug in Windows 8 which caused pandoc not to find the
`pandoc-citeproc` filter (#1542).
* Docx reader: miscellaneous under-the-hood improvements (Jesse Rosenthal).
Most significantly, the reader now uses Builder, leading to some
performance improvements.
* HTML reader: Parse appropriately styled span as SmallCaps.
* Markdown writer: don't escape `$`, `^`, `~` when `tex_math_dollars`,
`superscript`, and `subscript` extensions, respectively, are
deactivated (#1127).
* Added `trypandoc` flag to build CGI executable used in the online
demo.
* Makefile: Added 'quick', 'osxpkg' targets.
* Updated README in templates to indicate templates license.
The templates are dual-licensed, BSD3 and GPL2+.
## pandoc 1.13 (15 August 2014)
### New features
* Added `docx` as an input format (Jesse Rosenthal). The docx
reader includes conversion of native Word equations to pandoc
LaTeX `Math` elements. Metadata is taken from paragraphs at the
beginning of the document with styles `Author`, `Title`, `Subtitle`,
`Date`, and `Abstract`.
* Added `epub` as an input format (Matthew Pickering). The epub
reader includes conversion of MathML to pandoc LaTeX `Math`
elements.
* Added `t2t` (Txt2Tags) as an input format (Matthew Pickering).
Txt2tags is a lightweight markup format described at
<http://txt2tags.org/>.
* Added `dokuwiki` as an output format (Clare Macrae).
* Added `haddock` as an output format.
* Added `--extract-media` option to extract media contained in a zip
container (docx or epub) while adjusting image paths to point to the
extracted images.
* Added a new markdown extension, `compact_definition_lists`, that
restores the syntax for definition lists of pandoc 1.12.x, allowing
tight definition lists with no blank space between items, and
disallowing lazy wrapping. (See below under behavior changes.)
* Added an extension `epub_html_exts` for parsing HTML in EPUBs.
* Added extensions `native_spans` and `native_divs` to activate
parsing of material in HTML span or div tags as Pandoc Span
inlines or Div blocks.
* `--trace` now works with the Markdown, HTML, Haddock, EPUB,
Textile, and MediaWiki readers. This is an option intended
for debugging parsing problems; ordinary users should not need
to use it.
### Behavior changes
* Changed behavior of the `markdown_attribute` extension, to bring
it in line with PHP markdown extra and multimarkdown. Setting
`markdown="1"` on an outer tag affects all contained tags,
recursively, until it is reversed with `markdown="0"` (#1378).
* Revised markdown definition list syntax (#1429). Both the reader
and writer are affected. This change brings pandoc's definition list
syntax into alignment with that used in PHP markdown extra and
multimarkdown (with the exception that pandoc is more flexible about
the definition markers, allowing tildes as well as colons). Lazily
wrapped definitions are now allowed. Blank space is required
between list items. The space before a definition is used to determine
whether it is a paragraph or a "plain" element. **WARNING: This change
may break existing documents!** Either check your documents for
definition lists without blank space between items, or use
`markdown+compact_definition_lists` for the old behavior.
* `.numberLines` now works in fenced code blocks even if no language
is given (#1287, jgm/highlighting-kate#40).
* Improvements to `--filter`:
+ Don't search PATH for a filter with an explicit path.
This fixed a bug wherein `--filter ./caps.py` would run `caps.py` from
the system path, even if there was a `caps.py` in the working directory.
+ Respect shebang if filter is executable (#1389).
+ Don't print misleading error message.
Previously pandoc would say that a filter was not found,
even in a case where the filter had a syntax error.
* HTML reader:
+ Parse `div` and `span` elements even without `--parse-raw`,
provided `native_divs` and `native_spans` extensions are set.
Motivation: these now generate native pandoc Div and Span
elements, not raw HTML.
+ Parse EPUB-specific elements if the `epub_html_exts`
extension is enabled. These include `switch`, `footnote`,
`rearnote`, `noteref`.
* Org reader:
+ Support for inline LaTeX. Inline LaTeX is now accepted and parsed by the
org-mode reader. Both math symbols (like `\tau`) and LaTeX commands (like
`\cite{Coffee}`), can be used without any further escaping (Albert
Krewinkel).
* Textile reader and writer:
+ The `raw_tex` extension is no longer set by default. You can
enable it with `textile+raw_tex`.
* DocBook reader:
+ Support `equation`, `informalequation`, `inlineequation` elements with
`mml:math` content. This is converted into LaTeX and put into a Pandoc
Math inline.
* Revised `plain` output, largely following the style of Project
Gutenberg:
+ Emphasis is rendered with `_underscores_`, strong emphasis
with ALL CAPS.
+ Headings are rendered differently, with space to set them off,
not with setext style underlines. Level 1 headers are ALL CAPS.
+ Math is rendered using unicode when possible, but without the
distracting emphasis markers around variables.
+ Footnotes use a regular `[n]` style.
* Markdown writer:
+ Horizontal rules are now a line across the whole page.
+ Prettier pipe tables. Columns are now aligned (#1323).
+ Respect the `raw_html` extension. `pandoc -t markdown-raw_html`
no longer emits any raw HTML, including span and div tags
generated by Span and Div elements.
+ Use span with style for `SmallCaps` (#1360).
* HTML writer:
+ Autolinks now have class `uri`, and email autolinks have class
`email`, so they can be styled.
* Docx writer:
+ Document formatting is carried over from `reference.docx`.
This includes margins, page size, page orientation, header,
and footer, including images in headers and footers.
+ Include abstract (if present) with `Abstract` style (#1451).
+ Include subtitle (if present) with `Subtitle` style, rather
than tacking it on to the title (#1451).
* Org writer:
+ Write empty span elements with an id attribute as org anchors.
For example `Span ("uid",[],[]) []` becomes `<<uid>>`.
* LaTeX writer:
+ Put table captions above tables, to match the conventional
standard. (Previously they appeared below tables.)
+ Use `\(..\)` instead of `$..$` for inline math (#1464).
+ Use `\nolinkurl` in email autolinks. This allows them to be styled
using `\urlstyle{tt}`. Thanks to Ulrike Fischer for the solution.
+ Use `\textquotesingle` for `'` in inline code. Otherwise we get
curly quotes in the PDF output (#1364).
+ Use `\footnote<.>{..}` for notes in beamer, so that footnotes
do not appear before the overlays in which their markers appear
(#1525).
+ Don't produce a `\label{..}` for a Div or Span element. Do produce
a `\hyperdef{..}` (#1519).
* EPUB writer:
+ If the metadata includes `page-progression-direction` (which can be
`ltr` or `rtl`, the `page-progression-direction` attribute will
be set in the EPUB spine (#1455).
* Custom lua writers:
+ Custom writers now work with `--template`.
+ Removed HTML header scaffolding from `sample.lua`.
+ Made citation information available in lua writers.
* `--normalize` and `Text.Pandoc.Shared.normalize` now consolidate
adjacent `RawBlock`s when possible.
### API changes
* Added `Text.Pandoc.Readers.Docx`, exporting `readDocx` (Jesse Rosenthal).
* Added `Text.Pandoc.Readers.EPUB`, exporting `readEPUB` (Matthew
Pickering).
* Added `Text.Pandoc.Readers.Txt2Tags`, exporting `readTxt2Tags` (Matthew
Pickering).
* Added `Text.Pandoc.Writers.DokuWiki`, exporting `writeDokuWiki`
(Clare Macrae).
* Added `Text.Pandoc.Writers.Haddock`, exporting `writeHaddock`.
* Added `Text.Pandoc.MediaBag`, exporting `MediaBag`, `lookupMedia`,
`insertMedia`, `mediaDirectory`, `extractMediaBag`. The docx and epub
readers return a pair of a `Pandoc` document and a `MediaBag` with
the media resources they contain. This can be extracted using
`--extract-media`. Writers that incorporate media (PDF, Docx,
ODT, EPUB, RTF, or HTML formats with `--self-contained`) will look
for resources in the `MediaBag` generated by the reader, in addition to
the file system or web.
* `Text.Pandoc.Readers.TexMath`: Removed deprecated `readTeXMath`.
Renamed `readTeXMath'` to `texMathToInlines`.
* `Text.Pandoc`: Added `Reader` data type (Matthew Pickering).
`readers` now associates names of readers with `Reader`
structures. This allows inclusion of readers, like the docx
reader, that take binary rather than textual input.
* `Text.Pandoc.Shared`:
+ Added `capitalize` (Artyom Kazak), and replaced uses of
`map toUpper` (which give bad results for many languages).
+ Added `collapseFilePath`, which removes intermediate `.` and
`..` from a path (Matthew Pickering).
+ Added `fetchItem'`, which works like `fetchItem` but searches
a `MediaBag` before looking on the net or file system.
+ Added `withTempDir`.
+ Added `removeFormatting`.
+ Added `extractSpaces` (from HTML reader) and generalized its type
so that it can be used by the docx reader (Matthew Pickering).
+ Added `ordNub`.
+ Added `normalizeInlines`, `normalizeBlocks`.
+ `normalize` is now `Pandoc -> Pandoc` instead of
`Data a :: a -> a`. Some users may need to change their uses of
`normalize` to the newly exported `normalizeInlines` or
`normalizeBlocks`.
* `Text.Pandoc.Options`:
+ Added `writerMediaBag` to `WriterOptions`.
+ Removed deprecated and no longer used `readerStrict` in
`ReaderOptions`. This is handled by `readerExtensions` now.
+ Added `Ext_compact_definition_lists`.
+ Added `Ext_epub_html_exts`.
+ Added `Ext_native_divs` and `Ext_native_spans`.
This allows users to turn off the default pandoc behavior of
parsing contents of div and span tags in markdown and HTML
as native pandoc Div blocks and Span inlines.
* `Text.Pandoc.Parsing`:
+ Generalized `readWith` to `readWithM` (Matthew Pickering).
+ Export `runParserT` and `Stream` (Matthew Pickering).
+ Added `HasQuoteContext` type class (Matthew Pickering).
+ Generalized types of `mathInline`, `smartPunctuation`, `quoted`,
`singleQuoted`, `doubleQuoted`, `failIfInQuoteContext`,
`applyMacros` (Matthew Pickering).
+ Added custom `token` (Matthew Pickering).
+ Added `stateInHtmlBlock` to `ParserState`. This is used to keep
track of the ending tag we're waiting for when we're parsing inside
HTML block tags.
+ Added `stateMarkdownAttribute` to `ParserState`. This is used
to keep track of whether the markdown attribute has been set in
an enclosing tag.
+ Generalized type of `registerHeader`, using new type classes
`HasReaderOptions`, `HasIdentifierList`, `HasHeaderMap` (Matthew
Pickering). These allow certain common functions to be reused
even in parsers that use custom state (instead of `ParserState`),
such as the MediaWiki reader.
+ Moved `inlineMath`, `displayMath` from Markdown reader to Parsing,
and generalized their types (Matthew Pickering).
* `Text.Pandoc.Pretty`:
+ Added `nestle`.
+ Added `blanklines`, which guarantees a certain number of blank lines
(and no more).
### Bug fixes
* Markdown reader:
+ Fixed parsing of indented code in list items. Indented code
at the beginning of a list item must be indented eight spaces
from the margin (or edge of the container), or four spaces
from the list marker, whichever is greater.
+ Fixed small bug in HTML parsing with `markdown_attribute`, which
caused incorrect tag nesting for input like
`<aside markdown="1">*hi*</aside>`.
+ Fixed regression with intraword underscores (#1121).
+ Improved parsing of inline links containing quote characters (#1534).
+ Slight rewrite of `enclosure`/`emphOrStrong` code.
+ Revamped raw HTML block parsing in markdown (#1330).
We no longer include trailing spaces and newlines in the
raw blocks. We look for closing tags for elements (but without
backtracking). Each block-level tag is its own `RawBlock`;
we no longer try to consolidate them (though `--normalize` will do so).
+ Combine consecutive latex environments. This helps when you have
two minipages which can't have blank lines between them (#690, #1196).
+ Support smallcaps through span.
`<span style="font-variant:small-caps;">foo</span>` will be
parsed as a `SmallCaps` inline, and will work in all output
formats that support small caps (#1360).
+ Prevent spurious line breaks after list items (#1137). When the
`hard_line_breaks` option was specified, pandoc would formerly
produce a spurious line break after a tight list item.
+ Fixed table parsing bug (#1333).
+ Handle `c++` and `objective-c` as language identifiers in
github-style fenced blocks (#1318).
+ Inline math must have nonspace before final `$` (#1313).
* LaTeX reader:
+ Handle comments at the end of tables. This resolves the issue
illustrated in <http://stackoverflow.com/questions/24009489>.
+ Correctly handle table rows with too few cells. LaTeX seems to
treat them as if they have empty cells at the end (#241).
+ Handle leading/trailing spaces in `\emph` better.
`\emph{ hi }` gets parsed as `[Space, Emph [Str "hi"], Space]`
so that we don't get things like `* hi *` in markdown output.
Also applies to `textbf` and some other constructions (#1146).
+ Don't assume preamble doesn't contain environments (#1338).
+ Allow (and discard) optional argument for `\caption` (James Aspnes).
* HTML reader:
+ Fixed major parsing problem with HTML tables. Table cells were
being combined into one cell (#1341).
+ Fixed performance issue with malformed HTML tables.
We let a `</table>` tag close an open `<tr>` or `<td>` (#1167).
+ Allow space between `<col>` and `</col>`.
+ Added `audio` and `source` in `eitherBlockOrInline`.
+ Moved `video`, `svg`, `progress`, `script`, `noscript`, `svg` from
`blockTags` to `eitherBlockOrInline`.
+ `map` and `object` were mistakenly in both lists; they have been removed
from `blockTags`.
+ Ignore `DOCTYPE` and `xml` declarations.
* MediaWiki reader:
+ Don't parse backslash escapes inside `<source>` (#1445).
+ Tightened up template parsing.
The opening `{{` must be followed by an alphanumeric or `:`.
This prevents the exponential slowdown in #1033.
+ Support "Bild" for images.
* DocBook reader:
+ Better handle elements inside code environments. Pandoc's document
model does not allow structure inside code blocks, but at least this way
we preserve the text (#1449).
+ Support `<?asciidoc-br?>` (#1236).
* Textile reader:
+ Fixed list parsing. Lists can now start without an intervening
blank line (#1513).
+ HTML block-level tags that do not start a line are parsed as
inline HTML and do not interrupt paragraphs (as in RedCloth).
* Org reader:
+ Make tildes create inline code (#1345). Also relabeled `code` and
`verbatim` parsers to accord with the org-mode manual.
+ Respect `:exports` header argument in code blocks (Craig Bosma).
+ Fixed tight lists with sublists (#1437).
* EPUB writer:
+ Avoid excess whitespace in `nav.xhtml`. This should improve
TOC view in iBooks (#1392).
+ Fixed regression on cover image.
In 1.12.4 and 1.12.4.2, the cover image would not appear properly,
because the metadata id was not correct. Now we derive the id from the
actual cover image filename, which we preserve rather than using
"cover-image."
+ Keep newlines between block elements. This allows
easier diff-ability (#1424).
+ Use `stringify` instead of custom `plainify`.
+ Use `renderTags'` for all tag rendering. This properly handles tags
that should be self-closing. Previously `<hr/>` would appear in EPUB
output as `<hr></hr>` (#1420).
+ Better handle HTML media tags.
+ Handle multiple dates with OPF `event` attributes. Note: in EPUB3 we
can have only one dc:date, so only the first one is used.
* LaTeX writer:
+ Correctly handle figures in notes. Notes can't contain figures in
LaTeX, so we fake it to avoid an error (#1053).
+ Fixed strikeout + highlighted code (#1294).
Previously strikeout highlighted code caused an error.
* ConTeXt writer:
+ Improved detection of autolinks with URLs containing escapes.
* RTF writer:
+ Improved image embedding: `fetchItem'` is now used to get the
images, and calculated image sizes are indicated in the RTF.
+ Avoid extra paragraph tags in metadata (#1421).
* HTML writer:
+ Deactivate "incremental" inside slide speaker notes (#1394).
+ Don't include empty items in the table of contents for
slide shows. (These would result from creating a slide
using a horizontal rule.)
* MediaWiki writer:
+ Minor renaming of `st` prefixed names.
* AsciiDoc writer:
+ Double up emphasis and strong emphasis markers in intraword
contexts, as required by asciidoc (#1441).
* Markdown writer:
+ Avoid wrapping that might start a list, blockquote, or header (#1013).
+ Use Span instead of (hackish) `SmallCaps` in `plainify`.
+ Don't use braced attributes for fenced code (#1416).
If `Ext_fenced_code_attributes` is not set, the first class
attribute will be printed after the opening fence as a bare word.
+ Separate adjacent lists of the same kind with an HTML comment (#1458).
* PDF writer:
+ Fixed treatment of data uris for images (#1062).
* Docx writer:
+ Use Compact style for empty table cells (#1353).
Otherwise we get overly tall lines when there are empty
table cells and the other cells are compact.
+ Create overrides per-image for `media/` in reference docx.
This should be somewhat more robust and cover more types of images.
+ Improved `entryFromArchive` to avoid an unneeded parse.
+ Section numbering carries over from reference.docx (#1305).
+ Simplified `abstractNumId` numbering. Instead of sequential numbering,
we assign numbers based on the list marker styles.
* `Text.Pandoc.Options`:
+ Removed `Ext_fenced_code_attributes` from `markdown_github`
extensions.
* `Text.Pandoc.ImageSize`:
+ Use default instead of failing if image size not found
in exif header (#1358).
+ ignore unknown exif header tag rather than crashing.
Some images seem to have tag type of 256, which was causing
a runtime error.
* `Text.Pandoc.Shared`:
+ `fetchItem`: unescape URI encoding before reading local file (#1427).
+ `fetchItem`: strip a fragment like `?#iefix` from the extension before
doing mime lookup, to improve mime type guessing.
+ Improved logic of `fetchItem`: absolute URIs are fetched from the net;
other things are treated as relative URIs if `sourceURL` is `Just _`,
otherwise as file paths on the local file system.
+ `fetchItem` now properly handles links without a protocol (#1477).
+ `fetchItem` now escapes characters not allowed in URIs before trying
to parse the URIs.
+ Fixed runtime error with `compactify'DL` on certain lists (#1452).
* `pandoc.hs`: Don't strip path off of `writerSourceURL`: the path is
needed to resolve relative URLs when we fetch resources (#750).
* `Text.Pandoc.Parsing`
+ Simplified `dash` and `ellipsis` (#1419).
+ Removed `(>>~)` in favor of the equivalent `(<*)` (Matthew Pickering).
+ Generalized functions to use `ParsecT` (Matthew Pickering).
+ Added `isbn` and `pmid` to list of recognized schemes (Matthew
Pickering).
### Template changes
* Added haddock template.
* EPUB3: Added `type` attribute to `link` tags. They are supposed to
be "advisory" in HTML5, but kindlegen seems to require them.
* EPUB3: Put title page in section with `epub:type="titlepage"`.
* LaTeX: Made `\subtitle` work properly (#1327).
* LaTeX/Beamer: remove conditional around date (#1321).
* LaTeX: Added `lot` and `lof` variables, which can be set to
get `\listoftables` and `\listoffigures` (#1407). Note that
these variables can be set at the command line with `-Vlot -Vlof`
or in YAML metadata.
### Under the hood improvements
* Rewrote normalize for efficiency (#1385).
* Rewrote Haddock reader to use `haddock-library` (#1346).
+ This brings pandoc's rendering of haddock markup in line
with the new haddock.
+ Fixed line breaks in `@` code blocks.
+ alex and happy are no longer build-depends.
* Added `Text.Pandoc.Compat.Directory` to allow building against
different versions of the `directory` library.
+ Added `Text.Pandoc.Compat.Except` to allow building against
different versions of `mtl`.
* Code cleanup in some writers, using Reader monad to avoid
passing options parameter around (Matej Kollar).
* Improved readability in `pandoc.hs`.
* Miscellaneous code cleanups (Artyom Kazak).
* Avoid `import Prelude hiding (catch)` (#1309, thanks to Michael
Thompson).
* Changed `http-conduit` flag to `https`. Depend on `http-client`
and `http-client-tls` instead of `http-conduit`. (Note: pandoc still
depends on `conduit` via `yaml`.)
* Require `highlighting-kate >= 0.5.8.5` (#1271, #1317, Debian #753299).
This change to highlighting-kate means that PHP fragments no longer need
to start with `<?php`. It also fixes a serious bug causing failures with
ocaml and fsharp.
* Require latest `texmath`. This fixes `\tilde{E}` and allows
`\left` to be used with `]`, `)` etc. (#1319), among many other
improvements.
* Require latest `zip-archive`. This has fixes for unicode path names.
* Added tests for plain writer.
* `Text.Pandoc.Templates`:
+ Fail informatively on template syntax errors.
With the move from parsec to attoparsec, we lost good error
reporting. In fact, since we weren't testing for end of input,
malformed templates would fail silently. Here we revert back to
Parsec for better error messages.
+ Use `ordNub` (#1022).
* Benchmarks:
+ Made benchmarks compile again (Artyom Kazak).
+ Fixed so that the failure of one benchmark does not prevent others
from running (Artyom Kazak).
+ Use `nfIO` instead of the `getLength` trick to force full evaluation.
+ Changed benchmark to use only the test suite, so that benchmarks
run more quickly.
* Windows build script:
+ Add `-windows` to file name.
+ Use one install command for pandoc, pandoc-citeproc.
+ Force install of pandoc-citeproc.
* `make_osx_package`: Call zip file `pandoc-VERSION-osx.zip`.
The zip should not be named `SOMETHING.pkg.zip`, or OSX finder
will extract it into a folder named `SOMETHING.pkg`, which it
will interpret as a defective package (#1308).
* `README`:
+ Made headers for all extensions so they have IDs and can be
linked to (Beni Cherniavsky-Paskin).
+ Fixed typos (Phillip Alday).
+ Fixed documentation of attributes (#1315).
+ Clarified documentation on small caps (#1360).
+ Better documentation for `fenced_code_attributes` extension
(Caleb McDaniel).
+ Documented fact that you can put YAML metadata in a separate file
(#1412).
## pandoc 1.12.4.2 (2014-05-14)
* Require highlighting-kate >= 0.5.8. Fixes a performance regression.
* Shared: `addMetaValue` now behaves slightly differently:
if both the new and old values are lists, it concatenates their
contents to form a new list.
* LaTeX reader:
+ Set `bibliography` in metadata from `\bibliography` or
`\addbibresource` command.
+ Don't error on `%foo` with no trailing newline.
* Org reader:
+ Support code block headers (`#+BEGIN_SRC ...`) (Albert Krewinkel).
+ Fix parsing of blank lines within blocks (Albert Krewinkel).
+ Support pandoc citation extension (Albert Krewinkel). This can
be turned off by specifying `org-citation` as the input format.
* Markdown reader:
+ `citeKey` moved to `Text.Pandoc.Parsing` so it can be used by
other readers (Albert Krewinkel).
* `Text.Pandoc.Parsing`:
+ Added `citeKey` (see above).
+ Added `HasLastStrPosition` type class and `updateLastStrPos`
and `notAfterString` functions.
* Updated copyright notices (Albert Krewinkel).
* Added default.icml to data files so it installs with the package.
* OSX package:
+ The binary is now built with options to ensure that it can be
used with OSX 10.6+.
+ Moved OSX package materials to osx directory.
+ Added OSX package uninstall script, included in the zip container
(thanks to Daniel T. Staal).
## pandoc 1.12.4 (2014-05-07)
* Made it possible to run filters that aren't executable
(#1096). Pandoc first tries to find the executable (searching
the path if path isn't given). If it fails, but the file
exists and has a `.py`, `.pl`, `.rb`, `.hs`, or `.php`
extension, pandoc runs the filter using the appropriate
interpreter. This should make it easier to use filters on
Windows, and make it more convenient for everyone.
* Added Emacs org-mode reader (Albert Krewinkel).
* Added InDesign ICML Writer (mb21).
* MediaWiki reader:
+ Accept image links in more languages (Jaime Marquínez Ferrándiz).
+ Fixed bug in certain nested lists (#1213). If a level 2 list was
followed by a level 1 list, the first item of the level 1 list
would be lost.
+ Handle table rows containing just an HTML comment (#1230).
* LaTeX reader:
+ Give better location information on errors, pointing to line
numbers within included files (#1274).
+ LaTeX reader: Better handling of `table` environment (#1204).
Positioning options no longer rendered verbatim.
+ Better handling of figure and table with caption (#1204).
+ Handle `@{}` and `p{length}` in tabular. The length is not actually
recorded, but at least we get a table (#1180).
+ Properly handle `\nocite`. It now adds a `nocite` metadata
field. Citations there will appear in the bibliography but not
in the text (unless you explicitly put a `$nocite$` variable
in your template).
* Markdown reader:
+ Ensure that whole numbers in YAML metadata are rendered without
decimal points. (This became necessary with changes to aeson
and yaml libraries. aeson >= 0.7 and yaml >= 0.8.8.2 are now required.)
+ Fixed regression on line breaks in strict mode (#1203).
+ Small efficiency improvements.
+ Improved parsing of nested `div`s. Formerly a closing `div` tag
would be missed if it came right after other block-level tags.
+ Avoid backtracking when closing `</div>` not found.
+ Fixed bug in reference link parsing in `markdown_mmd`.
+ Fixed a bug in list parsing (#1154). When reading a raw list
item, we now strip off up to 4 spaces.
+ Fixed parsing of empty reference link definitions (#1186).
+ Made one-column pipe tables work (#1218).
* Textile reader:
+ Better support for attributes. Instead of being ignored, attributes
are now parsed and included in Span inlines. The output will be a bit
different from stock textile: e.g. for `*(foo)hi*`, we'll get
`<em><span class="foo">hi</span></em>` instead of
`<em class="foo">hi</em>`. But at least the data is not lost.
+ Improved treatment of HTML spans (%) (#1115).
+ Improved link parsing. In particular we now pick up on attributes.
Since pandoc links can't have attributes, we enclose the whole link in
a span if there are attributes (#1008).
+ Implemented correct parsing rules for inline markup (#1175, Matthew
Pickering).
+ Use Builder (Matthew Pickering).
* DocBook reader:
+ Better treatment of `formalpara`. We now emit the title (if present)
as a separate paragraph with boldface text (#1215).
+ Set metadata `author` not `authors`.
+ Added recognition of `authorgroup` and `releaseinfo` elements (#1214,
Matthew Pickering).
+ Converted current meta information parsing in DocBook to a more
extensible version which is aware of the more recent meta
representation (Matthew Pickering).
* HTML reader:
+ Require tagsoup 0.13.1, to fix a bug with parsing of script tags
(#1248).
+ Treat processing instructions & declarations as block. Previously
these were treated as inline, and included in paragraph tags in HTML
or DocBook output, which is generally not what is wanted (#1233).
+ Updated `closes` with rules from HTML5 spec.
+ Use Builder (Matthew Pickering, #1162).
* RST reader:
+ Remove duplicate `http` in PEP links (Albert Krewinkel).
+ Make rst figures true figures (#1168, CasperVector)
+ Enhanced Pandoc's support for rST roles (Merijn Verstaaten).
rST parser now supports: all built-in rST roles, new role definition,
role inheritance, though with some limitations.
+ Use `author` rather than `authors` in metadata.
+ Better handling of directives. We now correctly handle field
lists that are indented more than three spaces. We treat an
`aafig` directive as a code block with attributes, so it can be
processed in a filter (#1212).
* LaTeX writer:
+ Mark span contents with label if span has an ID (Albert Krewinkel).
+ Made `--toc-depth` work well with books in latex/pdf output (#1210).
+ Handle line breaks in simple table cells (#1217).
+ Workaround for level 4-5 headers in quotes. These previously produced
invalid LaTeX: `\paragraph` or `\subparagraph` in a `quote` environment.
This adds an `mbox{}` in these contexts to work around the problem.
See <http://tex.stackexchange.com/a/169833/22451> (#1221).
+ Use `\/` to avoid en-dash ligature instead of `-{}-` (Vaclav Zeman).
This is to fix LuaLaTeX output. The `-{}-` sequence does not avoid the
ligature with LuaLaTeX but `\/` does.
+ Fixed string escaping in `hyperref` and `hyperdef` (#1130).
* ConTeXt writer: Improved autolinks (#1270).
* DocBook writer:
+ Improve handling of hard line breaks in Docbook writer
(Neil Mayhew). Use a `<literallayout>` for the entire paragraph, not
just for the newline character.
+ Don't let line breaks inside footnotes influence the enclosing
paragraph (Neil Mayhew).
+ Distinguish tight and loose lists in DocBook output, using
`spacing="compact"` (Neil Mayhew, #1250).
* Docx writer: When needed files are not present in the user's
`reference.docx`, fall back on the versions in the `reference.docx`
in pandoc's data files. This fixes a bug that occurs when a
`reference.docx` saved by LibreOffice is used. (#1185)
* EPUB writer:
+ Include extension in epub ids. This fixes a problem with duplicate
extensions for fonts and images with the same base name but different
extensions (#1254).
+ Handle files linked in raw `img` tags (#1170).
+ Handle media in `audio` source tags (#1170).
Note that we now use a `media` directory rather than `images`.
+ Incorporate files linked in `video` tags (#1170). `src` and `poster`
will both be incorporated into `content.opf` and the epub container.
* HTML writer:
+ Add colgroup around col tags (#877). Also affects EPUB writer.
+ Fixed bug with unnumbered section headings. Unnumbered section
headings (with class `unnumbered`) were getting numbers.
+ Improved detection of image links. Previously image links with
queries were not recognized, causing `<embed>` to be used instead
of `<img>`.
* Man writer: Ensure that terms in definition lists aren't line wrapped
(#1195).
* Markdown writer:
+ Use proper escapes to avoid unwanted lists (#980). Previously we used
0-width spaces, an ugly hack.
+ Use longer backtick fences if needed (#1206). If the content contains a
backtick fence and there are attributes, make sure longer fences are
used to delimit the code. Note: This works well in pandoc, but github
markdown is more limited, and will interpret the first string of three
or more backticks as ending the code block.
* RST writer: Avoid stack overflow with certain tables (#1197).
* RTF writer: Fixed table cells containing paragraphs.
* Custom writer:
+ Correctly handle UTF-8 in custom lua scripts (#1189).
+ Fix bugs with lua scripts with mixed-case filenames and
paths containing `+` or `-` (#1267). Note that `getWriter`
in `Text.Pandoc` no longer returns a custom writer on input
`foo.lua`.
* AsciiDoc writer: Handle multiblock and empty table cells
(#1245, #1246). Added tests.
* `Text.Pandoc.Options`: Added `readerTrace` to `ReaderOptions`
* `Text.Pandoc.Shared`:
+ Added `compactify'DL` (formerly in markdown reader) (Albert Krewinkel).
+ Fixed bug in `toRomanNumeral`: numbers ending with '9' would
be rendered as Roman numerals ending with 'IXIV' (#1249). Thanks to
Jesse Rosenthal.
+ `openURL`: set proxy with value of http_proxy env variable (#1211).
Note: proxies with non-root paths are not supported, due to
limitations in `http-conduit`.
* `Text.Pandoc.PDF`:
+ Ensure that temp directories deleted on Windows (#1192). The PDF is
now read as a strict bytestring, ensuring that process ownership will
be terminated, so the temp directory can be deleted.
+ Use `/` as path separators in a few places, even on Windows.
This seems to be necessary for texlive (#1151, thanks to Tim Lin).
+ Use `;` for `TEXINPUTS` separator on Windows (#1151).
+ Changes to error reporting, to handle non-UTF8 error output.
* `Text.Pandoc.Templates`:
+ Removed unneeded datatype context (Merijn Verstraaten).
+ YAML objects resolve to "true" in conditionals (#1133).
Note: If `address` is a YAML object and you just have `$address$`
in your template, the word `true` will appear, which may be
unexpected. (Previously nothing would appear.)
* `Text.Pandoc.SelfContained`: Handle `poster` attribute in `video`
tags (#1188).
* `Text.Pandoc.Parsing`:
+ Made `F` an instance of Applicative (#1138).
+ Added `stateCaption`.
+ Added `HasMacros`, simplified other typeclasses.
Removed `updateHeaderMap`, `setHeaderMap`, `getHeaderMap`,
`updateIdentifierList`, `setIdentifierList`, `getIdentifierList`.
+ Changed the smart punctuation parser to return `Inlines`
rather than `Inline` (Matthew Pickering).
+ Changed `HasReaderOptions`, `HasHeaderMap`, `HasIdentifierList`
from typeclasses of monads to typeclasses of states. This simplifies
the instance definitions and provides more flexibility. Generalized
type of `getOption` and added a default definition. Removed
`askReaderOption`. Added `extractReaderOption`. Added
`extractHeaderMap` and `updateHeaderMap` in `HasHeaderMap`.
Gave default definitions for `getHeaderMap`, `putHeaderMap`,
`modifyHeaderMap`. Added `extractIdentifierList` and
`updateIdentifierList` in `HasIdentifierList`. Gave defaults
for `getIdentifierList`, `putIdentifierList`, and
`modifyIdentifierList`. The ultimate goal here is to allow different
parsers to use their own, tailored parser states (instead of
`ParserState`) while still using shared functions.
* Template changes:
+ LaTeX template: Use `fontenc` package only with `pdflatex` (#1164).
+ LaTeX template: Add `linestretch` and `fontfamily` variables.
+ LaTeX template: Conditionalize author and date commands.
+ Beamer template: Consistent styles for figure and table captions
(aaronwolen).
+ LaTeX and beamer template: Adjust widths correctly for oversized
images. Use `\setkeys{Gin}{}` to set appropriate defaults for
`\includegraphics` (Yihui Xie, Garrick Aden-Buie). Load
`upquote` only after `fontenc` (Yihui Xie).
+ Beamer template: Added caption package (#1200).
+ Beamer template: changes for better unicode handling (KarolS).
+ DocBook template: use `authorgroup` if there are authors.
+ revealjs template: Move `include-after` to end (certainlyakey).
+ revealjs template: Fixed PDF print function (#1220, kevinkenan).
* Bumped version bounds of dependencies.
* Added a `--trace` command line option, for debugging backtracking
bugs. So far this only works with the markdown reader.
* MathMLinHTML: Fixed deprecation warning (#362, gwern, Albert Krewinkel).
* Updated travis script to test with multiple GHC versions.
* Force failure of a Travis build if GHC produces warnings (Albert
Krewinkel).
* Add `.editorconfig` (Albert Krewinkel).
See <http://editorconfig.org/> for details.
* Give more useful error message if '-t pdf' is specified (#1155).
* Added `Cite`, `SmallCaps` to `Arbitrary` instance (#1269).
* Allow `html4` as a synonym of `html` as a reader (it already works
as a writer).
* README:
+ Added an explanation of how to use YAML metadata to
force items to appear in the bibliography without citations in
the text (like LaTeX `\nocite`).
+ Added note to `--bibtex/--natbib`: not for use in making PDF
(#1194, thanks to nahoj).
+ Added explanatory notes about `--natbib` and `--biblatex`.
+ Added specification of legal syntax for citation keys.
+ Fixed variable defaults documentation (Albert Krewinkel).
* Removed copyright statements for files that have been removed
(Albert Krewinkel).
* Moved some doc files from `data-files` to `extra-source-files` (#1123).
They aren't needed at runtime. We keep README and COPYRIGHT in data
to ensure that they'll be available on all systems on which pandoc
is installed.
* Use cabal sandboxes in Windows build script.
## pandoc 1.12.3.3 (2014-02-03)
* To changes to source; recompiled tarball with latest alex and
happy, so they will work with GHC 7.8.
## pandoc 1.12.3.2 (2014-02-03)
* Bumped version bounds for blaze-html, blaze-markup.
* ImageSize: Avoid use of lookAhead, which is not in binary >= 0.6
(#1124).
* Fixed mediawiki ordered list parsing (#1122).
* HTML reader: Fixed bug reading inline math with `$$` (#225).
* Added support for LaTeX style literate Haskell code blocks in rST
(Merijn Verstraaten).
## pandoc 1.12.3.1 (2014-01-14)
* Relaxed version constraint on binary, allowing the use of binary 0.5.
## pandoc 1.12.3 (2014-01-10)
* The `--bibliography` option now sets the `biblio-files` variable.
So, if you're using `--natbib` or `--biblatex`, you can just use
`--bibliography=foo.bib` instead of `-V bibliofiles=foo`.
* Don't run pandoc-citeproc filter if `--bibliography` is
used together with `--natbib` or `--biblatex` (Florian Eitel).
* Template changes:
+ Updated beamer template to include booktabs.
+ Added `abstract` variable to LaTeX template.
+ Put `header-includes` after `title` in LaTeX template (#908).
+ Allow use of `\includegraphics[size]` in beamer.
This just required porting a macro definition from the default
LaTeX template to the default beamer template.
* `reference.docx`: Include `FootnoteText` style.
Otherwise Word ignores the style, even when specified in the `pPr`.
(#901)
* `reference.odt`: Tidied `styles.xml`.
* Relaxed version bounds for dependencies.
* Added `withSocketsDo` around http conduit code in `openURL`,
so it works on Windows (#1080).
* Added `Cite` function to `sample.lua`.
* Markdown reader:
+ Fixed regression in title blocks (#1089).
If author field was empty, date was being ignored.
+ Allow backslash-newline hard line breaks in grid and
multiline table cells.
+ Citation keys may now start with underscores, and may contain
underscores adjacent to internal punctuation.
* LaTeX reader:
+ Add support for `Verb` macro (jrnold) (#1090).
+ Support babel-style quoting: `` "`..."' ``.
* Properly handle script blocks in strict mode. (That is,
`markdown-markdown_in_html_blocks`.) Previously a spurious
`<p>` tag was being added (#1093).
* Docbook reader: Avoid failure if `tbody` contains no `tr` or `row`
elements.
* LaTeX writer:
+ Factored out function for table cell creation.
+ Better treatment of footnotes in tables.
Notes now appear in the regular sequence, rather than in the
table cell. (This was a regression in 1.10.)
* HTML reader: Parse name/content pairs from meta tags as metadata.
Closes #1106.
* Moved `fixDisplayMath` from Docx writer to `Writer.Shared`.
* OpenDocument writer: Fixed `RawInline`, `RawBlock` so they don't escape.
* ODT writer: Use mathml for proper rendering of formulas.
Note: LibreOffice's support for this seems a bit buggy. But
it should be better than what we had before.
* RST writer: Ensure no blank line after def in definition list (#992).
* Markdown writer: Don't use tilde code blocks with braced attributes in
`markdown_github` output. A consequence of this change is that the
backtick form will be preferred in general if both are enabled. That
is good, as it is much more widespread than the tilde form. (#1084)
* Docx writer: Fixed problem with some modified reference docx files.
Include `word/_rels/settings.xml.rels` if it exists, as well as other
`rels` files besides the ones pandoc generates explicitly.
* HTML writer:
+ With `--toc`, headers no longer link to themselves (#1081).
+ Omit footnotes from TOC entries. Otherwise we get doubled
footnotes when headers have notes!
* EPUB writer:
+ Avoid duplicate notes when headings contain notes.
This arose because the headings are copied into the metadata
"title" field, and the note gets rendered twice. We strip the
note now before putting the heading in "title".
+ Strip out footnotes from toc entries.
+ Fixed bug with `--epub-stylesheet`. Now the contents of
`writerEpubStylesheet` (set by `--epub-stylesheet`)
should again work, and take precedence over a stylesheet specified
in the metadata.
* `Text.Pandoc.Pretty`: Added `nestle`. API change.
* `Text.Pandoc.MIME`: Added `wmf`, `emf`.
* `Text.Pandoc.Shared`: `fetchItem` now handles image URLs beginning
with `//`.
* `Text.Pandoc.ImageSize`: Parse EXIF format JPEGs. Previously
we could only get size information for JFIF format, which led
to squished images in Word documents. Closes #976.
* Removed old `MarkdownTest_1.0.3` directory (#1104).
## pandoc 1.12.2.1 (2013-12-08)
* Markdown reader: Fixed regression in list parser, involving
continuation lines containing raw HTML (or even verbatim raw HTML).
## pandoc 1.12.2 (2013-12-07)
* Metadata may now be included in YAML blocks in a markdown document.
For example,
---
title:
- type: main
text: My Book
- type: subtitle
text: An investigation of metadata
creator:
- role: author
text: John Smith
- role: editor
text: Sarah Jones
identifier:
- scheme: DOI
text: doi:10.234234.234/33
publisher: My Press
rights: (c) 2007 John Smith, CC BY-NC
cover-image: img/mypic.jpg
stylesheet: style.css
...
Metadata may still be provided using `--epub-metadata`; it will
be merged with the metadata in YAML blocks.
* EPUB writer:
+ `meta` tags are now used instead of `opf` attributes for EPUB3.
+ Insert "svg" property as needed in opf (EPUB 3).
+ Simplify `imageTypeOf` using `getMimeType`.
+ Add properties attribute to `cover-image` item for EPUB 3.
+ Don't include node for `cover.xhtml` if no cover!
+ Ensure that same identifier is used throughout (#1044).
If an identifier is given in metadata, we use that; otherwise
we generate a random uuid.
+ Add cover reference to guide element (EPUB 2) (Shaun Attfield).
Fixes an issue with Calibre putting the cover at the end of the book
if the spine has `linear="no"`. Apparently this is best practice
for other converters as well:
<http://www.idpf.org/epub/20/spec/OPF_2.0.1_draft.htm#Section2.6>.
+ Allow `stylesheet` in metadata. The value is a path to the stylesheet.
+ Allow partial dates: `YYYY`, `YYYY-MM`.
* Markdown writer: Fix rendering of tight sublists (#1050).
Previously a spurious blank line was included after a tight sublist.
* ODT writer: Add `draw:name` attribute to `draw:frame` elements (#1069).
This is reported to be necessary to avoid an error from recent
versions of Libre Office when files contain more than one image
Thanks to wmanley for reporting and diagnosing the problem.
* ConTeXt writer: Don't hardcode figure/table placement and numbering.
Instead, let this be set in the template, using `\setupfloat`.
Thanks to on4aa and Aditya Mahajan for the suggestion (#1067).
* Implemented CSL flipflopping spans in DOCX, LaTeX, and HTML writers.
* Fixed bug with markdown intraword emphasis. Closes #1066.
* Docbook writer: Hierarchicalize block content in metadata.
Previously headers just disappeared from block-level metadata
when it was used in templates. Now we apply the 'hierarchicalize'
transformation. Note that a block headed by a level-2 header will
turn into a `<sect1>` element.
* OpenDocument writer: Skip raw HTML (#1035).
Previously it was erroneously included as verbatim text.
* HTML/EPUB writer, footnotes: Put `<sup>` tag inside `<a>` tags.
This allows better control of formatting, since the `<a>`
tags have a distinguishing class (#1049).
* Docx writer:
+ Use mime type info returned by fetchItem.
+ Fixed core metadata (#1046).
Don't create empty date nodes if no date given.
Don't create multiple `dc:creator` nodes; instead separate by
semicolons.
+ Fix URL for core-properties in `_rels/.rels` (#1046).
* Plain writer: don't print `<span>` tags.
* LaTeX writer:
+ Fix definition lists with internal links in terms (#1032).
This fix puts braces around a term that contains an internal
link, to avoid problems with square brackets.
+ Properly escape pdftitle, pdfauthor (#1059).
+ Use booktabs package for tables (thanks to Jose Luis Duran).
* Updated beamer template. Now references should work properly
(in a slide) when `--biblatex` or `--natbib` is used.
* LaTeX reader:
+ Parse contents of curly quotes or matched `"` as quotes.
+ Support `\textnormal` as span with class `nodecor`.
This is needed for pandoc-citeproc.
+ Improved citation parsing. This fixes a run-time error that occurred
with `\citet{}` (empty list of keys). It also ensures that empty keys
don't get produced.
* MediaWiki reader: Add automatic header identifiers.
* HTML reader:
+ Use pandoc `Div` and `Span` for raw `<div>`, `<span>` when
`--parse-raw`.
+ Recognize `svg` tags as block level content (thanks to MinRK).
+ Parse LaTeX math if appropriate options are set.
* Markdown reader:
+ Yaml block must start immediately after `---`. If there's a blank
line after `---`, we interpreted it as a horizontal rule.
+ Correctly handle empty bullet list items.
+ Stop parsing "list lines" when we hit a block tag.
This fixes exponential slowdown in certain input, e.g.
a series of lists followed by `</div>`.
* Slides: Preserve `<div class="references">` in references slide.
* `Text.Pandoc.Writer.Shared`:
+ Fixed bug in `tagWithAttrs`. A space was omitted before key-value
attributes, leading to invalid HTML.
+ `normalizeDate`: Allow dates with year only (thanks to Shaun Attfield).
+ Fixed bug in `openURL` with `data:` URIs. Previously the base-64
encoded bytestring was returned. We now decode it so it's a proper
image!
* DocBook reader: Handle numerical attributes starting with decimal.
Also use `safeRead` instead of `read`.
* `Text.Pandoc.Parsing`:
+ Generalized type of `registerHeader`, using new type classes
`HasReadeOptions`, `HasIdentifierList`, `HasHeaderMap`.
These allow certain common functions to be reused
even in parsers that use custom state (instead of `ParserState`),
such as the MediaWiki reader.
+ Moved inlineMath, displayMath from Markdown reader to Parsing.
Generalize their types and export them from Parsing. (API change.)
* `Text.Pandoc.Readers.TexMath`: Export `readTeXMath'`, which attends
to display/inline. Deprecate `readTeXMath`, and use `readTeXMath'`
in all the writers. Require `texmath >= 0.6.5.2`.
* `Text.Pandoc.MIME`:
+ Add entry for `jfif`.
+ In looking up extensions, drop the encoding info.
E.g. for 'image/jpg;base64' we should lookup 'image/jpg'.
* Templates: Changed how array variables are resolved. Previously if
`foo` is an array (which might be because multiple values were set on
the command line), `$foo$` would resolve to the concatenation of the
elements of foo. This is rarely useful behavior. It has been changed
so that the first value is rendered. Of course, you can still iterate
over the values using `$for(foo)$`. This has the result that you can
override earlier settings using `-V` by putting new values later on the
command line, which is useful for many purposes.
* `Text.Pandoc`: Don't default to `pandocExtensions` for all writers.
* Allow "epub2" as synonym for "epub", "html4" for "html".
* Don't look for slidy files in data files with `--self-contained`.
* Allow `https:` command line arguments to be downloaded.
* Fixed `make_osx_package.sh` so data files embedded in `pandoc-citeproc`.
## pandoc 1.12.1 (2013-10-20)
* `Text.Pandoc.Definition`: Changed default JSON serialization format.
Instead of `{"Str": "foo"}`, for example, we now have `{"t": "Str",
"c": "foo"}`. This new format is easier to work with outside of Haskell.
Incidentally, "t" stands for "tag", "c" for "contents".
* MediaWiki reader: Trim contents of `<math>` tags, to avoid problems
when converting to markdown (#1027).
* LaTeX reader:
+ Ensure that preamble doesn't contribute to the text of
the document.
+ Fixed character escaping in `\url{}`. Previously `\~` wasn't handled
properly, among others.
+ Parse `{groups}` as `Span`. This is needed for accurate conversion of
bibtex titles, since we need to know what was protected from
titlecase conversions.
* LaTeX writer:
+ Specially escape non-ascii characters in labels.
Otherwise we can get compile errors and other bugs when
compiled with pdflatex (#1007). Thanks to begemotv2718 for the fix.
+ Add link anchors for code blocks with identifiers (#1025).
* Throughout the code, use `isURI` instead of `isAbsoluteURI`.
It allows fragments identifiers.
* Slide formats:
+ A Div element with class "notes" is treated as speaker
notes. Currently beamer goes to `\note{}`, revealjs to
`<aside class="notes">`, and the notes are simply suppressed in
other formats (#925).
+ Fixed `. . .` (pause) on HTML slide formats. Closes #1029.
The old version caused a pause to be inserted before the first
material on a slide. This has been fixed.
+ Removed data files for s5, slideous, slidy.
Users of s5 and slideous will have to download the needed
files, as has been documented for some time in the README.
By default, slidy code will be sought on the web, as before.
* HTML writer: Insert command to typeset mathjax only in slideous output
(#966, #1012).
* RST writer: Skip spaces after display math. Otherwise we get indentation
problems, and part of the next paragraph may be rendered as part of the
math.
* OpenDocument writer: Fix formatting of strikeout code (#995),
thanks to wilx. don't use `font-face-decls` variable.
* Fixed test suite so it works with cabal sandboxes.
## pandoc 1.12.0.2 (2013-09-20)
* Removed an unused dependency (`stringable`) from pandoc.cabal.
This will help packagers, but users should not need to upgrade.
## pandoc 1.12.0.1 (2013-09-20)
* Allow `--metadata` to be repeated for the same key to form a list.
This also has the effect that `--bibliography` can be repeated,
as before.
* Handle boolean values in `--metadata`. Note that anything not parseable
as a YAML boolean or string is treated as a literal string.
You can get a string value with "yes", or any of the strings interpretable
as booleans, by quoting it:
-M boolvalue=yes -M stringvalue='"yes"'
* LaTeX writer: Don't print references if `--natbib` or `--biblatex`
option used.
* DOCX writer: Add `settings.xml` to the zip container. Fixes a bug
in which docx files could not be read by some versions of Word
and LibreOffice (#990).
* Fixed a regression involving slide shows with bibliographies.
The Div container around references messed up the procedure for carving
a document into slides. So we now remove the surrounding Div in
`prepSlides`.
* More informative error message when a filter is not found in path.
* Depend on pandoc-types 1.12.1. This provide `ToJSONFilter`
instances for `Data a => a -> [a]` and `Data a => a -> IO [a]`.
* Don't use unicode_collation in building OSX package:
it adds something like 50MB of dependencies to the package.
* Declare alex and happy as build-tools (#986).
## pandoc 1.12 (2013-09-15)
### New features
* Much more flexible metadata, including arbitrary fields and structured
values. Metadata can be specified flexibly in pandoc markdown using
YAML metadata blocks, which may occur anywhere in the document:
---
title: Here is my title.
abstract: |
This is the abstract.
1. It can contain
2. block content
and *inline markup*
tags: [cat, dog, animal]
...
Metadata fields automatically populate template variables.
* Added `opml` (OPML) as input and output format. The `_note` attribute,
used in OmniOutliner and supported by multimarkdown, is supported.
We treat the contents as markdown blocks under a section header.
* Added `haddock` (Haddock markup) as input format (David Lazar).
* Added `revealjs` output format, for reveal.js HTML 5 slide shows.
(Thanks to Jamie F. Olson for the initial patch.)
Nested vertical stacks are used for hierarchical structure.
Results for more than one level of nesting may be odd.
* Custom writers can now be written in lua.
pandoc -t data/sample.lua
will load the script sample.lua and use it as a custom writer.
(For a sample, do `pandoc --print-default-data-file sample.lua`.)
Note that pandoc embeds a lua interpreter, so lua need not be
installed separately.
* New `--filter/-F` option to make it easier to run "filters"
(Pandoc AST transformations that operate on JSON serializations).
Filters are always passed the name of the output format, so their
behavior can be tailored to it. The repository
<https://github.com/jgm/pandocfilters> contains
a python module for writing pandoc filters in python, with
a number of examples.
* Added `--metadata/-M` option.
This is like `--variable/-V`, but actually adds to metadata, not
just variables.
* Added `--print-default-data-file` option, which allows printing
of any of pandoc's data files. (For example,
`pandoc --print-default-data-file reference.odt` will print
`reference.odt`.)
* Added syntax for "pauses" in slide shows:
This gives
. . .
me pause.
* New markdown extensions:
+ `ignore_line_breaks`: causes intra-paragraph line breaks to be ignored,
rather than being treated as hard line breaks or spaces. This is useful
for some East Asian languages, where spaces aren't used between words,
but text is separated into lines for readability.
+ `yaml_metadata_block`: Parse YAML metadata blocks. (Default.)
+ `ascii_identifiers`: This will force `auto_identifiers` to use ASCII
only. (Default for `markdown_github`.) (#807)
+ `lists_without_preceding_blankline`: Allow lists to start without
preceding blank space. (Default for `markdown_github`.) (#972)
### Behavior changes
* `--toc-level` no longer implies `--toc`.
Reason: EPUB users who don't want a visible TOC may still want
to set the TOC level for in the book navigation.
* `--help` now prints in and out formats in alphabetical order, and
says something about PDF output (#720).
* `--self-contained` now returns less verbose output (telling you
which URLs it is fetching, but not giving the full header). In
addition, there are better error messages when fetching a URL fails.
* Citation support is no longer baked in to core pandoc. Users who
need citations will need to install and use a separate filter
(`--filter pandoc-citeproc`). This filter will take `bibliography`,
`csl`, and `citation-abbreviations` from the metadata, though it
may still be specified on the command line as before.
* A `Cite` element is now created in parsing markdown whether or not
there is a matching reference.
* The `pandoc-citeproc` script will put the bibliography at the
end of the document, as before. However, it will be put inside a `Div`
element with class "references", allowing users some control
over the styling of references. A final header, if any, will
be included in the `Div`.
* The markdown writer will not print a bibliography if the
`citations` extension is enabled. (If the citations are formatted
as markdown citations, it is redundant to have a bibliography,
since one will be generated automatically.)
* Previously we used to store the directory of the first input file,
even if it was local, and used this as a base directory for finding
images in ODT, EPUB, Docx, and PDF. This has been confusing to many
users. So we now look for images relative to the current
working directory, even if the first file argument is in another
directory. Note that this change may break some existing workflows.
If you have been assuming that relative links will be interpreted
relative to the directory of the first file argument, you'll need
to make that the current directory before running pandoc. (#942)
* Better error reporting in some readers, due to changes in `readWith`:
the line in which the error occurred is printed, with a caret pointing
to the column.
* All slide formats now support incremental slide view for definition lists.
* Parse `\(..\)` and `\[..\]` as math in MediaWiki reader.
Parse `:<math>...</math>` as display math. These notations are used with
the MathJax MediaWiki extension.
* All writers: template variables are set automatically from metadata
fields. However, variables specified on the command line with
`--variable` will completely shadow metadata fields.
* If `--variable` is used to set many variables with the same name,
a list is created.
* Man writer: The `title`, `section`, `header`, and `footer` can now
all be set individually in metadata. The `description` variable has been
removed. Quotes have been added so that spaces are allowed in the
title. If you have a title that begins
COMMAND(1) footer here | header here
pandoc will still parse it into a title, section, header, and
footer. But you can also specify these elements explicitly (#885).
* Markdown reader
+ Added support for YAML metadata blocks, which can come anywhere
in the document (not just at the beginning). A document can contain
multiple YAML metadata blocks.
+ HTML span and div tags are parsed as pandoc Span and Div elements.
* Markdown writer
+ Allow simple tables to be printed as grid tables,
if other table options are disabled. This means you can do
`pandoc -t markdown-pipe_tables-simple_tables-multiline_tables`
and all tables will render as grid tables.
+ Support YAML title block (render fields in alphabetical order
to make output predictable).
### API changes
* `Meta` in `Text.Pandoc.Definition` has been changed to allow
structured metadata. (Note: existing code that pattern-matches
on `Meta` will have to be revised.) Metadata can now contain
indefinitely many fields, with content that can be a string,
a Boolean, a list of `Inline` elements, a list of `Block`
elements, or a map or list of these.
* A new generic block container (`Div`) has been added to `Block`,
and a generic inline container (`Span`) has been added to `Inline`.
These can take attributes. They will render in HTML, Textile,
MediaWiki, Org, RST and Markdown (with `markdown_in_html`
extension) as HTML `<div>` and `<span>` elements; in other formats
they will simply pass through their contents. But they can be
targeted by scripts.
* `Format` is now a newtype, not an alias for String.
Equality comparisons are case-insensitive.
* Added `Text.Pandoc.Walk`, which exports hand-written tree-walking
functions that are much faster than the SYB functions from
`Text.Pandoc.Generic`. These functions are now used where possible
in pandoc's code. (`Tests.Walk` verifies that `walk` and `query`
match the generic traversals `bottomUp` and `queryWith`.)
* Added `Text.Pandoc.JSON`, which provides `ToJSON` and `FromJSON`
instances for the basic pandoc types. They use GHC generics and
should be faster than the old JSON serialization using
`Data.Aeson.Generic`.
* Added `Text.Pandoc.Process`, exporting `pipeProcess`.
This is a souped-up version of `readProcessWithErrorcode` that
uses lazy bytestrings instead of strings and allows setting
environment variables. (Used in `Text.Pandoc.PDF`.)
* New module `Text.Pandoc.Readers.OPML`.
* New module `Text.Pandoc.Writers.OPML`.
* New module `Text.Pandoc.Readers.Haddock` (David Lazar).
This is based on Haddock's own lexer/parser.
* New module `Text.Pandoc.Writers.Custom`.
* In `Text.Pandoc.Shared`, `openURL` and `fetchItem` now return an
Either, for better error handling.
* Made `stringify` polymorphic in `Text.Pandoc.Shared`.
* Removed `stripTags` from `Text.Pandoc.XML`.
* `Text.Pandoc.Templates`:
+ Simplified `Template` type to a newtype.
+ Removed `Empty`.
+ Changed type of `renderTemplate`: it now takes a JSON context
and a compiled template.
+ Export `compileTemplate`.
+ Export `renderTemplate'` that takes a string instead of a compiled
template.
+ Export `varListToJSON`.
* `Text.Pandoc.PDF` exports `makePDF` instead of `tex2pdf`.
* `Text.Pandoc`:
+ Made `toJsonFilter` an alias for `toJSONFilter` from `Text.Pandoc.JSON`.
+ Removed `ToJsonFilter` typeclass. `ToJSONFilter` from
`Text.Pandoc.JSON` should be used instead. (Compiling against
pandoc-types instead of pandoc will also produce smaller executables.)
* Removed the deprecated `jsonFilter` function.
+ Added `readJSON`, `writeJSON` to the API (#817).
* `Text.Pandoc.Options`:
+ Added `Ext_lists_without_preceding_blankline`,
`Ext_ascii_identifiers`, `Ext_ignore_line_breaks`,
`Ext_yaml_metadataBlock` to `Extension`.
+ Changed `writerSourceDirectory` to `writerSourceURL` and changed the
type to a `Maybe`. `writerSourceURL` is set to 'Just url' when the
first command-line argument is an absolute URL. (So, relative links
will be resolved in relation to the first page.) Otherwise, 'Nothing'.
+ All bibliography-related fields have been removed from
`ReaderOptions` and `WriterOptions`: `writerBiblioFiles`,
`readerReferences`, `readerCitationStyle`.
* The `Text.Pandoc.Biblio` module has been removed. Users of the
pandoc library who want citation support will need to use
`Text.CSL.Pandoc` from `pandoc-citeproc`.
### Bug fixes
* In markdown, don't autolink a bare URI that is followed by `</a>`
(#937).
* `Text.Pandoc.Shared`
+ `openURL` now follows redirects (#701), properly handles `data:`
URIs, and prints diagnostic output to stderr rather than stdout.
+ `readDefaultDataFile`: normalize the paths. This fixes bugs in
`--self-contained` on pandoc compiled with `embed_data_files` (#833).
+ Fixed `readDefaultDataFile` so it works on Windows.
+ Better error messages for `readDefaultDataFile`. Instead of
listing the last path tried, which can confuse people who are
using `--self-contained`, so now we just list the data file name.
+ URL-escape pipe characters. Even though these are legal, `Network.URI`
doesn't regard them as legal in URLs. So we escape them first (#535).
* Mathjax in HTML slide shows: include explicit "Typeset" call.
This seems to be needed for some formats (e.g. slideous) and won't
hurt in others (#966).
* `Text.Pandoc.PDF`
+ On Windows, create temdir in working directory, since the system
temp directory path may contain tildes, which can cause
problems in LaTeX (#777).
+ Put temporary output directory in `TEXINPUTS` (see #917).
+ `makePDF` tries to download images that are not found locally,
if the first argument is a URL (#917).
+ If compiling with `pdflatex` yields an encoding error, offer
the suggestion to use `--latex-engine=xelatex`.
* Produce automatic header identifiers in parsing textile, RST,
and LaTeX, unless `auto_identifiers` extension is disabled (#967).
* `Text.Pandoc.SelfContained`: Strip off fragment, query of relative URL
before treating as a filename. This fixes `--self-contained` when used
with CSS files that include web fonts using the method described here:
<http://paulirish.com/2009/bulletproof-font-face-implementation-syntax/>
(#739). Handle `src` in `embed`, `audio`, `source`, `input` tags.
* `Text.Pandoc.Parsing`: `uri` parser no longer treats punctuation before
percent-encoding, or a `+` character, as final punctuation.
* `Text.Pandoc.ImageSize`: Handle EPS (#903). This change will make
EPS images properly sized on conversion to Word.
* Slidy: Use slidy.js rather than slidy.js.gz.
Reason: some browsers have trouble with the gzipped js file,
at least on the local file system (#795).
* Markdown reader
+ Properly handle blank line at beginning of input (#882).
+ Fixed bug in unmatched reference links. The input
`[*infile*] [*outfile*]` was getting improperly parsed:
"infile" was emphasized, but "*outfile*" was literal (#883).
+ Allow internal `+` in citation identifiers (#856).
+ Allow `.` or `)` after `#` in ATX headers if no `fancy_lists`.
+ Do not generate blank title, author, or date metadata elements.
Leave these out entirely if they aren't present.
+ Allow backtick code blocks not to be preceded by blank line (#975).
* Textile reader:
+ Correctly handle entities.
+ Improved handling of `<pre>` blocks (#927). Remove internal HTML tags
in code blocks, rather than printing them verbatim. Parse attributes
on `<pre>` tag for code blocks.
* HTML reader: Handle non-simple tables (#893). Column widths are read from
`col` tags if present, otherwise divided equally.
* LaTeX reader
+ Support alltt environment (#892).
+ Support `\textasciitilde`, `\textasciicircum` (#810).
+ Treat `\textsl` as emphasized text reader (#850).
+ Skip positional options after `\begin{figure}`.
+ Support `\v{}` for hacek (#926).
+ Don't add spurious ", " to citation suffixes.
This is added when needed in pandoc-citeproc.
+ Allow spaces in alignment spec in tables, e.g. `{ l r c }`.
+ Improved support for accented characters (thanks to Scott Morrison).
+ Parse label after section command and set id (#951).
* RST reader:
+ Don't insert paragraphs where docutils doesn't.
`rst2html` doesn't add `<p>` tags to list items (even when they are
separated by blank lines) unless there are multiple paragraphs in the
list. This commit changes the RST reader to conform more closely to
what docutils does (#880).
+ Improved metadata. Treat initial field list as metadata when
standalone specified. Previously ALL fields "title", "author",
"date" in field lists were treated as metadata, even if not at
the beginning. Use `subtitle` metadata field for subtitle.
+ Fixed 'authors' metadata parsing in reST. Semicolons separate
different authors.
* MediaWiki reader
+ Allow space before table rows.
+ Fixed regression for `<ref>URL</ref>`.
`<` is no longer allowed in URLs, according to the uri parser
in `Text.Pandoc.Parsing`. Added a test case.
+ Correctly handle indented preformatted text without preceding
or following blank line.
+ Fixed `|` links inside table cells. Improved attribute parsing.
+ Skip attributes on table rows. Previously we just crashed if
rows had attributes, now we ignore them.
+ Ignore attributes on headers.
+ Allow `Image:` for images (#971).
+ Parse an image with caption in a paragraph by itself as a figure.
* LaTeX writer
+ Don't use ligatures in escaping inline code.
+ Fixed footnote numbers in LaTeX/PDF tables. This fixes a bug
wherein notes were numbered incorrectly in tables (#827).
+ Always create labels for sections. Previously the labels were only
created when there were links to the section in the document (#871).
+ Stop escaping `|` in LaTeX math.
This caused problems with array environments (#891).
+ Change `\` to `/` in paths. `/` works even on Windows in LaTeX.
`\` will cause major problems if unescaped.
+ Write id for code block to label attribute in LaTeX when listings
is used (thanks to Florian Eitel).
+ Scale LaTeX tables so they don't exceed columnwidth.
+ Avoid problem with footnotes in unnumbered headers (#940).
* Beamer writer: when creating beamer slides, add `allowframebreaks` option
to the slide if it is one of the header classes. It is recommended
that your bibliography slide have this attribute:
# References {.allowframebreaks}
This causes multiple slides to be created if necessary, depending
on the length of the bibliography.
* ConTeXt writer: Properly handle tables without captions. The old output
only worked in MkII. This should work in MkIV as well (#837).
* MediaWiki writer: Use native mediawiki tables instead of HTML (#720).
* HTML writer:
+ Fixed `--no-highlight` (Alexander Kondratskiy).
+ Don't convert to lowercase in email obfuscation (#839).
+ Ensure proper escaping in `<title>` and `<meta>` fields.
* AsciiDoc writer:
+ Support `--atx-headers` (Max Rydahl Andersen).
+ Don't print empty identifier blocks `([[]])` on headers (Max
Rydahl Andersen).
* ODT writer:
+ Fixing wrong numbered-list indentation in open document format
(Alexander Kondratskiy) (#369).
+ `reference.odt`: Added pandoc as "generator" in `meta.xml`.
+ Minor changes for ODF 1.2 conformance (#939). We leave the
nonconforming `contextual-spacing` attribute, which is provided by
LibreOffice itself and seems well supported.
* Docx writer:
+ Fixed rendering of display math in lists.
In 1.11 and 1.11.1, display math in lists rendered as a new list
item. Now it always appears centered, just as outside of lists,
and in proper display math style, no matter how far indented the
containing list item is (#784).
+ Use `w:br` with `w:type` `textWrapping` for linebreaks.
Previously we used `w:cr` (#873).
+ Use Compact style for Plain block elements, to
differentiate between tight and loose lists (#775).
+ Ignore most components of `reference.docx`.
We take the `word/styles.xml`, `docProps/app.xml`,
`word/theme/theme1.xml`, and `word/fontTable.xml` from
`reference.docx`, ignoring everything else. This should help
with the corruption problems caused when different versions of
Word resave the reference.docx and reorganize things.
+ Made `--no-highlight` work properly.
* EPUB writer
+ Don't add `dc:creator` tags if present in EPUB metadata.
+ Add `id="toc-title"` to `h1` in `nav.xhtml` (#799).
+ Don't put blank title page in reading sequence.
Set `linear="no"` if no title block. Addresses #797.
+ Download webtex images and include as data URLs.
This allows you to use `--webtex` in creating EPUBs.
Math with `--webtex` is automatically made self-contained.
+ In `data/epub.css`, removed highlighting styles (which
are no longer needed, since styles are added by the HTML
writer according to `--highlighting-style`). Simplified
margin fields.
+ If resource not found, skip it, as in Docx writer (#916).
* RTF writer:
+ Properly handle characters above the 0000-FFFF range.
Uses surrogate pairs. Thanks to Hiromi Ishii for the patch.
+ Fixed regression with RTF table of contents.
+ Only autolink absolute URIs. This fixes a regression, #830.
* Markdown writer:
+ Only autolink absolute URIs. This fixes a regression, #830.
+ Don't wrap attributes in fenced code blocks.
+ Write full metadata in MMD style title blocks.
+ Put multiple authors on separate lines in pandoc titleblock.
Also, don't wrap long author entries, as new lines get treated
as new authors.
* `Text.Pandoc.Templates`:
+ Fixed bug retrieving default template for markdown variants.
+ Templates can now contain "record lookups" in variables;
for example, `author.institution` will retrieve the `institution`
field of the `author` variable.
+ More consistent behavior of `$for$`. When `foo` is not a list,
`$for(foo)$...$endfor$` should behave like $if(foo)$...$endif$.
So if `foo` resolves to "", no output should be produced.
See pandoc-templates#39.
* Citation processing improvements (now part of pandoc-citeproc):
+ Fixed `endWithPunct` The new version correctly sees a sentence
ending in '.)' as ending with punctuation. This fixes a bug which
led such sentences to receive an extra period at the end: '.).'.
Thanks to Steve Petersen for reporting.
+ Don't interfere with Notes that aren't citation notes.
This fixes a bug in which notes not generated from citations were
being altered (e.g. first letter capitalized) (#898).
+ Only capitalize footnote citations when they have a prefix.
+ Changes in suffix parsing. A suffix beginning with a digit gets 'p'
inserted before it before passing to citeproc-hs, so that bare numbers
are treated as page numbers by default. A suffix not beginning with
punctuation has a space added at the beginning (rather than a comma and
space, as was done before for not-author-in-text citations).
The result is that `\citep[23]{item1}` in LaTeX will be interpreted
properly, with '23' treated as a locator of type 'page'.
+ Many improvements to citation rendering, due to fixes in citeproc-hs
(thanks to Andrea Rossato).
+ Warnings are issued for undefined citations, which are rendered
as `???`.
+ Fixed hanging behavior when locale files cannot be found.
### Template changes
* DocBook: Use DocBook 4.5 doctype.
* Org: '#+TITLE:' is inserted before the title.
Previously the writer did this.
* LaTeX: Changes to make mathfont work with xelatex.
We need the mathspec library, not just fontspec, for this.
We also need to set options for setmathfont (#734).
* LaTeX: Use `tex-ansi` mapping for `monofont`.
This ensures that straight quotes appear as straight, rather than
being treated as curly. See #889.
* Made `\includegraphics` more flexible in LaTeX template.
Now it can be used with options, if needed. Thanks to Bernhard Weichel.
* LaTeX/Beamer: Added `classoption` variable.
This is intended for class options like `oneside`; it may
be repeated with different options. (Thanks to Oliver Matthews.)
* Beamer: Added `fonttheme` variable. (Thanks to Luis Osa.)
* LaTeX: Added `biblio-style` variable (#920).
* DZSlides: title attribute on title section.
* HTML5: add meta tag to allow scaling by user (Erik Evenson)
### Under-the-hood improvements
* Markdown reader:Improved strong/emph parsing, using the strategy of
<https://github.com/jgm/Markdown>. The new parsing algorithm requires
no backtracking, and no keeping track of nesting levels. It will give
different results in some edge cases, but these should not affect normal
uses.
* Added `Text.Pandoc.Compat.Monoid`.
This allows pandoc to compile with `base` < 4.5, where `Data.Monoid`
doesn't export `<>`. Thanks to Dirk Ullirch for the patch.
* Added `Text.Pandoc.Compat.TagSoupEntity`.
This allows pandoc to compile with `tagsoup` 0.13.x.
Thanks to Dirk Ullrich for the patch.
* Most of `Text.Pandoc.Readers.TeXMath` has been moved to the
`texmath` module (0.6.4). (This allows `pandoc-citeproc` to
handle simple math in bibliography fields.)
* Added `Text.Pandoc.Writers.Shared` for shared functions used
only in writers. `metaToJSON` is used in writers to create a
JSON object for use in the templates from the pandoc metadata
and variables. `getField`, `setField`, and `defField` are
for working with JSON template contexts.
* Added `Text.Pandoc.Asciify` utility module.
This exports functions to create ASCII-only versions of identifiers.
* `Text.Pandoc.Parsing`
+ Generalized state type on `readWith` (API change).
+ Specialize readWith to `String` input. (API change).
+ In `ParserState`, replace `stateTitle`, `stateAuthors`, `stateDate`
with `stateMeta` and `stateMeta'`.
* `Text.Pandoc.UTF8`: use strict bytestrings in reading. The use of lazy
bytestrings seemed to cause problems using pandoc on 64-bit Windows
7/8 (#874).
* Factored out `registerHeader` from markdown reader, added to
`Text.Pandoc.Parsing`.
* Removed `blaze_html_0_5` flag, require `blaze-html` >= 0.5.
Reason: < 0.5 does not provide a monoid instance for Attribute,
which is now needed by the HTML writer (#803).
* Added `http-conduit` flag, which allows fetching https resources.
It also brings in a large number of dependencies (`http-conduit`
and its dependencies), which is why for now it is an optional flag
(#820).
* Added CONTRIBUTING.md.
* Improved INSTALL instructions.
* `make-windows-installer.bat`: Removed explicit paths for executables.
* `aeson` is now used instead of `json` for JSON.
* Set default stack size to 16M. This is needed for some large
conversions, esp. if pandoc is compiled with 64-bit ghc.
* Various small documentation improvements.
Thanks to achalddave and drothlis for patches.
* Removed comment that chokes recent versions of CPP (#933).
* Removed support for GHC version < 7.2, since pandoc-types now
requires at least GHC 7.2 for GHC generics.
## pandoc 1.11.1 (2013-03-17)
* Markdown reader:
+ Fixed regression in which parentheses were lost in link URLs.
Added tests. Closes #786.
+ Better handling of unmatched double quotes in `--smart` mode.
These occur frequently in fiction, since it is customary not to
close quotes in dialogue if the speaker does not change between
paragraphs. The unmatched quotes now get turned into literal
left double quotes. (No `Quoted` inline is generated, however.)
Closes #99 (again).
* HTML writer: Fixed numbering mismatch between TOC and sections.
`--number-offset` now affects TOC numbering as well
as section numbering, as it should have all along. Closes #789.
* Markdown writer: Reverted 1.11 change that caused citations to be rendered
as markdown citations, even if `--bibliography` was specified, unless
`citation` extension is disabled. Now, formatted citations are always
printed if `--bibliography` was specified. If you want to reformat
markdown keeping pandoc markdown citations intact, don't use
`--bibliography`. Note that citations parsed from LaTeX documents will
be rendered as pandoc markdown citations when `--bibliography` is not
specified.
* ODT writer: Fixed regression leading to corrupt ODTs.
This was due to a change in the `Show` instance for
`Text.Pandoc.Pretty.Doc`. Closes #780.
* Fixed spacing bugs involving code block attributes in
RST reader and Markdown writer. Closes #763.
* Windows package: Various improvements due to Fyodor Sheremetyev.
+ Automatically set installation path (Program Files or Local App Data).
+ Set system PATH environment variable when installing for all users.
+ Pandoc can installed for all users using the following command.
`msiexec /i pandoc-1.11.msi ALLUSERS=1`.
* Bumped QuickCheck version bound.
## pandoc 1.11 (2013-03-09)
* Added `--number-offset` option. (See README for description.)
* Added `--default-image-extension` option. (See README for description.)
* `--number-sections` behavior change: headers with class `unnumbered`
will not be numbered.
* `--version` now reports the default data directory.
* `Text.Pandoc.Parsing` is no longer exposed. (API change.)
* `Text.Pandoc.Highlighting` is no longer exposed. (API change.)
* `Text.Pandoc.Shared`: Changed type of `Element`. `Sec` now includes
a field for `Attr` rather than just `String`. (API change.)
* Added `markdown_github` as input format. This was an accidental
omission in 1.10.
* Added `readerDefaultImageExtension` field to `ReaderOptions`. (API
change.)
* Added `writerNumberOffset` field in `WriterOptions`. (API change.)
* Beamer template:
+ Fixed captions with longtable. Thanks to Joost Kremers.
+ Provide `\Oldincludegraphics` as in LaTeX template (Benjamin Bannier).
* LaTeX template:
+ Load microtype after fonts. Microtype needs to know
what fonts are being used. Thanks to dfc for the patch.
+ Set `secnumdepth` to 5 if `--number-sections` specified.
This yields behavior equivalent to the other writers, numbering
level 4 and 5 headers too. Closes #753.
* HTML reader:
+ Handle `<colgroup>` tag.
+ Preserve all header attributes.
* LaTeX reader:
+ Parse `\hrule` as `HorizontalRule`. Closes #746.
+ Parse starred variants of `\section` etc. as headers with
attribute `unnumbered`.
+ Read optional attributes in `lstlisting` and `Verbatim` environments.
We convert these to pandoc standard names, e.g. `numberLines`
for `numbers=left`, `startFrom=100` from `firstnumber=100`.
+ Handle language attribute for lstlistings.
+ Better support for Verbatim and minted environments. Closes #763.
* Markdown reader:
+ `-` in an attribute context = `.unnumbered`. The point of this
is to provide a way to specify unnumbered headers in non-English
documents.
+ Fixed bug parsing key/value attributes. Parsing failed if you
had an unquoted attribute immediately before the final '}'.
+ Make backslash escape work in attributes.
+ Fix title block parsing. Now if `mmd_title_blocks` is specified,
pandoc will parse a MMD title block if it sees one, even if
`pandoc_title_blocks` is enabled.
+ Refactoring: `litChar` now includes entities, so we don't need
to use `fromEntities` e.g. on titles.
+ Allow spaces around borders in pipe tables. Closes #772.
+ Allow all punctuation in angle-bracket autolinks. Previously
things like `----` were disallowed, because the uri parser
treated them as trailing punctuation. Closes #768.
+ Make `implicit_header_references` work properly when
headers are given explicit identifiers.
+ Check for tables before line blocks. Otherwise some pipe
tables get treated as line blocks.
+ Allow `&` in emails (for entities).
+ Properly handle entities in titles and links. A markdown link
`<http://göogle.com>` should be a link to `http://göogle.com`.
Closes #723.
* Textile reader:
+ Handle attributes on headers.
* LaTeX reader:
+ Add `fig:` as title for images with captions.
This is needed for them to be rendered as figures. Closes #766.
+ Never emit an empty paragraph. See #761.
+ Handle `\caption` for images in figures. Closes #766.
+ Parse `\section*`, etc. as unnumbered sections.
* HTML writer:
+ Support header attributes. The attributes go on
the enclosing `section` or `div` tag if `--section-divs` is specified.
+ Fixed a regression (only now noticed) in html+lhs output.
Previously the bird tracks were being omitted.
* LaTeX writer:
+ Omit lists with no items to avoid LaTeX errors.
+ Support line numbering with `--listings`.
If `numberLines` class is present, we add `numbers=left`;
if `startFrom` is present, we add `firstnumber=`. (#763)
* ConTeXt writer:
+ Removed `\placecontent`. This produced a duplicate toc,
in conjunction with `\placelist`.
+ Use `\title`, `\subject` etc. for headers with
`unnumbered` class.
* Textile writer:
+ Support header attributes.
* Markdown writer:
+ Use grid tables when needed, and if enabled. Closes #740.
+ Render citations as pandoc-markdown citations.
Previously citations were rendered as citeproc-formatted citations
by default. Now we render them as pandoc citations, e.g. `[@item1]`,
unless the `citations` extension is disabled.
If you still want formatted citations in your markdown output,
use `pandoc -t markdown-citations`.
* RST writer:
+ Support `:number-lines:` in code blocks.
* Docx writer:
+ Better treatment of display math. Display math inside a
paragraph is now put in a separate paragraph, so it will render
properly (centered and without extra blank lines around it).
Partially addresses #742.
+ Content types and document rels xml files are now created from
scratch, rather than being taken over from `reference.docx`.
This fixes problems that arise when you edit the `reference.docx`
with Word.
+ We also now encode mime types for each individual image rather
than using defaults. This should allow us to handle a wider
range of image types (including PDF). Closes #414.
+ Changed style names in `reference docx`.
`FootnoteReference` -> `FootnoteRef`, `Hyperlink` -> `Link`.
The old names got changed by Word when the `reference.docx` was
edited. Closes #414.
* EPUB writer:
+ Fix section numbering. Previously the numbering restarted from 1
in each chapter (with `--number-sections`), though the numbers in
the table of contents were correct.
+ Headers with "unnumbered" attribute are not numbered. (Nor do they
cause an increment in running numbering.) Section numbers now work
properly, even when there is material before the first numbered section.
+ Include HTML TOC, even in epub2. The TOC is included in `<spine>`,
but `linear` is set to `no` unless the `--toc` option is specified.
Include `<guide>` element in OPF. This should allow the TOC to
be usable in Kindles when converted with kindlegen. Closes #773.
* `Text.Pandoc.Parsing`: Optimized `oneOfStringsCI`.
This dramatically reduces the speed penalty that comes from enabling the
`autolink_bare_uris` extension. The penalty is still substantial (in one
test, from 0.33s to 0.44s), but nowhere near what it used to be.
The RST reader is also much faster now, as it autodetects URIs.
* `Text.Pandoc.Shared`: `hierarchicalize` will not number section
with class "unnumbered". Unnumbered sections get `[]` for their
section number.
* `Text.Pandoc.Pretty`:
+ Fixed `chomp` so it works inside `Prefixed` elements.
+ Changed `Show` instance so it is better for debugging.
* `Text.Pandoc.ImageSize`: Added `Pdf` to `ImageType`.
* `Text.Pandoc.UTF8`: Strip off BOM if present. Closes #743.
* Windows installer improvements:
+ The installer is now signed with a certificate (thanks to
Fyodor Sheremetyev).
+ WiX is used instead of InnoSetup. The installer is now a
standard msi file.
+ The version number is now auto-detected, and need not be
updated separately.
* OSX installer improvements:
+ The package and pandoc executable are now signed with a
certificate (thanks to Fyodor Sheremetyev).
+ RTF version of license is used.
+ Use full path for sysctl in `InstallationCheck` script (jonahbull).
Closes #580.
* Converted COPYING to markdown.
* pandoc.cabal: Require latest versions of highlighting-kate,
texmath, citeproc-hs, zip-archive.
## pandoc 1.10.1 (2013-01-23)
* Markdown reader: various optimizations, leading to a
significant performance boost.
* RST reader: Allow anonymous form of inline links:
`` `hello <url>`__ `` Closes #724.
* Mediawiki reader: Don't require newlines after tables.
Thanks to jrunningen for the patch. Closes #733.
* Fixed LaTeX macro parsing. Now LaTeX macro definitions are preserved
when output is LaTeX, and applied when it is another format.
Partially addresses #730.
* Markdown and RST readers: Added parser to `block` that skips blank
lines. This fixes a subtle regression involving grid tables with
empty cells. Also added test for grid table with empty cells.
Closes #732.
* RST writer: Use `.. code:: language` for code blocks with language.
Closes #721.
* DocBook writer: Fixed output for hard line breaks, adding a newline
between `<literallayout>` tags.
* Markdown writer: Use an autolink when link text matches url.
Previously we also checked for a null title, but this
test fails for links produced by citeproc-hs in bibliographies.
So, if the link has a title, it will be lost on conversion
to an autolink, but that seems okay.
* Markdown writer: Set title, author, date variables as before.
These are no longer used in the default template, since we use
titleblock, but we set them anyway for those who use custom templates.
* LaTeX writer: Avoid extra space at start/end of table cell.
Thanks to Nick Bart for the suggestion of using @{}.
* `Text.Pandoc.Parsing`:
+ More efficient version of `anyLine`.
+ Type of `macro` has changed; the parser now returns `Blocks`
instead of `Block`.
* Relaxed old-time version bound, allowing 1.0.*.
* Removed obsolete `hsmarkdown` script. Those who need `hsmarkdown`
should create a symlink as described in the README.
## pandoc 1.10.0.5 (2013-01-23)
* Markdown reader: Try `lhsCodeBlock` before `rawTeXBlock`. Otherwise
`\begin{code}...\end{code}` isn't handled properly in markdown+lhs.
Thanks to Daniel Miot for noticing the bug and suggesting the fix.
* Markdown reader: Fixed bug with headerless grid tables.
The 1.10 code assumed that each table header cell contains exactly one
block. That failed for headerless tables (0) and also for tables with
multiple blocks in a header cell. The code is fixed and tests provided.
Thanks to Andrew Lee for pointing out the bug.
* Markdown reader: Fixed regressions in fenced code blocks. Closes #722.
+ Tilde code fences can again take a bare language string
(`~~~ haskell`), not just curly-bracketed attributes
(`~~~ {.haskell}`).
+ Backtick code blocks can take the curly-bracketed attributes.
+ Backtick code blocks don't *require* a language.
+ Consolidated code for the two kinds of fenced code blocks.
* LaTeX template: Use `\urlstyle{same}` to avoid monospace URLs.
* Markdown writer: Use proportional font for email autolinks with
obfuscation. Closes #714.
* Corrected name of `blank_before_blockquote` in README. Closes #718.
* `Text.Pandoc.Shared`: Fixed bug in `uri` parser.
The bug prevented an autolink at the end of a string (e.g.
at the end of a line block line) from counting as a link. Closes #711.
* Use the `hsb2hs` preprocessor instead of TH for embed_data_files.
This should work on Windows, unlike the TH solution with
file-embed.
* Eliminated use of TH in test suite.
* Added `Text.Pandoc.Data` (non-exported) to hold the association
list of embedded data files, if the `embed_data_files` flag is selected.
This isolates the code that needs special treatment with file-embed or
`hsb2hs`.
* Changes to `make-windows-installer.bat`.
+ Exit batch file if any of the cabal-dev installs fail.
+ There's no longer any need to reinstall `highlighting-kate`.
+ Don't start with a `cabal update`; leave that to the user.
+ Force reinstall of pandoc.
* Fixed EPUB writer so it builds with blaze-html 0.4.x. Thanks to
Jens Petersen.
## pandoc 1.10.0.4 (2013-01-20)
* Fixed bug with escaped % in LaTeX reader. Closes #710.
## pandoc 1.10.0.3 (2013-01-20)
* Added further missing fb2 tests to cabal file.
## pandoc 1.10.0.2 (2013-01-20)
* Added fb2 tests to cabal file's extra-source-files.
## pandoc 1.10.0.1 (2013-01-20)
* Bump version bounds on test-framework packages.
## pandoc 1.10 (2013-01-19)
### New features
* New input formats: `mediawiki` (MediaWiki markup).
* New output formats: `epub3` (EPUB v3 with MathML),
`fb2` (FictionBook2 ebooks).
* New `--toc-depth` option, specifying how many levels of
headers to include in a table of contents.
* New `--epub-chapter-level` option, specifying the header
level at which to divide EPUBs into separate files.
Note that this normally affects only performance, not the
visual presentation of the EPUB in a reader.
* Removed the `--strict` option. Instead of using `--strict`,
one can now use the format name `markdown_strict` for either input
or output. This gives more fine-grained control that `--strict`
did, allowing one to convert from pandoc's markdown to strict
markdown or vice versa.
* It is now possible to enable or disable specific syntax
extensions by appending them (with `+` or `-`) to the writer
or reader name. For example,
pandoc -f markdown-footnotes+hard_line_breaks
disables footnotes and enables treating newlines as hard
line breaks. The literate Haskell extensions are now implemented
this way as well, using either `+lhs` or `+literate_haskell`.
For a list of extension names, see the README under
"Pandoc's Markdown."
* The following aliases have been introduced for specific
combinations of markdown extensions: `markdown_phpextra`,
`markdown_github`, `markdown_mmd`, `markdown_strict`. These aliases
work just like regular reader and writer names, and can be modified
with extension modifiers as described above. (Note that conversion
from one markdown dialect to another does not work perfectly,
because there are differences in markdown parsers besides
just the extensions, and because pandoc's internal document model is
not rich enough to capture all of the extensions.)
* New `--html-q-tags` option. The previous default was to use `<q>`
tags for smart quotes in HTML5. But `<q>` tags are also valid HTML4.
Moreover, they are not a robust way of typesetting quotes, since
some user agents don't support them, and some CSS resets (e.g.
bootstrap) prevent pandoc's quotes CSS from working properly.
We now just insert literal quote characters by default in both
`html` and `html5` output, but this option is provided for
those who still want `<q>` tags.
* The markdown reader now prints warnings (to stderr) about
duplicate link and note references. Closes #375.
* Markdown syntax extensions:
+ Added pipe tables. Thanks to François Gannaz for the initial patch.
These conform to PHP Markdown Extra's pipe table syntax. A subset
of org-mode table syntax is also supported, which means that you can
use org-mode's nice table editor to create tables.
+ Added support for RST-style line blocks. These are
useful for verse and addresses.
+ Attributes can now be specified for headers, using the same
syntax as in code blocks. (However, currently only the
identifier has any effect in most writers.) For example,
# My header {#foo}
See [the header above](#foo).
+ Pandoc will now act as if link references have been defined
for all headers without explicit identifiers.
So, you can do this:
# My header
Link to [My header].
Another link to [it][My header].
Closes #691.
* LaTeX reader:
+ Command macros now work everywhere, including non-math.
Environment macros still not supported.
+ `\input` now works, as well as `\include`. TEXINPUTS is used.
Pandoc looks recursively into included files for more included files.
### Behavior changes
* The Markdown reader no longer puts the text of autolinks in a
`Code` inline. This means that autolinks will no longer appear
in a monospace font.
* The character `/` can now appear in markdown citation keys.
* HTML blocks in strict_markdown are no longer required to begin
at the left margin. Technically this is required, according to
the markdown syntax document, but `Markdown.pl` and other markdown
processors are more liberal.
* The `-V` option has been changed so that if there are duplicate
variables, those specified later on the command line take precedence.
* Tight lists now work in LaTeX and ConTeXt output.
* The LaTeX writer no longer relien on the `enumerate` package.
Instead, it uses standard LaTeX commands to change the list numbering
style.
* The LaTeX writer now uses `longtable` instead of `ctable`. This allows
tables to be split over page boundaries.
* The RST writer now uses a line block to render paragraphs containing
linebreaks (which previously weren't supported at all).
* The markdown writer now applies the `--id-prefix` to footnote IDs.
Closes #614.
* The plain writer no longer uses backslash-escaped line breaks
(which are not very "plain").
* `Text.Pandoc.UTF8`: Better error message for invalid UTF8.
Read bytestring and use `Text`'s decodeUtf8 instead of using
`System.IO.hGetContents`. This way you get a message saying
"invalid UTF-8 stream" instead of "invalid byte sequence."
You are also told which byte caused the problem.
* Docx, ODT, and EPUB writers now download images specified by a URL
instead of skipping them or raising an error.
* EPUB writer:
+ The default CSS now left-aligns headers by default, instead of
centering. This is more consistent with the rest of the writers.
+ A proper multi-level table of contents is now used in `toc.ncx`.
There is no longer a subsidiary table of contents at the beginning
of each chapter.
+ Code highlighting now works by default.
+ Section divs are used by default for better semantic markup.
+ The title is used instead of "Title Page" in the table of contents.
Otherwise we have a hard-coded English string, which looks
strange in ebooks written in other languages. Closes #572.
* HTML writer:
+ Put mathjax in span with class "math". Closes #562.
+ Put citations in a span with class "citation." In HTML5, also include
a `data-cite` attribute with a space-separated list of citation
keys.
* `Text.Pandoc.UTF8`: use universalNewlineMode in reading.
This treats both `\r\n` and `\n` as `\n` on input, no matter
what platform we're running on.
* Citation processing is now done in the Markdown and LaTeX
readers, not in `pandoc.hs`. This makes it easier for library users
to use citations.
### Template changes
* HTML: Added css to template to preserve spaces in `<code>` tags.
Thanks to Dirk Laurie.
* Beamer: Remove English-centric strings in section pages.
Section pages used to have "Section" and a number as well as the
section title. Now they just have the title. Similarly for part
and subsection. Closes #566.
* LaTeX, ConTeXt: Added papersize variable.
* LaTeX, Beamer templates: Use longtable instead of ctable.
* LaTeX, Beamer templates: Don't require 'float' package for tables.
We don't actually seem to use the '[H]' option.
* Markdown, plain: Fixed titleblock so it is just a single string.
Previously separate title, author, and date variables were used,
but this didn't allow different kinds of title blocks.
* EPUB:
+ Rationalized templates. Previously there were three different
templates involved in epub production. There is now just one
template, `default.epub` or `default.epub3`. It can now be
overridden using `--template`, just like other templates.
The titlepage is now folded into the default template.
A `titlepage` variable selects it.
+ UTF-8, lang tag, meta tags, title element.
* Added scale-to-width feature to beamer template
### API changes
* `Text.Pandoc.Definition`: Added `Attr` field to `Header`.
Previously header identifiers were autogenerated by the writers.
Now they are added in the readers (either automatically or explicitly).
* `Text.Pandoc.Builder`:
+ `Inlines` and `Blocks` are now synonyms for `Many Inline` and
`Many Block`. `Many` is a newtype wrapper around `Seq`, with
custom Monoid instances for `Many Inline` and `Many Block. This
allows `Many` to be made an instance of `Foldable` and `Traversable`.
+ The old `Listable` class has been removed.
+ The module now exports `isNull`, `toList`, `fromList`.
+ The old `Read` and `Show` instances have been removed; derived
instances are now used.
+ Added `headerWith`.
* The readers now take a `ReaderOptions` rather than a `ParserState`
as a parameter. Indeed, not all parsers use the `ParserState` type;
some have a custom state. The motivation for this change was to separate
user-specifiable options from the accounting functions of parser state.
* New module `Text.Pandoc.Options`. This includes the `WriterOptions`
formerly in `Text.Pandoc.Shared`, and its associated
data types. It also includes a new type `ReaderOptions`, which
contains many options formerly in `ParserState`, and its associated
data types:
+ `ParserState.stateParseRaw` -> `ReaderOptions.readerParseRaw`.
+ `ParserState.stateColumns` -> `ReaderOptions.readerColumns`.
+ `ParserState.stateTabStop` -> `ReaderOptions.readerTabStop`.
+ `ParserState.stateOldDashes` -> `ReaderOptions.readerOldDashes`.
+ `ParserState.stateLiterateHaskell` -> `ReaderOptions.readerLiterateHaskell`.
+ `ParserState.stateCitations` -> `ReaderOptions.readerReferences`.
+ `ParserState.stateApplyMacros` -> `ReaderOptions.readerApplyMacros`.
+ `ParserState.stateIndentedCodeClasses` ->
`ReaderOptions.readerIndentedCodeClasses`.
+ Added `ReaderOptions.readerCitationStyle`.
* `WriterOptions` now includes `writerEpubVersion`, `writerEpubChapterLevel`,
`writerEpubStylesheet`, `writerEpubFonts`, `writerReferenceODT`,
`writerReferenceDocx`, and `writerTOCDepth`. `writerEPUBMetadata` has
been renamed `writerEpubMetadata` for consistency.
* Changed signatures of `writeODT`, `writeDocx`, `writeEPUB`, since they no
longer stylesheet, fonts, reference files as separate parameters.
* Removed `writerLiterateHaskell` from `WriterOptions`, and
`readerLiterateHaskell` from `ReaderOptions`. LHS is now handled
by an extension (`Ext_literate_haskell`).
* Removed deprecated `writerXeTeX`.
* Removed `writerStrict` from `WriterOptions`. Added `writerExtensions`.
Strict is now handled through extensions.
* `Text.Pandoc.Options` exports `pandocExtensions`, `strictExtensions`,
`phpMarkdownExtraExtensions`, `githubMarkdownExtensions`,
and `multimarkdownExtensions`, as well as the `Extensions` type.
* New `Text.Pandoc.Readers.MediaWiki` module, exporting
`readMediaWiki`.
* New `Text.Pandoc.Writers.FB2` module, exporting `writeFB2`
(thanks to Sergey Astanin).
* `Text.Pandoc`:
+ Added `getReader`, `getWriter` to `Text.Pandoc`.
+ `writers` is now an association list `(String, Writer)`.
A `Writer` can be a `PureStringWriter`, an `IOStringWriter`, or
an `IOByteStringWriter`. ALL writers are now in the 'writers'
list, including the binary writers and FB2 writer. This allows
code in `pandoc.hs` to be simplified.
+ Changed type of `readers`, so all readers are in IO.
Users who want pure readers can still get them form the reader
modules; this just affects the function `getReader` that looks up
a reader based on the format name. The point of this change is to
make it possible to print warnings from the parser.
* `Text.Pandoc.Parsing`:
+ `Text.Parsec` now exports all Parsec functions used in pandoc code.
No other module directly imports Parsec. This will make it easier
to change the parsing backend in the future, if we want to.
+ `Text.Parsec` is used instead of `Text.ParserCombinators.Parsec`.
+ Export the type synonym `Parser`.
+ Export `widthsFromIndices`, `NoteTable'`, `KeyTable'`, `Key'`, `toKey'`,
`withQuoteContext`, `singleQuoteStart`, `singleQuoteEnd`,
`doubleQuoteStart`, `doubleQuoteEnd`, `ellipses`, `apostrophe`,
`dash`, `nested`, `F(..)`, `askF`, `asksF`, `runF`, `lineBlockLines`.
+ `ParserState` is no longer an instance of `Show`.
+ Added `stateSubstitutions` and `stateWarnings` to `ParserState`.
+ Generalized type of `withQuoteContext`.
+ Added `guardEnabled`, `guardDisabled`, `getOption`.
+ Removed `failIfStrict`.
+ `lookupKeySrc` and `fromKey` are no longer exported.
* `Data.Default` instances are now provided for `ReaderOptions`,
`WriterOptions`, and `ParserState`. `Text.Pandoc` re-exports `def`.
Now you can use `def` (which is re-exported by `Text.Pandoc`) instead
of `defaultWriterOptions` (which is still defined). Closes #546.
* `Text.Pandoc.Shared`:
+ Added `safeRead`.
+ Renamed `removedLeadingTrailingSpace` to `trim`,
`removeLeadingSpace` to `triml`, and `removeTrailingSpace` to `trimr`.
+ Count `\r` as space in `trim` functions.
+ Moved `renderTags'` from HTML reader and `Text.Pandoc.SelfContained`
to `Shared`.
+ Removed `failUnlessLHS`.
+ Export `compactify'`, formerly in Markdown reader.
+ Export `isTightList`.
+ Do not export `findDataFile`.
+ `readDataFile` now returns a strict ByteString.
+ Export `readDataFileUTF8` which returns a String, like the
old `readDataFile`.
+ Export `fetchItem` and `openURL`.
* `Text.Pandoc.ImageSize`: Use strict, not lazy bytestrings.
Removed `readImageSize`.
* `Text.Pandoc.UTF8`: Export `encodePath`, `decodePath`,
`decodeArg`, `toString`, `fromString`, `toStringLazy`,
`fromStringLazy`.
* `Text.Pandoc.UTF8` is now an exposed module.
* `Text.Pandoc.Biblio`:
+ csl parameter now a `String` rather than a `FilePath`.
+ Changed type of `processBiblio`. It is no longer in the IO monad.
It now takes a `Maybe Style` argument rather than parameters for CSL
and abbrev filenames. (`pandoc.hs` now calls the functions to parse
the style file and add abbreviations.)
* Markdown reader now exports `readMarkdownWithWarnings`.
* `Text.Pandoc.RTF` now exports `writeRTFWithEmbeddedImages` instead of
`rtfEmbedImage`.
### Bug fixes
* Make `--ascii` work properly with `--self-contained`. Closes #568.
* Markdown reader:
+ Fixed link parser to avoid exponential slowdowns. Closes #620.
Previously the parser would hang on input like this:
[[[[[[[[[[[[[[[[[[hi
We fixed this by making the link parser parser characters
between balanced brackets (skipping brackets in inline code spans),
then parsing the result as an inline list. One change is that
[hi *there]* bud](/url)
is now no longer parsed as a link. But in this respect pandoc behaved
differently from most other implementations anyway, so that seems okay.
+ Look for raw html/latex blocks before tables.
Otherwise the following gets parsed as a table:
\begin{code}
--------------
-- My comment.
\end{code}
Closes #578.
* RST reader:
+ Added support for `:target:` on `.. image::` blocks
and substitutions.
+ Field list fixes:
- Fixed field lists items with body beginning after a new line
(Denis Laxalde).
- Allow any char but ':' in names of field lists in RST reader
(Denis Laxalde).
- Don't allow line breaks in field names.
- Require whitespace after field list field names.
- Don't create empty definition list for metadata field lists.
Previously a field list consisting only of metadata fields (author,
title, date) would be parsed as an empty DefinitionList, which is
not legal in LaTeX and not needed in any format.
+ Don't recognize inline-markup starts inside words.
For example, `2*2 = 4*1` should not contain an emphasized
section. Added test case for "Literal symbols". Closes #569.
+ Allow dashes as separator in simple tables. Closes #555.
+ Added support for `container`, `compound`, `epigraph`,
`rubric`, `highlights`, `pull-quote`.
+ Added support for `.. code::`.
+ Made directive labels case-insensitive.
+ Removed requirement that directives begin at left margin.
This was (correctly) not in earlier releases; docutils doesn't
make the requirement.
+ Added support for `replace::` and `unicode::` substitutions.
+ Ignore unknown interpreted roles.
+ Renamed image parser to `subst`, since it now handles all
substitution references.
* Textile reader:
+ Allow newlines before pipes in table. Closes #654.
+ Fixed bug with list items containing line breaks.
Now pandoc correctly handles hard line breaks inside list items.
Previously they broke list parsing.
+ Implemented comment blocks.
+ Fixed bug affected words ending in hyphen.
+ Properly handle links with surrounding brackets.
Square brackets need to be used when the link isn't surrounded by
spaces or punctuation, or when the URL ending may be ambiguous.
Closes #564.
+ Removed nullBlock. Better to know about parsing problems than
to skip stuff when we get stuck.
+ Allow ID attributes on headers.
+ Textile reader: Avoid parsing dashes as strikeout.
Previously the input
text--
text--
text--
text--
would be parsed with strikeouts rather than dashes. This fixes
the problem by requiring that a strikeout delimiting - not be
followed by a -. Closes #631.
+ Expanded list of `stringBreakers`.
This fixes a bug on input like "(_hello_)" which should
be a parenthesized emphasized "hello".
The new list is taken from the PHP source of textile 2.4.
+ Fixed autolinks. Previously the textile reader and writer
incorrectly implemented RST-style autolinks for URLs and email
addresses. This has been fixed. Now an autolink is done this way:
`"$":http://myurl.com`.
+ Fixed footnotes bug in textile. This affected notes occurring
before punctuation, e.g. `foo[1].`. Closes #518.
* LaTeX reader:
+ Better handling of citation commands.
+ Better handling of `\noindent`.
+ Added a 'try' in rawLaTeXBlock, so we can handle `\begin` without `{`.
Closes #622.
+ Made `rawLaTeXInline` try to parse block commands as well. This
is usually what we want, given how `rawLaTeXInline` is used in
the markdown and textile readers. If a block-level LaTeX command
is used in the middle of a paragraph (e.g. `\subtitle` inside a title),
we can treat it as raw inline LaTeX.
+ Handle `\slash` command. Closes #605.
+ Basic `\enquote` support.
+ Fixed parsing of paragraphs beginning with a group. Closes #606.
+ Use curly quotes for bare straight quotes.
+ Support obeylines environment. Closes #604.
+ Guard against "begin", "end" in inlineCommand and
blockCommand.
+ Better error messages for environments. Now it should tell you that
it was looking for \end{env}, instead of giving "unknown parse error."
* HTML reader:
+ Added HTML 5 tags to list of block-level tags.
+ HTML reader: Fixed bug in `htmlBalanced`, which
caused hangs in parsing certain markdown input using
strict mode.
+ Parse `<q>` as `Quoted DoubleQuote`.
+ Handle nested `<q>` tags properly.
+ Modified `htmlTag` for fewer false positives.
A tag must start with `<` followed by `!`,`?`, `/`, or a letter.
This makes it more useful in the wikimedia and markdown parsers.
* DocBook reader: Support title in "figure" element. Closes #650.
* MediaWiki writer:
+ Remove newline after `<br/>` in translation of `LineBreak`
There's no particular need for a newline (other than making the
generated MediaWiki source look nice to a human), and in fact
sometimes it is incorrect: in particular, inside an enumeration, list
items cannot have embedded newline characters. (Brent Yorgey)
+ Use `<code>` not `<tt>` for Code.
* Man writer: Escape `-` as `\-`.
Unescaped `-`'s become hyphens, while `\-`'s are left as ascii minus
signs. That is preferable for use with command-line options. See
<http://lintian.debian.org/tags/hyphen-used-as-minus-sign.html>. Thanks
to Andrea Bolognani for bringing the issue to our attention.
* RST writer:
+ Improved line block output. Use nonbreaking spaces for
initial indent (otherwise lost in HTML and LaTeX).
Allow multiple paragraphs in a single line block.
Allow soft breaks w continuations in line blocks.
+ Properly handle images with no alt text. Closes #678.
+ Fixed bug with links with duplicate text. We now (a) use anonymous
links for links with inline URLs, and (b) use an inline link instead
of a reference link if the reference link would require a label that
has already been used for a different link. Closes #511.
+ Fixed hyperlinked images. Closes #611. Use `:target:`
field when you have a simple linked image.
+ Don't add `:align: center` to figures.
* Texinfo writer: Fixed internal cross-references.
Now we insert anchors after each header, and use `@ref` instead of `@uref`
for links. Commas are now escaped as `@comma{}` only when needed;
previously all commas were escaped. (This change is needed, in part,
because `@ref` commands must be followed by a real comma or period.) Also
insert a blank line in from of `@verbatim` environments.
* DocBook writer:
+ Made --id-prefix work in DocBook as well as HTML.
Closes #607.
+ Don't include empty captions in figures. Closes #581.
* LaTeX writer:
+ Use `\hspace*` for nonbreaking space after line break,
since `~` spaces after a line break are just ignored.
Closes #687.
+ Don't escape `_` in URLs or hyperref identifiers.
+ Properly escape strings inside `\url{}`. Closes #576.
+ Use `[fragile]` only for slides containing code rendered
using listings. Closes #649.
+ Escape `|` as `\vert` in LaTeX math. This avoids a clash with
highlighting-kate's macros, which redefine `|` as a short verbatim
delimiter. Thanks to Björn Peemöller for raising this issue.
+ Use minipage rather than parbox for block containers in tables.
This allows verbatim code to be included in grid tables.
Closes #663.
+ Prevent paragraphs containing only linebreaks or spaces.
* HTML writer:
+ Included `highlighting-css` for code spans, too.
Previously it was only included if used in a code block. Closes #653.
+ Improved line breaks with `<dd>` tags. We now put a newline between
`</dd>` and `<dd>` when there are multiple definitions.
+ Changed mathjax cdn url so it doesn't use https. (This caused
problems when used with `--self-contained`.) See #609.
* EPUB writer:
+ `--number-sections` now works properly.
+ Don't strip meta and link elements in epub metadata.
Patch from aberrancy. Closes #589.
+ Fixed a couple validation bugs.
+ Use ch001, ch002, etc. for chapter filenames. This improves sorting
of chapters in some readers, which apparently sort ch2 after ch10.
Closes #610.
* ODT writer: properly set title property (Arlo O'Keeffe).
* Docx writer:
+ Fixed bug with nested lists. Previously a list like
1. one
- a
- b
2. two
would come out with a bullet instead of "2."
Thanks to Russell Allen for reporting the bug.
+ Use `w:cr` in `w:r` instead of `w:br` for linebreaks.
This seems to fix a problem viewing pandoc-generated
docx files in LibreOffice.
+ Use integer ids for bookmarks. Closes #626.
+ Added nsid to abstractNum elements. This helps when merging
word documents with numbered or bulleted lists. Closes #627.
+ Use separate footnotes.xml for notes.
This seems to help LibreOffice convert the file, even though
it was valid docx before. Closes #637.
+ Use rIdNN identifiers for r:embed in images.
+ Avoid reading image files again when we've already processed them.
+ Fixed typo in `referenc.docx` that prevented image captions from
working. Thanks to Huashan Chen.
* `Text.Pandoc.Parsing`:
+ Fixed bug in `withRaw`, which didn't correctly handle the case
where nothing is parsed.
+ Made `emailAddress` parser more correct. Now it is based on RFC 822,
though it still doesn't implement quoted strings in email addresses.
+ Revised URI parser. It now allows many more schemes, allows
uppercase URIs, and better handles trailing punctuation and
trailing slashes in bare URIs. Added many tests.
+ Simplified and improved singleQuoteStart. This makes `'s'`, `'l'`,
etc. parse properly. Formerly we had some English-centric heuristics,
but they are no longer needed. Closes #698.
* `Text.Pandoc.Pretty`: Added wide punctuation range to `charWidth`.
This fixes bug with Chinese commas in markdown and reST tables, and
a bug that caused combining characters to be dropped.
* `Text.Pandoc.MIME`: Added MIME types for .wof and .eot. Closes #640.
* `Text.Pandoc.Biblio`:
+ Run `mvPunc` and `deNote` on metadata too.
This fixed a bug with notes on titles using footnote styles.
+ Fixed bug in fetching CSL files from CSL data directory.
* `pandoc.hs`: Give correct value to `writerSourceDirectory` when a URL
is provided. It should be the URL up to the path.
* Fixed/simplified diff output for tests.
Biblio: Make sure mvPunc and deNote run on metadata too.
This fixed a bug with notes on titles using footnote styles.
### Under the hood improvements
* We no longer depend on `utf8-string`. Instead we use functions
defined in `Text.Pandoc.UTF8` that use `Data.Text`'s conversions.
* Use `safeRead` instead of using `reads` directly (various modules).
* "Implicit figures" (images alone in a paragraph) are now handled
differently. The markdown reader gives their titles the prefix `fig:`; the
writers look for this before treating the image as a figure. Though this
is a bit of a hack, it has two advantages: (i) implicit figures can be
limited to the markdown reader, and (ii) they can be deactivated by turning
off the `implicit_figures` extension.
* `catch` from `Control.Exception` is now used instead of the
old Preface `catch`.
* `Text.Pandoc.Shared`: Improved algorithm for `normalizeSpaces`
and `oneOfStrings` (which is now non-backtracking).
* `Text.Pandoc.Biblio`: Remove workaround for `toCapital`.
Now citeproc-hs is fixed upstream, so this is no longer needed.
Closes #531.
* Textile reader: Improved speed of `hyphenedWords`.
This speeds up the textile reader by about a factor of 4.
* Use `Text.Pandoc.Builder` in RST reader, for more flexibility,
better performance, and automatic normalization.
* Major rewrite of markdown reader:
+ Use `Text.Pandoc.Builder` instead of lists. This also
means that everything is normalized automatically.
+ Move to a one-pass parsing strategy, returning values in the reader
monad, which are then run (at the end of parsing) against the final
parser state.
* In HTML writer, we now use `toHtml` instead of pre-escaping.
We work around the problem that blaze-html unnecessarily escapes `'`
by pre-escaping just the `'` characters, instead of the whole string.
If blaze-html later stops escaping `'` characters, we can simplify
`strToHtml` to `toHtml`. Closes #629.
* Moved code for embedding images in RTFs from `pandoc.hs` to the
RTF writer (which now exports `writeRTFWithEmbeddedImages`).
* Moved citation processing from `pandoc.hs` into the readers.
This makes things more convenient for library users.
* The man pages are now built by an executable `make-pandoc-man-pages`,
which has its own stanza in the cabal file so that dependencies can be
handled by Cabal. Special treatment in `Setup.hs` ensures that this
executable never gets installed; it is only used to create the man pages.
* The cabal file has been modified so that the pandoc library is used
in building the pandoc executable. (This required moving `pandoc.hs`
from `src` to `.`.) This cuts compile time in half.
* The `executable` and `library` flags have been removed.
* `-threaded` has been removed from ghc-options.
* Version bounds of dependencies have been raised, and the
`blaze_html_0_5` flag now defaults to True. Pandoc now compiles on
GHC 7.6.
* We now require base >= 4.2.
* Integrated the benchmark program into cabal. One can now do:
cabal configure --enable-benchmarks && cabal build
cabal bench --benchmark-option='markdown' --benchmark-option='-s 20'
The benchmark now uses README + testsuite, so benchmark results
from older versions aren't comparable.
* Integrated test suite with cabal.
To run tests, configure with `--enable-tests`, then `cabal test`.
You can specify particular tests using `--test-options='-t markdown'`.
No output is shown unless tests fail. The Haskell test modules
have been moved from `src/` to `tests/`.
* Moved all data files and templates to the `data/` subdirectory.
* Added an `embed_data_files` cabal flag. This causes all
data files to be embedded in the binary, so that the binary
is self-sufficient and can be relocated anywhere, copied on
a USB key, etc. The Windows installer now uses this.
(Since we no longer have the option to build the executable
without the library, this is the only way to get a relocatable
binary on Windows.)
* Removed pcre3.dll from windows package.
It isn't needed unless highlighting-kate is compiled with the
`pcre-light` flag. By default, regex-prce-builtin is used.
## pandoc 1.9.4.5 (2012-10-21)
* Raised version bounds on network, base64-bytestring, json,
and template-haskell.
## pandoc 1.9.4.4 (2012-10-20)
* Removed `tests` flag and made test suite into a proper cabal
test suite, which can now be enabled using `--enable-tests`
and run with `cabal test`.
* Moved man page creation out of `Setup.hs` and into an
executable built by Cabal, but never installed. This
allows dependencies to be specified, and solves a problem
with 1.9.4.3, which could only be installed if `data-default`
had already been installed.
* Updated `lhs-latex.tex` test for latest highlighting-kate
representation of backticks.
## pandoc 1.9.4.3 (2012-10-20)
* Removed `-threaded` from default compile flags.
* Modified modules to compile with GHC 7.6 and latest version of time
package.
## pandoc 1.9.4.2 (2012-06-29)
* Don't encode/decode file paths if base >= 4.4.
Prior to base 4.4, filepaths and command line arguments were treated
as unencoded lists of bytes, not unicode strings, so we had to work
around that by encoding and decoding them. This commit adds CPP
checks for the base version that intelligibly enable encoding/decoding
when needed. Fixes a bug with multilingual filenames when pandoc was
compiled with ghc 7.4 (#540).
* Don't generate an empty H1 after hrule slide breaks.
We now use a slide-level header with contents `[Str "\0"]` to mark
an hrule break. This avoids creation of an empty H1 in these
contexts. Closes #484.
* Docbook reader: Added support for "bold" emphasis. Thanks to mb21.
* In make_osx_package.sh, ensure citeproc-hs is built with the
embed_data_files flag.
* MediaWiki writer: Avoid extra blank lines after sublists (Gavin Beatty).
* ConTeXt writer: Don't escape `&`, `^`, `<`, `>`, `_`,
simplified escapes for `}` and `{` to `\{` and `\}` (Aditya Mahajan).
* Fixed handling of absolute URLs in CSS imports with `--self-contained`.
Closes #535.
* Added webm to mime types. Closes #543.
* Added some missing exports and tests to the cabal file
(Alexander V Vershilov).
* Compile with `-rtsopts` and `-threaded` by default.
## pandoc 1.9.4.1 (2012-06-08)
* Markdown reader: Added `cf.` and `cp.` to list of likely abbreviations.
* LaTeX template: Added `linkcolor`, `urlcolor` and `links-as-notes`
variables. Make TOC links black.
* LaTeX template improvements.
+ Don't print date unless one is given explicitly in the document.
+ Simplified templates.
+ Use fontenc [T1] by default, and lmodern.
+ Use microtype if available.
* Biblio:
+ Add comma to beginning of bare suffix, e.g. `@item1 [50]`.
Motivation: `@item1 [50]` should be as close as possible to
`[@item1, 50]`.
+ Added workaround for a bug in citeproc-hs 0.3.4 that causes footnotes
beginning with a citation to be empty. Closes #531.
* Fixed documentation on mixed lists. Closes #533.
## pandoc 1.9.4 (2012-06-03)
* Simplified `Text.Pandoc.Biblio` and fixed bugs with citations inside
footnotes and captions. We now handle note citations by inserting
footnotes during initial citation processing, and doing a separate
pass later to remove notes inside notes.
* Added 'zenburn' highlight style from highlighting-kate.
* Added Slideous writer. Slideous is an HTML + javascript slide show
format, similar to Slidy, but works with IE 7. (Jonas Smedegaard)
* LaTeX writer:
+ Ensure we don't have extra blank lines at ends of cells.
This can cause LaTeX errors, as they are interpreted as new paragraphs.
+ More consistent interblock spacing.
+ Require highlighting-kate >= 0.5.1, for proper highlighted inline
code in LaTeX. Closes #527.
+ Ensure that a Verbatim at the end of a footnote is followed by
a newline. (Fixes a regression in the previous version.)
+ In default template, use black for internal links and TOC.
Added commented-out code to use footnotes for links, as would
be suitable in print output.
* Beamer writer: When `--incremental` is used, lists inside
a block quote should appear all at once. (This makes Beamer
output consistent with the HTML slide show formats.)
* ConTeXt writer:
+ Escape `%` as `\letterpercent{}` not `\letterpercent `,
to avoid gobbling spaces after the `%` sign.
+ Ensure space after `\stopformula`.
* Markdown writer:
+ Use `:` form instead of `~` in definition lists, for better
compatibility with other markdown implementations.
+ Don't wrap the term, because it breaks definition lists.
+ Use a nonzero space to prevent false recognition
of list marker in ordered lists. Closes #516.
* Org writer: Add space before language name. Closes #523.
* Docx writer: Simplified bullet characters so they work properly
with Word 2007. Closes #520.
* LaTeX reader: Support `\centerline`.
* RST reader: handle figures. Closes #522.
* Textile reader: fix for `<notextile>` and `==`. Closes #517.
(Paul Rivier)
## pandoc 1.9.3 (2012-05-12)
* Added docbook reader (with contributions from Mauro Bieg).
* Fixed bug in `fromEntities`. The previous version would turn
`hi & low you know;` into `hi &`.
* HTML reader:
+ Don't skip nonbreaking spaces.
Previously a paragraph containing just ` ` would be rendered
as an empty paragraph. Thanks to Paul Vorbach for pointing out the bug.
+ Support `<col>` and `<caption>` in tables. Closes #486.
* Markdown reader:
+ Don't recognize references inside delimited code blocks.
+ Allow list items to begin with lists.
* LaTeX reader:
+ Handle `\bgroup`, `\egroup`, `\begingroup`, `\endgroup`.
+ Control sequences can't be followed by a letter.
This fixes a bug where `\begingroup` was parsed as `\begin`
followed by `group`.
+ Parse 'dimension' arguments to unknown commands. e.g. `\parindent0pt`
+ Make `\label` and `\ref` sensitive to `--parse-raw`.
If `--parse-raw` is selected, these will be parsed as raw latex
inlines, rather than bracketed text.
+ Don't crash on unknown block commands (like `\vspace{10pt}`)
inside `\author`; just skip them. Closes #505.
* Textile reader:
+ Implemented literal escapes with `==` and `<notextile>`. Closes #473.
+ Added support for LaTeX blocks and inlines (Paul Rivier).
+ Better conformance to RedCloth inline parsing (Paul Rivier).
+ Parse '+text+' as emphasized (should be underlined, but this
is better than leaving literal plus characters in the output.
* Docx writer: Fixed multi-paragraph list items. Previously they each
got a list marker. Closes #457.
* LaTeX writer:
+ Added `--no-tex-ligatures` option to avoid replacing
quotation marks and dashes with TeX ligatures.
+ Use `fixltx2e` package to provide `\textsubscript`.
+ Improve spacing around LaTeX block environments:
quote, verbatim, itemize, description, enumerate.
Closes #502.
+ Use blue instead of pink for URL links in latex/pdf output.
* ConTeXt writer: Fixed escaping of `%`.
In text, `%` needs to be escaped as `\letterpercent`, not `\%`
Inside URLs, `%` needs to be escaped as `\%`
Thanks to jmarca and adityam for the fix. Closes #492.
* Texinfo writer: Escape special characters in node titles.
This fixes a problem pointed out by Joost Kremers. Pandoc used
to escape an '@' in a chapter title, but not in the corresponding
node title, leading to invalid texinfo.
* Fixed document encoding in texinfo template.
Resolves Debian Bug #667816.
* Markdown writer:
+ Don't force delimited code blocks to be flush left.
Fixes bug with delimited code blocks inside lists etc.
+ Escape `<` and `$`.
* LaTeX writer: Use `\hyperref[ident]{text}` for internal links.
Previously we used `\href{\#ident}{text}`, which didn't work on
all systems. Thanks to Dirk Laurie.
* RST writer: Don't wrap link references. Closes #487.
* Updated to use latest versions of blaze-html, mtl.
## pandoc 1.9.2 (2012-04-05)
* LaTeX reader:
+ Made `lstlisting` work as a proper verbatim environment.
+ Fixed bug parsing LaTeX tables with one column.
* LaTeX writer:
+ Use `{}` around `ctable` caption, so that formatting can be used.
+ Don't require eurosym package unless document has a €.
* LaTeX template: Added variables for `geometry`, `romanfont`,
`sansfont`, `mathfont`, `mainfont` so users can more easily
customize fonts.
* PDF writer:
+ Run latex engine at least two times, to ensure
that PDFs will have hyperlinked bookmarks.
+ Added PDF metadata (title,author) in LaTeX standalone + PDF output.
* Texinfo writer: retain directories in image paths. (Peter Wang)
* RST writer: Better handling of inline formatting, in accord
with docutils' "inline markup recognition rules" (though we don't
implement the unicode rules fully). Now `hi*there*hi` gets
rendered properly as `hi\ *there*\ hi`, and unnecessary
`\ ` are avoided around `:math:`, `:sub:`, `:sup:`.
* RST reader:
+ Parse `\ ` as null, not escaped space.
+ Allow `` :math:`...` `` even when not followed by blank
or `\`. This does not implement the complex rule docutils follows,
but it should be good enough for most purposes.
+ Add support for the rST default-role directive. (Greg Maslov)
* Text.Pandoc.Parsing: Added `stateRstDefaultRole` field to `ParserState`.
(Greg Maslov)
* Markdown reader: Properly handle citations nested in other inline
elements.
* Markdown writer: don't replace empty alt in image with "image".
* DZSlides: Updated template.html and styles in default template.
Removed bizarre CSS for `q` in dzslides template.
* Avoid repeated `id` attribute in section and header in HTML slides.
* README improvements: new instructions on internal links,
removed misleading note on reST math.
* Build system:
+ Fixed Windows installer so that dzslides works.
+ Removed stripansi.sh.
+ Added .travis.yml for Travis continuous integration support..
+ Fixed upper bound for zlib (Sergei Trofimovich).
+ Fixed upper bound for test-framework.
+ Updated haddocks for haddock-2.10 (Sergei Trofimovich).
## pandoc 1.9.1.2 (2012-03-09)
* Added `beamer+lhs` as output format.
* Don't escape `<` in `<style>` tags with `--self-contained`.
This fixes a bug which prevented highlighting from working
when using `--self-contained`.
* PDF: run latex engine three times if `--toc` specified.
This fixes page numbers in the table of contents.
* Docx writer: Added TableNormal style to tables.
* LaTeX math environment fixes. `aligned` is now used instead of
the nonexistent `aligned*`. `multline` instead of the nonexistent
`multiline`.
* LaTeX writer: Use `\textasciitilde` for literal `~`.
* HTML writer: Don't escape contents of EQ tags with --gladtex.
This fixes a regression from 1.8.
* Use `<q>` tags for Quoted items for HTML5 output.
The quote style can be changed by modifying the template
or including a css file. A default quote style is included.
* LaTeX reader: Fixed accents (\~{a}, `\c{c}`).
Correctly handle \^{}. Support "minted" as a LaTeX verbatim block.
* Updated LaTeX template for better language support.
Use `polyglossia` instead of `babel` with xetex.
Set `lang` as documentclass option.
`\setmainlanguage` will use the last of a comma-separated
list of languages. Thanks to François Gannaz.
* Fixed default LaTeX template so `\euro` and `€` work. The
`eurosym` package is needed if you are using pdflatex.
* Fixed escaping of period in man writer (thanks to Michael Thompson).
* Fixed list label positions in beamer.
* Set `mainlang` variable in context writer.
This parallels behavior of latex writer. `mainlang` is the last
of a comma-separated list of languages in lang.
* EPUB language metadat: convert e.g. `en_US` from locale to `en-US`.
* Changed `-V` so that you can specify a key without a value.
Such keys get the value `true`.
* Fixed permissions on installed man pages - thanks Magnus Therning.
* Windows installer: require XP or higher. The installer is
now compiled on a Windows 7 machine, which fixes a problem
using citation functions on Windows 7.
* OSX package: Check for 64-bit Intel CPU before installing.
## pandoc 1.9.1.1 (2012-02-11)
* Better handling of raw latex environments in markdown. Now
\begin{equation}
a_1
\end{equation}
turns into a raw latex block as expected.
* Improvements to LaTeX reader:
+ Skip options after block commands.
+ Correctly handle `{\\}` in braced.
+ Added a needed 'try'.
+ Citations: add `, ` to suffix if it doesn't start with space or
punctuation. Otherwise we get no space between the year and the
suffix in author-date styles.
* Added two needed data files for S5. This fixes a problem with
`pandoc -t s5 --self-contained`. Also removed `slides.min.js`,
which was no longer being used.
* Fixed some minor problems in `reference.docx`:
name on "Date" style, `xCs` instead of `xIs`.
* Fixed a problem creating docx files using a reference docx
modified using Word. The problem seems to be that Word
modifies `_rels/.rels`, changing the Type of the Relationship to
`docProps/core.xml`. Pandoc now changes this back to the correct
value if it has been altered, fixing the problem.
* Fixed html5 template so it works properly with highlighting.
## pandoc 1.9.1 (2012-02-09)
* LaTeX reader:
+ Fixed regression in 1.9; properly handle escaped $ in latex math.
+ Put LaTeX verse environments in blockquotes.
* Markdown reader:
+ Limit nesting of strong/emph. This avoids exponential lookahead
in parasitic cases, like `a**a*a**a*a**a*a**a*a**a*a**a*a**a*a**`.
+ Improved attributes syntax (in code blocks/spans): (1)
Attributes can contain line breaks. (2) Values in key-value
attributes can be surrounded by either double or single quotes, or
left unquoted if they contain no spaces.
* Headers no longer wrap in markdown or RST writers.
* Added `stateMaxNestingLevel` to `ParserState`.
We set this to 6, so you can still have `Emph` inside `Emph`,
just not indefinitely.
* More efficient implementation of `nowrap` in `Text.Pandoc.Pretty`.
* `Text.Pandoc.PDF`: Only run latex twice if `\tableofcontents`
is present.
* Require highlighting-kate >= 0.5.0.2, texmath >= 0.6.0.2.
## pandoc 1.9.0.5 (2012-02-06)
* Changed cabal file so that build-depends for the test program
are not required unless the tests flag is used.
* LaTeX writer: insert `{}` between adjacent hyphens so they don't
form ligatures (dashes) in code spans.
## pandoc 1.9.0.4 (2012-02-06)
* Raised version bound on test-framework to avoid problems
compiling tests on GHC 7.4.1.
* LaTeX reader: Use raw LaTeX as fallback inline text for Cites,
so citations don't just disappear unless you process with
citeproc. Ignore `\bibliographystyle`, `\nocite`.
* Simplified tex2pdf; it will always run latex twice to
resolve table of contents and hyperrefs.
## pandoc 1.9.0.3 (2012-02-06)
* Require Cabal >= 1.10.
* Tweaked cabal file to meet Cabal 1.10 requirements.
## pandoc 1.9.0.2 (2012-02-05)
* Allow build with json 0.4 or 0.5. Otherwise we can't build with
ghc 6.12.
## pandoc 1.9 (2012-02-05)
### New features
* Added a Microsoft Word `docx` writer. The writer includes support
for highlighted code and for math (which is converted from TeX to OMML,
Office's native math markup language, using texmath's new OMML module).
A new option `--reference-docx` allows the user to customize the
styles.
* Added an `asciidoc` writer (<http://www.methods.co.nz/asciidoc/>).
* Better support for slide shows:
+ Added a `dzslides` writer. DZSlides is a lightweight HTML5/javascript
slide show format due to Paul Rouget (<http://paulrouget.com/dzslides/>).
+ Added a LaTeX `beamer` writer. Beamer is a LaTeX package for creating
slide presentations.
+ New, flexible rules for dividing documents into sections and slides
(see the "Structuring the slide show" in the User's Guide). These
are backward-compatible with the old rules, but they allow slide
shows to be organized into sections and subsections containing
multiple slides.
+ A new `--slide-level` option allows users to override defaults
and select a slide level below the first header level with content.
* A new `--self-contained` option produces HTML output that does not
depend on an internet connection or the presence of any external
files. Linked images, CSS, and javascript is downloaded (or fetched
locally) and encoded in `data:` URIs. This is useful for making portable
`HTML slide shows. The --offline` option has been deprecated and is now
`treated as a synonym or --self-contained`.
* Support for PDF output:
+ Removed the old `markdown2pdf`.
+ `pandoc` can now create PDFs (assuming you have latex and a set of
appropriate packages installed): just specify an output file with the
`.pdf` extension.
+ A new option `--latex-engine` allows you to specify `pdflatex`,
`xelatex`, or `lualatex` as the processor.
* Highlighting changes:
+ Syntax highlighting is now a standard feature; the `highlighting`
flag is no longer needed when compiling.
+ A new `--no-highlight` option allows highlighting to be disabled.
+ Highlighting now works in `docx`, `latex`, and `epub`, as well as
`html`, `html5`, `dzslides`, `s5`, and `slidy`.
+ A new `--highlight-style` option selects between various highlighting
color themes.
* Internal links to sections now work in ConTeXt and LaTeX as well as HTML.
* LaTeX `\include` and `\usepackage` commands are now processed,
provided the files are in the working directory.
* EPUB improvements:
+ Internal and external links now work in EPUB.
+ Raw HTML is allowed.
+ New `--epub-embed-font` option.
+ Customizable templates for EPUB pages offer more control over
formatting: `epub-page.html`, `epub-coverimage.html`,
`epub-titlepage.html`.
* `--mathml` now works with DocBook.
* Added support for math in RST reader and writer. Inline math uses the
`` :math:`...` `` construct. Display math uses
.. math:: ...
or if the math is multiline,
.. math::
...
These constructions are now supported now by `rst2latex.py`.
* Github syntax for fenced code blocks is supported in pandoc's
markdown. You can now write
```ruby
x = 2
```
instead of
~~~ {.ruby}
x = 2
~~~~
* Easier scripting: a new `toJsonFilter` function makes it easier to
write Haskell scripts to manipulate the Pandoc AST.
See [Scripting with pandoc](scripting.html#pandoc-1.9-changes).
### Behavior changes
* Fixed parsing of consecutive lists in markdown.
Pandoc previously behaved like Markdown.pl for consecutive
lists of different styles. Thus, the following would be parsed
as a single ordered list, rather than an ordered list followed
by an unordered list:
1. one
2. two
- one
- two
This change makes pandoc behave more sensibly, parsing this as
two lists. Any change in list type (ordered/unordered) or in
list number style will trigger a new list. Thus, the following
will also be parsed as two lists:
1. one
2. two
a. one
b. two
Since we regard this as a bug in Markdown.pl, and not something
anyone would ever rely on, we do not preserve the old behavior
even when `--strict` is selected.
* Dashes work differently with `--smart`: `---` is always em-dash,
and `--` is always en-dash. Pandoc no longer tries to guess when
`-` should be en-dash. *Note:* This may change how existing documents
look when processed with pandoc. A new option, `--old-dashes`,
is provided for legacy documents.
* The markdown writer now uses setext headers for levels 1-2.
The old behavior (ATX headers for all levels) can be restored
using the new `--atx-headers` option.
* Links are now allowed in markdown image captions. They are also
allowed in links, but will appear there as regular text. So,
[link with [link](/url)](/url)
will turn into
<p><a href="/url">link with link</a></p>
* Improved handling of citations using `citeproc-hs-0.3.4`.
Added `--citation-abbreviations` option.
* Citation keys can no longer end with a punctuation character.
This means that `@item1.` will be parsed as a citation with key
'item1', followed by a period, instead of a citation with key
'item1.', as was the case previously.
* In HTML output, citations are now put in a span with class `citation`.
* The markdown reader now recognizes DocBook block and inline tags.
It was always possible to include raw DocBook tags in a markdown
document, but now pandoc will be able to distinguish block from
inline tags and behave accordingly. Thus, for example,
<sidebar>
hello
</sidebar>
will not be wrapped in `<para>` tags.
* The LaTeX parser has been completely rewritten; it is now much more
accurate, robust, and extensible. However, there are two important
changes in how it treats unknown LaTeX. (1) Previously, unknown
environments became BlockQuote elements; now, they are treated
as "transparent", so `\begin{unknown}xyz\end{unknown}` is the
same as `xyz`. (2) Previously, arguments of unknown commands
were passed through with their braces; now the braces are stripped
off.
* `--smart` is no longer selected automatically with `man` output.
* The deprecated `--xetex` option has been removed.
* The `--html5`/`-5` option has been deprecated. Use `-t html5`
instead. `html5` and `html5+lhs` are now separate output formats.
* Single quotes are no longer escaped in HTML output. They do not
need to be escaped outside of attributes.
* Pandoc will no longer transform leading newlines in code
blocks to `<br/>` tags.
* The ODT writer now sizes images appropriately, using the image
size and DPI information embedded in the image.
* `--standalone` is once again implicitly for a non-text output format
(ODT, EPUB). You can again do `pandoc test.txt -o test.odt`
and get a standalone ODT file.
* The Docbook writer now uses `<sect1>`, `<sect2>`, etc. instead of
`<section>`.
* The HTML writer now uses `<del>` for strikeout.
* In HTML output with `--section-divs`, the classes `section` and
`level[1,2,..6]` are put on the `div` tags so they can be styled.
In HTML 5 output with `--section-divs`, the classes
`level[1,2,...6]` are put on `section` tags.
* EPUB writer changes:
+ The `lang` variable now sets the language
in the metadata (if it is not set, we default to the locale).
+ EPUB: UTF-8 is used rather than decimal entities.
* Added `titleslide` class to title slide in S5 template.
* In HTML, EPUB, and docx metadata, the date is normalized into
YYYY-MM-DD format if possible. (This is required for validation.)
* Attributes in highlighted code blocks are now preserved in HTML.
The container element will have the classes, id, and key-value attributes
you specified in the delimited code block. Previously these were stripped
off.
* The reference backlink in the HTML writer no longer has a special
`footnoteBacklink` class.
* The HTML template has been split into `html` and `html5` templates.
* Author and date are treated more consistently in HTML templates.
Authors are now `<h2>`, date `<h3>`.
* URLs are hyphenated in the ConTeXt writer (B. Scott Michel).
* In `Text.Pandoc.Builder`, `+++` has been replaced by `<>`.
### Bug fixes
* Better support for combining characters and East Asian wide characters
in markdown and reST.
* Better handling of single quotes with `--smart`.
Previously `D'oh l'*aide*` would be parsed with left and right single
quotes instead of apostrophes. This kind of error is now fixed.
* Highlighting: Use `reads` instead of `read` for better error handling.
Fixes crash on `startNum="abc"`.
* Added blank comment after directives in rst template.
* Unescape entities in citation `refId`. The `refId`s coming
from citeproc contain XML numeric entities, and these don't match with the
citation keys parsed by pandoc. Solution is to unescape them.
* HTML reader: Fixed bug parsing tables with both thead and tbody.
* Markdown reader:
+ Better handling of escapes in link URLs and titles.
+ Fixed backslash escapes in reference links.
+ Fixed bug in table/hrule parsing, by checking that the top
line of a table is not followed by a blank line. This bug caused
slowdowns on some files with hrules and tables, as pandoc tried to
interpret the hrules as the tops of multiline tables.
+ Fixed bug in code block attribute parser. Previously the ID attribute
got lost if it didn't come first. Now attributes can come in any order.
* RST reader: allow footnotes followed by newline without space characters.
* LaTeX reader:
+ Ignore empty groups {}, { }.
+ LaTeX reader: Handle `\@`.
+ LaTeX reader: Don't crash on commands like `\itemsep`.
+ LaTeX reader: Better handling of letter environments.
* RST writer: Fixed bug involving empty table cells. isSimple was being
calculated in a way that assumed there were no non-empty cells.
* ConTeXt writer:
+ Made `--toc` work even without `--number-sections`.
+ Escape # in link URLs.
+ Use buffering for footnotes containing code blocks.
+ Changed 'descr' to 'description', fixed alignment.
* LaTeX writer:
+ Escape euro character.
+ Don't escape `~` inside `\href{...}`.
+ Escape `#` in href URLs.
+ Improved detection of book classes. We now check the
`documentclass` variable, and if that is not set, we look through
the template itself. Also, we have added the KOMA classes scrreprt
and scrbook. You can now make a book using
`pandoc -V documentclass:book mybook.txt -o mybook.pdf`
+ LHS files now set the "listings" variable, so that the definition
of the `code` environment will be included in the template.
+ Links are colored blue by default (this can be changed by
modifying `hyperref` settings in the template).
+ Added `lang` variable to LaTeX template.
* HTML writer:
+ Fixed bug in HTML template with html5 and mathml.
+ Don't use self-closing img, br, hr tags for HTML5.
+ Use `<section>` for footnotes if HTML5.
+ Update HTML templates to use Content-Style-Type meta tag.
+ Use separate variables for meta-date, meta-author.
This makes footnotes work in author and date fields.
+ Use 'vertical-align:middle' in WebTeX math for better alignment.
* S5/slidy writer: Make footnotes appear on separate slide at end.
* MIME: Added 'layout-cache' to getMimeType. This ensures that the
META-INF/manifest.xml for ODT files will have everything it needs, so
that ODT files modified by LibreOffice can be used as `--reference-odt`.
* `Text.Pandoc.Templates`: Return empty string for json template.
* `Text.Pandoc.Biblio`:
+ Expand citations recursively inside nested inlines.
+ Treat `\160` as space when parsing locator and suffix.
This fixes a bug with "p. 33" when `--smart` is used. Previously
the whole "p. 33" would be included in the suffix, with no locator.
+ Put whole author-in-text citation in a Cite. Previously just the
date and other info went in the Cite.
+ Don't add comma+space to prefix if it ends in punctuation.
* Updated chicago-author-date.csl. The old version did not work
properly for edited volumes with no author.
* EPUB writer:
+ Add date to EPUB titlepage and metadata.
+ Added TOC identifier in EPUB page template.
+ Don't generate superfluous file `cover-image.jpg`.
### Under the hood improvements
* Modified `make_osx_package.sh` to use cabal-dev.
Items are no longer installed as root.
Man pages are zipped and given proper permissions.
* Modified windows installer generator to use cabal-dev.
* Setup: Making man pages now works with cabal-dev (at least on OSX). In
Setup.hs we now invoke 'runghc' in a way that points it to the correct
package databases, instead of always falling back to the default user
package db.
* Updated to work with GHC 7.4.1.
* Removed dependency on old-time.
* Removed dependency on dlist.
* New slidy directory for "self-contained."
* TeXMath writer: Use unicode thin spaces for thin spaces.
* Markdown citations: don't strip off initial space in locator.
### API changes
* Removed `Apostrophe`, `EmDash`, `EnDash`, and `Ellipses`
from the native `Inline` type in pandoc-types. Now we use `Str`
elements with unicode.
* Improvements to `Text.Pandoc.Builder`:
+ `Inlines` and `Blocks` are now newtypes (not synonyms for
sequences).
+ Instances are defined for `IsString`, `Show`, `Read`, `Monoid`,
and a new `Listable` class, which allows these to be manipulated
to some extent like lists. Monoid append includes automatic
normalization.
+ `+++` has been replaced by `<>` (mappend).
* Use blaze-html instead of xhtml for HTML generation.
This changes the type of `writeHtml`.
* `Text.Pandoc.Shared`:
+ Added `warn` and `err`.
+ Removed `unescapeURI`, modified `escapeURI`.
(See under [behavior changes], above.)
* Changes in URI escaping: Previously the readers escaped URIs by
converting unicode characters to octets and then percent encoding.
Now unicode characters are left as they are, and `escapeURI` only
percent-encodes space characters. This gives more readable
URIs, and works well with modern user agents. URIs are no longer unescaped
at all on conversion to `markdown`, `asciidoc`, `rst`, `org`.
* New module `Text.Pandoc.SelfContained`.
* New module `Text.Pandoc.Docx`.
* New module `Text.Pandoc.PDF`.
* Added `writerBeamer` to `WriterOptions`.
* Added `normalizeDate` to `Text.Pandoc.Shared`.
* Added `splitStringWithIndices` in `Text.Pandoc.Shared`.
This is like `splitWithIndices`, but it is sensitive to distinctions
between wide, combining, and regular characters.
* `Text.Pandoc.Pretty`:
+ Added `chomp` combinator.
+ Added `beforeNonBreak` combinator. This allows you to include
something conditionally on it being before a nonblank.
Used for RST inline math.
+ Added `charWidth` function. All characters marked W or F in the unicode
spec EastAsianWidth.txt get width 2.
+ Added `realLength`, based on `charWidth`. `realLength` is now
used in calculating offsets.
* New module `Text.Pandoc.Slides`, for common functions for breaking
a document into slides.
* Removed `Text.Pandoc.S5`, which is no longer needed.
* Removed `Text.Pandoc.CharacterReferences`. Moved
`characterReference` to `Text.Pandoc.Parsing`.
`decodeCharacterReferences` is replaced by `fromEntities`
in `Text.Pandoc.XML`.
* Added `Text.Pandoc.ImageSize`. This is intened for use
in `docx` and `odt` writers, so the size and dpi of images
can be calculated.
* Removed `writerAscii` in `WriterOptions`.
* Added `writerHighlight` to `WriterOptions`.
* Added `DZSlides` to `HTMLSlideVariant`.
* `writeEPUB` has a new argument for font files to embed.
* Added `stateLastStrPos` to `ParserState`. This lets us keep track
of whether we're parsing the position immediately after a regular
(non-space, non-symbol) string, which is useful for distinguishing
apostrophes from single quote starts.
* `Text.Pandoc.Parsing`:
+ `escaped` now returns a `Char`.
+ Removed `charsInBalanced'`, added a character parser as
a parameter of `charsInBalanced`. This is needed for
proper handling of escapes, etc.
+ Added `withRaw`.
* Added `toEntities` to `Text.Pandoc.XML`.
* `Text.Pandoc.Readers.LaTeX`:
+ Export `handleIncludes`.
+ Export `rawLaTeXBlock` instead of `rawLaTeXEnvironment'`.
* Added `ToJsonFilter` class and `toJsonFilter` function to
`Text.Pandoc`, deprecating the old `jsonFilter` function.
* `Text.Pandoc.Highlighting`:
+ Removed `highlightHtml`, `defaultHighlightingCss`.
+ Export `formatLaTeXInline`, `formatLaTeXBlock`, and `highlight`, plus
key functions from highlighting-kate.
+ Changed types of highlighting function. `highlight` returns a
`Maybe`, not an `Either`.
## pandoc 1.8.2.1 (2011-08-01)
* Adjusted Arbitrary instance to help avoid timeouts in tests.
* Added `Tests.Writers.Markdown` to cabal file.
* Relaxed version bounds on pandoc-types, test-framework.
## pandoc 1.8.2 (2011-07-30)
* Added script to produce OS X package.
* Made `templates` directory a git submodule. This should make it
easier for people to revise their custom templates when the default
templates change.
* Changed template naming scheme: `FORMAT.template` -> `default.FORMAT`.
**Note:** If you have existing templates in `~/.pandoc/templates`, you
must rename them to conform to the new scheme!
* Default template improvements:
+ HTML: Display author and date after title.
+ HTML: Made table of contents more customizable. The container
for the TOC is now in the template, so users can insert a header
or other styling. (Thanks to Bruce D'Arcus for the suggestion.)
+ HTML, Slidy, S5: Enclose scripts in CDATA tags.
+ Slidy, S5: Added `s5-url` and `slidy-url` variables, instead of
hard-coding. If you want to put your slidy files in the slidy
subdirectory, for example, you can do
`pandoc -t slidy -V slidy-url=slidy -s`.
+ LaTeX: Use `\and` to separate authors in LaTeX documents (reader
& writer). Closes #279.
+ LaTeX: Set `\emergencystretch` to prevent overfull lines.
+ LaTeX: Use different `hyperref` options for `xetex`, fixing
problems with unicode bookmarks (thanks to CircleCode).
+ LaTeX: Removed `ucs` package, use `utf8` rather than `utf8x`
with `inputenc`. This covers fewer characters but is more
robust with other packages, and `ucs` is unmaintained. Users
who need better unicode support should use xelatex or lualatex.
* If a template specified with `--template` is not found, look for it
in `datadir`. Also, if no extension is provided, supply one based
on the writer. So now you can put your `special.latex` template in
`~/.pandoc/templates`, and use it from any directory via
`pandoc -t latex --template special`.
* Added `nonspaceChar` to `Text.Pandoc.Parsing`.
* Fixed smart quotes bug, now handling `'...hi'` properly.
* RST reader:
+ Partial support for labeled footnotes.
+ Improved accuracy of `simpleReferenceName` parser.
* HTML reader:
+ Substitute correct unicode characters for
characters in the 128..159 range, which are often found even in
HTML that purports to be UTF-8.
* LaTeX reader: Handle `\subtitle` command (a subtitle is added
to the title, after a colon and linebreak). Closes #280.
* Leaner `reference.odt`.
* Added unexported module `Text.Pandoc.MIME` for use in
the ODT writer.
* ODT writer: Construct `manifest.xml` based on archive contents.
This fixes a bug in ODTs containing images. Recent versions of
LibreOffice would reject these as corrupt, because `manifest.xml`
did not contain a reference to the image files.
* LaTeX writer:
+ Make verbatim environments flush to avoid spurious
blank lines. Closes #277.
+ Use `\texttt` and escapes insntead of `\verb!...!`, which
is too fragile (doesn't work in command arguments).
+ Use `\enquote{}` for quotes if the template includes
the `csquotes` package. This provides better support for
local quoting styles. (Thanks to Andreas Wagner for the idea.)
* ConTeXt writer: Make `\starttyping`/`\stoptyping` flush with
margin, preventing spurious blank lines.
* Slidy writer:
+ Use non-minimized version of `slidy.css` with `--offline`
option, so users can more easily edit it.
+ Also fixed a bug in the CSS that prevented proper centering
of title (now reported and fixed upstream).
* S5 writer:
+ Replaced `s5/default/slides.js.{comment,packed}` with
new compressed `s5/default/slides.min.js`.
+ Use `data:` protocol to embed S5 CSS in `<link>` tags,
when `--offline` is specified. Using inline CSS didn't
work with Chrome or Safari. This fixes offline
S5 on those browsers.
* HTML writer: Removed English title on footnote backlinks.
This is incongrous in non-English documents.
* Docbook writer:
+ Use CALS tables. (Some older docbook software does not work
well with XHTML tables.) Closes #77.
+ Use `programlisting` tags (instead of `screen`) for code blocks.
* `markdown2pdf`:
+ Calls latex with `-halt-on-error -interaction nonstopmode` instead
of `-interaction=batchmode`, which essentially just ignored errors,
leading to bad results. Better to know when something is wrong.
+ Fixed issues with non-UTF-8 output of `pdflatex`.
+ Better error reporting.
* `--mathjax` now takes an optional URL argument. If it is not
provided, pandoc links directly to the (secure) mathjax CDN,
as now recommended (thanks to dsanson).
* Deprecated `--xetex` option in `pandoc`. It is no longer needed,
since the LaTeX writer now produces a file that can be processed by
`latex`, `pdflatex`, `lualatex`, or `xelatex`.
* Introduced `--luatex` option to `markdown2pdf`. This causes `lualatex`
to be used to create the PDF.
## pandoc 1.8.1.2 (2011-07-16)
* Added `--epub-cover-image` option.
* Documented `--biblatex` and `--natbib` options.
* Allow `--section-divs` with slidy output. Resolves Issue #296.
* Disallow notes within notes in reST and markdown.
These previously caused infinite looping and stack overflows.
For example:
[^1]
[^1]: See [^1]
Note references are allowed in reST notes, so this isn't a full
implementation of reST. That can come later. For now we need to
prevent the stack overflows. Partially resolves Issue #297.
* EPUB writer: Allow non-plain math methods.
* Forbid ()s in citation item keys. Resolves Issue #304: problems with
`(@item1; @item2)` because the final paren was being parsed as part of
the item key.
* Changed URI parser so it doesn't include trailing punctuation.
So, in RST, `http://google.com.` should be parsed as a link followed by a
period. The parser is smart enough to recognize balanced parentheses, as
often occur in wikipedia links: `http://foo.bar/baz_(bam)`.
* Markdown+lhs reader: Require space after inverse bird tracks, so that
HTML tags can be used freely at the left margin of a markdown+lhs document.
Thanks to Conal Elliot for the suggestion.
* Markdown reader: Fixed bug in footnote order (reported by CircleCode).
* RST reader:
+ Fixed bug in in field lists with multi-line items at the
end of the list.
+ Added parentheses to RST `specialChars`, so
`(http://google.com)` will be parsed as a link in parens.
Resolves Issue #291.
+ Allow `|` followed by newline in RST line block.
* LaTeX reader:
+ Support `\dots`.
+ Gobble option & space after linebreak `\\[10pt]`.
* Textile reader:
+ Make it possible to have colons after links. (qerub)
+ Make it possible to have colons after links. (Christoffer Sawicki)
* HTML reader:
+ Skip spaces after `<b>`, `<emph>`, etc.
+ Handle tbody, thead in simple tables. Closes #274.
+ Implicit `Para`s instead of `Plains` in some contexts.
* OpenDocument writer: Use special `First paragraph` style for
first paragraph after most non-paragraph blocks. This allows users to
specify e.g. that only paragraphs after the first paragraph of a block are
to be indented. Thanks to Andrea Rossato for the patch. Closes #20.
* LaTeX writer: use `deVerb` on table and picture captions.
Otherwise LaTeX complains about `\verb` inside command argument.
Thanks to bbanier for reporting the bug.
* Markdown writer: Insert HTML comment btw list and indented code block.
This prevents the code block from being interpreted as part of the list.
* EPUB writer: Add a meta element specify the cover.
Some EPUB e-readers, such as the Nook, require a meta element inside the
OPF metadata block to ensure the cover image is properly displayed.
(Kelsey Hightower)
* HTML writer: Use embed tag for images with non-image extensions.
(e.g. PDFs). Closes #264.
* LaTeX writer: Improved tables.
+ More space between lines, top-align cells.
+ Use ctable package, which allows footnotes and
provides additional options.
+ Made cell alignments work in multiline tables.
+ Closes #271, #272.
* Un-URI-escape image filenames in LaTeX, ConTeXt, RTF, Texinfo.
Also do this when copying image files into EPUBs and ODTs.
Closes #263.
* Changed to github issue tracker.
* Added failing emph/strong markdown test case due to Perry Wagle.
* Slidy improvements:
+ Updated to use Slidy2.
+ Fixed bug, unclosed div tag.
+ Added `duration` variable in template.
Setting this activates the timer.
+ Use 'titlepage' instead of 'cover' for title div.
## pandoc 1.8.1.1 (2011-02-13)
* `markdown2pdf`: Removed some debugging lines accidentally included
in the 1.8.1 release. With those lines, the temp directory is created
in the working directory, and it is not deleted. This fix restores
the original behavior.
## pandoc 1.8.1 (2011-02-13)
* Added `--ascii` option. Currently supported only in HTML writer,
which it causes to use numerical entities instead of UTF-8.
* EPUB writer: `--toc` now works to provide a table of contents
at the beginning of each chapter.
* LaTeX writer: Change figure defaults to `htbp`.
This prevents "too many unprocessed floats." Resolves
Issue #285.
* `Text.Pandoc.UTF8`: Encode filenames even when using recent
base.
* `markdown2pdf`: Fixed filename encoding issues. With help from Paulo
Tanimoto. Resolves Issue #286.
* HTML writer: Put line breaks in section divs.
* `Text.Pandoc.Shared`: Make `writerSectionDivs` default to False.
## pandoc 1.8.0.3 (2011-02-05)
* Fixed Source-repository stanza in cabal file.
## pandoc 1.8.0.2 (2011-02-05)
* HTML writer:
+ Stringify alt text instead of converting to HTML.
+ Break lines after block elements, not inside tags.
HTML output now closely resembles that of tidy. Resolves Issue #134.
* Markdown reader: Fixed bug in footnote block parser (pointed out
by Jesse Rosenthal). The problem arose when the blank line
at the end of a footnote block contained indenting spaces.
* Shared: Improved 'normalize' function so it normalizes Spaces too.
In normal form, Space elements only occur to separate two non-Space
elements. So, we never have [Space], or [, ..., Space].
* Tests:
+ Improved Arbitrary instance.
+ Added timeout for test instances.
* README:
+ Added section on four-space rule for lists. Resolves Issue #283.
+ Clarified optional arguments on math options.
* markdown2pdf: Fixed bug with output file extensions.
Previously `markdown2pdf test.txt -o test.en.pdf` would produce
`test.pdf`, not `test.en.pdf`. Thanks to Paolo Tanimoto for the fix.
## pandoc 1.8.0.1 (2011-01-31)
* Revised Interact.hs so that it works with the CPP macros
in the UTF8 module.
* Revised Setup.hs so that we don't call MakeManPage.hs unless
the man pages are out of date.
## pandoc 1.8 (2011-01-30)
### New features
* Support for citations using Andrea Rossato's `citeproc-hs` 0.3.
You can now write, for example,
Water is wet [see @doe99, pp. 33-35; also @smith04, ch. 1].
and, when you process your document using `pandoc`, specifying
a citation style using `--csl` and a bibliography using `--bibliography`,
the citation will be replaced by an appropriately formatted
citation, and a list of works cited will be added to the end
of the document.
This means that you can switch effortlessly between different citation
and bibliography styles, including footnote, numerical, and author-date
formats. The bibliography can be in any of the following formats: MODS,
BibTeX, BibLaTeX, RIS, EndNote, EndNote XML, ISI, MEDLINE, Copac, or JSON.
See the README for further details.
Citations are supported in the markdown reader, using a special
syntax, and in the LaTeX reader, using natbib or biblatex syntax.
(Thanks to Nathan Gass for the natbib and biblatex support.)
* New `textile` reader and writer. Thanks to Paul Rivier for contributing
the `textile` reader, an almost complete implementation of the textile
syntax used by the ruby [RedCloth library](http://redcloth.org/textile).
Resolves Issue #51.
* New `org` writer, for Emacs Org-mode, contributed by Puneeth Chaganti.
* New `json` reader and writer, for reading and writing a JSON
representation of the native Pandoc AST. These are much faster
than the `native` reader and writer, and should be used for
serializing Pandoc to text. To convert between the JSON representation
and native Pandoc, use `encodeJSON` and `decodeJSON` from
`Text.JSON.Generic`.
* A new `jsonFilter` function in `Text.Pandoc` makes it easy
to write scripts that transform a JSON-encoded pandoc document.
For example:
-- removelinks.hs - removes links from document
import Text.Pandoc
main = interact $ jsonFilter $ bottomUp removeLink
where removeLink (Link xs _) = Emph xs
removeLink x = x
To use this to remove links while translating markdown to LaTeX:
pandoc -t json | runghc removelinks.hs | pandoc -f json -t latex
* Attributes are now allowed in inline `Code` elements, for example:
In this code, `ulist ! [theclass "special"] << elts`{.haskell} is...
The attribute syntax is the same as for delimited code blocks.
`Code` inline has an extra argument place for attributes, just like
`CodeBlock`. Inline code will be highlighted in HTML output, if pandoc
is compiled with highlighting support. Resolves Issue #119.
* New `RawBlock` and `RawInline` elements (replacing `RawHtml`,
`HtmlInline`, and `TeX`) provide lots of flexibility in writing
scripts to transform Pandoc documents. Scripts can now change
how each element is rendered in each output format.
* You can now define LaTeX macros in markdown documents, and pandoc
will apply them to TeX math. For example,
\newcommand{\plus}[2]{#1 + #2}
$\plus{3}{4}$
yields `3+4`. Since the macros are applied in the reader, they
will work in every output format, not just LaTeX.
* LaTeX macros can also be used in LaTeX documents (both in math
and in non-math contexts).
* A new `--mathjax` option has been added for displaying
math in HTML using MathJax. Resolves issue #259.
* Footnotes are now supported in the RST reader. (Note, however,
that unlike docutils, pandoc ignores the numeral or symbol used in
the note; footnotes are put in an auto-numbered ordered list.)
Resolves Issue #258.
* A new `--normalize` option causes pandoc to normalize the AST
before writing the document. This means that, for example,
`*hi**there*` will be rendered as `<em>hithere</em>`
instead of `<em>hi</em><em>there</em>`. This is not the default,
because there is a significant performance penalty.
* A new `--chapters` command-line option causes headers
in DocBook, LaTeX, and ConTeXt to start with "chapter" (level one).
Resolves Issue #265.
* In DocBook output, `<chapter>` is now used for top-level
headers if the template contains `<book>`. Resolves Issue #265.
* A new `--listings` option in `pandoc` and `markdown2pdf` causes
the LaTeX writer to use the listings package for code blocks.
(Thanks to Josef Svennigsson for the pandoc patch, and Etienne
Millon for the markdown2pdf patch.)
* `markdown2pdf` now supports `--data-dir`.
* URLs in autolinks now have class "url" so they can be styled.
* Improved prettyprinting in most formats. Lines will be wrapped
more evenly and duplicate blank lines avoided.
* New `--columns` command-line option sets the column width for
line wrapping and relative width calculations for tables.
* Made `--smart` work in HTML, RST, and Textile readers, as well
as markdown.
* Added `--html5` option for HTML5 output.
* Added support for listings package in LaTeX reader
(Puneeth Chaganti).
* Added support for simple tables in the LaTeX reader.
* Added support for simple tables in the HTML reader.
* Significant performance improvements in many readers and writers.
### API and program changes
* Moved `Text.Pandoc.Definition` from the `pandoc` package to a new
auxiliary package, `pandoc-types`. This will make it possible for other
programs to supply output in Pandoc format, without depending on the whole
pandoc package.
* Added `Attr` field to `Code`.
* Removed `RawHtml`, `HtmlInline`, and `TeX` elements; added generic
`RawBlock` and `RawInline`.
* Moved generic functions to `Text.Pandoc.Generic`. Deprecated
`processWith`, replacing it with two functions, `bottomUp` and `topDown`.
Removed previously deprecated functions `processPandoc` and `queryPandoc`.
* Added `Text.Pandoc.Builder`, for building `Pandoc` structures.
* `Text.Pandoc` now exports association lists `readers` and `writers`.
* Added `Text.Pandoc.Readers.Native`, which exports `readNative`.
`readNative` can now read full pandoc documents, block lists, blocks,
inline lists, or inlines. It will interpret `Str "hi"`
as if it were `Pandoc (Meta [] [] []) [Plain [Str "hi"]]`.
This should make testing easier.
* Removed deprecated `-C/--custom-header` option.
Use `--template` instead.
* `--biblio-file` has been replaced by `--bibliography`.
`--biblio-format` has been removed; pandoc now guesses the format
from the file extension (see README).
* pandoc will treat an argument as a URI only if it has an
`http(s)` scheme. Previously pandoc would treat some
Windows pathnames beginning with `C:/` as URIs.
* The `--sanitize-html` option and the `stateSanitize` field in
`ParserState` have been removed. Sanitization is better done in the
resulting HTML using `xss-sanitize`, which is based on pandoc's
sanitization, but improved.
* pandoc now adds a newline to the end of its output in fragment
mode (= not `--standalone`).
* Added support for `lang` in `html` tag in the HTML template,
so you can do `pandoc -s -V lang=es`, for example.
* `highlightHtml` in `Text.Pandoc.Highlighting` now takes
a boolean argument that selects between "inline" and
"block" HTML.
* `Text.Pandoc.Writers.RTF` now exports `rtfEmbedImage`.
Images are embedded in RTF output when possible (png, jpeg).
Resolves Issue #275.
* Added `Text.Pandoc.Pretty`. This is better suited for pandoc than the
`pretty` package. Changed all writers that used
`Text.PrettyPrint.HughesPJ` to use `Text.Pandoc.Pretty` instead.
* Rewrote `writeNative` using the new prettyprinting module. It is
now much faster. The output has been made more consistent and compressed.
`writeNative` is also now sensitive to writerStandalone`, and will simply
`print a block list if writerStandalone` is False.
* Removed `Text.Pandoc.Blocks`. `Text.Pandoc.Pretty` allows you to define
blocks and concatenate them, so a separate module is no longer needed.
* `Text.Pandoc.Shared`:
+ Added `writerColumns`, `writerChapters`, and `writerHtml5` to
`WriterOptions`.
+ Added `normalize`.
+ Removed unneeded prettyprinting functions:
`wrapped`, `wrapIfNeeded`, `wrappedTeX`, `wrapTeXIfNeeded`, `hang'`,
`BlockWrapper`, `wrappedBlocksToDoc`.
+ Made `splitBy` take a test instead of an element.
+ Added `findDataFile`, refactored `readDataFile`.
+ Added `stringify`. Rewrote `inlineListToIdentifier` using `stringify`.
+ Fixed `inlineListToIdentifier` to treat `\160` as ' '.
* `Text.Pandoc.Readers.HTML`:
+ Removed `rawHtmlBlock`, `anyHtmlBlockTag`, `anyHtmlInlineTag`,
`anyHtmlTag`, `anyHtmlEndTag`, `htmlEndTag`, `extractTagType`,
`htmlBlockElement`, `htmlComment`
+ Added `htmlTag`, `htmlInBalanced`, `isInlineTag`, `isBlockTag`,
`isTextTag`
* Moved `smartPunctuation` from `Text.Pandoc.Readers.Markdown`
to `Text.Pandoc.Readers.Parsing`, and parameterized it with
an inline parser.
* Ellipses are no longer allowed to contain spaces.
Previously we allowed '. . .', ' . . . ', etc. This caused
too many complications, and removed author's flexibility in
combining ellipses with spaces and periods.
* Allow linebreaks in URLs (treat as spaces). Also, a string of
consecutive spaces or tabs is now parsed as a single space. If you have
multiple spaces in your URL, use `%20%20`.
* `Text.Pandoc.Parsing`:
+ Removed `refsMatch`.
+ Hid `Key` constructor.
+ Removed custom `Ord` and `Eq` instances for `Key`.
+ Added `toKey` and `fromKey` to convert between `Key` and `[Inline]`.
+ Generalized type on `readWith`.
* Small change in calculation of relative widths of table columns.
If the size of the header > the specified column width, use
the header size as 100% for purposes of calculating
relative widths of columns.
* Markdown writer now uses some pandoc-specific features when `--strict`
is not specified: `\` newline is used for a hard linebreak instead of
two spaces then a newline. And delimited code blocks are used when
there are attributes.
* HTML writer: improved gladTeX output by setting ENV appropriately
for display or inline math (Jonathan Daugherty).
* LaTeX writer: Use `\paragraph`, `\subparagraph` for level 4,5 headers.
* LaTeX reader:
+ `\label{foo}` and `\ref{foo}` now become `{foo}` instead of `(foo)`.
+ `\index{}` commands are skipped.
* Added `fontsize` variable to default LaTeX template.
This makes it easy to set the font size using `markdown2pdf`:
`markdown2pdf -V fontsize=12pt input.txt`.
* Fixed problem with strikeout in LaTeX headers when using
hyperref, by adding a command to the default LaTeX template
that disables `\sout` inside pdf strings. Thanks to Joost Kremers
for the fix.
* The `COLUMNS` environment variable no longer has any effect.
### Under-the-hood improvements
* Pandoc now compiles with GHC 7. (This alone leads to a
significant performance improvement, 15-20%.)
* Completely rewrote HTML reader using tagsoup as a lexer. The
new reader is faster and more accurate. Unlike the
old reader, it does not get bogged down on some input
(Issues #277, 255). And it handles namespaces in tags
(Issue #274).
* Replaced `escapeStringAsXML` with a faster version.
* Rewrote `spaceChar` and some other parsers in Text.Pandoc.Parsing
for a significant performance boost.
* Improved performance of all readers by rewriting parsers.
* Simplified Text.Pandoc.CharacterReferences by using
entity lookup functions from TagSoup.
* `Text.Pandoc.UTF8` now uses the unicode-aware IO functions
from `System.IO` if base >= 4.2. This gives support for
windows line endings on windows.
* Remove duplications in documentation by generating the
pandoc man page from README, using `MakeManPage.hs`.
* README now includes a full description of markdown syntax,
including non-pandoc-specific parts. A new `pandoc_markdown`
man page is extracted from this, so you can look up markdown
syntax by doing `man pandoc_markdown`.
* Completely revised test framework (with help from Nathan Gass).
The new test framework is built when the `tests` Cabal flag is set. It
includes the old integration tests, but also some new unit and quickcheck
tests. Test output has been much improved, and you can now specify a glob
pattern after `cabal test` to indicate which tests should be run;
for example `cabal test citations` will run all the citation tests.
* Added a shell script, `stripansi.sh`, for filtering ANSI control
sequences from test output: `cabal test | ./stripansi.sh > test.log`.
* Added `Interact.hs` to make it easier to use ghci while developing.
`Interact.hs` loads `ghci` from the `src` directory, specifying
all the options needed to load pandoc modules (including
specific package dependencies, which it gets by parsing
dist/setup-config).
* Added `Benchmark.hs`, testing all readers + writers using criterion.
* Added `stats.sh`, to make it easier to collect and archive
benchmark and lines-of-code stats.
* Added upper bounds to all cabal dependencies.
* Include man pages in extra-source-files. This allows users to
install pandoc from the tarball without needing to build the man
pages.
### Bug fixes
* Filenames are encoded as UTF8. Resolves Issue #252.
* Handle curly quotes better in `--smart` mode. Previously, curly quotes
were just parsed literally, leading to problems in some output formats.
Now they are parsed as `Quoted` inlines, if `--smart` is specified.
Resolves Issue #270.
* Text.Pandoc.Parsing: Fixed bug in grid table parser.
Spaces at end of line were not being stripped properly,
resulting in unintended LineBreaks.
* Markdown reader:
+ Allow HTML comments as inline elements in markdown.
So, `aaa <!-- comment --> bbb` can be a single paragraph.
+ Fixed superscripts with links: `^[link](/foo)^` gets
recognized as a superscripted link, not an inline note followed by
garbage.
+ Fixed regression, making markdown reference keys case-insensitive again.
Resolves Issue #272.
+ Properly handle abbreviations (like `Mr.`) at the end of a line.
+ Better handling of intraword underscores, avoiding exponential
slowdowns in some cases. Resolves Issue #182.
+ Fixed bug in alignments in tables with blank rows in the header.
* RST reader:
+ Field lists now allow spaces in field names, and
block content in field values. (Thanks to Lachlan Musicman
for pointing out the bug.)
+ Definition list items are now always `Para` instead of
`Plain`, matching behavior of `rst2xml.py`.
+ In image blocks, the description is parsed properly and
used for the alt attribute, not also the title.
+ Skip blank lines at beginning of file. Resolves
Debian #611328.
* LaTeX reader:
+ Improved parsing of preamble.
Previously you'd get unexpected behavior on a document that
contained `\begin{document}` in, say, a verbatim block.
+ Allow spaces between `\begin` or `\end` and `{`.
+ Support `\L` and `\l`.
+ Skip comments inside paragraphs.
* LaTeX writer:
+ Escape strings in `\href{..}`.
+ In nonsimple tables, put cells in `\parbox`.
* OpenDocument writer: don't print raw TeX.
* Markdown writer:
+ Fixed bug in `Image`. URI was getting unescaped twice!
+ Avoid printing extra blank lines at the end if there are
no notes or references.
* LaTeX and ConTeXt: Escape `[` and `]` as `{[}` and `{]}`.
This avoids unwanted interpretation as an optional argument.
* ConTeXt writer: Fixed problem with inline code. Previously
`}` would be rendered `\type{}}`. Now we check the string for '}' and '{'.
If it contains neither, use `\type{}`; otherwise use `\mono{}`
with an escaped version of the string.
* `:` now allowed in HTML tags. Resolves Issue #274.
## pandoc 1.6 (2010-07-24)
+ New EPUB and HTML Slidy writers. (Issue #122)
- [EPUB] is a standard ebook format, used in Apple's iBooks for
the iPad and iPhone, Barnes and Noble's nook reader, the Sony
reader, and many other devices, and by online ebook readers like
[bookworm]. (Amazon's Kindle uses a different format, MobiPocket,
but EPUB books can easily be converted to Kindle format.) Now you
can write your book in markdown and produce an ebook with a single
command! I've put up a short [tutorial here].
- [Slidy], like S5, is a system for producing HTML+javascript slide shows.
+ All input is assumed to be UTF-8, no matter what the locale and ghc
version, and all output is UTF-8. This reverts to pre-1.5 behavior.
Also, a BOM, if present, is stripped from the input.
+ Markdown now supports grid tables, whose cells can contain
arbitrary block elements. (Issue #43)
+ Sequentially numbered example lists in markdown with `@` marker.
+ Markdown table captions can begin with a bare colon and no longer need
to include the English word "table." Also, a caption can now occur
either before or after the table. (Issue #227)
+ New command-line options:
- `--epub-stylesheet` allows you to specify a CSS file that will
be used to style your ebook.
- `--epub-metadata` allows you to specify metadata for the ebook.
- `--offline` causes the generated HTML slideshow to include all
needed scripts and stylesheets.
- `--webtex` causes TeX math to be converted to images using the
Google Charts API (unless a different URL is specified).
- `--section-divs` causes div tags to be added around each section
in an HTML document. (Issue #230, 239)
+ Default behavior of S5 writer in standalone mode has changed:
previously, it would include all needed scripts and stylesheets
in the generated HTML; now, only links are included unless
the `--offline` option is used.
+ Default behavior of HTML writer has changed. Between 1.2 and 1.5,
pandoc would enclose sections in div tags with identifiers on the
div tags, so that the sections can be manipulated in javascript.
This caused undesirable interactions with raw HTML div tags. So,
starting with 1.6, the default is to put the identifiers directly
on the header tags, and not to include the divs. The `--section-divs`
option selects the 1.2-1.5 behavior.
+ API changes:
- `HTMLMathMethod`: Added `WebTeX`, removed `MimeTeX`.
- `WriterOptions`: Added `writerUserDataDir`, `writerSourceDirectory`,
`writerEPUBMetadata` fields. Removed `writerIncludeBefore`,
`writerIncludeAfter`.
- Added `headerShift` to `Text.Pandoc.Shared`.
- Moved parsing code and `ParserState` from `Text.Pandoc.Shared`
to a new module, `Text.Pandoc.Parsing`.
- Added `stateHasChapters` to `ParserState`.
- Added `HTMLSlideVariant`.
- Made `KeyTable` a map instead of an association list.
- Added accessors for `Meta` fields (`docTitle`, `docAuthors`, `docDate`).
- `Pandoc`, `Meta`, `Inline`, and `Block` have been given `Ord` instances.
- Reference keys now have a type of their own (`Key`), with its
own `Ord` instance for case-insensitive comparison.
- Added `Text.Pandoc.Writers.EPUB`.
- Added `Text.Pandoc.UUID`.
- Removed `Text.Pandoc.ODT`, added `Text.Pandoc.Writers.ODT`.
Removed `saveOpenDocumentAsODT`, added `writeODT`.
- Added `Text.Pandoc.Writers.Native` and `writeNative`.
Removed `prettyPandoc`.
- Added `Text.Pandoc.UTF8` for portable UTF8 string IO.
- Removed `Text.Pandoc.Writers.S5` and the `writeS5` function.
Moved `s5Includes` to a new module, `Text.Pandoc.S5`.
To write S5, you now use `writeHtml` with `writerSlideVariant`
set to `S5Slides` or `SlidySlides`.
+ Template changes. If you use custom templates, please update them,
particularly if you use syntax highlighting with pandoc. The old HTML
templates hardcoded highlighting CSS that will no longer work with
the most recent version of highlighting-kate.
- HTML template: avoid empty meta tag if no date.
- HTML template: Use default highlighting CSS from highlighting-kate
instead of hard-coding the CSS into the template.
- HTML template: insert-before text goes before the title, and
immediately after the `<body>` tag, as documented. (Issue #241)
- Added slidy and s5 templates.
- Added amssymb to preamble of latex template. (github Issue 1)
+ Removed excess newlines at the end of output. Note: because output
will not contain an extra newline, you may need to make adjustments
if you are inserting pandoc's output into a template.
+ In S5 and slidy, horizontal rules now cause a new slide, so you
are no longer limited to one slide per section.
+ Improved handling of code in man writer. Inline code is now monospace,
not bold, and code blocks now use .nf (no fill) and .IP (indented para).
+ HTML reader parses `<tt>` as Code. (Issue #247)
+ html+lhs output now contains bird tracks, even when compiled without
highlighting support. (Issue #242)
+ Colons are now no longer allowed in autogenerated XML/HTML identifiers,
since they have a special meaning in XML.
+ Code improvements in ODT writer. Remote images are now replaced with
their alt text rather than a broken link.
+ LaTeX reader improvements:
- Made latex `\section`, `\chapter` parsers more forgiving of whitespace.
- Parse `\chapter{}` in latex.
- Changed `rawLaTeXInline` to accept `\section`, `\begin`, etc.
- Use new `rawLaTeXInline'` in LaTeX reader, and export `rawLaTeXInline`
for use in markdown reader.
- Fixes bug wherein `\section{foo}` was not recognized as raw TeX
in markdown document.
+ LaTeX writer: images are automatically shrunk if they would extend
beyond the page margin.
+ Plain, markdown, RST writers now use unicode for smart punctuation.
+ Man writer converts math to unicode when possible, as in other writers.
+ `markdown2pdf` can now recognize citeproc options.
+ Command-line arguments are converted to UTF-8. (Issue #234)
+ `Text.Pandoc.TeXMath` has been rewritten to use texmath's parser.
This allows it to handle a wider range of formulas. Also, if a formula
cannot be converted, it is left in raw TeX; formulas are no longer
partially converted.
+ Unicode curly quotes are left alone when parsing smart quotes. (Issue #143)
+ Cabal file changes:
- Removed parsec < 3 restriction.
- Added 'threaded' flag for architectures where GHC lacks a threaded
runtime.
- Use 'threaded' only for markdown2pdf; it is not needed for pandoc.
- Require highlighting-kate 0.2.7.
+ Use explicit imports from `Data.Generics`. Otherwise we have a
conflict with the 'empty' symbol, introduced in syb >= 0.2. (Issue #237)
+ New data files: slidy/slidy.min.js, slidy/slidy.min.css, epub.css.
[EPUB]: http://en.wikipedia.org/wiki/EPUB
[Slidy]: http://www.w3.org/Talks/Tools/Slidy
[bookworm]: http://bookworm.oreilly.com/
[tutorial here]: http://johnmacfarlane.net/pandoc/epub.html
## pandoc 1.5.1.1 (2010-03-29)
+ Fixed header identifiers (uniqueIdent in Shared) so they
work as advertized in README and are guaranteed to be
valid XHTML names. Thanks to Xyne for reporting the bug.
## pandoc 1.5.1 (2010-03-23)
+ Fixed treatment of unicode characters in URIs.
+ Revised Setup.hs so it works with debian's build process.
+ Fixed bug in OpenDocument writer that led to invalid
XML for some input.
## pandoc 1.5.0.1 (2010-03-21)
+ HTML writer: Fixed error in math writer (with MathML option)
that caused an infinite loop for unparsable MathML.
## pandoc 1.5 (2010-03-20)
+ Moved repository to [github](http://github.com/jgm/pandoc).
+ New `--mathml` option, for display of TeX math as MathML.
+ New `--data-dir` option, allowing users to specify a data
directory other than `~/.pandoc`. Files placed in this directory
will be used instead of system defaults.
+ New `--base-header-level` option. For example, `--base-header-level=2`
changes level 1 headers to level 2, level 2 to level 3, etc.
+ New 'plain' output format: plain text without pictures, hyperlinks,
inline formatting, or anything else that looks even vaguely
markupish.
+ Titles and authors in title blocks can now span multiple lines,
as long as the continuation lines begin with a space character.
+ When given an absolute URI as a parameter, pandoc will fetch
the content via HTTP.
+ The HTML reader has been made much more forgiving. It no
longer requires well-formed xhtml as input.
+ `html2markdown` has been removed; it is no longer necessary, given
the last two changes. `pandoc` can be used by itself to convert
web pages to markdown or other formats.
+ `hsmarkdown` has also been removed. Use `pandoc --strict` instead.
Or symlink pandoc's executable to `hsmarkdown`; `pandoc` will then
behave like `hsmarkdown` used to.
+ An image in a paragraph by itself is now rendered as a figure
in most writers, with the alt text as the caption.
+ Incomplete support for reST tables (simple and grid). Thanks to
Eric Kow. Colspans and rowspans not yet supported.
+ In mediawiki, links with relative URLs are now formatted as wikilinks.
Also, headers have been promoted: `= head =` is now level 1 instead of
level 2.
+ The markdown reader now handles "inverse bird tracks" when parsing
literate haskell. These are used for haskell example code that
is not part of the literate program.
+ The `-B` and `-A` options now imply `-s` and no longer work in
fragment mode.
+ Headerless tables are now printed properly in all writers.
In addition, tbody, thead, and cols are used in HTML and Docbook
tables.
+ Improved build system; removed obsolete Makefile.
+ In LaTeX writer, `\chapter` is now used instead of `\section`.
when the documentclass is book, report, or memoir.
+ Many small bug fixes. See [changelog] for details.
## pandoc 1.4 (2010-01-02)
+ New template system replaces old headers, giving users much
more control over pandoc's output in `--standalone` mode.
Added `--template` and `--variable` options. The `--print-default-header`
option is now `--print-default-template`. See README under
"Templates" for details.
+ The old `--custom-header` option should still work, but it has
been deprecated.
+ New `--reference-odt` option allows users to customize styles
in ODT output.
+ Users may now put custom templates, s5 styles, and a reference
ODT in the `~/.pandoc` directory, where they will override system
defaults. See README for details.
+ Unicode is now used whenever possible in HTML and XML output. Entities
are used only where necessary (`>`, `<`, `"`, `&`).
+ Authors and dates may now include formatting and notes.
+ Added `--xetex` option for `pandoc` and `markdown2pdf`.
+ Windows installer now includes highlighting support and
`markdown2pdf` and `hsmarkdown` wrappers.
+ Pandoc no longer requires Template Haskell, which should make
it more portable.
+ Pandoc can now be built on GHC 6.12, as well as earlier versions.
+ See README for other small improvements and bug fixes.
## pandoc 1.3 (2009-12-10)
+ Added `--id-prefix` option to help prevent duplicate
identifiers when you're generating HTML fragments.
+ Added `--indented-code-classes` option, which specifies
default highlighting syntax for indented code blocks.
+ `--number-sections` now affects HTML output.
+ Improved syntax for markdown definition lists.
+ Better looking simple tables.
+ Markdown tables without headers are now possible.
+ New hard line break syntax: backslash followed by newline.
+ Improved performance of markdown reader by ~10% by eliminating the
need for a separate parsing pass for notes.
+ Improved syntax highlighting for literate Haskell.
+ Support for "..code-block" directive in RST reader.
+ Windows binary now includes highlighting support.
+ Many bug fixes and small improvements. See [changelog]
for details.
## pandoc 1.2.1 (2009-07-18)
+ Improved the efficiency of the markdown reader's
abbreviation parsing (should give a big performance
boost with `--smart`).
+ HTML writer now wraps sections in divs with unique
identifiers, for easier manipulation.
+ Improved LaTeX reader's coverage of math modes.
+ Added a portable Haskell version of markdown2pdf (thanks
to Paolo Tanimoto).
+ Made `--strict` compatible with `--standalone` and `--toc.`
+ Many other small improvements and bug fixes.
See [changelog] for details.
## pandoc 1.2 (2009-03-01)
+ Added support for literate Haskell. lhs support is triggered by
'+lhs' suffixes in formats. For example, 'latex+lhs' is literate
Haskell LaTeX. '.lhs' files are treated by default as literate
markdown.
+ Added `--email-obfuscation` option.
+ Brought citeproc support up to date for citeproc-hs-0.2.
+ Many bugs fixed. See [changelog] for details.
## pandoc 1.1 (2008-11-06)
+ New `--jsmath` option supporting use of pandoc with [jsMath].
+ Classes on HTML table output for better CSS styling.
+ Windows installer no longer requires admin privileges.
+ Many bugs fixed. See [changelog] for details.
## pandoc 1.0 (2008-09-13)
+ New writers for MediaWiki, GNU Texinfo (thanks to Peter Wang),
OpenDocument XML (thanks to Andrea Rossato), and ODT (OpenOffice
document).
+ New [delimited code blocks](README.html#delimited-code-blocks),
with optional syntax highlighting.
+ Reorganized build system: pandoc can now be built using standard
Cabal tools. It can be compiled on Windows without Cygwin.
The tests can also be run without perl or unix tools.
+ LaTeXMathML replaces ASCIIMathML for rendering math in HTML.
+ Support for "displayed" math.
+ Common abbreviations are now handled more intelligently, with
a non-breaking space (and not a sentence-ending space) after
the period.
+ Code is -Wall clean.
+ Many bug fixes and small improvements. See [changelog] for
full details.
## pandoc 0.46 (2008-01-08)
+ Added a `--sanitize-html` option (and a corresponding parameter
in `ParserState` for those using the pandoc libraries in programs).
This option causes pandoc to sanitize HTML (in HTML or Markdown
input) using a whitelist method. Possibly harmful HTML elements
are replaced with HTML comments. This should be useful in the
context of web applications, where pandoc may be used to convert
user input into HTML.
+ Made -H, -A, and -B options cumulative: if they are specified
multiple times, multiple files will be included.
+ Many bug fixes and small improvements. See [changelog] for full
details.
## pandoc 0.45 (2007-12-09)
+ Many bug fixes and structural improvements. See [changelog] for
full details.
+ Improved treatment of math. Math is now rendered using unicode
by default in HTML, RTF, and DocBook output. For more accurate
display of math in HTML, `--gladtex`, `--mimetex`, and `--asciimathml`
options are provided. See the [User's Guide](README.html#math) for
details.
+ Removed support for box-style block quotes in markdown.
+ More idiomatic ConTeXt output.
+ Text wrapping in ConTeXt and LaTeX output.
+ Pandoc now correctly handles all standard line endings
(CR, LF, CRLF).
+ New `--no-wrap` option that disables line wrapping and minimizes
whitespace in HTML output.
+ Build process is now compatible with both GHC 6.8 and GHC 6.6.
GHC and GHC_PKG environment variables may be used to specify
which version of the compiler to use, when multiple versions are
installed.
## pandoc 0.44 (2007-09-03)
[ John MacFarlane ]
* Fixed bug in HTML writer: when --toc was used, anchors were put around
headers, which is invalid XHTML (block content within inline element).
Now the anchors are put inside the header tags. Resolves Issue #23.
* Added xmlns attribute to html element in html writer tests.
This attribute is added by more recent versions of the
xhtml library (>= 3000), and is required for valid XHTML.
[ Recai Oktaş ]
* On configure, compile 'Setup.hs' to 'setup' and use 'setup' as the build
command instead of 'runhaskell', which, on some platforms (such as s390,
alpha, m68k), throws the following error:
runhaskell Setup.hs configure --prefix=/usr
ghc-6.6.1: not built for interactive use
This causes a serious FTBFS bug. Closes: #440668.
## pandoc 0.43 (2007-09-02)
[ John MacFarlane ]
* The focus of this release is performance. The markdown parser
is about five times faster than in 0.42, based on benchmarks
with the TextMate manual.
* Main.hs: Replaced CRFilter and tabFilter with single function
tabFilter, which operates on the whole string rather than breaking
it into lines, and handles dos-style line-endings as well as tabs.
* Added separate LaTeX reader and native reader tests; removed
round-trip tests.
* Text.Pandoc.Shared:
+ Removed tabsToSpaces and tabsInLine (they were used only in Main.hs.)
+ General code cleanup (to elimante warnings when compiling with -Wall.)
+ Added 'wrapped' function, which helps wrap text into paragraphs,
using the prettyprinting library.
+ Rewrote charsInBalanced and charsInBalanced'.
- Documented restriction: open and close must be distinct characters.
- Rearranged options for greater efficiency.
- Bug fix: Changed inner call to charsInBalanced inside
charsInBalanced' to charsInBalanced'.
+ anyLine now requires that the line end with a newline (not eof).
This is a harmless assumption, since we always add newlines to the
end of a block before parsing with anyLine, and it yields a 10% speed
boost.
+ Removed unnecessary 'try' in anyLine.
+ Removed unneeded 'try' from romanNumeral parser.
+ Use notFollowedBy instead of notFollowedBy' in charsInBalanced.
+ Removed unneeded 'try' in parseFromString.
+ Removed unneeded 'try' from stringAnyCase. (Now it behaves
like 'string'.)
+ Changed definition of 'enclosed' in Text.Pandoc.Shared so that
'try' is not automatically applied to the 'end' parser. Added
'try' in calls to 'enclosed' where needed. Slight speed increase.
* Writers:
+ Replaced individual wrapping routines in RST, Man, and Markdown
writers with 'wrapped' from Text.Pandoc.Shared.
+ Rewrote LaTeX writer to use the prettyprinting library,
so we get word wrapping, etc.
+ Modified latex writer tests for new latex writer using prettyprinter.
+ Fixed bug in LaTeX writer: autolinks would not cause
`\usepackage{url}` to be put in the document header. Also, changes
to state in enumerated list items would be overwritten.
+ In Markdown writer, escape paragraphs that begin with ordered list
markers, so they don't get interpreted as ordered lists.
* Text.Pandoc.Reades.LaTeX:
+ Fixed bug in LaTeX reader, which wrongly assumed that the roman
numeral after "enum" in "setcounter" would consist entirely of
"i"s. 'enumiv' is legitimate.
+ LaTeX command and environment names can't contain numbers.
+ Rearranged order of parsers in inline for slight speed improvement.
+ Added '`' to special characters and 'unescapedChar'.
* Text.Pandoc.Readers.RST:
+ Removed unneeded try's in RST reader; also minor code cleanup.
+ Removed tabchar.
+ Rearranged parsers in inline (doubled speed).
* Text.Pandoc.Readers.Markdown:
+ Skip notes parsing if running in strict mode. (This yields a nice
speed improvement in strict mode.)
+ Simplify autolink parsing code, using Network.URI to test for
URIs. Added dependency on network library to debian/control and
pandoc.cabal.
+ More perspicuous definition of nonindentSpaces.
+ Removed unneeded 'try' in 'rawLine'.
+ Combined linebreak and whitespace into a new whitespace parser, to
avoid unnecessary reparsing of space characters.
+ Removed unnecessary 'try' in 'codeBlock', 'ellipses', 'noteMarker',
'multilineRow', 'dashedLine', 'rawHtmlBlocks'.
+ Use lookAhead in parsers for setext headers and definition lists
to see if the next line begins appropriately; if not, don't waste
any more time parsing.
+ Don't require blank lines after code block. (It's sufficient to
end code block with a nonindented line.)
+ Changed definition of 'emph': italics with '_' must not
be followed by an alphanumeric character. This is to help
prevent interpretation of e.g. `[LC_TYPE]: my_type` as
`[LC<em>TYPE]:my</em>type`.
+ Improved Markdown.pl-compatibility in referenceLink: the two parts
of a reference-style link may be separated by one space, but not
more... [a] [link], [not] [a link].
+ Fixed markdown inline code parsing so it better accords with
Markdown.pl: the marker for the end of the code section is a clump
of the same number of `'s with which the section began, followed
by a non-` character. So, for example,
` h ``` i ` -> `<code>h ``` i</code>`.
+ Split 'title' into 'linkTitle' and 'referenceTitle', since the
rules are slightly different.
+ Rewrote 'para' for greater efficiency.
+ Rewrote link parsers for greater efficiency.
+ Removed redundant 'referenceLink' in definition of inline (it's
already in 'link').
+ Refactored escapeChar so it doesn't need 'try'.
+ Refactored hrule for performance in Markdown reader.
+ More intelligent rearranging of 'inline' so that most frequently
used parsers are tried first.
+ Removed tabchar parser, as whitespace handles tabs anyway.
* Text.Pandoc.CharacterReferences:
+ Refactored.
+ Removed unnecessary 'try's for a speed improvement.
+ Removed unnecessary '&' and ';' from the entity table.
* Build process:
+ Makefile: Get VERSION from cabal file, not Main.hs.
+ Modified MacPorts Portfile:
- Depend on haddock
- Build and install libraries and library documentation in
addition to pandoc executable
- Added template item for md5 sum in Portfile.in.
- Incorporated changes from MacPorts repository (r28278).
+ FreeBSD port: Don't try to generate distinfo in Makefile.
It can be made using 'make makesum' in FreeBSD.
+ Make both freebsd and macports targets depend on tarball.
* Website and documentation:
+ Updated INSTALL instructions.
+ Added pandocwiki demo to website.
+ Removed local references to Portfile, since pandoc is now in the
MacPorts repository.
## pandoc 0.42 (2007-08-26)
[ John MacFarlane ]
* Main.hs: Use utf8 conversion on the extra files loaded with
the -H, -C, -B, and -A options. This fixes problems with unicode
characters in these files.
* Exposed Text.Pandoc.ASCIIMathML, since it is imported in
Text.Pandoc.Readers.HTML and without it we get a linking error when
using the library.
* Markdown reader:
+ Added new rule for enhanced markdown ordered lists: if the list
marker is a capital letter followed by a period (including a
single-letter capital roman numeral), then it must be followed by
at least two spaces. The point of this is to avoid accidentally
treating people's initials as list markers: a paragraph might begin,
"B. Russell was an English philosopher," and this shouldn't be
treated as a list. Documented change in README.
+ Blocks that start with "p. " and a digit are no longer treated
as ordered lists (it's a page number).
+ Added a needed 'try' to listItem.
+ Removed check for a following setext header in endline.
A full test is too inefficient (doubles benchmark time), and the
substitute we had before is not 100% accurate.
+ Don't use Code elements for autolinks if --strict specified.
* LaTeX writer: When a footnote ends with a Verbatim environment, the
close } of the footnote cannot occur on the same line or an error occurs.
Fixed this by adding a newline before the closing } of every footnote.
* HTML writer:
+ Removed incorrect "{}" around style information in HTML tables.
Column widths now work properly in HTML.
+ If --strict option is specified (and --toc is not), don't include
identifiers in headers, for better Markdown compatibility.
* Build process:
+ Separated $(web_dest) and website targets.
+ In website, index.txt is now constructed from template index.txt.in.
+ Added freebsd target to Markefile. This creates the freebsd Makefile
from Makefile.in, and creates distinfo. Removed Makefile and distinfo
from the repository.
+ Added macport target to Makefile. Portfile is built from template
Portfile.in.
+ Removed OSX package targets. (Too many difficulties involving
dependencies on dynamic libraries.)
+ More complete INSTALL instructions for all architectures.
* Website:
+ Added a programming demo, pandocwiki.
[ Recai Oktaş ]
* Do not forget to close pandoc's ITP. Closes: #391666
## pandoc 0.41 (2007-08-19)
[ John MacFarlane ]
* Fixed bugs in HTML reader:
+ Skip material at end *only if* `</html>` is present (previously,
only part of the document would be parsed if an error was
found; now a proper error message is given).
+ Added new constant eitherBlockOrInline with elements that may
count either as block-level or as inline. Modified isInline and
isBlock to take this into account.
+ Modified rawHtmlBlock to accept any tag (even an inline tag):
this is innocuous, because rawHtmlBlock is tried only if a regular
inline element can't be parsed.
+ Added a necessary 'try' in definition of 'para'.
* Fixed bug in markdown ordered list parsing. The problem was that
anyOrderedListStart did not check for a space following the
ordered list marker. So in 'A.B. 2007' the parser would be
expecting a list item, but would not find one, causing an error.
Fixed a similar bug in the RST reader. Resolves Issue #22.
* Refactored RST and Markdown readers using parseFromString.
* LaTeX reader will now skip anything after \end{document}.
* Fixed blockquote output in markdown writer: previously, block
quotes in indented contexts would be indented only in the first
line.
* Added note to INSTALL about variations in versions of the xhtml
library that can lead to failed tests (thanks to Leif LeBaron).
## pandoc 0.4 (2007-01-16)
[ John MacFarlane ]
* Added two new output formats: groff man pages and ConTeXt. By
default, output files with extensions ".ctx" and ".context" are
assumed to be ConTeXt, and output files with single-digit extensions
are assumed to be man pages.
* Enhanced ordered lists (documented in README, under Lists):
+ The OrderedList block element now stores information about
list number style, list number delimiter, and starting number.
+ The readers parse this information when possible.
+ The writers use this information to style ordered lists.
+ The enhancement can be disabled using the --strict option.
* Added support for tables (with a new Table block element). Two kinds
of tables are supported: a simple table with one-line rows, and a
more complex variety with multiline rows. All output formats are
supported, but only markdown tables are parsed at the moment. The
syntax is documented in README.
* Added support for definition lists (with a new DefinitionList block
element). All output and input formats are supported. The syntax is
documented in README.
* Added support for superscripts and subscripts (with new Superscript
and Subscript inline elements). All input and output
formats. The syntax is documented in README.
* Added support for strikeout (with a new Strikeout inline element).
All input and output formats are supported. Thanks to Bradley Kuhn,
who contributed a patch. The syntax is documented in README. Resolves
Issue #18.
* Added a --toc|--table-of-contents option. This causes an automatically
generated table of contents (or an instruction that creates one) to
be inserted at the beginning of the document. Not supported in S5,
DocBook, or man page writers.
* Modified the -m|--asciimathml option:
+ If an optional URL argument is provided, a link is inserted
instead of the contents of the ASCIIMathML.js script.
+ Nothing is inserted unless the document actually contains
LaTeX math.
* Removed Blank block element as unnecessary.
* Removed Key and Note blocks from the Pandoc data structure. All
links are now stored as explicit links, and note contents are
stored with the (inline) notes.
+ All link Targets are now explicit (URL, title) pairs; there
is no longer a 'Ref' target.
+ Markdown and RST parsers now need to extract data from key and
note blocks and insert them into the relevant inline elements.
Other parsers have been simplified, since there is no longer any need
to construct separate key and note blocks.
+ Markdown, RST, and HTML writers need to construct lists of
notes; Markdown and RST writers need to construct lists of link
references (when the --reference-links option is specified); and
the RST writer needs to construct a list of image substitution
references. All writers have been rewritten to use the State monad
when state is required.
+ Several functions (generateReference, keyTable,
replaceReferenceLinks, replaceRefLinksBlockList, and some auxiliaries
used by them) have been removed from Text.Pandoc.Shared, since
they are no longer needed. New functions and data structures
(Reference, isNoteBlock, isKeyBlock, isLineClump) have been
added. The functions inTags, selfClosingTag, inTagsSimple, and
inTagsIndented have been moved to the DocBook writer, since that
is now the only module that uses them. NoteTable is now exported
in Text.Pandoc.Shared.
+ Added stateKeys and stateNotes to ParserState; removed stateKeyBlocks,
stateKeysUsed, stateNoteBlocks, stateNoteIdentifiers, stateInlineLinks.
+ Added writerNotes and writerReferenceLinks to WriterOptions.
* Added Text.Pandoc module that exports basic readers, writers,
definitions, and utility functions. This should export everything
needed for most uses of Pandoc libraries. The haddock documentation
includes a short example program.
* Text.Pandoc.ASCIIMathML is no longer an exported module.
* Added Text.Pandoc.Blocks module to help in printing markdown
and RST tables. This module provides functions for working with
fixed-width blocks of text--e.g., placing them side by side, as
in a table row.
* Refactored to avoid reliance on Haskell's Text.Regex library, which
(a) is slow, and (b) does not properly handle unicode. This fixed
some strange bugs, e.g. in parsing S-cedilla, and improved performance.
+ Replaced 'gsub' with a general list function 'substitute'
that does not rely on Text.Regex.
+ Rewrote extractTagType in HTML reader so that it doesn't use
regexs.
+ In Markdown reader, replaced email regex test with a custom email
autolink parser (autoLinkEmail). Also replaced selfClosingTag regex
with a custom function isSelfClosingTag.
+ Modified Docbook writer so that it doesn't rely on Text.Regex for
detecting 'mailto' links.
+ Removed escapePreservingRegex and reamped entity-handling
functions in Text.Pandoc.Shared and Text.Pandoc.CharacterReferences to
avoid reliance on Text.Regex (see below on character reference
handling changes).
* Renamed Text.Pandoc.Entities as Text.Pandoc.CharacterReferences.
* Changed handling of XML entities. Entities are now parsed (and unicode
characters returned) in the Markdown and HTML readers, rather than being
handled in the writers. In HTML and Docbook writers, UTF-8 is now used
instead of entities for characters above 128. This makes the HTML and
DocBook output much more readable and more easily editable.
+ Removed sgmlHexEntity, sgmlDecimalEntity, sgmlNamedEntity, and
sgmlCharacterEntity regexes from Text.Pandoc.Shared.
+ Renamed escapeSGMLChar to escapeCharForXML. Added escapeStringForXML.
Moved both functions to Text.Pandoc.Writers.Docbook.
+ Added characterReference parser to Text.Pandoc.CharacterReferences.
This parses a string and return a unicode character.
+ Rewrote decodeCharacterReferences to use the new parser instead of
Text.Regex.
+ Added new charRef parser for Markdown and HTML, which replaces the
old 'entity' parser. Added '&' as a special character in Markdown reader.
+ Modified HTML and Markdown readers to call decodeEntities on all raw
strings (e.g. authors, dates, link titles), to ensure that no
unprocessed entities are included in the native representation of
the document. (In the HTML reader, most of this work is done by a
change in extractAttributeName.)
+ In XML and Markdown output, escape unicode nonbreaking space as ' ',
since a unicode non-breaking space is impossible to distinguish visually
from a regular space. (Resolves Issue #3.)
+ Removed encodeEntitiesNumerical.
+ Use Data.Map for entityTable and (new) reverseEntityTable, for a
slight performance boost over the old association list.
+ Removed unneeded decodeEntities from 'str' parser in HTML and
Markdown readers.
* Text.Pandoc.UTF8: Renamed encodeUTF8 to toUTF8, decodeUTF8 to
fromUTF8, for clarity.
* Replaced old haskell98 module names replaced by hierarchical module
names, e.g. List by Data.List. Removed haskell98 from dependencies
in pandoc.cabal, and added mtl (needed for state monad). Substituted
xhtml for html.
* Refactored and cleaned up character escaping in writers, using
backslashEscapes and escapeStringUsing functions.
* Instead of adding `\n\n` to the end of an input string in Main.hs,
this is now done in the readers. This makes the libraries behave
the way you'd expect from the pandoc program. Resolves Issue #10.
* URLs and email addresses in autolinks are now typeset as Code.
* In Main.hs, changed putStr to putStrLn -- mainly because MacOS X
doesn't display the whole output unless there's a line ending.
* Major code cleanup in all modules, for greater consistency, concision,
and readability.
* HTML reader:
+ Fixed several bugs (extractTagType, attribute parsing).
+ Remove Null blocks in lists of blocks when possible.
+ Allow HTML comments as raw HTML inline.
* Markdown reader:
+ Ordered list items may no longer begin with uppercase letters, or
letters greater than 'n'. (This prevents first initials and page
reference, e.g. 'p. 400', from being parsed as beginning lists.)
Also, numbers beginning list items may no longer end with ')',
which is now allowed only after letters. Note: These changes
may cause documents to be parsed differently. Users should take
care in upgrading.
+ Changed autoLink parsing to conform better to Markdown.pl's
behavior. `<google.com>` is not treated as a link, but
`<http://google.com>`, `<ftp://google.com>`, and
`<mailto:google@google.com>` are.
+ Cleaned up handling of embedded quotes in link titles. Now these are
stored as a '"' character, not as '"'.
+ Use lookAhead parser for the 'first pass' (looking for reference keys),
instead of parsing normally, then using setInput to reset input. This
yields a slight performance boost.
+ Fixed several bugs in smart quote recognition.
+ Fixed bug in indentSpaces (which didn't properly handle
cases with mixed spaces and tabs).
+ Consolidated 'text', 'special', and 'inline' into 'inline'.
+ Fixed bug which allowed URL and title to be separated by multiple blank
lines in links and reference keys. They can be on separate lines but
can't have blank lines between them.
+ Correctly handle bracketed text inside inline footnotes and links,using
new function inlinesInBalanced. Resolves Issue #14.
+ Fixed bug in footnotes: links in footnotes were not being
processed. Solution: three-stage parse. First, get all the
reference keys and add information to state. Next, get all the
notes and add information to state. (Reference keys may be needed
at this stage.) Finally, parse everything else.
+ Replaced named constants like 'emphStart' with literals.
+ Removed an extra occurrence of escapedChar in definition of inline.
* RST reader:
+ Allow the URI in a RST hyperlink target to start on the line
after the reference key.
+ Added 'try' in front of 'string', where needed, or used a different
parser. This fixes a bug where ````` would not be correctly parsed as
a verbatim `.
+ Fixed slow performance in parsing inline literals in RST reader. The
problem was that ``#`` was seen by 'inline' as a potential link or image.
Fix: inserted 'notFollowedBy (char '`')' in link parsers.
Resolves Issue #8.
+ Use lookAhead instead of getInput/setInput in RST reader. Removed
unneeded getState call, since lookAhead automatically saves and
restores the parser state.
+ Allow hyperlink target URIs to be split over multiple lines, and
to start on the line after the reference. Resolves Issue #7.
+ Fixed handling of autolinks.
* LaTeX reader:
+ Replaced `choice [(try (string ...), ...]` idiom with `oneOfStrings`,
for clarity.
+ Added clauses for tilde and caret. Tilde is `\ensuremath{\sim}`, and
caret is `\^{}`, not `\^` as before.
+ Added parsing for `\url`.
+ Parse `\texttt{}` as code, provided there's nothing fancy inside.
* HTML writer:
+ Modified HTML writer to use the Text.XHtml library. This results
in cleaner, faster code, and it makes it easier to use Pandoc in
other projects, like wikis, which use Text.XHtml. Two functions are
now provided, writeHtml and writeHtmlString: the former outputs an
Html structure, the latter a rendered string. The S5 writer is also
changed, in parallel ways (writeS5, writeS5String).
+ The Html header is now written programmatically, so it has been
removed from the 'headers' directory. The S5 header is still
needed, but the doctype and some of the meta declarations have
been removed, since they are written programmatically. This change
introduces a new dependency on the xhtml package.
+ Fixed two bugs in email obfuscation involving improper escaping
of '&' in the `<noscript>` section and in `--strict` mode. Resolves
Issue #9.
+ Fixed another bug in email obfuscation: If the text to be obfuscated
contains an entity, this needs to be decoded before obfuscation.
Thanks to thsutton for the patch. Resolves Issue #15.
+ Changed the way the backlink is displayed in HTML footnotes.
Instead of appearing on a line by itself, it now generally
appears on the last line of the note. (Exception: when the
note does not end with a Plain or Para block.) This saves space
and looks better.
+ Added automatic unique identifiers to headers:
- The identifier is derived from the header via a scheme
documented in README.
- WriterState now includes a list of header identifiers and a table
of contents in addition to notes.
- The function uniqueIdentifiers creates a list of unique identifiers
from a list of inline lists (e.g. headers).
- This list is part of WriterState and gets consumed by blockToHtml
each time a header is encountered.
+ Include CSS for .strikethrough class in header only if strikethrough
text appears in the document.
+ If the 'strict' option is specified, elements that do not appear in
standard markdown (like definition lists) are passed through as
raw HTML.
+ Simplified treatment of autolinks, using pattern matching instead of
conditionals.
* Markdown writer:
+ Links in markdown output are now printed as inline links by default,
rather than reference links. A --reference-links option has been added
that forces links to be printed as reference links. Resolves Issue #4.
+ Use autolinks when possible. Instead of `[site.com](site.com)`,
use `<site.com>`.
* LaTeX writer:
+ Rewrote to use the State monad. The preamble now includes only those
packages that are actually required, given the document's content.
Thus, for example, if strikeout is not used, ulem is not required.
Modified LaTeXHeader accordingly.
+ Modified LaTeX writer to insert `\,` between consecutive quotes.
+ Removed unused function tableRowColumnWidths.
+ Simplified code for escaping special characters.
+ Leave extra blank line after `\maketitle`.
+ Include empty `\author{}` when no author specified to avoid LaTeX
errors.
+ Include fancyvrb code in header only if needed -- that is, only
if there is actually code in a footnote.
+ Use `\url{}` for autolinks.
+ Include [mathletters] option in ucs package, so that basic unicode
Greek letters will work correctly.
* RST writer: Force blank line before lists, so that sublists will
be handled correctly.
* Docbook writer: Fixed a bug: email links with text, like
[foo](me@bar.baz), were being incorrectly treated as autolinks.
* Removed Text.ParserCombinators.Pandoc and moved all its functions to
Text.Pandoc.Shared.
* Text.Pandoc.Shared:
+ Added defaultWriterOptions.
+ Added writerTableOfContents to WriterOptions.
+ Added writerIgnoreNotes option to WriterOptions. This is needed
for processing header blocks for a table of contents, since notes on
headers should not appear in the TOC.
+ Added prettyprinting for native Table format.
+ Removed some unneeded imports.
+ Moved escape and nullBlock parsers from
Text.ParserCombinators.Pandoc, since the latter is for
general-purpose parsers that don't depend on Text.Pandoc.Definition.
+ Moved isHeaderBlock from Text.Pandoc.Writers.HTML.
+ Moved Element, headerAtLeast, and hierarchicalize from Docbook
writer, because HTML writer now uses these in constructing a table
of contents.
+ Added clauses for new inline elements (Strikeout, Superscript,
Subscript) to refsMatch.
+ Removed backslashEscape; added new functions escapeStringUsing and
backslashEscapes.
+ Moved failIfStrict from markdown reader, since it is now used also
by the HTML reader.
+ Added a 'try' to the definition of indentSpaces.
+ In definition of 'reference', added check to make sure it's not a note
reference.
+ Added functions: camelCaseToHyphenated, toRomanNumeral,
anyOrderedListMarker, orderedListmarker, orderedListMarkers,
charsInBalanced', withHorizDisplacement, romanNumeral
+ Fixed a bug in the anyLine parser. Previously it would parse an empty
string "", but it should fail on an empty string, or we get an error
when it is used inside "many" combinators.
+ Removed followedBy' parser, replacing it with the lookAhead parser from
Parsec.
+ Added some needed 'try's before multicharacter parsers, especially in
'option' contexts.
+ Removed the 'try' from the 'end' parser in 'enclosed', so that
'enclosed' behaves like 'option', 'manyTill', etc.
+ Added lineClump parser, which parses a raw line block up to and
including any following blank lines.
+ Renamed parseFromStr to parseFromString.
+ Added a 'try' to the 'end' parser in 'enclosed'. This makes errors in
the use of 'enclosed' less likely. Removed some now-unnecessary 'try's
in calling code.
+ Removed unneeded 'try' in blanklines.
+ Removed endsWith function and rewrote calling functions to use
isSuffixOf instead.
+ Added >>~ combinator.
+ Fixed bug in normalizeSpaces: Space:Str "":Space should compress to
Space.
* Refactored runtests.pl; added separate tests for tables.
* Shell scripts:
+ Added -asxhtml flag to tidy in html2markdown. This will
perhaps help the parser, which expects closing tags.
+ Modified markdown2pdf to run pdflatex a second time if --toc or
--table-of-contents was specified; otherwise the table of
contents won't appear.
+ Modified markdown2pdf to print a helpful message if the 'ulem'
LaTeX package is required and not found.
* Changes to build process:
+ Dropped support for compilation with GHC 6.4. GHC 6.6 or higher
is now required.
+ Removed cabalize and Pandoc.cabal.in. The repository now contains
pandoc.cabal itself.
+ Pandoc.cabal has been changed to pandoc.cabal, because HackageDB
likes the cabal file to have the same name as the tarball.
+ Expanded and revised the package description in pandoc.cabal.
Revised the package synopsis.
+ The tarball built by 'make tarball' now contains files built from
templates (including man pages and shell scripts), so pandoc can
be built directly using Cabal tools, without preprocessing.
+ Executable binaries are now stripped before installing.
+ Man pages are now generated from markdown sources, using pandoc's
man page writer.
+ Use HTML version of README (instead of RTF) in Mac OS X installer.
+ Instead of testing for the existence of a pandoc symlink in build-exec,
use ln -f.
* Documentation:
+ Updated README and man pages with information on new features.
+ Updated INSTALL instructions with some useful clarifications and
links.
+ Updated web content.
* Added FreeBSD port.
[ Recai Oktaş ]
* debian/control:
+ Changed pandoc's Build-Depends to include libghc6-mtl-dev and
libghc6-xhtml-dev. Removed libghc6-html-dev.
+ Suggest texlive-latex-recommended | tetex-extra instead of
tetex-bin. This brings in fancyvrb and unicode support.
## pandoc 0.3 (2007-01-05)
[ John MacFarlane ]
* Changes in pandoc options:
+ Allow options to follow or precede arguments.
+ Changed '--smartypants' to '--smart' and adjusted symbols accordingly.
+ Added '--strict' option.
+ Added '-o/--output' option.
+ Added '--dump-args' and '--ignore-args' options (for use in wrappers).
+ Modified '-v' and '-h' output to go to STDERR, not STDOUT, and return
error conditions. This is helpful for writing wrappers.
+ Added copyright message to '-v' output, modeled after FSF messages.
+ Reformatted usage message so that it doesn't wrap illegibly.
+ Removed extra blanks after '-h' and '-D' output.
* Added docbook writer.
* Added implicit setting of default input and output format based
on input and output filename extensions. These defaults are
overridden if explicit input and output formats are specified using
'-t', '-f', '-r', or '-w' options. Documented in pandoc(1) man page
and README.
* Allow ordered list items to begin with (single) letters, as well
as numbers. The list item marker may now be terminated either by
'.' or by ')'. This extension to standard markdown is documented
in README.
* Revised footnote syntax. (See README for full details.) The
'[^1]' format now standard in markdown extensions is supported,
as are inline footnotes with this syntax: `^[My note.]`.
The earlier footnote syntax `^(1)` is no longer supported.
* Improved HTML representation of footnotes. All footnotes
are now auto-numbered and appear in an ordered list at the
end of the HTML document. Since the default appearance is now
acceptable, the old footnote styles have been removed from the
HTML header.
* Bug fixes:
+ Fixed a serious bug in the markdown, LaTeX, and RST readers.
These readers ran 'runParser' on processed chunks of text to handle
embedded block lists in lists and quotation blocks. But then
any changes made to the parser state in these chunks was lost,
as the state is local to the parser. So, for example, footnotes
didn't work in quotes or list items. The fix: instead of calling
runParser on some raw text, use setInput to make it the input, then
parse it, then use setInput to restore the input to what it was
before. This is shorter and more elegant, and it fixes the problem.
+ Fixed bug in notFollowedBy' combinator (adding 'try' before
'parser'). Adjusted code that uses this combinator accordingly.
+ Fixed bug in RTF writer that caused improper indentation on
footnotes occurring in indented blocks like lists.
+ Fixed parsing of metadata in LaTeX reader. Now the title, author,
and date are parsed correctly. Everything else in the preamble
is skipped.
+ Modified escapedChar in LaTeX reader to allow a `\` at the end of a
line to count as escaped whitespace.
+ Modified LaTeX reader to produce inline links rather than reference
links. Otherwise, links in footnotes aren't handled properly.
+ Fixed handling of titles in links in Markdown reader, so that
embedded quotation marks are now handled properly.
+ Fixed Markdown reader's handling of embedded brackets in links.
+ Fixed Markdown reader so that it only parses bracketed material
as a reference link if there is actually a corresponding key.
+ Revised inline code parsing in Markdown reader to conform to
markdown standard. Now any number of `s can begin inline code,
which will end with the same number of `s. For example, to
have two backticks as code, write ``` `` ```. Modified Markdown
writer accordingly.
+ Fixed bug in text-wrapping routine in Markdown and RST writers.
Now LineBreaks no longer cause wrapping problems.
+ Supported hexadecimal numerical entity references as well as
decimal ones.
+ Fixed bug in Markdown reader's handling of underscores and other
inline formatting markers inside reference labels: for example,
in '[A_B]: /url/a_b', the material between underscores was being
parsed as emphasized inlines.
+ Changed Markdown reader's handling of backslash escapes so that
only non-alphanumeric characters can be escaped. Strict mode
follows Markdown.pl in only allowing a select group of punctuation
characters to be escaped.
+ Modified HTML reader to skip a newline following a `<br>` tag.
Otherwise the newline will be treated as a space at the beginning
of the next line.
* Made handling of code blocks more consistent. Previously, some
readers allowed trailing newlines, while others stripped them.
Now, all readers strip trailing newlines in code blocks. Writers
insert a newline at the end of code blocks as needed.
* Modified readers to make spacing at the end of output more consistent.
* Minor improvements to LaTeX reader:
+ `\thanks` now treated like a footnote.
+ Simplified parsing of LaTeX command arguments and options.
commandArgs now returns a list of arguments OR options (in
whatever order they appear). The brackets are included, and
a new stripFirstAndLast function is provided to strip them off
when needed. This fixes a problem in dealing with \newcommand
and \newenvironment.
* Revised RTF writer:
+ Default font is now Helvetica.
+ An `\f0` is added to each `\pard`, so that font resizing works
correctly.
* Moved handling of "smart typography" from the writers to the Markdown
and LaTeX readers. This allows great simplification of the writers
and more accurate smart quotes, dashes, and ellipses. DocBook can
now use `<quote>`. The '--smart' option now toggles an option in
the parser state rather than a writer option. Several new kinds
of inline elements have been added: Quoted, Ellipses, Apostrophe,
EmDash, EnDash.
* Changes in HTML writer:
+ Include title block in header even when title is null.
+ Made javascript obfuscation of emails even more obfuscatory,
by combining it with entity obfuscation.
* Changed default ASCIIMathML text color to black.
* Test suite:
+ Added --strip-trailing-cr option to diff in runtests.pl, for
compatibility with Windows.
+ Added regression tests with footnotes in quote blocks and lists.
* Makefile changes:
+ osx-pkg target creates a Mac OS X package (directory). New osx
directory contains files needed for construction of the package.
+ osx-dmg target creates a compressed disk image containing the package.
+ win-pkg target creates Windows binary package.
+ tarball target creates distribution source tarball.
+ website target generates pandoc's website automatically, including
demos. New 'web' directory contains files needed for construction
of the website (which will be created as the 'pandoc' subdirectory
of 'web').
+ Makefile checks to see if we're running Windows/Cygwin; if so,
a '.exe' extension is added to each executable in EXECS.
* Removed all wrappers except markdown2pdf and html2markdown.
* Added new wrapper hsmarkdown, to be used as a drop-in replacement
for Markdown.pl. hsmarkdown calls pandoc with the '--strict'
option and disables other options.
* Added code to html2markdown that tries to determine the character
encoding of an HTML file, by parsing the "Content-type" meta tag.
+ If the encoding can't be determined, then if the content is local,
the local encoding is used; if it comes from a URL, UTF-8 is used
by default.
+ If input is from STDIN, don't try to determine character encoding.
+ Encoding can be specified explicitly using '-e' option.
* Improved warning messages in wrappers:
+ Print warning if iconv not available
+ More user-friendly error messages in markdown2pdf, when
pdflatex fails.
* Code cleanup:
+ Renamed 'Text/Pandoc/HtmlEntities' module to
'Text/Pandoc/Entities'. Also changed function names so as
not to be HTML-specific.
+ Refactored SGML string escaping functions from HTML and Docbook
writers into Text/Pandoc/Shared. (escapeSGML, stringToSGML)
+ Removed 'BlockQuoteContext' from ParserContext, as it isn't
used anywhere.
+ Removed splitBySpace and replaced it with a general, polymorphic
splitBy function.
+ Refactored LaTeX reader for clarity (added isArg function).
+ Converted some CR's to LF's in src/ui/default/print.css.
+ Added license text to top of source files.
+ Added module data for haddock to source files.
+ Reformatted code for consistency.
* Rewrote documentation and man pages. Split README into INSTALL
and README.
* Split LICENSE into COPYING and COPYRIGHT.
* Removed TODO, since we now maintain ToDo on the wiki.
* Made COPYRIGHT in top level a symlink to debian/copyright, to avoid
duplication.
[ Recai Oktaş ]
* Revamped build process to conform to debian standards and created
a proper debian package. Closes: #391666.
* Modified build process to support GHC 6.6.
+ The package can still be compiled using GHC 6.4.2, though because
of dependencies the "make deb" target works only with GHC 6.6+.
+ The script 'cabalize' is used to create an appropriate
'Pandoc.cabal' from 'Pandoc.cabal.in', depending on the GHC and
Cabal versions.
* Refactored template processing (fillTemplates.pl).
* Modified wrapper scripts to make them more robust and portable.
To avoid code duplication and ensure consistency, wrappers are
generated via a templating system from templates in src/wrappers.
+ Wrappers now accept multiple filenames, when appropriate.
+ Spaces and tabs allowed in filenames.
+ getopts shell builtin is used for portable option parsing.
+ Improved html2markdown's web grabber code, making it more robust,
configurable and verbose. Added '-e', '-g' options.
## pandoc 0.2 (2006-08-14)
* Fixed unicode/utf-8 translation
## pandoc 0.1 (2006-08-14)
* Initial creation of debian package
|