[Wrote many
pho@cielonegro.org**20071029085221] {
hunk ./Rakka/Resource/Render.hs 73
+ baseURI="http://example.org"
hunk ./Rakka/Resource/Render.hs 117
+
+
+ blah blah...
+
hunk ./Rakka/Resource/Render.hs 214
- styleSheet="http://example.org/object/StyleSheet/Default"
+ baseURI="http://example.org"
hunk ./Rakka/Resource/Render.hs 217
+
+
+
+
+
+
+
+
hunk ./Rakka/SystemConfig.hs 20
+import Control.Monad
hunk ./Rakka/SystemConfig.hs 152
- deserialize uri = fmap BaseURI (parseURI uri)
+ deserialize uri = fmap BaseURI
+ $ do parsed <- parseURI uri
+ when (uriPath parsed == "" ) (fail undefined)
+ when (last (uriPath parsed) /= '/') (fail undefined)
+ when (uriQuery parsed /= "" ) (fail undefined)
+ when (uriFragment parsed /= "" ) (fail undefined)
+ return parsed
hunk ./Rakka/Wiki.hs 81
+ | Input ![Attribute]
hunk ./Rakka/Wiki/Engine.hs 56
+ += sattr "baseURI" (uriToString id baseURI "")
hunk ./Rakka/Wiki/Engine.hs 132
+ += (constA page >>> formatSource)
hunk ./Rakka/Wiki/Engine.hs 140
+formatSource :: (ArrowXml a, ArrowChoice a) => a Page XmlTree
+formatSource = proc page
+ -> if pageIsBinary page then
+ none -< ()
+ else
+ let source = decodeLazy UTF8 (pageContent page)
+ in
+ ( eelem "source" += mkText ) -< source
+
+
hunk ./Rakka/Wiki/Engine.hs 167
- += sattr "site" siteName
- += sattr "styleSheet" (uriToString id (mkObjectURI baseURI cssName) "")
- += sattr "name" name
+ += sattr "site" siteName
+ += sattr "baseURI" (uriToString id baseURI "")
+ += sattr "name" name
+
+ += ( eelem "styleSheets"
+ += ( eelem "styleSheet"
+ += sattr "src" (uriToString id (mkObjectURI baseURI cssName) "")
+ )
+ )
+
+ += ( eelem "scripts"
+ += ( eelem "script"
+ += sattr "src" (uriToString id (baseURI { uriPath = "/js" }) "")
+ )
+ )
hunk ./Rakka/Wiki/Formatter.hs 190
+
+ Input attrs
+ -> formatElem "input" -< (baseURI, attrs, [])
hunk ./Rakka/Wiki/Interpreter/Base.hs 9
+import Network.URI
hunk ./Rakka/Wiki/Interpreter/Base.hs 22
+ , editPageInterp
hunk ./Rakka/Wiki/Interpreter/Base.hs 90
+
+
+--
+editPageInterp :: Interpreter
+editPageInterp
+ = InlineCommandInterpreter {
+ iciName = "editPage"
+ , iciInterpret
+ = \ ctx (InlineCommand _ args _) ->
+ do BaseURI baseURI <- getSysConf (ctxSysConf ctx)
+
+ let pageName = fromMaybe (ctxPageName ctx) (lookup "page" args)
+ label = fromMaybe "Edit this page" (lookup "label" args)
+ uri = uriToString id baseURI ""
+ attrs = [ ("type" , "button")
+ , ("value" , label)
+ , ("onclick", "Rakka.editPage(\"" ++ uri ++ "\", \"" ++ pageName ++ "\")")
+ , ("class" , "editButton")
+ ]
+
+ return (Input attrs)
+ }
+
hunk ./Rakka/Wiki/Parser.hs 37
- , pdata
+ , verbatim
hunk ./Rakka/Wiki/Parser.hs 152
-pdata :: Parser BlockElement
-pdata = do try (string "> string "]]>")
- return []
- <|>
- do x <- anyChar
- xs <- pdata'
- return (x:xs)
+ verbatim' :: Parser String
+ verbatim' = do try (many (oneOf " \t\n") >> string "]>")
+ return []
+ <|>
+ do x <- anyChar
+ xs <- verbatim'
+ return (x:xs)
hunk ./Rakka/Wiki/Parser.hs 282
- foldr (<|>) pzero [ cdata
+ foldr (<|>) pzero [ nowiki
hunk ./Rakka/Wiki/Parser.hs 292
-cdata :: Parser InlineElement
-cdata = try (string "> cdata' >>= return . Text
+nowiki :: Parser InlineElement
+nowiki = try (string "> nowiki' >>= return . Text
hunk ./Rakka/Wiki/Parser.hs 295
- cdata' :: Parser String
- cdata' = do try (string "]]>")
- return []
- <|>
- do x <- anyChar
- xs <- cdata'
- return (x:xs)
+ nowiki' :: Parser String
+ nowiki' = do try (string "]>")
+ return []
+ <|>
+ do x <- anyChar
+ xs <- nowiki'
+ return (x:xs)
hunk ./defaultPages/Help/Syntax 34
-== CDATA section ==
-<![CDATA[
+== nowiki section ==
+<!nowiki[
hunk ./defaultPages/Help/Syntax 38
-]]>
+]>
hunk ./defaultPages/Help/Syntax 40
-== PDATA section ==
-<![PDATA[
+== verbatim section ==
+<!verbatim[
hunk ./defaultPages/Help/Syntax 44
-]]>
+]>
hunk ./defaultPages/SideBar/Right 7
+*
hunk ./defaultPages/StyleSheet/Default 216
+}
+a:hover {
+ text-decoration: underline;
+}
+
+input[type="button"] {
+ background-color: #eeeeee;
+
+ border-color: #fafafa #dddddd #dddddd #fafafa;
+ border-width: 2px;
+ border-style: solid;
+}
+input[type="button"]:active {
+ background-color: white;
+ border-color: #dddddd #fafafa #fafafa #dddddd;
hunk ./js/Makefile 3
+ jquery-dom.js \
+ base.js \
+ editPage.js \
hunk ./js/Makefile 18
+
+jquery-dom.js:
+ @echo "Warning: jquery-dom.js is missing. Trying to download it..."
+ wget http://mg.to/files/jquery-dom.js
+
addfile ./js/base.js
hunk ./js/base.js 1
+/* Namespace Rakka */
+var Rakka = {};
addfile ./js/editPage.js
hunk ./js/editPage.js 1
+Rakka.editPage = function (baseURI, pageName) {
+ var $body = $("div.body");
+
+ $body.text("Loading... please wait.");
+
+ // XML 版のページを取得する。
+ $.ajax({
+ url : baseURI + pageName + ".xml",
+ success: function (pageXml) {
+ var $page = $(pageXml).find("page");
+ var oldRevision = $page.attr("revision");
+ var defaultAction = $page.attr("isBinary") == "yes" ? "uploadFile"
+ : $page.attr("type") == "text/x-rakka" ? "editAsWiki"
+ : $page.attr("type") == "text/css" ? "editAsCSS"
+ : "unknown"
+ ;
+ var source = $page.find("source").text();
+ Rakka.displayPageEditor($body, pageName, oldRevision, defaultAction, source);
+ },
+ error : function (req) {
+ if (req.status == 404) {
+ Rakka.displayPageEditor($body, pageName, null, "editAsWiki");
+ }
+ else {
+ $body.text("Error: " + req.status + " " + req.statusText);
+ }
+ }
+ });
+};
+
+Rakka.displayPageEditor = function ($place, pageName, oldRevision, defaultAction, source) {
+ $place.empty();
+
+ var fldPageName
+ = $.INPUT({type : "text", value: pageName});
+
+ var btnEditAsWiki
+ = $.INPUT({type : "radio",
+ name : "action",
+ checked: (defaultAction == "editAsWiki" ? "checked" : "")});
+
+ var btnEditAsCSS
+ = $.INPUT({type : "radio",
+ name : "action",
+ checked: (defaultAction == "editAsCSS" ? "checked" : "")});
+
+ var btnUploadFile
+ = $.INPUT({type : "radio",
+ name : "action",
+ checked: (defaultAction == "uploadFile" ? "checked" : "")});
+
+ var btnDelete
+ = $.INPUT({type : "radio",
+ name : "action",
+ checked: ""});
+
+ var pageEditor
+ = $.TABLE({className: "pageEditor"},
+ $.TBODY({},
+ $.TR({},
+ $.TH({}, "Name of the page"),
+ $.TD({}, fldPageName)
+ ),
+ $.TR({},
+ $.TH({}, "Action"),
+ $.TD({},
+ $.UL({},
+ $.LI({},
+ $.LABEL({},
+ btnEditAsWiki,
+ "Edit as a Wiki page"
+ )
+ ),
+ $.LI({},
+ $.LABEL({},
+ btnEditAsCSS,
+ "Edit as a style sheet"
+ )
+ ),
+ $.LI({},
+ $.LABEL({},
+ btnUploadFile,
+ "Upload a file"
+ )
+ ),
+ (oldRevision != "" && oldRevision != 0
+ ? $.LI({},
+ $.LABEL({},
+ btnDelete,
+ "Delete this page"
+ )
+ )
+ : [])
+ )
+ )
+ )
+ )
+ );
+
+ $place.append(pageEditor);
+};
}