From 97a3cb2e8612281f68162d9a86e7e9f3c4d88749 Mon Sep 17 00:00:00 2001
From: John MacFarlane <fiddlosopher@gmail.com>
Date: Fri, 11 Jan 2013 10:10:50 -0800
Subject: [PATCH] Options:  Added githubMarkdownExtensions.

Added github_markdown as input/output option.
---
 README                     |  4 +++-
 src/Text/Pandoc.hs         |  2 ++
 src/Text/Pandoc/Options.hs | 15 +++++++++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/README b/README
index f1d189d37..2207f6c26 100644
--- a/README
+++ b/README
@@ -141,6 +141,7 @@ General options
     `json` (JSON version of native AST), `markdown` (pandoc's
     extended markdown), `markdown_strict` (original unextended markdown),
     `markdown_phpextra` (PHP Markdown Extra extended markdown),
+    `markdown_github` (github extended markdown),
     `textile` (Textile), `rst` (reStructuredText), `html` (HTML),
     `docbook` (DocBook XML), `mediawiki` (MediaWiki markup),
     or `latex` (LaTeX). If `+lhs` is appended to `markdown`, `rst`,
@@ -160,7 +161,8 @@ General options
     `json` (JSON version of native AST), `plain` (plain text),
     `markdown` (pandoc's extended markdown), `markdown_strict` (original
     unextended markdown), `markdown_phpextra` (PHP Markdown extra
-    extended markdown), `rst` (reStructuredText), `html` (XHTML
+    extended markdown), `markdown_github` (github extended markdown),
+    `rst` (reStructuredText), `html` (XHTML
     1), `html5` (HTML 5), `latex` (LaTeX), `beamer` (LaTeX beamer slide show),
     `context` (ConTeXt), `man` (groff man), `mediawiki` (MediaWiki markup),
     `textile` (Textile), `org` (Emacs Org-Mode), `texinfo` (GNU Texinfo),
diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs
index ce1da05a1..66401c674 100644
--- a/src/Text/Pandoc.hs
+++ b/src/Text/Pandoc.hs
@@ -236,6 +236,7 @@ writers = [
   ,("markdown"     , PureStringWriter writeMarkdown)
   ,("markdown_strict" , PureStringWriter writeMarkdown)
   ,("markdown_phpextra" , PureStringWriter writeMarkdown)
+  ,("markdown_github" , PureStringWriter writeMarkdown)
   ,("plain"        , PureStringWriter writePlain)
   ,("rst"          , PureStringWriter writeRST)
   ,("mediawiki"    , PureStringWriter writeMediaWiki)
@@ -248,6 +249,7 @@ writers = [
 getDefaultExtensions :: String -> Set Extension
 getDefaultExtensions "markdown_strict" = strictExtensions
 getDefaultExtensions "markdown_phpextra" = phpMarkdownExtraExtensions
+getDefaultExtensions "markdown_github" = githubMarkdownExtensions
 getDefaultExtensions _        = pandocExtensions
 
 -- | Retrieve reader based on formatSpec (format+extensions).
diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs
index 2382bb3e8..35d1a2173 100644
--- a/src/Text/Pandoc/Options.hs
+++ b/src/Text/Pandoc/Options.hs
@@ -32,6 +32,7 @@ module Text.Pandoc.Options ( Extension(..)
                            , pandocExtensions
                            , strictExtensions
                            , phpMarkdownExtraExtensions
+                           , githubMarkdownExtensions
                            , ReaderOptions(..)
                            , HTMLMathMethod (..)
                            , CiteMethod (..)
@@ -148,6 +149,20 @@ phpMarkdownExtraExtensions = Set.fromList
   , Ext_abbreviations
   ]
 
+githubMarkdownExtensions :: Set Extension
+githubMarkdownExtensions = Set.fromList
+  [ Ext_pipe_tables
+  , Ext_raw_html
+  , Ext_tex_math_single_backslash
+  , Ext_fenced_code_blocks
+  , Ext_fenced_code_attributes
+  , Ext_backtick_code_blocks
+  , Ext_autolink_urls
+  , Ext_intraword_underscores
+  , Ext_strikeout
+  , Ext_hard_line_breaks
+  ]
+
 strictExtensions :: Set Extension
 strictExtensions = Set.fromList
   [ Ext_raw_html ]