C# 从标记中获取原始文本';编辑文本
在我的数据库中,我有一个被标记的文本。与显示问题摘录的方式相同,我希望得到文本的前N个字符,即所有格式必须删除。当然,必须避免MD->HTML步骤,并且必须在MD'ed文本上完成工作。性能是一项要求。Thx.我处理这个问题的方法是为包含/表示标记文本的类定义格式化程序接口。然后,您将拥有支持HTML格式和纯文本格式的具体实现。您需要做的就是注入正确的实现并调用格式化程序 您的纯文本格式化程序可以简单地遍历字符串中的字符,复制字符,直到它达到某个标记。然后它将跳过标记,并在点击文本时再次开始输出C# 从标记中获取原始文本';编辑文本,c#,.net,formatting,markdown,C#,.net,Formatting,Markdown,在我的数据库中,我有一个被标记的文本。与显示问题摘录的方式相同,我希望得到文本的前N个字符,即所有格式必须删除。当然,必须避免MD->HTML步骤,并且必须在MD'ed文本上完成工作。性能是一项要求。Thx.我处理这个问题的方法是为包含/表示标记文本的类定义格式化程序接口。然后,您将拥有支持HTML格式和纯文本格式的具体实现。您需要做的就是注入正确的实现并调用格式化程序 您的纯文本格式化程序可以简单地遍历字符串中的字符,复制字符,直到它达到某个标记。然后它将跳过标记,并在点击文本时再次开始输出
public interface IFormatter
{
string Format();
}
public class HtmlFormatter: IFormatter
{
public Format()
{
return ...string translated to HTML...
}
}
public class PlainTextFormatter : IFormatter
{
public Format()
{
...go through and remove all markdown and return rest
}
}
public class Post : IFormattable
{
public IFormatter Formatter { get; set; }
public Post( IFormatter formatter )
{
this.Formatter = formatter ?? new HtmlFormatter();
}
public Format()
{
return this.Formatter.Format();
}
}
我处理这个问题的方法是为包含/表示标记文本的类定义格式化程序接口。然后,您将拥有支持HTML格式和纯文本格式的具体实现。您需要做的就是注入正确的实现并调用格式化程序 您的纯文本格式化程序可以简单地遍历字符串中的字符,复制字符,直到它达到某个标记。然后它将跳过标记,并在点击文本时再次开始输出
public interface IFormatter
{
string Format();
}
public class HtmlFormatter: IFormatter
{
public Format()
{
return ...string translated to HTML...
}
}
public class PlainTextFormatter : IFormatter
{
public Format()
{
...go through and remove all markdown and return rest
}
}
public class Post : IFormattable
{
public IFormatter Formatter { get; set; }
public Post( IFormatter formatter )
{
this.Formatter = formatter ?? new HtmlFormatter();
}
public Format()
{
return this.Formatter.Format();
}
}
如果我误解(或只是不理解)您需要在这里做什么,请原谅,但我突然想到,如果此数据库中的读取(页面视图)多于插入(添加新的标记记录),从性能的角度来看,通过保存一个版本的文本,并在数据库中的一个单独字段中删除所有标记,可以获得最大的收益。这样,在显示到浏览器之前,前端不必重复解析从数据库读取的内容。。。当添加新记录时,它将只被解析一次
从性能的角度来看,这是否真的有意义取决于特定于您的情况的各种变量。。。文本条目有多大,插入记录与读取记录的频率等。如果我误解(或根本不理解)您需要在这里做什么,请原谅,但我会想到,如果此数据库的读取(页面视图)多于插入(添加新的标记记录),从性能的角度来看,通过保存一个版本的文本,并在数据库中的一个单独字段中删除所有标记,可以获得最大的收益。这样,在显示到浏览器之前,前端不必重复解析从数据库读取的内容。。。当添加新记录时,它将只被解析一次 从性能的角度来看,这是否真的有意义取决于特定于您的情况的各种变量。。。文本条目有多大,插入记录与读取记录的频率等 在我的数据库中,我有一个被标记的文本。与显示问题摘录的方式相同,我希望得到文本的前N个字符,即所有格式必须删除 我们将文本的两种表示形式存储在数据库中:
当我们显示它时,我们使用HTML化的输出版本,并简单地应用我们的标准HTML剥离算法。以下是我所采用的路径:我将修改标记代码,以便通过一个开关,我可以生成HTML或简单文本。一旦生成了摘录,我肯定会将其存储在数据库中
我不会将任何答案标记为解决方案,因为有很多方法可以做到这一点。每个人都有我的选票;) 下面是我要采取的路径:我将修改标记代码,这样,通过切换,我可以生成html或简单文本。一旦生成了摘录,我肯定会将其存储在数据库中
我不会将任何答案标记为解决方案,因为有很多方法可以做到这一点。每个人都有我的选票;) 这不是我问题的答案,但对周围的框架来说是一个很好的观点。投票。不是对我问题的回答,而是对周围框架的一个很好的观点。投了票。我会记住这一点。谢谢然而,它并没有回答关于生成此摘录的最佳方式的问题。我将记住这一点。谢谢然而,它并没有回答关于生成此摘录的最佳方式的问题。