Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pandoc for openSUSE:Factory checked in at 2021-07-05 22:22:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pandoc (Old) and /work/SRC/openSUSE:Factory/.pandoc.new.2625 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pandoc" Mon Jul 5 22:22:44 2021 rev:60 rq:903733 version:2.14.0.3 Changes: -------- --- /work/SRC/openSUSE:Factory/pandoc/pandoc.changes 2021-06-21 20:36:15.938668088 +0200 +++ /work/SRC/openSUSE:Factory/.pandoc.new.2625/pandoc.changes 2021-07-05 22:23:01.241703043 +0200 @@ -1,0 +2,42 @@ +Wed Jun 23 08:46:58 UTC 2021 - [email protected] + +- Update pandoc to version 2.14.0.3. + ## 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 + +------------------------------------------------------------------- Old: ---- pandoc-2.14.0.2.tar.gz New: ---- pandoc-2.14.0.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pandoc.spec ++++++ --- /var/tmp/diff_new_pack.LmS3TJ/_old 2021-07-05 22:23:02.253695212 +0200 +++ /var/tmp/diff_new_pack.LmS3TJ/_new 2021-07-05 22:23:02.257695181 +0200 @@ -19,7 +19,7 @@ %global pkg_name pandoc %bcond_with tests Name: %{pkg_name} -Version: 2.14.0.2 +Version: 2.14.0.3 Release: 0 Summary: Conversion between markup formats License: GPL-2.0-or-later ++++++ pandoc-2.14.0.2.tar.gz -> pandoc-2.14.0.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/MANUAL.txt new/pandoc-2.14.0.3/MANUAL.txt --- old/pandoc-2.14.0.2/MANUAL.txt 2021-06-11 07:47:40.000000000 +0200 +++ new/pandoc-2.14.0.3/MANUAL.txt 2021-06-22 06:58:25.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/changelog.md new/pandoc-2.14.0.3/changelog.md --- old/pandoc-2.14.0.2/changelog.md 2021-06-13 18:52:56.000000000 +0200 +++ new/pandoc-2.14.0.3/changelog.md 2021-06-22 20:23:24.000000000 +0200 @@ -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` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/data/templates/default.revealjs new/pandoc-2.14.0.3/data/templates/default.revealjs --- old/pandoc-2.14.0.2/data/templates/default.revealjs 2021-05-25 23:23:16.000000000 +0200 +++ new/pandoc-2.14.0.3/data/templates/default.revealjs 2021-06-22 20:23:24.000000000 +0200 @@ -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', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/man/pandoc.1 new/pandoc-2.14.0.3/man/pandoc.1 --- old/pandoc-2.14.0.2/man/pandoc.1 2021-06-11 07:47:44.000000000 +0200 +++ new/pandoc-2.14.0.3/man/pandoc.1 2021-06-22 06:58:25.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/pandoc.cabal new/pandoc-2.14.0.3/pandoc.cabal --- old/pandoc-2.14.0.2/pandoc.cabal 2021-06-11 07:47:27.000000000 +0200 +++ new/pandoc-2.14.0.3/pandoc.cabal 2021-06-22 06:58:25.000000000 +0200 @@ -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, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/MediaBag.hs new/pandoc-2.14.0.3/src/Text/Pandoc/MediaBag.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/MediaBag.hs 2021-06-11 01:26:17.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/MediaBag.hs 2021-06-18 22:15:43.000000000 +0200 @@ -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. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/Parsing.hs new/pandoc-2.14.0.3/src/Text/Pandoc/Parsing.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/Parsing.hs 2021-05-21 18:21:24.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/Parsing.hs 2021-06-22 20:23:24.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/Readers/Metadata.hs new/pandoc-2.14.0.3/src/Text/Pandoc/Readers/Metadata.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/Readers/Metadata.hs 2021-05-21 18:21:24.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/Readers/Metadata.hs 2021-06-22 20:23:24.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/Readers/Txt2Tags.hs new/pandoc-2.14.0.3/src/Text/Pandoc/Readers/Txt2Tags.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/Readers/Txt2Tags.hs 2021-05-21 18:21:24.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/Readers/Txt2Tags.hs 2021-06-22 20:23:24.000000000 +0200 @@ -478,9 +478,29 @@ -- 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 address <- t2tURI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/HTML.hs new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/HTML.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/HTML.hs 2021-06-02 05:56:25.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/HTML.hs 2021-06-22 20:23:24.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/LaTeX/Table.hs new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/LaTeX/Table.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/LaTeX/Table.hs 2021-06-05 22:10:49.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/LaTeX/Table.hs 2021-06-22 20:23:24.000000000 +0200 @@ -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) $ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/LaTeX.hs new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/LaTeX.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/LaTeX.hs 2021-06-05 17:59:27.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/LaTeX.hs 2021-06-22 20:23:24.000000000 +0200 @@ -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 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/Markdown.hs new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/Markdown.hs --- old/pandoc-2.14.0.2/src/Text/Pandoc/Writers/Markdown.hs 2021-06-13 07:21:24.000000000 +0200 +++ new/pandoc-2.14.0.3/src/Text/Pandoc/Writers/Markdown.hs 2021-06-22 20:23:24.000000000 +0200 @@ -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. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/stack.yaml new/pandoc-2.14.0.3/stack.yaml --- old/pandoc-2.14.0.2/stack.yaml 2021-06-05 18:04:30.000000000 +0200 +++ new/pandoc-2.14.0.3/stack.yaml 2021-06-22 06:58:25.000000000 +0200 @@ -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] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/test/command/2874.md new/pandoc-2.14.0.3/test/command/2874.md --- old/pandoc-2.14.0.2/test/command/2874.md 2020-10-07 06:56:11.000000000 +0200 +++ new/pandoc-2.14.0.3/test/command/2874.md 2021-06-22 20:23:24.000000000 +0200 @@ -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 \\ ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/test/command/7272.md new/pandoc-2.14.0.3/test/command/7272.md --- old/pandoc-2.14.0.2/test/command/7272.md 2021-06-04 06:01:45.000000000 +0200 +++ new/pandoc-2.14.0.3/test/command/7272.md 2021-06-22 20:23:24.000000000 +0200 @@ -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} ``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/test/command/7397.md new/pandoc-2.14.0.3/test/command/7397.md --- old/pandoc-2.14.0.2/test/command/7397.md 1970-01-01 01:00:00.000000000 +0100 +++ new/pandoc-2.14.0.3/test/command/7397.md 2021-06-22 20:23:24.000000000 +0200 @@ -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) +``` +```` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/test/command/7400.md new/pandoc-2.14.0.3/test/command/7400.md --- old/pandoc-2.14.0.2/test/command/7400.md 1970-01-01 01:00:00.000000000 +0100 +++ new/pandoc-2.14.0.3/test/command/7400.md 2021-06-22 20:23:24.000000000 +0200 @@ -0,0 +1,9 @@ +``` +% pandoc -t native -s +--- +# Comment only +... +^D +Pandoc (Meta {unMeta = fromList []}) +[] +``` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pandoc-2.14.0.2/test/tables/nordics.latex new/pandoc-2.14.0.3/test/tables/nordics.latex --- old/pandoc-2.14.0.2/test/tables/nordics.latex 2021-06-05 22:04:25.000000000 +0200 +++ new/pandoc-2.14.0.3/test/tables/nordics.latex 2021-06-22 20:23:24.000000000 +0200 @@ -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
