pandoc 3.1.12.1 → 3.1.12.2
raw patch · 64 files changed
+436/−77 lines, 64 filesdep +crypton-x509-systemdep +tlsdep ~commonmark-extensionsdep ~djotPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependencies added: crypton-x509-system, tls
Dependency ranges changed: commonmark-extensions, djot
API changes (from Hackage documentation)
Files
- MANUAL.txt +1/−1
- changelog.md +63/−0
- pandoc.cabal +5/−3
- src/Text/Pandoc/Class/IO.hs +27/−6
- src/Text/Pandoc/Readers/Docx.hs +2/−2
- src/Text/Pandoc/Readers/Docx/Parse.hs +4/−4
- src/Text/Pandoc/Readers/Markdown.hs +11/−10
- src/Text/Pandoc/Readers/Org/Blocks.hs +25/−10
- src/Text/Pandoc/SelfContained.hs +15/−1
- src/Text/Pandoc/Shared.hs +1/−1
- src/Text/Pandoc/Writers/Docx.hs +2/−1
- src/Text/Pandoc/Writers/EPUB.hs +2/−1
- src/Text/Pandoc/Writers/LaTeX.hs +5/−3
- src/Text/Pandoc/Writers/Org.hs +31/−9
- src/Text/Pandoc/Writers/Typst.hs +10/−5
- test/command/8948.md +2/−2
- test/command/9420.md +1/−1
- test/command/9467.md +1/−1
- test/command/9472.md +85/−0
- test/command/9475.md +102/−0
- test/command/9478.md +9/−0
- test/command/9481.md +7/−0
- test/command/9516.md +17/−0
- test/docx/golden/block_quotes.docx binary
- test/docx/golden/codeblock.docx binary
- test/docx/golden/comments.docx binary
- test/docx/golden/custom_style_no_reference.docx binary
- test/docx/golden/custom_style_preserve.docx binary
- test/docx/golden/custom_style_reference.docx binary
- test/docx/golden/definition_list.docx binary
- test/docx/golden/document-properties-short-desc.docx binary
- test/docx/golden/document-properties.docx binary
- test/docx/golden/headers.docx binary
- test/docx/golden/image.docx binary
- test/docx/golden/inline_code.docx binary
- test/docx/golden/inline_formatting.docx binary
- test/docx/golden/inline_images.docx binary
- test/docx/golden/link_in_notes.docx binary
- test/docx/golden/links.docx binary
- test/docx/golden/lists.docx binary
- test/docx/golden/lists_continuing.docx binary
- test/docx/golden/lists_div_bullets.docx binary
- test/docx/golden/lists_multiple_initial.docx binary
- test/docx/golden/lists_restarting.docx binary
- test/docx/golden/nested_anchors_in_header.docx binary
- test/docx/golden/notes.docx binary
- test/docx/golden/raw-blocks.docx binary
- test/docx/golden/raw-bookmarks.docx binary
- test/docx/golden/table_one_row.docx binary
- test/docx/golden/table_with_list_cell.docx binary
- test/docx/golden/tables-default-widths.docx binary
- test/docx/golden/tables.docx binary
- test/docx/golden/tables_separated_with_rawblock.docx binary
- test/docx/golden/track_changes_deletion.docx binary
- test/docx/golden/track_changes_insertion.docx binary
- test/docx/golden/track_changes_move.docx binary
- test/docx/golden/track_changes_scrubbed_metadata.docx binary
- test/docx/golden/unicode.docx binary
- test/docx/golden/verbatim_subsuper.docx binary
- test/docx/table_captions_no_field.native +2/−3
- test/docx/table_captions_with_field.native +4/−4
- test/lhs-test.html +1/−1
- test/lhs-test.html+lhs +1/−1
- test/writer.org +0/−7
@@ -1,7 +1,7 @@ --- title: Pandoc User's Guide author: John MacFarlane-date: February 17, 2024+date: February 29, 2024 --- # Synopsis
@@ -1,5 +1,68 @@ # Revision history for pandoc +## pandoc 3.1.12.2 (2024-02-29)++ * Docx reader:++ + Ensure that table captions are counted (#9518).+ + Detect caption by style name not id (#9518).+ The styleId can change depending on the localization.+ + Avoid emitting empty paragraph where caption was.++ * Markdown reader: fix regression in link parsing with wikilinks extensions+ (#9481). This fixes a regression introduced in 3.1.12.++ * Org reader/writer: support admonitions (#9475).++ * Org writer: omit extra blank line at end of quote block.++ * Typst writer: ensure that `-`, `+`, etc. are escaped at beginning of block+ (#9478). Our recent relaxing of escaping (#9386) caused problems for+ things like emphasized `-` characters that were rendered using+ `#strong[-]#`. This now gets rendered as `#strong[\-]`.++ * LaTeX writer: fix bug when a language is specified in two different ways+ (#9472). If you used `lang: de-DE` but then had a span or div with+ `lang=de`, the preamble would try to load `ngerman` twice, leading+ to an error. This fix ensures that a language is only loaded once.++ * Docx writer: Don't copy over `footnotePr` in `settings.xml`+ from reference.docx (#9522).++ * EPUB writer: omit EPUB2-specific meta tag on EPUB3 (#9493).+ This caused a validation failure in epubs with cover images.++ * Lua: avoid crashing when an error message is not valid UTF-8 (Albert+ Krewinkel).++ * Text.Pandoc.SelfContained:++ + Add `role="img"` to svgs.+ + Add `aria-label` to svg elements with `alt` text if present.+ Screen readers ignore `alt` attributes on svg elements but do+ pay attention to `aria-label` (#9525).++ * Text.Pandoc.Shared: Fix regression in section numbering in+ `makeSections` (#9516). Starting with pandoc 3.1.12, unnumbered+ sections incremented the section number.++ * Text.Pandoc.Class: fix `openUrl` TLS negotiation (#9483).+ With the release of TLS 2.0.0, the TLS library started requiring+ Extended Main Secret for the TLS handshake. This caused problems+ connecting to zotero's server and others that do not support TLS 1.3.+ This commit relaxes this requirement.++ * Depend on djot 0.1.1.0 (fixes rendering on multiline block attributes).++ * Use new releases of skylighting-format-blaze-html (#9520).+ Fixes auto-wrapping of long source lines in HTML print media.++ * Use new commonmark-extensions (fixes issue with the+ `rebase_relative_paths` extension when used with commonmark/gfm.++ * Makefile: improve epub-validation target (#9493).+ Use `--epub-cover-image` to catch issues that only arise with that.+ ## pandoc 3.1.12.1 (2024-02-17) * EPUB writer: omit EPUBv3-specific accessibility features on epub2
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: pandoc-version: 3.1.12.1+version: 3.1.12.2 build-type: Simple license: GPL-2.0-or-later license-file: COPYING.md@@ -478,7 +478,7 @@ case-insensitive >= 1.2 && < 1.3, citeproc >= 0.8.1 && < 0.9, commonmark >= 0.2.5.1 && < 0.3,- commonmark-extensions >= 0.2.5.2 && < 0.3,+ commonmark-extensions >= 0.2.5.3 && < 0.3, commonmark-pandoc >= 0.2.2.1 && < 0.3, containers >= 0.6.0.1 && < 0.8, crypton-connection >= 0.3.1 && < 0.4,@@ -528,7 +528,9 @@ xml >= 1.3.12 && < 1.4, typst >= 0.5.0.1 && < 0.5.1, vector >= 0.12 && < 0.14,- djot >= 0.1 && < 0.2+ djot >= 0.1.1.0 && < 0.2,+ tls >= 2.0.1 && < 2.1,+ crypton-x509-system >= 1.6.7 && < 1.7 if !os(windows) build-depends: unix >= 2.4 && < 2.9
@@ -42,7 +42,9 @@ import Data.Text (Text, pack, unpack) import Data.Time (TimeZone, UTCTime) import Data.Unique (hashUnique)-import Network.Connection (TLSSettings (TLSSettingsSimple))+import Network.Connection (TLSSettings(..))+import qualified Network.TLS as TLS+import qualified Network.TLS.Extra as TLS import Network.HTTP.Client (httpLbs, responseBody, responseHeaders, Request(port, host, requestHeaders), parseRequest, newManager)@@ -69,6 +71,7 @@ import Text.Pandoc.Walk (walk) import qualified Control.Exception as E import qualified Data.ByteString as B+import qualified Data.ByteString.Char8 as B8 import qualified Data.ByteString.Lazy as BL import qualified Data.CaseInsensitive as CI import qualified Data.Text as T@@ -80,6 +83,8 @@ import qualified System.FilePath.Glob import qualified System.Random import qualified Text.Pandoc.UTF8 as UTF8+import Data.Default (def)+import System.X509 (getSystemCertificateStore) #ifndef EMBED_DATA_FILES import qualified Paths_pandoc as Paths #endif@@ -137,16 +142,32 @@ disableCertificateValidation <- getsCommonState stNoCheckCertificate report $ Fetching u res <- liftIO $ E.try $ withSocketsDo $ do- let parseReq = parseRequest proxy <- tryIOError (getEnv "http_proxy") let addProxy' x = case proxy of Left _ -> return x- Right pr -> parseReq pr >>= \r ->+ Right pr -> parseRequest pr >>= \r -> return (addProxy (host r) (port r) x)- req <- parseReq (unpack u) >>= addProxy'+ req <- parseRequest (unpack u) >>= addProxy' let req' = req{requestHeaders = customHeaders ++ requestHeaders req}- let tlsSimple = TLSSettingsSimple disableCertificateValidation False False- let tlsManagerSettings = mkManagerSettings tlsSimple Nothing+ certificateStore <- getSystemCertificateStore+ let tlsSettings = TLSSettings $+ (TLS.defaultParamsClient (show $ host req')+ (B8.pack $ show $ port req'))+ { TLS.clientSupported = def{ TLS.supportedCiphers =+ TLS.ciphersuite_default+ , TLS.supportedExtendedMainSecret =+ TLS.AllowEMS }+ , TLS.clientShared = def+ { TLS.sharedCAStore = certificateStore+ , TLS.sharedValidationCache =+ if disableCertificateValidation+ then TLS.ValidationCache+ (\_ _ _ -> return TLS.ValidationCachePass)+ (\_ _ _ -> return ())+ else def+ }+ }+ let tlsManagerSettings = mkManagerSettings tlsSettings Nothing resp <- newManager tlsManagerSettings >>= httpLbs req' return (B.concat $ toChunks $ responseBody resp, UTF8.toText `fmap` lookup hContentType (responseHeaders resp))
@@ -762,9 +762,9 @@ in bodyPartToBlocks $ Paragraph pPr' parparts bodyPartToBlocks (TblCaption _ _) =- return $ para mempty -- collected separately+ return mempty bodyPartToBlocks (Tbl _ _ _ []) =- return $ para mempty+ return mempty bodyPartToBlocks (Tbl cap grid look parts) = do captions <- gets docxTableCaptions fullCaption <- case captions of
@@ -766,7 +766,8 @@ <$> asks envParStyles <*> asks envNumbering - let hasCaptionStyle = elem "Caption" (pStyleId <$> pStyle parstyle)+ let hasCaptionStyle =+ any ((== "caption") . pStyleName) (pStyle parstyle) let isTableNumberElt el@(Element name attribs _ _) = (qName name == "fldSimple" &&@@ -792,9 +793,8 @@ case pHeading parstyle of Nothing | Just (numId, lvl) <- pNumInfo parstyle -> do mkListItem parstyle numId lvl parparts- _ -> if isTable- then return $ TblCaption parstyle parparts- else return $ Paragraph parstyle parparts+ _ -> return $ (if hasCaptionStyle then TblCaption else Paragraph)+ parstyle parparts elemToBodyPart ns element | isElem ns "w" "tbl" element = do
@@ -1847,16 +1847,17 @@ titleAfter <- (True <$ guardEnabled Ext_wikilinks_title_after_pipe) <|> (False <$ guardEnabled Ext_wikilinks_title_before_pipe)- string "[[" *> notFollowedBy' (char '[')- raw <- many1TillChar anyChar (try $ string "]]")- let (title, url) = case T.break (== '|') raw of- (before, "") -> (before, before)- (before, after)- | titleAfter -> (T.drop 1 after, before)- | otherwise -> (before, T.drop 1 after)- guard $ T.all (`notElem` ['\n','\r','\f','\t']) url- return . pure . constructor nullAttr url "wikilink" $- B.text $ fromEntities title+ try $ do+ string "[[" *> notFollowedBy' (char '[')+ raw <- many1TillChar anyChar (try $ string "]]")+ let (title, url) = case T.break (== '|') raw of+ (before, "") -> (before, before)+ (before, after)+ | titleAfter -> (T.drop 1 after, before)+ | otherwise -> (before, T.drop 1 after)+ guard $ T.all (`notElem` ['\n','\r','\f','\t']) url+ return . pure . constructor nullAttr url "wikilink" $+ B.text $ fromEntities title link :: PandocMonad m => MarkdownParser m (F Inlines) link = try $ do
@@ -180,16 +180,21 @@ blkType <- blockHeaderStart ($ blkType) $ case T.toLower blkType of- "export" -> exportBlock- "comment" -> rawBlockLines (const mempty)- "html" -> rawBlockLines (return . B.rawBlock (lowercase blkType))- "latex" -> rawBlockLines (return . B.rawBlock (lowercase blkType))- "ascii" -> rawBlockLines (return . B.rawBlock (lowercase blkType))- "example" -> exampleBlock blockAttrs- "quote" -> parseBlockLines (fmap B.blockQuote)- "verse" -> verseBlock- "src" -> codeBlock blockAttrs- _ ->+ "export" -> exportBlock+ "comment" -> rawBlockLines (const mempty)+ "html" -> rawBlockLines (return . B.rawBlock (lowercase blkType))+ "latex" -> rawBlockLines (return . B.rawBlock (lowercase blkType))+ "ascii" -> rawBlockLines (return . B.rawBlock (lowercase blkType))+ "example" -> exampleBlock blockAttrs+ "quote" -> parseBlockLines (fmap B.blockQuote)+ "verse" -> verseBlock+ "src" -> codeBlock blockAttrs+ "note" -> admonitionBlock "note" blockAttrs+ "warning" -> admonitionBlock "warning" blockAttrs+ "tip" -> admonitionBlock "tip" blockAttrs+ "caution" -> admonitionBlock "caution" blockAttrs+ "important" -> admonitionBlock "important" blockAttrs+ _ -> -- case-sensitive checks case blkType of "abstract" -> metadataBlock@@ -202,6 +207,16 @@ lowercase :: Text -> Text lowercase = T.toLower++admonitionBlock :: PandocMonad m+ => Text -> BlockAttributes -> Text -> OrgParser m (F Blocks)+admonitionBlock blockType blockAttrs rawtext = do+ bls <- parseBlockLines id rawtext+ let id' = fromMaybe mempty $ blockAttrName blockAttrs+ pure $ fmap+ (B.divWith (id', [blockType], []) .+ (B.divWith ("", ["title"], []) (B.para (B.str (T.toTitle blockType))) <>))+ bls exampleBlock :: PandocMonad m => BlockAttributes -> Text -> OrgParser m (F Blocks) exampleBlock blockAttrs _label = do
@@ -146,7 +146,7 @@ | any (isSourceAttribute tagname) as = do as' <- mapM processAttribute as- let attrs = rights as'+ let attrs = addRole "img" $ addAriaLabel $ rights as' let svgContents = lefts as' rest <- convertTags ts case svgContents of@@ -218,6 +218,20 @@ else return $ Right (x,y) convertTags (t:ts) = (t:) <$> convertTags ts++addRole :: T.Text -> [(T.Text, T.Text)] -> [(T.Text, T.Text)]+addRole role attrs =+ case lookup "role" attrs of+ Nothing -> ("role", role) : attrs+ Just _ -> attrs++addAriaLabel :: [(T.Text, T.Text)] -> [(T.Text, T.Text)]+addAriaLabel attrs =+ case lookup "aria-label" attrs of+ Just _ -> attrs+ Nothing -> case lookup "alt" attrs of+ Just alt -> ("aria-label", alt) : attrs+ Nothing -> attrs -- we want to drop spaces, <?xml>, and comments before <svg> -- and anything after </svg>:
@@ -529,7 +529,7 @@ | otherwise = 0 let newnum = zipWith adjustNum [minLevel..level] (lastnum ++ repeat 0)- unless (null newnum) $ S.put newnum+ unless (null newnum || "unnumbered" `elem` classes) $ S.put newnum let (sectionContents, rest) = break (headerLtEq level) xs sectionContents' <- go sectionContents rest' <- go rest
@@ -643,7 +643,8 @@ , "alwaysMergeEmptyNamespace" , "updateFields" , "hdrShapeDefaults"- , "footnotePr"+ -- , "footnotePr" -- this can cause problems, see #9522+ -- , "endnotePr" , "compat" , "docVars" , "rsids"
@@ -1050,7 +1050,8 @@ rightsNodes = maybe [] (dcTag' "rights") $ epubRights md coverImageNodes = maybe [] (\img -> [unode "meta" ! [(metaprop,"cover"),- ("content",toId img)] $ ()])+ ("content",toId img)] $ ()+ | version == EPUB2]) $ epubCoverImage md modifiedNodes = [ unode "meta" ! [(metaprop, "dcterms:modified")] $ showDateTimeISO8601 currentTime | version == EPUB3 ]
@@ -175,7 +175,6 @@ titleMeta <- stringToLaTeX TextString $ stringify $ docTitle meta authorsMeta <- mapM (stringToLaTeX TextString . stringify) $ docAuthors meta -- we need a default here since lang is used in template conditionals- let otherLangs = [l | l <- docLangs, mblang /= Just l] let hasStringValue x = isJust (getField x metadata :: Maybe (Doc Text)) let geometryFromMargins = mconcat $ intersperse ("," :: Doc Text) $ mapMaybe (\(x,y) ->@@ -251,15 +250,18 @@ -> resetField "papersize" ("a" <> ds) _ -> id) metadata+ let babelLang = mblang >>= toBabel let context' = -- note: lang is used in some conditionals in the template, -- so we need to set it if we have any babel/polyglossia: maybe id (\l -> defField "lang" (literal $ renderLang l)) mblang $ maybe id (\l -> defField "babel-lang"- (literal l)) (mblang >>= toBabel)+ (literal l)) babelLang $ defField "babel-otherlangs"- (map literal $ mapMaybe toBabel otherLangs)+ (map literal+ (nubOrd . catMaybes . filter (/= babelLang)+ $ map toBabel docLangs)) $ defField "latex-dir-rtl" ((render Nothing <$> getField "dir" context) == Just ("rtl" :: Text)) context
@@ -206,7 +206,7 @@ blockToOrg (BlockQuote blocks) = do contents <- blockListToOrg blocks return $ blankline $$ "#+begin_quote" $$- contents $$ "#+end_quote" $$ blankline+ chomp contents $$ "#+end_quote" $$ blankline blockToOrg (Table _ blkCapt specs thead tbody tfoot) = do let (caption', _, _, headers, rows) = toLegacyTable blkCapt specs thead tbody tfoot caption'' <- inlineListToOrg caption'@@ -352,6 +352,7 @@ -- key-value pairs. | UnwrappedWithAnchor Text -- ^ Not mapped to other type, only -- identifier is retained (if any).+ deriving (Show) -- | Gives the most suitable method to render a list of blocks -- with attributes.@@ -368,23 +369,39 @@ = UnwrappedWithAnchor ident where isGreaterBlockClass :: Text -> Bool- isGreaterBlockClass = (`elem` ["center", "quote"]) . T.toLower+ isGreaterBlockClass t = case T.toLower t of+ "center" -> True+ "quote" -> True+ x -> isAdmonition x +isAdmonition :: Text -> Bool+isAdmonition "warning" = True+isAdmonition "important" = True+isAdmonition "tip" = True+isAdmonition "note" = True+isAdmonition "caution" = True+isAdmonition _ = False+ -- | Converts a Div to an org-mode element. divToOrg :: PandocMonad m => Attr -> [Block] -> Org m (Doc Text) divToOrg attr bs = do- contents <- blockListToOrg bs case divBlockType attr of- GreaterBlock blockName attr' ->+ GreaterBlock blockName attr' -> do -- Write as greater block. The ID, if present, is added via -- the #+name keyword; other classes and key-value pairs -- are kept as #+attr_html attributes.- return $ blankline $$ attrHtml attr'+ contents <- case bs of+ (Div ("",["title"],[]) _ : bs')+ | isAdmonition blockName -> blockListToOrg bs'+ _ -> blockListToOrg bs+ return $ blankline+ $$ attrHtml attr' $$ "#+begin_" <> literal blockName- $$ contents+ $$ chomp contents $$ "#+end_" <> literal blockName $$ blankline Drawer drawerName (_,_,kvs) -> do+ contents <- blockListToOrg bs -- Write as drawer. Only key-value pairs are retained. let keys = vcat $ map (\(k,v) -> ":" <> literal k <> ":"@@ -394,6 +411,7 @@ $$ contents $$ blankline $$ text ":END:" $$ blankline UnwrappedWithAnchor ident -> do+ contents <- blockListToOrg bs -- Unwrap the div. All attributes are discarded, except for -- the identifier, which is added as an anchor before the -- div contents.@@ -408,9 +426,13 @@ let name = if T.null ident then mempty else "#+name: " <> literal ident <> cr keyword = "#+attr_html"- classKv = ("class", T.unwords classes)- kvStrings = map (\(k,v) -> ":" <> k <> " " <> v) (classKv:kvs)- in name <> keyword <> ": " <> literal (T.unwords kvStrings) <> cr+ addClassKv = if null classes+ then id+ else (("class", T.unwords classes):)+ kvStrings = map (\(k,v) -> ":" <> k <> " " <> v) (addClassKv kvs)+ in name <> if null kvStrings+ then mempty+ else keyword <> ": " <> literal (T.unwords kvStrings) <> cr -- | Convert list of Pandoc block elements to Org. blockListToOrg :: PandocMonad m
@@ -218,6 +218,9 @@ return $ hang ind (marker <> space) contents inlinesToTypst :: PandocMonad m => [Inline] -> TW m (Doc Text)+inlinesToTypst ils@(Str t : _) -- need to escape - in '[-]' #9478+ | Just (c, _) <- T.uncons t+ , needsEscapeAtLineStart c = ("\\" <>) . hcat <$> mapM inlineToTypst ils inlinesToTypst ils = hcat <$> mapM inlineToTypst ils inlineToTypst :: PandocMonad m => Inline -> TW m (Doc Text)@@ -360,11 +363,13 @@ needsEscape '~' = True needsEscape ':' = context == TermContext needsEscape _ = False- needsEscapeAtLineStart '/' = True- needsEscapeAtLineStart '+' = True- needsEscapeAtLineStart '-' = True- needsEscapeAtLineStart '=' = True- needsEscapeAtLineStart _ = False++needsEscapeAtLineStart :: Char -> Bool+needsEscapeAtLineStart '/' = True+needsEscapeAtLineStart '+' = True+needsEscapeAtLineStart '-' = True+needsEscapeAtLineStart '=' = True+needsEscapeAtLineStart _ = False data LabelType = FreestandingLabel
@@ -3,7 +3,7 @@   ^D-<p><svg alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150"><use href="#svg_7868854ffb8f30209cd0" width="100%" height="100%" /></svg> <svg id="svg_7868854ffb8f30209cd0" alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150">+<p><svg role="img" aria-label="minimal" alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150"><use href="#svg_7868854ffb8f30209cd0" width="100%" height="100%" /></svg> <svg id="svg_7868854ffb8f30209cd0" role="img" aria-label="minimal" alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150"> <path d="M 0 35.5 L 6.5 22.5 L 16 37 L 23 24 L 34.8 43.7 L 42.5 30 L 50.3 47 L 59.7 27.7 L 69 47 L 85 17.7 L 98.3 39 L 113 9.7 L 127.7 42.3 L 136.3 23.7 L 147 44.3 L 158.3 20.3 L 170.3 40.3 L 177.7 25.7 L 189.7 43 L 199.7 21 L 207.7 35 L 219 11 L 233 37 L 240.3 23.7 L 251 43 L 263 18.3 L 272.7 33.3 L 283 10 L 295 32.3 L 301.3 23 L 311.7 37 L 323.7 7.7 L 339.3 39 L 346.3 25.7 L 356.3 42.3 L 369.7 15 L 376.3 25.7 L 384 9 L 393 28.3 L 400.3 19 L 411.7 38.3 L 421 21 L 434.3 43 L 445 25 L 453 36.3 L 464.3 18.3 L 476.2 40.3 L 480 33.5 L 480 215 L 0 215 L 0 35.5 Z" fill="#175720" /> </svg></p> ```@@ -13,7 +13,7 @@  {#foo} ^D-<p><svg alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150"><use href="#foo" width="100%" height="100%" /></svg> <svg id="foo" alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150">+<p><svg role="img" aria-label="minimal" alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150"><use href="#foo" width="100%" height="100%" /></svg> <svg id="foo" role="img" aria-label="minimal" alt="minimal" viewBox="-.333 -.333 480 150" style="background-color:#ffffff00" xml:space="preserve" width="480" height="150"> <path d="M 0 35.5 L 6.5 22.5 L 16 37 L 23 24 L 34.8 43.7 L 42.5 30 L 50.3 47 L 59.7 27.7 L 69 47 L 85 17.7 L 98.3 39 L 113 9.7 L 127.7 42.3 L 136.3 23.7 L 147 44.3 L 158.3 20.3 L 170.3 40.3 L 177.7 25.7 L 189.7 43 L 199.7 21 L 207.7 35 L 219 11 L 233 37 L 240.3 23.7 L 251 43 L 263 18.3 L 272.7 33.3 L 283 10 L 295 32.3 L 301.3 23 L 311.7 37 L 323.7 7.7 L 339.3 39 L 346.3 25.7 L 356.3 42.3 L 369.7 15 L 376.3 25.7 L 384 9 L 393 28.3 L 400.3 19 L 411.7 38.3 L 421 21 L 434.3 43 L 445 25 L 453 36.3 L 464.3 18.3 L 476.2 40.3 L 480 33.5 L 480 215 L 0 215 L 0 35.5 Z" fill="#175720" /> </svg></p> ```
@@ -2,7 +2,7 @@ % pandoc --embed-resources  ^D-<p><svg id="svg_e1815ef374a63cf552e4" width="504pt" height="360pt" viewBox="0 0 504 360">+<p><svg id="svg_e1815ef374a63cf552e4" role="img" width="504pt" height="360pt" viewBox="0 0 504 360"> <defs> <clipPath id="svg_e1815ef374a63cf552e4_clip1-c3ce354c"> <path />
@@ -2,7 +2,7 @@ % pandoc --embed-resources  ^D-<p><svg id="svg2" width="191.56267" height="151.71201" viewBox="0 0 191.56267 151.71201" xmlns:svg="http://www.w3.org/2000/svg">+<p><svg id="svg2" role="img" width="191.56267" height="151.71201" viewBox="0 0 191.56267 151.71201" xmlns:svg="http://www.w3.org/2000/svg"> <defs id="svg2_defs6"> <clipPath clipPathUnits="userSpaceOnUse" id="svg2_clipPath24"> <path d="M 56.69362,0 113.38724,113.38724 170.08086,0 Z" id="svg2_path22" />
@@ -0,0 +1,85 @@+```+% pandoc -t latex -s+---+lang: de-DE+---++More text in English. ['Zitat auf Deutsch.']{lang=de}++[Bonjour]{lang=fr} [café]{lang="fr-FR"}+^D+% Options for packages loaded elsewhere+\PassOptionsToPackage{unicode}{hyperref}+\PassOptionsToPackage{hyphens}{url}+%+\documentclass[+]{article}+\usepackage{amsmath,amssymb}+\usepackage{iftex}+\ifPDFTeX+ \usepackage[T1]{fontenc}+ \usepackage[utf8]{inputenc}+ \usepackage{textcomp} % provide euro and other symbols+\else % if luatex or xetex+ \usepackage{unicode-math} % this also loads fontspec+ \defaultfontfeatures{Scale=MatchLowercase}+ \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}+\fi+\usepackage{lmodern}+\ifPDFTeX\else+ % xetex/luatex font selection+\fi+% Use upquote if available, for straight quotes in verbatim environments+\IfFileExists{upquote.sty}{\usepackage{upquote}}{}+\IfFileExists{microtype.sty}{% use microtype if available+ \usepackage[]{microtype}+ \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts+}{}+\makeatletter+\@ifundefined{KOMAClassName}{% if non-KOMA class+ \IfFileExists{parskip.sty}{%+ \usepackage{parskip}+ }{% else+ \setlength{\parindent}{0pt}+ \setlength{\parskip}{6pt plus 2pt minus 1pt}}+}{% if KOMA class+ \KOMAoptions{parskip=half}}+\makeatother+\usepackage{xcolor}+\setlength{\emergencystretch}{3em} % prevent overfull lines+\providecommand{\tightlist}{%+ \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}+\setcounter{secnumdepth}{-\maxdimen} % remove section numbering+\ifLuaTeX+\usepackage[bidi=basic]{babel}+\else+\usepackage[bidi=default]{babel}+\fi+\babelprovide[main,import]{ngerman}+\babelprovide[import]{french}+% get rid of language-specific shorthands (see #6817):+\let\LanguageShortHands\languageshorthands+\def\languageshorthands#1{}+\ifLuaTeX+ \usepackage{selnolig} % disable illegal ligatures+\fi+\usepackage{bookmark}+\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available+\urlstyle{same}+\hypersetup{+ pdflang={de-DE},+ hidelinks,+ pdfcreator={LaTeX via pandoc}}++\author{}+\date{}++\begin{document}++More text in English. \foreignlanguage{ngerman}{`Zitat auf Deutsch.'}++\foreignlanguage{french}{Bonjour} \foreignlanguage{french}{café}++\end{document}++```
@@ -0,0 +1,102 @@+```+% pandoc -f org -t native+#+begin_note+Useful note.+#+end_note++#+begin_warning+Be careful!+#+end_warning++#+begin_tip+Try this...+#+end_tip++#+begin_caution+Caution+#+end_caution++#+name: foo+#+begin_important+Important+#+end_important+^D+[ Div+ ( "" , [ "note" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Note" ] ]+ , Para [ Str "Useful" , Space , Str "note." ]+ ]+, Div+ ( "" , [ "warning" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Warning" ] ]+ , Para [ Str "Be" , Space , Str "careful!" ]+ ]+, Div+ ( "" , [ "tip" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Tip" ] ]+ , Para [ Str "Try" , Space , Str "this\8230" ]+ ]+, Div+ ( "" , [ "caution" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Caution" ] ]+ , Para [ Str "Caution" ]+ ]+, Div+ ( "foo" , [ "important" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Important" ] ]+ , Para [ Str "Important" ]+ ]+]++```++```+% pandoc -f native -t org+[ Div+ ( "" , [ "note" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Note" ] ]+ , Para [ Str "Useful" , Space , Str "note." ]+ ]+, Div+ ( "" , [ "warning" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Warning" ] ]+ , Para [ Str "Be" , Space , Str "careful!" ]+ ]+, Div+ ( "" , [ "tip" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Tip" ] ]+ , Para [ Str "Try" , Space , Str "this\8230" ]+ ]+, Div+ ( "" , [ "caution" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Caution" ] ]+ , Para [ Str "Caution" ]+ ]+, Div+ ( "foo" , [ "important" ] , [] )+ [ Div ( "" , [ "title" ] , [] ) [ Para [ Str "Important" ] ]+ , Para [ Str "Important" ]+ ]+]+^D+#+begin_note+Useful note.+#+end_note++#+begin_warning+Be careful!+#+end_warning++#+begin_tip+Try this...+#+end_tip++#+begin_caution+Caution+#+end_caution++#+name: foo+#+begin_important+Important+#+end_important+```
@@ -0,0 +1,9 @@+```+% pandoc -t typst --wrap=preserve+**- a -+- b**+^D+#strong[\- a -+\- b]+```+
@@ -0,0 +1,7 @@+```+% pandoc -f markdown+wikilinks_title_after_pipe+[a](https://example.com)+^D+<p><a href="https://example.com">a</a></p>++```
@@ -0,0 +1,17 @@+```+% pandoc --number-sections+# One {-}++# Two++# Three {-}++# Four+^D+<h1 class="unnumbered" id="one">One</h1>+<h1 data-number="1" id="two"><span+class="header-section-number">1</span> Two</h1>+<h1 class="unnumbered" id="three">Three</h1>+<h1 data-number="2" id="four"><span+class="header-section-number">2</span> Four</h1>+```
binary file changed (9986 → 9961 bytes)
binary file changed (9801 → 9776 bytes)
binary file changed (10134 → 10109 bytes)
binary file changed (9901 → 9876 bytes)
binary file changed (10532 → 10507 bytes)
binary file changed (12544 → 12517 bytes)
binary file changed (9800 → 9775 bytes)
binary file changed (9808 → 9781 bytes)
binary file changed (10293 → 10268 bytes)
binary file changed (9940 → 9915 bytes)
binary file changed (26682 → 26657 bytes)
binary file changed (9740 → 9715 bytes)
binary file changed (9921 → 9896 bytes)
binary file changed (26680 → 26655 bytes)
binary file changed (9962 → 9937 bytes)
binary file changed (10133 → 10108 bytes)
binary file changed (10204 → 10179 bytes)
binary file changed (9996 → 9971 bytes)
binary file changed (9850 → 9825 bytes)
binary file changed (10081 → 10056 bytes)
binary file changed (9994 → 9969 bytes)
binary file changed (10133 → 10108 bytes)
binary file changed (9909 → 9884 bytes)
binary file changed (9841 → 9816 bytes)
binary file changed (9975 → 9950 bytes)
binary file changed (9824 → 9799 bytes)
binary file changed (10144 → 10119 bytes)
binary file changed (10169 → 10144 bytes)
binary file changed (10183 → 10158 bytes)
binary file changed (9822 → 9797 bytes)
binary file changed (9784 → 9759 bytes)
binary file changed (9767 → 9742 bytes)
binary file changed (9801 → 9776 bytes)
binary file changed (9910 → 9885 bytes)
binary file changed (9726 → 9701 bytes)
binary file changed (9773 → 9748 bytes)
@@ -1,7 +1,6 @@ [Para [Str "See",Space,Str "Table",Space,Str "5.1."]-,Para [Str "Table",Space,Str "5.1"]-,Table ("",[],[]) (Caption Nothing- [])+,Table ("",[],[])+ (Caption Nothing [ Para [ Str "Table" , Space , Str "5.1" ] ]) [(AlignDefault,ColWidth 0.7605739372523825) ,(AlignDefault,ColWidth 0.11971303137380876) ,(AlignDefault,ColWidth 0.11971303137380876)]
@@ -1,6 +1,6 @@ [Para [Str "See",Space,Str "Table",Space,Str "1."]-,Para [Str "Table",Space,Str "1"]-,Table ("",[],[]) (Caption Nothing [])+,Table ("",[],[])+ (Caption Nothing [ Para [ Str "Table" , Space , Str "1" ] ]) [(AlignDefault,ColWidth 0.7605739372523825) ,(AlignDefault,ColWidth 0.11971303137380876) ,(AlignDefault,ColWidth 0.11971303137380876)]@@ -31,7 +31,8 @@ (TableFoot ("",[],[]) []) ,Header 2 ("section", [], []) []-,Table ("",[],[]) (Caption Nothing [])+,Table ("",[],[])+ (Caption Nothing [Para [Str "Table", Space, Str "2"]]) [(AlignDefault,ColWidth 0.3332963620230701) ,(AlignDefault,ColWidth 0.3332963620230701) ,(AlignDefault,ColWidth 0.3334072759538598)]@@ -48,5 +49,4 @@ [])] (TableFoot ("",[],[]) [])-,Para [Str "Table",Space,Str "2"] ,Para [Str "See",Space,Str "Table",Space,Str "2."]]
@@ -179,7 +179,7 @@ } @media print { pre > code.sourceCode { white-space: pre-wrap; }- pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }+ pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; }
@@ -179,7 +179,7 @@ } @media print { pre > code.sourceCode { white-space: pre-wrap; }- pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }+ pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; }
@@ -75,7 +75,6 @@ #+begin_quote This is a block quote. It is pretty short.- #+end_quote #+begin_quote@@ -96,14 +95,11 @@ #+begin_quote nested- #+end_quote #+begin_quote nested- #+end_quote- #+end_quote This should not be a block quote: 2 > 1.@@ -345,7 +341,6 @@ #+begin_quote orange block quote- #+end_quote Multiple definitions, tight:@@ -753,7 +748,6 @@ #+begin_quote Blockquoted: [[http://example.com/]]- #+end_quote Auto-links should not occur here: =<http://example.com/>=@@ -787,7 +781,6 @@ #+begin_quote Notes can go in quotes.[fn:4]- #+end_quote 1. And in list items.[fn:5]