]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Wiki/Interpreter/Image.hs
Wrote more
[Rakka.git] / Rakka / Wiki / Interpreter / Image.hs
index f01c2de4f5fac8f8e7976d3cb8531128e7b58b3c..12ea6d662de735ee33a5b1203599b8dd6feb2c40 100644 (file)
@@ -29,23 +29,19 @@ imageInterp
           = \ ctx (InlineCommand _ attrs inside) ->
             do BaseURI baseURI <- getSysConf (ctxSysConf ctx)
 
-               let pageName = lookup "src" attrs
-               when (pageName == Nothing)
-                        $ fail "\"src\" attribute is missing"
-
-               let hrefAttr    = ("href", uriToString id (mkPageURI   baseURI (fromJust pageName)) "")
-                   srcAttr     = ("src" , uriToString id (mkObjectURI baseURI (fromJust pageName)) "")
-                   altAttr     = do alt <- lookup "alt" attrs
-                                    return ("alt", alt)
+               let pageName    = case lookup "src" attrs of
+                                   Just x  -> x
+                                   Nothing -> error "\"src\" attribute is missing"
+                   hrefAttr    = ("href", uriToString id (mkPageURI baseURI pageName) "")
+                   alt         = lookup "alt" attrs
                    classAttr   = case lookup "float" attrs of
                                    Nothing      -> ("class", "inlineImage")
                                    Just "left"  -> ("class", "inlineImage leftFloat")
                                    Just "right" -> ("class", "inlineImage rightFloat")
                                    Just others  -> error ("unknown \"float\" attribute: " ++ others)
                    anchorAttrs = [hrefAttr, classAttr]
-                   imgAttrs    = catMaybes [Just srcAttr, altAttr]
 
-               return (Anchor anchorAttrs [Image imgAttrs])
+               return (Anchor anchorAttrs [Image pageName alt])
       }
 
 
@@ -69,12 +65,10 @@ imgFrameInterp
           = \ ctx (BlockCommand _ attrs inside) ->
             do BaseURI baseURI <- getSysConf (ctxSysConf ctx)
 
-               let pageName = lookup "src" attrs
-               when (pageName == Nothing)
-                        $ fail "\"src\" attribute is missing"
-
-               let hrefAttr    = ("href", uriToString id (mkPageURI   baseURI (fromJust pageName)) "")
-                   srcAttr     = ("src" , uriToString id (mkObjectURI baseURI (fromJust pageName)) "")
+               let pageName    = case lookup "src" attrs of
+                                   Just x  -> x
+                                   Nothing -> error "\"src\" attribute is missing"
+                   hrefAttr    = ("href", uriToString id (mkPageURI baseURI pageName) "")
                    classAttr   = case lookup "float" attrs of
                                    Nothing      -> ("class", "imageFrame")
                                    Just "left"  -> ("class", "imageFrame leftFloat")
@@ -84,7 +78,7 @@ imgFrameInterp
                return (Div [classAttr]
                        [ Div [("class", "imageData")]
                          [ Paragraph [ Anchor [hrefAttr]
-                                                  [ Image [srcAttr] ] ]
+                                                  [ Image pageName Nothing ] ]
                          ]
                        , Div [("class", "imageCaption")] inside
                        ]