@@ -136,6 +136,13 @@ commonPrefix (x:xs) (y:ys)
136136 | x == y = x : commonPrefix xs ys
137137 | otherwise = []
138138
139+atStart :: PandocMonad m => MuseParser m a -> MuseParser m a
140+atStart p = do
141+ pos <- getPosition
142+ st <- getState
143+ guard $ stateLastStrPos st /= Just pos
144+ p
145+
139146--
140147-- directive parsers
141148--
@@ -668,7 +675,7 @@ enclosedInlines :: (PandocMonad m, Show a, Show b)
668675 -> MuseParser m b
669676 -> MuseParser m (F Inlines)
670677enclosedInlines start end = try $
671− trimInlinesF . mconcat <$> (enclosed start end inline <* notFollowedBy (satisfy isLetter))
678+ trimInlinesF . mconcat <$> (enclosed (atStart start) end inline <* notFollowedBy (satisfy isLetter))
672679
673680inlineTag :: PandocMonad m
674681 => (Inlines -> Inlines)
@@ -745,7 +752,10 @@ inlineLiteralTag = do
745752 rawInline (attrs, content) = B.rawInline (format attrs) content
746753
747754str :: PandocMonad m => MuseParser m (F Inlines)
748−str = return . B.str <$> many1 alphaNum
755+str = do
756+ result <- many1 alphaNum
757+ updateLastStrPos
758+ return $ return $ B.str result
749759
750760symbol :: PandocMonad m => MuseParser m (F Inlines)
751761symbol = return . B.str <$> count 1 nonspaceChar