DocSpace-client/common/ASC.Textile/Blocks/PreBlockModifier.cs

37 lines
1.3 KiB
C#
Raw Normal View History

2019-08-19 12:35:39 +00:00
#region License Statement
// Copyright (c) L.A.B.Soft. All rights reserved.
//
// The use and distribution terms for this software are covered by the
// Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
// which can be found in the file CPL.TXT at the root of this distribution.
// By using this software in any fashion, you are agreeing to be bound by
// the terms of this license.
//
// You must not remove this notice, or any other, from this software.
#endregion
2022-02-17 09:08:01 +00:00
namespace Textile.Blocks;
public class PreBlockModifier : BlockModifier
2019-08-19 12:35:39 +00:00
{
2022-02-17 09:08:01 +00:00
public override string ModifyLine(string line)
2019-08-19 12:35:39 +00:00
{
2022-02-17 09:08:01 +00:00
// Encode the contents of the "<pre>" tags so that we don't
// generate formatting out of it.
line = NoTextileEncoder.EncodeNoTextileZones(line,
@"(?<=(^|\s)<pre(" + Globals.HtmlAttributesPattern + @")>)",
@"(?=</pre>)");
return line;
}
2019-08-19 12:35:39 +00:00
2022-02-17 09:08:01 +00:00
public override string Conclude(string line)
{
// Recode everything.
line = NoTextileEncoder.DecodeNoTextileZones(line,
@"(?<=(^|\s)<pre(" + Globals.HtmlAttributesPattern + @")>)",
@"(?=</pre>)",
new string[] { "<", ">" });
return line;
2019-08-19 12:35:39 +00:00
}
}