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

Reply via email to