diff --git a/build/NuSpecs/tools/install.core.ps1 b/build/NuSpecs/tools/install.core.ps1 index 79133a9f6a..46b9260487 100644 --- a/build/NuSpecs/tools/install.core.ps1 +++ b/build/NuSpecs/tools/install.core.ps1 @@ -31,7 +31,6 @@ if ($project) { if(Test-Path $umbracoBinFolder\SQLCE4Umbraco.dll) { Remove-Item $umbracoBinFolder\SQLCE4Umbraco.dll -Force -Confirm:$false } if(Test-Path $umbracoBinFolder\System.Data.SqlServerCe.dll) { Remove-Item $umbracoBinFolder\System.Data.SqlServerCe.dll -Force -Confirm:$false } if(Test-Path $umbracoBinFolder\System.Data.SqlServerCe.Entity.dll) { Remove-Item $umbracoBinFolder\System.Data.SqlServerCe.Entity.dll -Force -Confirm:$false } - if(Test-Path $umbracoBinFolder\TidyNet.dll) { Remove-Item $umbracoBinFolder\TidyNet.dll -Force -Confirm:$false } if(Test-Path $umbracoBinFolder\umbraco.dll) { Remove-Item $umbracoBinFolder\umbraco.dll -Force -Confirm:$false } if(Test-Path $umbracoBinFolder\Umbraco.Core.dll) { Remove-Item $umbracoBinFolder\Umbraco.Core.dll -Force -Confirm:$false } if(Test-Path $umbracoBinFolder\umbraco.DataLayer.dll) { Remove-Item $umbracoBinFolder\umbraco.DataLayer.dll -Force -Confirm:$false } diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs index ced63f04bb..dd49c3ad85 100644 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs +++ b/src/Umbraco.Core/Configuration/UmbracoSettings/ContentElement.cs @@ -72,30 +72,6 @@ namespace Umbraco.Core.Configuration.UmbracoSettings } } - [ConfigurationProperty("TidyEditorContent")] - internal InnerTextConfigurationElement TidyEditorContent - { - get - { - return new OptionalInnerTextConfigurationElement( - (InnerTextConfigurationElement)this["TidyEditorContent"], - //set the default - false); - } - } - - [ConfigurationProperty("TidyCharEncoding")] - internal InnerTextConfigurationElement TidyCharEncoding - { - get - { - return new OptionalInnerTextConfigurationElement( - (InnerTextConfigurationElement)this["TidyCharEncoding"], - //set the default - "UTF8"); - } - } - [ConfigurationProperty("XmlCacheEnabled")] internal InnerTextConfigurationElement XmlCacheEnabled { @@ -333,17 +309,7 @@ namespace Umbraco.Core.Configuration.UmbracoSettings bool IContentSection.EnsureUniqueNaming { get { return EnsureUniqueNaming; } - } - - bool IContentSection.TidyEditorContent - { - get { return TidyEditorContent; } - } - - string IContentSection.TidyCharEncoding - { - get { return TidyCharEncoding; } - } + } bool IContentSection.XmlCacheEnabled { diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs index 93e3260b44..c3b8be413e 100644 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs +++ b/src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs @@ -28,10 +28,6 @@ namespace Umbraco.Core.Configuration.UmbracoSettings bool EnsureUniqueNaming { get; } - bool TidyEditorContent { get; } - - string TidyCharEncoding { get; } - bool XmlCacheEnabled { get; } bool ContinouslyUpdateXmlDiskCache { get; } diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementDefaultTests.cs b/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementDefaultTests.cs index d31bfa3a7a..c5e360f846 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementDefaultTests.cs +++ b/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementDefaultTests.cs @@ -35,13 +35,7 @@ namespace Umbraco.Tests.Configurations.UmbracoSettings Assert.IsTrue(SettingsSection.Content.ImageAutoFillProperties.ElementAt(0).LengthFieldAlias == "umbracoBytes"); Assert.IsTrue(SettingsSection.Content.ImageAutoFillProperties.ElementAt(0).ExtensionFieldAlias == "umbracoExtension"); } - - [Test] - public override void TidyCharEncoding() - { - Assert.IsTrue(SettingsSection.Content.TidyCharEncoding == "UTF8"); - } - + [Test] public override void XmlContentCheckForDiskChanges() { diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs b/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs index 668845b7b7..a0461dee00 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs +++ b/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs @@ -101,16 +101,7 @@ namespace Umbraco.Tests.Configurations.UmbracoSettings { Assert.IsTrue(SettingsSection.Content.EnsureUniqueNaming == true); } - [Test] - public void TidyEditorContent() - { - Assert.IsTrue(SettingsSection.Content.TidyEditorContent == false); - } - [Test] - public virtual void TidyCharEncoding() - { - Assert.IsTrue(SettingsSection.Content.TidyCharEncoding == "Raw"); - } + [Test] public void UseLegacyXmlSchema() { diff --git a/src/Umbraco.Web.UI/config/umbracoSettings.config b/src/Umbraco.Web.UI/config/umbracoSettings.config index 73956728d6..38efadb31e 100644 --- a/src/Umbraco.Web.UI/config/umbracoSettings.config +++ b/src/Umbraco.Web.UI/config/umbracoSettings.config @@ -47,12 +47,6 @@ True - - False - - - UTF8 - false diff --git a/src/Umbraco.Web/umbraco.presentation/library.cs b/src/Umbraco.Web/umbraco.presentation/library.cs index be0298d63b..dbabffe4c7 100644 --- a/src/Umbraco.Web/umbraco.presentation/library.cs +++ b/src/Umbraco.Web/umbraco.presentation/library.cs @@ -1843,18 +1843,6 @@ namespace umbraco } - - /// - /// Cleans the spified string with tidy - /// - /// The string to tidy. - /// if set to true [Live Editing]. - /// - public static string Tidy(string StringToTidy, bool LiveEditing) - { - return cms.helpers.xhtml.TidyHtml(StringToTidy); - } - internal static string GetCurrentNotFoundPageId() { //XmlNode error404Node = UmbracoSettings.GetKeyAsNode("/settings/content/errors/error404"); diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs index 6d579d6fc9..c322068236 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs @@ -14,16 +14,6 @@ namespace umbraco.webservices [WebService(Namespace="http://umbraco.org/webservices/")] public class Developer : UmbracoAuthorizedWebService { - - [WebMethod] - public string BootStrapTidy(string html, string ContextID) - { - //pretty sure this is legacy and it used to throw an exception so we'll continue to do the same - //true = throw if invalid - AuthorizeRequest(true); - - return cms.helpers.xhtml.BootstrapTidy(html); - } [WebMethod] public XmlNode GetMacros(string Login, string Password) diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs index 3ec59bd378..3f20c55eb6 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/legacyAjaxCalls.asmx.cs @@ -247,12 +247,6 @@ namespace umbraco.presentation.webservices } - public string Tidy(string textToTidy) - { - AuthorizeRequest(true); - return library.Tidy(helper.Request("StringToTidy"), true); - } - private static string SaveCss(string fileName, string fileContents, int fileId) { string returnValue; diff --git a/src/umbraco.businesslogic/UmbracoSettings.cs b/src/umbraco.businesslogic/UmbracoSettings.cs index ce60155ea5..968c56801d 100644 --- a/src/umbraco.businesslogic/UmbracoSettings.cs +++ b/src/umbraco.businesslogic/UmbracoSettings.cs @@ -189,25 +189,7 @@ namespace umbraco public static bool CloneXmlCacheOnPublish { get { return UmbracoConfig.For.UmbracoSettings().Content.CloneXmlContent; } - } - - /// - /// Gets a value indicating whether rich text editor content should be parsed by tidy. - /// - /// true if content is parsed; otherwise, false. - public static bool TidyEditorContent - { - get { return UmbracoConfig.For.UmbracoSettings().Content.TidyEditorContent; } - } - - /// - /// Gets the encoding type for the tidyied content. - /// - /// The encoding type as string. - public static string TidyCharEncoding - { - get { return UmbracoConfig.For.UmbracoSettings().Content.TidyCharEncoding; } - } + } /// /// Gets the property context help option, this can either be 'text', 'icon' or 'none' diff --git a/src/umbraco.cms/businesslogic/template/Template.cs b/src/umbraco.cms/businesslogic/template/Template.cs index 11792d6323..026727dce3 100644 --- a/src/umbraco.cms/businesslogic/template/Template.cs +++ b/src/umbraco.cms/businesslogic/template/Template.cs @@ -473,11 +473,11 @@ namespace umbraco.cms.businesslogic.template // test for macro alias if (elementName == "?UMBRACO_MACRO") { - Hashtable tags = helpers.xhtml.ReturnAttributes(match.Value); + var tags = XmlHelper.GetAttributesFromElement(match.Value); if (tags["macroAlias"] != null) - elementAttributes = String.Format(" Alias=\"{0}\"", tags["macroAlias"].ToString()) + elementAttributes; + elementAttributes = String.Format(" Alias=\"{0}\"", tags["macroAlias"]) + elementAttributes; else if (tags["macroalias"] != null) - elementAttributes = String.Format(" Alias=\"{0}\"", tags["macroalias"].ToString()) + elementAttributes; + elementAttributes = String.Format(" Alias=\"{0}\"", tags["macroalias"]) + elementAttributes; } string newElement = "<" + newElementName + " runat=\"server\" " + elementAttributes.Trim() + ">"; if (elementAttributes.EndsWith("/")) diff --git a/src/umbraco.cms/helpers/xhtml.cs b/src/umbraco.cms/helpers/xhtml.cs deleted file mode 100644 index 3ca90d886b..0000000000 --- a/src/umbraco.cms/helpers/xhtml.cs +++ /dev/null @@ -1,179 +0,0 @@ -using System; -using System.Collections; -using System.Text; -using System.Text.RegularExpressions; -using System.IO; -using Umbraco.Core.Configuration; - - -namespace umbraco.cms.helpers -{ - /// - /// Summary description for xhtml. - /// - public class xhtml - { - public xhtml() - { - // - // TODO: Add constructor logic here - // - } - - public static string TidyHtml(string html) { - TidyNet.Tidy tidy = new TidyNet.Tidy(); - - /* Set the options you want */ - tidy.Options.DocType = TidyNet.DocType.Strict; - tidy.Options.DropFontTags = true; - tidy.Options.LogicalEmphasis = true; - if (GlobalSettings.EditXhtmlMode == "true") - { - tidy.Options.Xhtml = true; - tidy.Options.XmlOut = true; - } - else { - tidy.Options.XmlOut = false; - tidy.Options.Xhtml = false; - } - tidy.Options.MakeClean = true; - tidy.Options.TidyMark = false; - - // To avoid entity encoding - tidy.Options.CharEncoding = (TidyNet.CharEncoding)Enum.Parse(typeof(TidyNet.CharEncoding), UmbracoConfig.For.UmbracoSettings().Content.TidyCharEncoding); - - - /* Declare the parameters that is needed */ - TidyNet.TidyMessageCollection tmc = new TidyNet.TidyMessageCollection(); - MemoryStream input = new MemoryStream(); - MemoryStream output = new MemoryStream(); - - byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(html); - input.Write(byteArray, 0, byteArray.Length); - input.Position = 0; - tidy.Parse(input, output, tmc); - - string tidyed = System.Text.Encoding.UTF8.GetString(output.ToArray()); - - // only return body - string regex = @"]*>"; - System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline) - | System.Text.RegularExpressions.RegexOptions.IgnoreCase); - System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options); - string[] s = reg.Split(tidyed); - if (s.Length > 1) - return s[1]; - else - return "[tidy error]"; - } - - public static string BootstrapTidy(string html) - { - string emptyTags = ",br,hr,input,img,"; - string regex = "(<[^\\?][^(>| )]*>)|<([^\\?][^(>| )]*)([^>]*)>"; - Hashtable replaceTag = new Hashtable(); - replaceTag.Add("strong", "b"); - replaceTag.Add("em", "i"); - - System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline) - | System.Text.RegularExpressions.RegexOptions.IgnoreCase); - System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options); - - foreach (Match m in reg.Matches(html)) - { - string orgTag = ""; - string tag = ""; - string cleanTag = ""; - - if (m.Groups.Count < 2 || (m.Groups[2].Value.ToLower() != "img" || (m.Groups[2].Value.ToLower() == "img" && m.Value.IndexOf ("?UMBRACO_MACRO") == -1))) - { - - if (m.Groups[1].Value != "") - { - orgTag = m.Groups[1].Value; - cleanTag = replaceTags(m.Groups[1].Value.ToLower().Replace("<", "").Replace("/>", "").Replace(">", "").Trim(), replaceTag); - tag = "<" + cleanTag + ">"; - } - else - { - orgTag = "<" + m.Groups[2].Value + m.Groups[3].Value + ">"; - - // loop through the attributes and make them lowercase - cleanTag = replaceTags(m.Groups[2].Value.ToLower(), replaceTag); - tag = "<" + cleanTag + returnLowerCaseAttributes(m.Groups[3].Value) + ">"; - } - - // Check for empty tags - if (bool.Parse(GlobalSettings.EditXhtmlMode) && emptyTags.IndexOf(","+cleanTag+",") > -1 && tag.IndexOf("/>") == -1) - tag = tag.Replace(">", " />"); - - html = html.Replace(orgTag, tag); - } - - } - return html; - } - - private static string replaceTags(string tag, Hashtable replaceTag) - { - string closeBracket = ""; - if (tag.Substring(0,1) == "/") - { - closeBracket = "/"; - tag = tag.Substring(1, tag.Length-1); - } - - if (replaceTag.ContainsKey(tag)) - return closeBracket+replaceTag[tag].ToString(); - else - return closeBracket+tag; - } - - [Obsolete("Has been superceded by Umbraco.Core.XmlHelper.GetAttributesFromElement")] - public static Hashtable ReturnAttributes(String tag) - { - var h = new Hashtable(); - foreach (var i in Umbraco.Core.XmlHelper.GetAttributesFromElement(tag)) - { - h.Add(i.Key, i.Value); - } - return h; - } - - private static string returnLowerCaseAttributes(String tag) - { - string newTag = ""; - MatchCollection m = Regex.Matches(tag, "(?\\S*)=\"(?[^\"]*)\"|(?\\S*)=(?[^( |>)]*)(>| )", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); - foreach (System.Text.RegularExpressions.Match attributeSet in m) - newTag += " " + attributeSet.Groups["attributeName"].Value.ToString().ToLower() + "=\"" + attributeSet.Groups["attributeValue"].Value.ToString() + "\""; - - return newTag; - } - - // helper method gotten from: - // http://stackoverflow.com/questions/20762/how-do-you-remove-invalid-hexadecimal-characters-from-an-xml-based-data-source-p#comment8130028_641632 - internal static string RemoveIllegalXmlCharacters(string inString) - { - - if (inString == null) return null; - - StringBuilder sbOutput = new StringBuilder(); - char ch; - - for (int i = 0; i < inString.Length; i++) - { - ch = inString[i]; - if ((ch >= 0x0020 && ch <= 0xD7FF) || - (ch >= 0xE000 && ch <= 0xFFFD) || - ch == 0x0009 || - ch == 0x000A || - ch == 0x000D) - { - sbOutput.Append(ch); - } - } - return sbOutput.ToString(); - - } - } -} diff --git a/src/umbraco.cms/packages.config b/src/umbraco.cms/packages.config index cab7d514ff..f0212ac846 100644 --- a/src/umbraco.cms/packages.config +++ b/src/umbraco.cms/packages.config @@ -4,5 +4,4 @@ - \ No newline at end of file diff --git a/src/umbraco.cms/umbraco.cms.csproj b/src/umbraco.cms/umbraco.cms.csproj index 28743f8d2d..5a73d18a43 100644 --- a/src/umbraco.cms/umbraco.cms.csproj +++ b/src/umbraco.cms/umbraco.cms.csproj @@ -167,10 +167,6 @@ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - False - ..\packages\Tidy.Net.1.0.0\lib\TidyNet.dll - @@ -374,9 +370,6 @@ Code - - Code -