git.iko.soy/typeable/pandoc
on master help sign in
Markdown writer: Render yaml title block fields in alpha order.

This makes the output predictable; previously it varied across implementations.

commite7a68fc7e82028dbf66f25350b45875fbe634db6 authorJohn MacFarlane <fiddlosopher@gmail.com> dateMon 1 Jul 2013, 20:56 (13 years ago) parent7f83d88
2 files changed+4−3
src/Text/Pandoc/Writers/Markdown.hs+3−2 tests/writer.markdown+1−1
src/Text/Pandoc/Writers/Markdown.hs+3−2
@@ -38,7 +38,8 @@ import Text.Pandoc.Shared
3838import Text.Pandoc.Writers.Shared
3939import Text.Pandoc.Options
4040import Text.Pandoc.Parsing hiding (blankline, char, space)
41−import Data.List ( group, isPrefixOf, find, intersperse, transpose )
41+import Data.List ( group, isPrefixOf, find, intersperse, transpose, sortBy )
42+import Data.Ord ( comparing )
4243import Text.Pandoc.Pretty
4344import Control.Monad.State
4445import qualified Data.Set as Set
@@ -127,7 +128,7 @@ jsonToYaml (Object hashmap) =
127128 (k', Object _, x) -> (k' <> ":") $$ nest 2 x
128129 (_, String "", _) -> empty
129130 (k', _, x) -> k' <> ":" <> space <> x)
130− $ H.toList hashmap
131+ $ sortBy (comparing fst) $ H.toList hashmap
131132jsonToYaml (Array vec) =
132133 vcat $ map (\v -> hang 2 "- " (jsonToYaml v)) $ V.toList vec
133134jsonToYaml (String "") = empty
tests/writer.markdown+1−1
@@ -1,8 +1,8 @@
11---
2−date: 'July 17, 2006'
32author:
43- John MacFarlane
54- Anonymous
5+date: 'July 17, 2006'
66title: Pandoc Test Suite
77...
88