Safe Haskell | Safe |
---|---|
Language | Haskell98 |
A parser for gtk-doc formatted documentation, see https://developer.gnome.org/gtk-doc-manual/ for the spec.
Documentation
parseGtkDoc :: Text -> GtkDoc Source #
Parse the given gtk-doc formatted documentation.
Examples
>>>
parseGtkDoc ""
GtkDoc []
>>>
parseGtkDoc "func()"
GtkDoc [SymbolRef (FunctionRef "func")]
>>>
parseGtkDoc "literal"
GtkDoc [Literal "literal"]
>>>
parseGtkDoc "This is a long literal"
GtkDoc [Literal "This is a long literal"]
>>>
parseGtkDoc "Call foo() for free cookies"
GtkDoc [Literal "Call ",SymbolRef (FunctionRef "foo"),Literal " for free cookies"]
>>>
parseGtkDoc "The signal ##%#GtkButton::activate is related to gtk_button_activate()."
GtkDoc [Literal "The signal ##%",SymbolRef (SignalRef "GtkButton" "activate"),Literal " is related to ",SymbolRef (FunctionRef "gtk_button_activate"),Literal "."]
>>>
parseGtkDoc "# A section\n\n## and a subsection ##\n"
GtkDoc [SectionHeader 1 (GtkDoc [Literal "A section"]),Literal "\n",SectionHeader 2 (GtkDoc [Literal "and a subsection "])]
>>>
parseGtkDoc "Compact list:\n- First item\n- Second item"
GtkDoc [Literal "Compact list:\n",List [ListItem (GtkDoc [Literal "First item"]) [],ListItem (GtkDoc [Literal "Second item"]) []]]
>>>
parseGtkDoc "Spaced list:\n\n- First item\n\n- Second item"
GtkDoc [Literal "Spaced list:\n",List [ListItem (GtkDoc [Literal "First item"]) [],ListItem (GtkDoc [Literal "Second item"]) []]]
>>>
parseGtkDoc "List with urls:\n- [test](http://test)\n- ![](image.png)"
GtkDoc [Literal "List with urls:\n",List [ListItem (GtkDoc [ExternalLink (Link {linkName = "test", linkAddress = "http://test"})]) [],ListItem (GtkDoc [Image (Link {linkName = "", linkAddress = "image.png"})]) []]]
A parsed representation of gtk-doc formatted documentation.
A parsed gtk-doc token.
The language for an embedded code block.
A link to a resource, either offline or a section of the documentation.
Link | |
|
An item in a list, given by a list of lines (not including ending newlines). The list is always non-empty, so we represent it by the first line and then a possibly empty list with the rest of the lines.