@@ -18,6 +18,7 @@ import Data.Char (isSpace)
1818import Data.Maybe (fromMaybe)
1919import Data.List (stripPrefix)
2020import Data.Monoid (mempty)
21+import Data.Sequence (viewr, ViewR(..))
2122}
2223
2324%expect 0
@@ -74,7 +75,7 @@ defpara :: { (Inlines, [Blocks]) }
7475 : '[' seq ']' seq { ($2, [plain $4]) }
7576
7677para :: { Blocks }
77− : seq { para $1 }
78+ : seq { para' $1 }
7879 | codepara { codeBlock $1 }
7980 | property { $1 }
8081 | examples { $1 }
@@ -112,7 +113,7 @@ seq1 :: { Inlines }
112113 | elem1 { $1 }
113114
114115elem1 :: { Inlines }
115− : STRING { str $1 }
116+ : STRING { text $1 }
116117 | '/../' { emph (str $1) }
117118 | URL { makeHyperlink $1 }
118119 | PIC { image $1 $1 mempty }
@@ -128,7 +129,13 @@ strings :: { String }
128129happyError :: [LToken] -> Maybe a
129130happyError toks = Nothing
130131
131−monospace :: Inlines -> Inlines
132+para' :: Inlines -> Blocks
133+para' (Many ils) =
134+ case viewr ils of
135+ ils' :> Space -> para $ Many ils'
136+ _ -> para $ Many ils
137+
138+monospace :: Inlines -> Inlines
132139monospace = everywhere (mkT go)
133140 where
134141 go (Str s) = Code nullAttr s