diff --git a/Core-Tests/FormatterTests.cs b/Core-Tests/FormatterTests.cs
index 68092b7..8990644 100644
--- a/Core-Tests/FormatterTests.cs
+++ b/Core-Tests/FormatterTests.cs
@@ -29,7 +29,7 @@ second line";
private MockRepository mocks;
[Test]
- //[TestCase("{wikititle}","Title")]
+ [TestCase("{wikititle}","Title\n")]
[TestCase("@@rigatesto1\r\nriga2@@","
rigatesto1\r\nriga2
\n")]
[TestCase(Input,ExpectedOutput)]
public void Format(string input, string output) {
@@ -51,6 +51,7 @@ second line";
ISettingsStorageProviderV30 settingsProvider = mocks.StrictMock();
Expect.Call(settingsProvider.GetSetting("ProcessSingleLineBreaks")).Return("false").Repeat.Any();
+ Expect.Call(settingsProvider.GetSetting("WikiTitle")).Return("Title").Repeat.Any();
Collectors.SettingsProvider = settingsProvider;
diff --git a/Core/Formatter.cs b/Core/Formatter.cs
index b9dd305..846e881 100644
--- a/Core/Formatter.cs
+++ b/Core/Formatter.cs
@@ -38,8 +38,8 @@ namespace ScrewTurn.Wiki {
private static readonly Regex PreRegex = new Regex(@"\{\{\{\{.+?\}\}\}\}", RegexOptions.Compiled | RegexOptions.Singleline);
private static readonly Regex BoxRegex = new Regex(@"\(\(\(.+?\)\)\)", RegexOptions.Compiled | RegexOptions.Singleline);
private static readonly Regex ExtendedUpRegex = new Regex(@"\{up((\:|\().+?)?\}", RegexOptions.Compiled | RegexOptions.IgnoreCase);
- private static readonly Regex SpecialTagRegex = new Regex(@"\{(wikititle|wikiversion|mainurl|rsspage|themepath|clear|br|top|searchbox|pagecount|pagecount\(\*\)|categories|cloud|orphans|wanted|namespacelist)\}", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
- private static readonly Regex SpecialTagBR = new Regex(@"\{(br)\}", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
+ private static readonly Regex SpecialTagRegex = new Regex(@"\{(wikititle|wikiversion|mainurl|rsspage|themepath|clear|top|searchbox|pagecount|pagecount\(\*\)|categories|cloud|orphans|wanted|namespacelist)\}", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
+ private static readonly Regex SpecialTagBRRegex = new Regex(@"\{(br)\}", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
private static readonly Regex Phase3SpecialTagRegex = new Regex(@"\{(username|pagename|loginlogout|namespace|namespacedropdown|incoming|outgoing)\}", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
private static readonly Regex RecentChangesRegex = new Regex(@"\{recentchanges(\(\*\))?\}", RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.CultureInvariant);
private static readonly Regex ListRegex = new Regex(@"(?<=(\n|^))((\*|\#)+(\ )?.+?\n)+((?=\n)|\z)", RegexOptions.Compiled | RegexOptions.Singleline); // Singleline to matche list elements on multiple lines
@@ -265,7 +265,7 @@ namespace ScrewTurn.Wiki {
match = ExtendedUpRegex.Match(sb.ToString(), end);
}
- match = SpecialTagBR.Match(sb.ToString()); // solved by introducing a new regex call SpecialTagBR
+ match = SpecialTagBRRegex.Match(sb.ToString()); // solved by introducing a new regex call SpecialTagBR
while(match.Success) {
if(!IsNoWikied(match.Index, noWikiBegin, noWikiEnd, out end)) {
sb.Remove(match.Index, match.Length);
@@ -278,7 +278,7 @@ namespace ScrewTurn.Wiki {
}
}
ComputeNoWiki(sb.ToString(), ref noWikiBegin, ref noWikiEnd);
- match = SpecialTagRegex.Match(sb.ToString(), end);
+ match = SpecialTagBRRegex.Match(sb.ToString(), end);
}
if(!bareBones) {
diff --git a/Core/ReverseFormatter.cs b/Core/ReverseFormatter.cs
index 71d67b5..0eefe9f 100644
--- a/Core/ReverseFormatter.cs
+++ b/Core/ReverseFormatter.cs
@@ -148,6 +148,7 @@ namespace ScrewTurn.Wiki {
/// The corrispondent WikiMarkup Text
private static string processChild(XmlNodeList nodes) {
string result = "";
+ bool isImage = false;
foreach(XmlNode node in nodes) {
bool anchor = false;
if(node.NodeType == XmlNodeType.Text) {
@@ -222,7 +223,6 @@ namespace ScrewTurn.Wiki {
break;
case "table":
string image = "";
- bool isImage = false;
foreach(XmlAttribute attName in node.Attributes) {
if(attName.Value.ToString() == "imageauto") {
isImage = true;
@@ -231,6 +231,7 @@ namespace ScrewTurn.Wiki {
}
if(isImage) {
result += image;
+ isImage = false;
break;
}
else result += processChild(node.ChildNodes);
@@ -242,7 +243,11 @@ namespace ScrewTurn.Wiki {
result += processChild(node.ChildNodes);
break;
case "td":
- result += processChild(node.ChildNodes);
+ if(isImage) {
+ result += processChildImage(node.ChildNodes);
+ }
+ else
+ result += processChild(node.ChildNodes);
break;
case "ol":
result += processList(node.ChildNodes, "#");
@@ -281,8 +286,8 @@ namespace ScrewTurn.Wiki {
}
if(attName.Value.ToString() == "imageright")
result += "\r\n" + "[imageright" + processChildImage(node.ChildNodes) + "]\r\n";
- if(attName.Value.ToString() == "imageauto")
- result += "\r\n" + "[imageauto" + processChildImage(node.ChildNodes) + "]\r\n";
+ if(attName.Value.ToString() == "image")
+ result += "\r\n" + "[image" + processChildImage(node.ChildNodes) + "]\r\n";
}
}
else