diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,13 @@
 # Changelog for commonmark-cli
 
+## 0.2.1
+
+  * Add `alerts` as extension (#132).
+
+  * Fix bug in change to JSON handling.
+
+  * Allow `--json` and `--sourcepos` to be used together.
+
 ## 0.2
 
   * Support `rebase_relative_paths` extension.
diff --git a/commonmark-cli.cabal b/commonmark-cli.cabal
--- a/commonmark-cli.cabal
+++ b/commonmark-cli.cabal
@@ -1,5 +1,5 @@
 name:           commonmark-cli
-version:        0.2
+version:        0.2.1
 synopsis:       Command-line commonmark converter and highlighter.
 description:    This package provides a command-line tool, `commonmark`,
                 for converting and syntax-highlighting commonmark documents.
@@ -31,9 +31,9 @@
     ghc-options:      -Wunused-packages
   ghc-options: -threaded -rtsopts
   build-depends: base >= 4.9 && <5
-               , commonmark >= 0.2 && < 0.3
-               , commonmark-extensions >= 0.2.1 && < 0.3
-               , commonmark-pandoc >= 0.2.1 && < 0.3
+               , commonmark >= 0.2.4.1 && < 0.3
+               , commonmark-extensions >= 0.2.5 && < 0.3
+               , commonmark-pandoc >= 0.2.2 && < 0.3
                , pandoc-types
                , aeson
                , bytestring
diff --git a/src/convert.hs b/src/convert.hs
--- a/src/convert.hs
+++ b/src/convert.hs
@@ -1,4 +1,3 @@
-{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE BangPatterns        #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -26,9 +25,6 @@
 import           System.Console.GetOpt
 import           Paths_commonmark_cli (version)
 import           Data.Version (showVersion)
-#if !MIN_VERSION_base(4,11,0)
-import           Data.Monoid
-#endif
 import           Control.Exception          (AsyncException, catch, throwIO)
 import           GHC.Stack                  (currentCallStack)
 import           System.Console.ANSI
@@ -87,25 +83,33 @@
               runIdentity (parseCommonmarkWith spec toks) of
            Left e -> errExit e
            Right (_ :: Html (), sm) -> highlightWith sm toks
-  else
-    if SourcePos `elem` opts then do
-       spec <- specFromExtensionNames [x | Extension x <- opts]
-       case runIdentity (parseCommonmarkWith spec toks) of
-            Left e -> errExit e
-            Right (r :: Html SourceRange)
-                   -> TLIO.putStr . renderHtml $ r
-    else
-      if PandocJSON `elem` opts then do
+  else do
+    let sourcepos = SourcePos `elem` opts
+    let json = PandocJSON `elem` opts
+    case (json, sourcepos) of
+      (True, True) -> do
         spec <- specFromExtensionNames [x | Extension x <- opts]
         case runIdentity (parseCommonmarkWith spec toks) of
              Left e -> errExit e
+             Right (r :: Cm SourceRange B.Blocks) -> do
+               BL.putStr . encode $ B.doc $ unCm r
+               BL.putStr "\n"
+      (True, False) -> do
+        spec <- specFromExtensionNames [x | Extension x <- opts]
+        case runIdentity (parseCommonmarkWith spec toks) of
+             Left e -> errExit e
              Right (r :: Cm () B.Blocks) -> do
                BL.putStr . encode $ B.doc $ unCm r
                BL.putStr "\n"
-      else do
+      (False, True) -> do
         spec <- specFromExtensionNames [x | Extension x <- opts]
         case runIdentity (parseCommonmarkWith spec toks) of
              Left e -> errExit e
+             Right (r :: Html SourceRange) -> TLIO.putStr . renderHtml $ r
+      (False, False) -> do
+        spec <- specFromExtensionNames [x | Extension x <- opts]
+        case runIdentity (parseCommonmarkWith spec toks) of
+             Left e -> errExit e
              Right (r :: Html ()) -> TLIO.putStr . renderHtml $ r)
    (\(e :: AsyncException) -> do
              currentCallStack >>= mapM_ (hPutStrLn stderr)
@@ -133,6 +137,7 @@
                HasDefinitionList il bl,
                HasDiv bl,
                HasTaskList il bl,
+               HasAlerts il bl,
                HasFootnote il bl)
            => [(String, SyntaxSpec m il bl)]
 extensions =
@@ -159,6 +164,7 @@
   ,("wikilinks_title_before_pipe", wikilinksSpec TitleBeforePipe)
   ,("wikilinks_title_after_pipe", wikilinksSpec TitleAfterPipe)
   ,("rebase_relative_paths", rebaseRelativePathsSpec)
+  ,("alerts", alertSpec)
   ,("gfm", gfmExtensions)
   ]
 
@@ -182,7 +188,9 @@
   HasSubscript il,
   HasDefinitionList il bl,
   HasDiv bl,
+  HasAlerts il bl,
   HasTaskList il bl,
+  HasAlerts il bl,
   HasFootnote il bl)
   => [String] -> IO (SyntaxSpec m il bl)
 specFromExtensionNames extnames = do
