packages feed

pandoc 2.14.0.2 → 2.14.0.3

raw patch · 19 files changed

+258/−174 lines, 19 filesdep ~commonmarkdep ~skylightingdep ~skylighting-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: commonmark, skylighting, skylighting-core

API changes (from Hackage documentation)

Files

MANUAL.txt view
@@ -1,7 +1,7 @@ --- title: Pandoc User's Guide author: John MacFarlane-date: June 11, 2021+date: June 20, 2021 ---  # Synopsis@@ -6504,9 +6504,9 @@ 4. The HTML generated by pandoc is not guaranteed to be safe.    If `raw_html` is enabled for the Markdown input, users can    inject arbitrary HTML.  Even if `raw_html` is disabled,-   users can include dangerous content in attributes for-   headings, spans, and code blocks.  To be safe, you should-   run all the generated HTML through an HTML sanitizer.+   users can include dangerous content in URLs and attributes.+   To be safe, you should run all the generated HTML through+   an HTML sanitizer.  # Authors 
changelog.md view
@@ -1,5 +1,43 @@ # Revision history for pandoc +## 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`
data/templates/default.revealjs view
@@ -90,256 +90,198 @@       // Full list of configuration options available at:       // https://revealjs.com/config/       Reveal.initialize({-$if(center)$-        // Determines whether slide content should be vertically centered-        center: $center$,-$endif$      -$if(controls)$         // Display controls in the bottom right corner         controls: $controls$,-$endif$-$if(controlsTutorial)$+         // Help the user learn the controls by providing hints, for example by         // bouncing the down arrow when they first encounter a vertical slide         controlsTutorial: $controlsTutorial$,-$endif$-$if(controlsLayout)$+         // Determines where controls appear, "edges" or "bottom-right"         controlsLayout: '$controlsLayout$',-$endif$-$if(controlsBackArrows)$+         // Visibility rule for backwards navigation arrows; "faded", "hidden"         // or "visible"         controlsBackArrows: '$controlsBackArrows$',-$endif$-$if(progress)$+         // Display a presentation progress bar         progress: $progress$,-$endif$-$if(slideNumber)$+         // Display the page number of the current slide         slideNumber: $slideNumber$,-$endif$-$if(showSlideNumber)$+         // 'all', 'print', or 'speaker'         showSlideNumber: '$showSlideNumber$',-$endif$+         // Add the current slide number to the URL hash so that reloading the         // page/copying the URL will return you to the same slide-        hash: $if(hash)$$hash$$else$true$endif$,-$if(hashOneBasedIndex)$+        hash: $hash$,+         // Start with 1 for the hash rather than 0         hashOneBasedIndex: $hashOneBasedIndex$,-$endif$-$if(history)$++        // Flags if we should monitor the hash and change slides accordingly+        respondToHashChanges: $respondToHashChanges$,+         // Push each slide change to the browser history         history: $history$,-$endif$-$if(keyboard)$+         // Enable keyboard shortcuts for navigation         keyboard: $keyboard$,-$endif$-$if(overview)$+         // Enable the slide overview mode         overview: $overview$,-$endif$-$if(center)$++        // Disables the default reveal.js slide layout (scaling and centering)+        // so that you can use custom CSS layout+        disableLayout: false,+         // Vertical centering of slides         center: $center$,-$endif$-$if(touch)$+         // Enables touch navigation on devices with touch input         touch: $touch$,-$endif$-$if(loop)$+         // Loop the presentation         loop: $loop$,-$endif$-$if(rtl)$+         // Change the presentation direction to be RTL         rtl: $rtl$,-$endif$-$if(navigationMode)$+         // see https://revealjs.com/vertical-slides/#navigation-mode         navigationMode: '$navigationMode$',-$endif$-$if(shuffle)$+         // Randomizes the order of slides each time the presentation loads         shuffle: $shuffle$,-$endif$-$if(fragments)$+         // Turns fragments on and off globally         fragments: $fragments$,-$endif$-$if(fragmentInURL)$+         // Flags whether to include the current fragment in the URL,         // so that reloading brings you to the same fragment position         fragmentInURL: $fragmentInURL$,-$endif$-$if(embedded)$+         // Flags if the presentation is running in an embedded mode,         // i.e. contained within a limited portion of the screen         embedded: $embedded$,-$endif$-$if(help)$+         // Flags if we should show a help overlay when the questionmark         // key is pressed         help: $help$,-$endif$-$if(pause)$-       // Flags if it should be possible to pause the presentation (blackout)-       pause: $pause$,-$endif$-$if(showNotes)$++        // Flags if it should be possible to pause the presentation (blackout)+        pause: $pause$,+         // Flags if speaker notes should be visible to all viewers         showNotes: $showNotes$,-$endif$-$if(autoPlayMedia)$-        // Global override for autoplaying embedded media (video/audio/iframe)-        // - null: Media will only autoplay if data-autoplay is present-        // - true: All media will autoplay, regardless of individual setting-        // - false: No media will autoplay, regardless of individual setting++        // Global override for autoplaying embedded media (null/true/false)         autoPlayMedia: $autoPlayMedia$,-$endif$-$if(preloadIframes)$-        // Global override for preloading lazy-loaded iframes-        // - null: Iframes with data-src AND data-preload will be loaded when within-        //   the viewDistance, iframes with only data-src will be loaded when visible-        // - true: All iframes with data-src will be loaded when within the viewDistance-        // - false: All iframes with data-src will be loaded only when visible++        // Global override for preloading lazy-loaded iframes (null/true/false)         preloadIframes: $preloadIframes$,-$endif$-$if(autoSlide)$+         // Number of milliseconds between automatically proceeding to the         // next slide, disabled when set to 0, this value can be overwritten         // by using a data-autoslide attribute on your slides         autoSlide: $autoSlide$,-$endif$-$if(autoSlideStoppable)$+         // Stop auto-sliding after user input         autoSlideStoppable: $autoSlideStoppable$,-$endif$-$if(autoSlideMethod)$+         // Use this method for navigation when auto-sliding         autoSlideMethod: $autoSlideMethod$,-$endif$-$if(defaultTiming)$+         // Specify the average time in seconds that you think you will spend         // presenting each slide. This is used to show a pacing timer in the         // speaker view         defaultTiming: $defaultTiming$,-$endif$-$if(totalTime)$-        // Specify the total time in seconds that is available to-        // present.  If this is set to a nonzero value, the pacing-        // timer will work out the time available for each slide,-        // instead of using the defaultTiming value-        totalTime: $totalTime$,-$endif$-$if(minimumTimePerSlide)$-        // Specify the minimum amount of time you want to allot to-        // each slide, if using the totalTime calculation method.  If-        // the automated time allocation causes slide pacing to fall-        // below this threshold, then you will see an alert in the-        // speaker notes window-        minimumTimePerSlide: $minimumTimePerSlide$,-$endif$-$if(mouseWheel)$+         // Enable slide navigation via mouse wheel         mouseWheel: $mouseWheel$,-$endif$-$if(rollingLinks)$-        // Apply a 3D roll to links on hover-        rollingLinks: $rollingLinks$,-$endif$-$if(hideInactiveCursor)$++        // The display mode that will be used to show slides+        display: '$display$',+         // Hide cursor if inactive         hideInactiveCursor: $hideInactiveCursor$,-$endif$-$if(hideCursorTime)$+         // Time before the cursor is hidden (in ms)         hideCursorTime: $hideCursorTime$,-$endif$-$if(hideAddressBar)$-        // Hides the address bar on mobile devices-        hideAddressBar: $hideAddressBar$,-$endif$-$if(previewLinks)$+         // Opens links in an iframe preview overlay         previewLinks: $previewLinks$,-$endif$-$if(transition)$-        // Transition style-        transition: '$transition$', // none/fade/slide/convex/concave/zoom-$endif$-$if(transitionSpeed)$-        // Transition speed-        transitionSpeed: '$transitionSpeed$', // default/fast/slow-$endif$-$if(backgroundTransition)$++        // Transition style (none/fade/slide/convex/concave/zoom)+        transition: '$transition$',++        // Transition speed (default/fast/slow)+        transitionSpeed: '$transitionSpeed$',+         // Transition style for full page slide backgrounds-        backgroundTransition: '$backgroundTransition$', // none/fade/slide/convex/concave/zoom-$endif$-$if(viewDistance)$+        // (none/fade/slide/convex/concave/zoom)+        backgroundTransition: '$backgroundTransition$',+         // Number of slides away from the current that are visible         viewDistance: $viewDistance$,-$endif$-$if(mobileViewDistance)$+         // Number of slides away from the current that are visible on mobile         // devices. It is advisable to set this to a lower number than         // viewDistance in order to save resources.         mobileViewDistance: $mobileViewDistance$,-$endif$ $if(parallaxBackgroundImage)$+         // Parallax background image         parallaxBackgroundImage: '$parallaxBackgroundImage$', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'" $else$ $if(background-image)$+        // Parallax background image        parallaxBackgroundImage: '$background-image$', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'" $endif$ $endif$ $if(parallaxBackgroundSize)$+         // Parallax background size         parallaxBackgroundSize: '$parallaxBackgroundSize$', // CSS syntax, e.g. "2100px 900px" $endif$ $if(parallaxBackgroundHorizontal)$+         // Amount to move parallax background (horizontal and vertical) on slide change         // Number, e.g. 100         parallaxBackgroundHorizontal: $parallaxBackgroundHorizontal$, $endif$ $if(parallaxBackgroundVertical)$+         parallaxBackgroundVertical: $parallaxBackgroundVertical$, $endif$ $if(width)$+         // The "normal" size of the presentation, aspect ratio will be preserved         // when the presentation is scaled to fit different resolutions. Can be         // specified using percentage units.         width: $width$, $endif$ $if(height)$+         height: $height$, $endif$ $if(margin)$+         // Factor of the display size that should remain empty around the content         margin: $margin$, $endif$ $if(minScale)$+         // Bounds for smallest/largest possible scale to apply to content         minScale: $minScale$, $endif$ $if(maxScale)$+         maxScale: $maxScale$, $endif$-$if(zoomKey)$-        // Modifier key used to click-zoom to part of the slide-        zoomKey: '$zoomKey$',-$endif$-$if(display)$-        // The display mode that will be used to show slides-        display: '$display$',-$endif$ $if(mathjax)$+         math: {           mathjax: '$mathjaxurl$',           config: 'TeX-AMS_HTML-full',
man/pandoc.1 view
@@ -1,7 +1,7 @@ '\" t .\" Automatically generated by Pandoc 2.14.0.1 .\"-.TH "Pandoc User\[cq]s Guide" "" "June 11, 2021" "pandoc 2.14.0.2" ""+.TH "Pandoc User\[cq]s Guide" "" "June 20, 2021" "pandoc 2.14.0.3" "" .hy .SH NAME pandoc - general markup converter@@ -7708,7 +7708,7 @@ If \f[C]raw_html\f[R] is enabled for the Markdown input, users can inject arbitrary HTML. Even if \f[C]raw_html\f[R] is disabled, users can include dangerous-content in attributes for headings, spans, and code blocks.+content in URLs and attributes. To be safe, you should run all the generated HTML through an HTML sanitizer. .SH AUTHORS
pandoc.cabal view
@@ -1,6 +1,6 @@ cabal-version:   2.2 name:            pandoc-version:         2.14.0.2+version:         2.14.0.3 build-type:      Simple license:         GPL-2.0-or-later license-file:    COPYING.md@@ -451,7 +451,7 @@                  bytestring            >= 0.9      && < 0.12,                  case-insensitive      >= 1.2      && < 1.3,                  citeproc              >= 0.4.0.1  && < 0.4.1,-                 commonmark            >= 0.2      && < 0.3,+                 commonmark            >= 0.2.1    && < 0.3,                  commonmark-extensions >= 0.2.1.2  && < 0.3,                  commonmark-pandoc     >= 0.2.1    && < 0.3,                  connection            >= 0.3.1,@@ -484,8 +484,8 @@                  random                >= 1        && < 1.3,                  safe                  >= 0.3.18   && < 0.4,                  scientific            >= 0.3      && < 0.4,-                 skylighting           >= 0.10.5.1 && < 0.10.6,-                 skylighting-core      >= 0.10.5.1 && < 0.10.6,+                 skylighting           >= 0.10.5.2 && < 0.10.6,+                 skylighting-core      >= 0.10.5.2 && < 0.10.6,                  split                 >= 0.2      && < 0.3,                  syb                   >= 0.1      && < 0.8,                  tagsoup               >= 0.14.6   && < 0.15,
src/Text/Pandoc/MediaBag.hs view
@@ -26,13 +26,14 @@ import qualified Data.ByteString.Lazy as BL import Data.Data (Data) import qualified Data.Map as M-import Data.Maybe (fromMaybe)+import Data.Maybe (fromMaybe, isNothing) import Data.Typeable (Typeable) import System.FilePath import Text.Pandoc.MIME (MimeType, getMimeTypeDef, extensionFromMimeType) import Data.Text (Text) import qualified Data.Text as T import Data.Digest.Pure.SHA (sha1, showDigest)+import Network.URI (URI (..), parseURI)  data MediaItem =   MediaItem@@ -76,16 +77,20 @@                              , mediaContents = contents                              , mediaMimeType = mt }         fp' = canonicalize fp-        newpath = if isRelative fp && ".." `notElem` splitPath fp+        uri = parseURI fp+        newpath = if isRelative fp+                       && isNothing uri+                       && ".." `notElem` splitPath fp                      then T.unpack fp'                      else showDigest (sha1 contents) <> "." <> ext         fallback = case takeExtension fp of                         ".gz" -> getMimeTypeDef $ dropExtension fp                         _     -> getMimeTypeDef fp         mt = fromMaybe fallback mbMime-        ext = case takeExtension fp of-               '.':e  -> e-               _      -> maybe "" T.unpack $ extensionFromMimeType mt+        path = maybe fp uriPath uri+        ext = case takeExtension path of+                '.':e -> e+                _ -> maybe "" T.unpack $ extensionFromMimeType mt   -- | Lookup a media item in a 'MediaBag', returning mime type and contents.
src/Text/Pandoc/Parsing.hs view
@@ -188,7 +188,7 @@ import Control.Monad.Reader     ( asks, runReader, MonadReader(ask), Reader, ReaderT(ReaderT) ) import Data.Char (chr, isAlphaNum, isAscii, isAsciiUpper, isAsciiLower,-                  isPunctuation, isSpace, ord, toLower, toUpper)+                  isSpace, ord, toLower, toUpper) import Data.Default ( Default(..) ) import Data.Functor (($>)) import Data.List (intercalate, transpose)@@ -693,13 +693,12 @@        mailbox           = intercalate "." <$> (emailWord `sepBy1'` dot)        domain            = intercalate "." <$> (subdomain `sepBy1'` dot)        dot               = char '.'-       subdomain         = many1 $ alphaNum <|> innerPunct+       subdomain         = many1 $ alphaNum <|> innerPunct (=='-')        -- this excludes some valid email addresses, since an        -- email could contain e.g. '__', but gives better results        -- for our purposes, when combined with markdown parsing:-       innerPunct        = try (satisfy (\c -> isEmailPunct c || c == '@')-                                 <* notFollowedBy space-                                 <* notFollowedBy (satisfy isPunctuation))+       innerPunct f      = try (satisfy f+                                 <* notFollowedBy (satisfy (not . isAlphaNum)))        -- technically an email address could begin with a symbol,        -- but allowing this creates too many problems.        -- See e.g. https://github.com/jgm/pandoc/issues/2940
src/Text/Pandoc/Readers/Metadata.hs view
@@ -45,6 +45,9 @@        Right [] -> return . return $ mempty        Right [YAML.Doc (YAML.Scalar _ YAML.SNull)]                 -> return . return $ mempty+       -- the following is what we get from a comment:+       Right [YAML.Doc (YAML.Scalar _ (YAML.SUnknown _ ""))]+                -> return . return $ mempty        Right _  -> Prelude.fail "expected YAML object"        Left (yamlpos, err')                 -> do pos <- getPosition
src/Text/Pandoc/Readers/Txt2Tags.hs view
@@ -478,8 +478,28 @@ -- raw URLs in text are automatically linked url :: T2T Inlines url = try $ do-  (rawUrl, escapedUrl) <- try uri <|> emailAddress+  (rawUrl, escapedUrl) <- try uri <|> emailAddress'   return $ B.link rawUrl "" (B.str escapedUrl)++emailAddress' :: T2T (Text, Text)+emailAddress' = do+  (base, mailURI) <- emailAddress+  query <- option "" emailQuery+  return (base <> query, mailURI <> query)++emailQuery :: T2T Text+emailQuery = do+  char '?'+  parts <- kv `sepBy1` (char '&')+  return $ "?" <> T.intercalate "&" parts++kv :: T2T Text+kv = do+  k <- T.pack <$> many1 alphaNum+  char '='+  let vchar = alphaNum <|> try (oneOf "%._/~:,=$@&+-;*" <* lookAhead alphaNum)+  v <- T.pack <$> many1 vchar+  return (k <> "=" <> v)  uri :: T2T (Text, Text) uri = try $ do
src/Text/Pandoc/Writers/HTML.hs view
@@ -317,6 +317,10 @@                           | otherwise -> mempty                     Nothing -> mempty   let mCss :: Maybe [Text] = lookupContext "css" metadata+  let true :: Text+      true = "true"+  let false :: Text+      false = "false"   let context =   (if stHighlighting st                       then case writerHighlightStyle opts of                                 Just sty -> defField "highlighting-css"@@ -344,6 +348,52 @@                         PlainMath -> defField "displaymath-css" True                         WebTeX _  -> defField "displaymath-css" True                         _         -> id) .+                  (if slideVariant == RevealJsSlides+                      then -- set boolean options explicitly, since+                           -- template can't distinguish False/undefined+                         defField "controls" true .+                         defField "controlsTutorial" true .+                         defField "controlsLayout" ("bottom-right" :: Text) .+                         defField "controlsBackArrows" ("faded" :: Text) .+                         defField "progress" true .+                         defField "slideNumber" false .+                         defField "showSlideNumber" ("all" :: Text) .+                         defField "hashOneBasedIndex" false .+                         defField "hash" false .+                         defField "respondToHashChanges" true .+                         defField "history" false .+                         defField "keyboard" true .+                         defField "overview" true .+                         defField "disableLayout" false .+                         defField "center" true .+                         defField "touch" true .+                         defField "loop" false .+                         defField "rtl" false .+                         defField "navigationMode" ("default" :: Text) .+                         defField "shuffle" false .+                         defField "fragments" true .+                         defField "fragmentInURL" true .+                         defField "embedded" false .+                         defField "help" true .+                         defField "pause" true .+                         defField "showNotes" false .+                         defField "autoPlayMedia" ("null" :: Text) .+                         defField "preloadIframes" ("null" :: Text) .+                         defField "autoSlide" ("0" :: Text) .+                         defField "autoSlideStoppable" true .+                         defField "autoSlideMethod" ("null" :: Text) .+                         defField "defaultTiming" ("null" :: Text) .+                         defField "mouseWheel" false .+                         defField "display" ("block" :: Text) .+                         defField "hideInactiveCursor" true .+                         defField "hideCursorTime" ("5000" :: Text) .+                         defField "previewLinks" false .+                         defField "transition" ("slide" :: Text) .+                         defField "transitionSpeed" ("default" :: Text) .+                         defField "backgroundTransition" ("fade" :: Text) .+                         defField "viewDistance" ("3" :: Text) .+                         defField "mobileViewDistance" ("2" :: Text)+                      else id) .                   defField "document-css" (isNothing mCss && slideVariant == NoSlides) .                   defField "quotes" (stQuotes st) .                   -- for backwards compatibility we populate toc
src/Text/Pandoc/Writers/LaTeX.hs view
@@ -919,7 +919,7 @@ inlineToLaTeX LineBreak = do   emptyLine <- gets stEmptyLine   setEmptyLine True-  return $ (if emptyLine then "~" else "") <> "\\\\" <> cr+  return $ (if emptyLine then "\\strut " else "") <> "\\\\" <> cr inlineToLaTeX SoftBreak = do   wrapText <- gets (writerWrapText . stOptions)   case wrapText of
src/Text/Pandoc/Writers/LaTeX/Table.hs view
@@ -26,7 +26,8 @@   ( Doc, braces, cr, empty, hcat, hsep, isEmpty, literal, nest   , text, vcat, ($$) ) import Text.Pandoc.Shared (blocksToInlines, splitBy, tshow)-import Text.Pandoc.Walk (walk)+import Text.Pandoc.Walk (walk, query)+import Data.Monoid (Any(..)) import Text.Pandoc.Writers.LaTeX.Caption (getCaption) import Text.Pandoc.Writers.LaTeX.Notes (notesToLaTeX) import Text.Pandoc.Writers.LaTeX.Types@@ -261,8 +262,13 @@         Para{}  -> True         Plain{} -> True         _       -> False+  let hasLineBreak LineBreak = Any True+      hasLineBreak _ = Any False+  let hasLineBreaks = getAny $ query hasLineBreak blocks   result <--    if not hasWidths || (celltype /= HeaderCell && all isPlainOrPara blocks)+    if not hasWidths || (celltype /= HeaderCell+                           && all isPlainOrPara blocks+                           && not hasLineBreaks)        then          blockListToLaTeX $ walk fixLineBreaks $ walk displayMathToInline blocks        else do@@ -275,7 +281,9 @@          let halign = literal $ alignCommand align          return $ "\\begin{minipage}" <> valign <>                   braces "\\linewidth" <> halign <> cr <>-                  cellContents <> cr <>+                  cellContents <>+                  (if hasLineBreaks then "\\strut" else mempty)+                  <> cr <>                   "\\end{minipage}"   modify $ \st -> st{ stExternalNotes = externalNotes }   when (rowspan /= RowSpan 1) $
src/Text/Pandoc/Writers/Markdown.hs view
@@ -256,10 +256,10 @@               then hang (writerTabStop opts) (marker <> spacer) contents               else marker <> spacer <> contents --- | (Code) blocks with a single class can just use it standalone,--- no need to bother with curly braces.+-- | (Code) blocks with a single class and no attributes can just use it+-- standalone, no need to bother with curly braces. classOrAttrsToMarkdown :: Attr -> Doc Text-classOrAttrsToMarkdown ("",[cls],_) = literal cls+classOrAttrsToMarkdown ("",[cls],[]) = literal cls classOrAttrsToMarkdown attrs = attrsToMarkdown attrs  -- | Ordered list start parser for use in Para below.
stack.yaml view
@@ -7,18 +7,11 @@ packages: - '.' extra-deps:-- haddock-library-1.10.0-- hslua-1.3.0-- hslua-module-path-0.1.0-- jira-wiki-markup-1.4.0-- random-1.2.0-- unicode-collation-0.1.3-- citeproc-0.4.0.1-- commonmark-0.2-- commonmark-extensions-0.2.1.2-- commonmark-pandoc-0.2.1+- commonmark-0.2.1+- skylighting-core-0.10.5.2+- skylighting-0.10.5.2 ghc-options:    "$locals": -fhide-source-paths -Wno-missing-home-modules-resolver: lts-17.12+resolver: lts-18.0 nix:   packages: [zlib]
test/command/2874.md view
@@ -3,12 +3,12 @@ <a></a> <br/> ^D-{}~\\+{}\strut \\ ```  ``` % pandoc -f html -t latex <a name="foo"></a><br/> ^D-\protect\hypertarget{foo}{}{}~\\+\protect\hypertarget{foo}{}{}\strut \\ ```
test/command/7272.md view
@@ -18,7 +18,10 @@   >{\raggedright\arraybackslash}p{(\columnwidth - 0\tabcolsep) * \real{1.00}}@{}} \toprule \endhead-{\vtop{\hbox{\strut  text}\hbox{\strut text2 }}} \\+\begin{minipage}[t]{\linewidth}\raggedright+{ text\\+text2 }\strut+\end{minipage} \\ \bottomrule \end{longtable} ```
+ test/command/7397.md view
@@ -0,0 +1,14 @@+````+% pandoc -t markdown+~~~~ { .haskell startFrom="100"}+qsort []     = []+qsort (x:xs) = qsort (filter (< x) xs) ++ [x] +++               qsort (filter (>= x) xs)+~~~~+^D+``` {.haskell startFrom="100"}+qsort []     = []+qsort (x:xs) = qsort (filter (< x) xs) ++ [x] +++               qsort (filter (>= x) xs)+```+````
+ test/command/7400.md view
@@ -0,0 +1,9 @@+```+% pandoc -t native -s+---+# Comment only+...+^D+Pandoc (Meta {unMeta = fromList []})+[]+```
test/tables/nordics.latex view
@@ -11,10 +11,10 @@ Capital \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Population\\-(in 2018)+(in 2018)\strut \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Area\\-(in km\textsuperscript{2})+(in km\textsuperscript{2})\strut \end{minipage} \\ \midrule \endfirsthead@@ -25,10 +25,10 @@ Capital \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Population\\-(in 2018)+(in 2018)\strut \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Area\\-(in km\textsuperscript{2})+(in km\textsuperscript{2})\strut \end{minipage} \\ \midrule \endhead