HaXml is a suite of libraries and tools for manipulating XML documents in Haskell. It includes a parser, a pretty-printer, a validator, a combinator library for transforming documents, and converters for changing a Haskell datatype into an XML DTD, and for changing an XML DTD into a set of Haskell datatypes. There are also tools for a query language based on XQL.
Xcerpt is a declarative, rule-based query and transformation language for XML, inspired by logic programming. Instead of the path-based navigational approach taken by languages like XSLT and XQuery, Xcerpt uses pattern-based, positional queries, where a pattern is an "example" of the database containing variables for binding content. As in logic programming, rules may be chained to form more complex queries.
PXSL ("pixel") is a convenient shorthand for writing markup-heavy XML documents. It provides XML authors and programmers with a simple, concise syntax that they can use to create XML documents. For more advanced users, it offers customizable shortcuts and sophisticated refactoring tools like functional macros that can markedly reduce the size and complexity of markup-dense XML documents.
Parsec is a monadic parser combinator library for Haskell. It can parse context-sensitive, infinite look-ahead grammars but performs best on predictive (LL) grammars. The parser definition is in the same language as the rest of the program, so it benefits from type checking and existing development tools. Parsers are first-class values within the language and it is easy to extend the set of parsers with custom-made ones.
lhs2TeX is a literate programming tool. It is implemented as a preprocessor that generates LaTeX code from literate Haskell sources. It allows for and provides different styles for the formatting of code. You can easily select between representing operators with mathematical symbols or with ASCII approximations, as well as deciding whether or not to highlight keywords. The formatting of your own defined tokens may be adjusted. Preprocessor-style conditionals are supported, and Haskell can be used to generate parts of the document.
Pandoc is a Haskell library for converting from one markup format to another, and a command-line tool that uses this library. It can read markdown and (subsets of) reStructuredText, HTML, and LaTeX, and it can write markdown, reStructuredText, HTML, LaTeX, DocBook, OpenDocument XML, RTF, ODT, GNU Texinfo, MediaWiki markup, and S5 HTML slide shows. Pandoc extends standard markdown syntax with footnotes, embedded LaTeX, and more. A compatibility mode is provided for those who need a drop-in replacement for Markdown.pl. Included wrapper scripts make it easy to convert markdown to PDFs and Web pages to markdown documents. It has a modular design where the addition of a new input or output format requires only the addition of a reader or writer module.
xtee (cross-tee/expanded tee) is a program for building complex pipelines. It resembles the tee command, except that instead of copying stdin to stdout, it copies an input file to stdout and stdin to an output file. You can use xtee for building things like a bidirectional HTTP filter (using netcat and sed).