Shared: Changed stringify so it ignores notes.

Also documented this in README.
This commit is contained in:
John MacFarlane 2013-08-16 13:22:27 -07:00
parent 399c75da44
commit 89a7703260
2 changed files with 6 additions and 1 deletions

1
README
View file

@ -980,6 +980,7 @@ automatically assigned a unique identifier based on the header text.
To derive the identifier from the header text,
- Remove all formatting, links, etc.
- Remove all footnotes.
- Remove all punctuation, except underscores, hyphens, and periods.
- Replace all spaces and newlines with hyphens.
- Convert all alphabetic characters to lowercase.

View file

@ -384,8 +384,10 @@ consolidateInlines (x : xs) = x : consolidateInlines xs
consolidateInlines [] = []
-- | Convert list of inlines to a string with formatting removed.
-- Footnotes are skipped (since we don't want their contents in link
-- labels).
stringify :: [Inline] -> String
stringify = query go
stringify = query go . walk deNote
where go :: Inline -> [Char]
go Space = " "
go (Str x) = x
@ -393,6 +395,8 @@ stringify = query go
go (Math _ x) = x
go LineBreak = " "
go _ = ""
deNote (Note _) = Str ""
deNote x = x
-- | Change final list item from @Para@ to @Plain@ if the list contains
-- no other @Para@ blocks.