public override string ConvertMacro(Dictionary<string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { int max = Utils.MAXRESULTS; bool result = false; string dekiMacro = ""; if (macro != null) { if (macro.Arguments.Keys.Contains("max")) { result = int.TryParse(macro.Arguments["max"], out max); } //string treePath = Utils.GetTopLevelPage(pageInfo.DekiPagePath); if (macro.Arguments.Keys.Contains("url")) { if (result) { // There was a max dekiMacro = "{{ feed.list(\"" + macro.Arguments["url"] + "\", " + max.ToString() + ") }}"; } else { // Default to 10 dekiMacro = "{{ feed.list(\"" + macro.Arguments["url"] + "\", 10) }}"; } } } return dekiMacro; }
internal string Convert(Dictionary<string, string> pathMap, string stubbedPageContent, ACConverterPageInfo pageInfo) { foreach (MacroConverter converter in macroConverters) { stubbedPageContent = converter.Convert(pathMap, stubbedPageContent, pageInfo); } return stubbedPageContent; }
/// <summary> /// Takes a confluence macro (without the surrounding curly bracket), and converts it into dekiscript /// </summary> /// <param name="macro"></param> /// <param name="pageContext"></param> /// <returns></returns> public override string ConvertMacro(Dictionary<string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { // index doesn't take any arguments, so ignore the macro argument // Get the path for the index we return string treePath = Utils.GetTopLevelPage(pageInfo.DekiPagePath); string dekiMacro = "{{ wiki.tree{path: \"" + treePath + "\"} }}"; return dekiMacro; }
public override string ConvertMacro(Dictionary<string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { if (macro.Arguments == null) { return "<pre>" + macro.Body + "</pre>"; } else { if (macro.Arguments.Keys.Contains("default")) return "<pre class=\"deki-transform\" function=\"syntax." + macro.Arguments["default"] + "\">" + macro.Body + "</pre>"; } return "<pre>" + macro.Body + "</pre>"; }
public override string ConvertMacro(Dictionary<string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { String label = String.Empty; String wrapAfter = String.Empty; String cellWidth = String.Empty; String cellHeight = String.Empty; if (macro.Arguments != null) { if (macro.Arguments.Keys.Contains("wrapAfter")) { wrapAfter = ", columns:" + macro.Arguments["wrapAfter"].ToString(); } //////////////////// if (macro.Arguments.Keys.Contains("cellWidth")) { cellWidth = ", width:" + macro.Arguments["cellWidth"].ToString(); } //////////////////// if (macro.Arguments.Keys.Contains("cellHeight")) { cellHeight = ", height:" + macro.Arguments["cellHeight"].ToString(); } /////////////////// SINGLE LABEL EXPECTED WITH THIS ARGUMENT if (macro.Arguments.Keys.Contains(Utils.DefaultParamName)) { label = macro.Arguments[Utils.DefaultParamName].ToString(); } } string dekiMacro = "{{ navMap{ tag: \"" + label + wrapAfter + cellWidth + cellHeight + "\" } }}"; return dekiMacro; }
public string Convert(Dictionary<string, string> pathMap, string stubContent, ACConverterPageInfo pageInfo) { // Find all the macros called MacroName that are in stubContent, and call ConvertMacro string regexStubStart = ACConverter.MacroStubStart; string regexStubEnd = ACConverter.MacroStubEnd; string regexPattern = regexStubStart + MacroName + ":?[^" + ACConverter.MacroStubEnd + "]*" + regexStubEnd; string regexPatternClose = regexStubStart + MacroName + regexStubEnd; if (IsBodyMacro) { regexPattern = "(" + regexPattern + ")([^" + ACConverter.MacroStubStart + "]*)(" + regexPatternClose + ")"; } Regex macroRegex = new Regex(regexPattern); MatchCollection matches = macroRegex.Matches(stubContent); foreach (Match match in matches) { Macro macro; if (IsBodyMacro) { string macroHeader = match.Groups[1].Value; string macroContent = match.Groups[2].Value; string macroFooter = match.Groups[3].Value; macro = new Macro(macroHeader, macroContent, macroFooter); } else { macro = new Macro(match.Value); } string convertedMacro = ConvertMacro(pathMap, macro, pageInfo); stubContent = stubContent.Replace(match.Value, convertedMacro); } return stubContent; }
public abstract string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo);
public string Convert(Dictionary <string, string> pathMap, string stubContent, ACConverterPageInfo pageInfo) { // Find all the macros called MacroName that are in stubContent, and call ConvertMacro string regexStubStart = ACConverter.MacroStubStart; string regexStubEnd = ACConverter.MacroStubEnd; string regexPattern = regexStubStart + MacroName + ":?[^" + ACConverter.MacroStubEnd + "]*" + regexStubEnd; string regexPatternClose = regexStubStart + MacroName + regexStubEnd; if (IsBodyMacro) { regexPattern = "(" + regexPattern + ")([^" + ACConverter.MacroStubStart + "]*)(" + regexPatternClose + ")"; } Regex macroRegex = new Regex(regexPattern); MatchCollection matches = macroRegex.Matches(stubContent); foreach (Match match in matches) { Macro macro; if (IsBodyMacro) { string macroHeader = match.Groups[1].Value; string macroContent = match.Groups[2].Value; string macroFooter = match.Groups[3].Value; macro = new Macro(macroHeader, macroContent, macroFooter); } else { macro = new Macro(match.Value); } string convertedMacro = ConvertMacro(pathMap, macro, pageInfo); stubContent = stubContent.Replace(match.Value, convertedMacro); } return(stubContent); }
public override string ConvertMacro(Dictionary<string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { string dekiMacro = "{{wiki.create()}}"; return dekiMacro; }
public override string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { string dekiMacro = "{{wiki.contributors()}}"; return(dekiMacro); }
public override string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { string dekiMacro = "";//"{{ wiki.page(" + objMacro + ") }}"; if (macro.Arguments != null) { string spaceKey = (macro.Arguments.Keys.Contains("spaceKey")) ? macro.Arguments["spaceKey"] : pageInfo.ConfluencePage.space; string pageTitle = (macro.Arguments.Keys.Contains("pageTitle")) ? macro.Arguments["pageTitle"] : macro.Arguments[Utils.DefaultParamName]; ACConverter aconverter = new ACConverter(); dekiMacro = aconverter.GetMtPathFromConfluencePath(pathMap, spaceKey, pageTitle); dekiMacro = "{{ wiki.page(\"" + dekiMacro + "\") }}"; } return(dekiMacro); }
public override string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { String label = String.Empty; String wrapAfter = String.Empty; String cellWidth = String.Empty; String cellHeight = String.Empty; if (macro.Arguments != null) { if (macro.Arguments.Keys.Contains("wrapAfter")) { wrapAfter = ", columns:" + macro.Arguments["wrapAfter"].ToString(); } //////////////////// if (macro.Arguments.Keys.Contains("cellWidth")) { cellWidth = ", width:" + macro.Arguments["cellWidth"].ToString(); } //////////////////// if (macro.Arguments.Keys.Contains("cellHeight")) { cellHeight = ", height:" + macro.Arguments["cellHeight"].ToString(); } /////////////////// SINGLE LABEL EXPECTED WITH THIS ARGUMENT if (macro.Arguments.Keys.Contains(Utils.DefaultParamName)) { label = macro.Arguments[Utils.DefaultParamName].ToString(); } } string dekiMacro = "{{ navMap{ tag: \"" + label + wrapAfter + cellWidth + cellHeight + "\" } }}"; return(dekiMacro); }
public override string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { int max = Utils.MAXRESULTS; bool result = false; string dekiMacro = ""; if (macro != null) { if (macro.Arguments.Keys.Contains("max")) { result = int.TryParse(macro.Arguments["max"], out max); } //string treePath = Utils.GetTopLevelPage(pageInfo.DekiPagePath); if (macro.Arguments.Keys.Contains("url")) { if (result) { // There was a max dekiMacro = "{{ feed.list(\"" + macro.Arguments["url"] + "\", " + max.ToString() + ") }}"; } else { // Default to 10 dekiMacro = "{{ feed.list(\"" + macro.Arguments["url"] + "\", 10) }}"; } } } return(dekiMacro); }
internal string Convert(Dictionary <string, string> pathMap, string stubbedPageContent, ACConverterPageInfo pageInfo) { foreach (MacroConverter converter in macroConverters) { stubbedPageContent = converter.Convert(pathMap, stubbedPageContent, pageInfo); } return(stubbedPageContent); }
public override string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { if (macro.Arguments == null) { return("<pre>" + macro.Body + "</pre>"); } else { if (macro.Arguments.Keys.Contains("default")) { return("<pre class=\"deki-transform\" function=\"syntax." + macro.Arguments["default"] + "\">" + macro.Body + "</pre>"); } } return("<pre>" + macro.Body + "</pre>"); }
public abstract string ConvertMacro(Dictionary<string, string> pathMap,Macro macro, ACConverterPageInfo pageInfo);
/// <summary> /// Takes a confluence macro (without the surrounding curly bracket), and converts it into dekiscript /// </summary> /// <param name="macro"></param> /// <param name="pageContext"></param> /// <returns></returns> public override string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { // index doesn't take any arguments, so ignore the macro argument // Get the path for the index we return string treePath = Utils.GetTopLevelPage(pageInfo.DekiPagePath); string dekiMacro = "{{ wiki.tree{path: \"" + treePath + "\"} }}"; return(dekiMacro); }
public override string ConvertMacro(Dictionary<string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { // Go through and gather all possible arguments - insert them into variables /* * Type - (optional) search for types of content. Accepted values: * page: basic pages * comment: comments on pages or blogs * blogpost/news: blog posts * attachment: attachments to pages or blogs * userinfo: personal information * spacedesc: space descriptions * personalspacedesc: personal space descriptions * mail: emails in a space */ // TODO - Some of these will be multiples that are comma separated, so a function will be needed in the superclass // that can split them and remove spaces at either end, leaving just the argument // TODO - if we are doing multiple parameters for an argument - also need a way to know that an argument has multiples String label = String.Empty; if (macro.Arguments != null) { String type = "page"; if (macro.Arguments.Keys.Contains("type")) { type = macro.Arguments["type"].ToString(); } //////////////////// int max = 5; if (macro.Arguments.Keys.Contains("max")) { bool resMax = int.TryParse(macro.Arguments["max"], out max); } if (macro.Arguments.Keys.Contains("maxResults")) { bool resMaxResults = int.TryParse(macro.Arguments["maxResults"], out max); } //////////////////// String spaces = "spaces"; if (macro.Arguments.Keys.Contains("spaces")) { spaces = macro.Arguments["spaces"].ToString(); } //////////////////// String space = "space"; if (macro.Arguments.Keys.Contains("space")) { space = macro.Arguments["space"].ToString(); } /////////////////// SINGLE LABEL EXPECTED WITH THIS ARGUMENT if (macro.Arguments.Keys.Contains("label")) { label = macro.Arguments["label"].ToString(); } if (macro.Arguments.Keys.Contains("labels")) { label = macro.Arguments["labels"].ToString(); } /////////////////// WE ARE NOT SUPPORTING MULTIPLE LABELS AT PRESENT /* String labels = "labels"; if (macro.Arguments.Keys.Contains("labels")) { labels = macro.Arguments["labels"].ToString(); } */ /////////////////// String sort = "creation"; if (macro.Arguments.Keys.Contains("sort")) { sort = macro.Arguments["sort"].ToString(); } } // TODO - need to know the exact DekiScript to be able to create this macro string dekiMacro = "{{ taggedPages{ tag: \"" + label + "\" } }}"; return dekiMacro; }
public override string ConvertMacro(Dictionary <string, string> pathMap, Macro macro, ACConverterPageInfo pageInfo) { // Go through and gather all possible arguments - insert them into variables /* * Type - (optional) search for types of content. Accepted values: * page: basic pages * comment: comments on pages or blogs * blogpost/news: blog posts * attachment: attachments to pages or blogs * userinfo: personal information * spacedesc: space descriptions * personalspacedesc: personal space descriptions * mail: emails in a space */ // TODO - Some of these will be multiples that are comma separated, so a function will be needed in the superclass // that can split them and remove spaces at either end, leaving just the argument // TODO - if we are doing multiple parameters for an argument - also need a way to know that an argument has multiples String label = String.Empty; if (macro.Arguments != null) { String type = "page"; if (macro.Arguments.Keys.Contains("type")) { type = macro.Arguments["type"].ToString(); } //////////////////// int max = 5; if (macro.Arguments.Keys.Contains("max")) { bool resMax = int.TryParse(macro.Arguments["max"], out max); } if (macro.Arguments.Keys.Contains("maxResults")) { bool resMaxResults = int.TryParse(macro.Arguments["maxResults"], out max); } //////////////////// String spaces = "spaces"; if (macro.Arguments.Keys.Contains("spaces")) { spaces = macro.Arguments["spaces"].ToString(); } //////////////////// String space = "space"; if (macro.Arguments.Keys.Contains("space")) { space = macro.Arguments["space"].ToString(); } /////////////////// SINGLE LABEL EXPECTED WITH THIS ARGUMENT if (macro.Arguments.Keys.Contains("label")) { label = macro.Arguments["label"].ToString(); } if (macro.Arguments.Keys.Contains("labels")) { label = macro.Arguments["labels"].ToString(); } /////////////////// WE ARE NOT SUPPORTING MULTIPLE LABELS AT PRESENT /* * String labels = "labels"; * if (macro.Arguments.Keys.Contains("labels")) * { * labels = macro.Arguments["labels"].ToString(); * } */ /////////////////// String sort = "creation"; if (macro.Arguments.Keys.Contains("sort")) { sort = macro.Arguments["sort"].ToString(); } } // TODO - need to know the exact DekiScript to be able to create this macro string dekiMacro = "{{ taggedPages{ tag: \"" + label + "\" } }}"; return(dekiMacro); }