Codekicker.BBCode(BBCode 和 HTML 互转的插件)介绍
项目地址:http://bbcode.codeplex.com/
项目介绍:
The design goals of Codekicker.BBCode were:
- Stable - it never ever crashes
- Safe - it does not let through unsafe HTML like <script> under any circumstances
- Performance - it is meant to be used in production
- Easy to use - Just call BBCode.ToHtml("[url=http://codekicker.de]codekicker[url]")
- Customizable - Customizing the translation of every tag is easy and flexible
- Error messages - the messages are available in english and german. Language contributions are welcome.
Quickstart
Just call
BBCode.ToHtml("[url=http://codekicker.de]codekicker[url]")
How do I customize the markup set?
var parser = new BBCodeParser(new[]
{
new BBTag("b", "<b>", "</b>"),
new BBTag("i", "<span style=\"font-style:italic;\">", "</span>"),
new BBTag("u", "<span style=\"text-decoration:underline;\">", "</span>"),
new BBTag("code", "<pre class=\"prettyprint\">", "</pre>"),
new BBTag("img", "<img src=\"${content}\" />", "", false, true),
new BBTag("quote", "<blockquote>", "</blockquote>"),
new BBTag("list", "<ul>", "</ul>"),
new BBTag("*", "<li>", "</li>", true, false),
new BBTag("url", "<a href=\"${href}\">", "</a>", new BBAttribute("href", ""), new BBAttribute("href", "href")),
});
return parser.Transform("[b]bbcode[/b]");
Why is it as stable as we claim?
We have used Pex (http://research.microsoft.com/en-us/projects/Pex/) to extensively test some important properties of this BBCode-Parser. We used Pex to ensure that the parser never crashes and that it never emits any dangerous tag such as <script>, no matter what the input was. The user can type any HTML he wants but it will just get encoded, even when it is in unusual places like the href-attribute of the url-tag. If you have any questions about this you can post them on http//codekicker.de if you speak german. In other cases you can contact us by email in english.
Licence
This BBCode-parser is licensed unter the Creative Commons Attribution 3.0 Licence:http://creativecommons.org/licenses/by/3.0/. You can freely use and modify the code even commercially.Please help us spread the word: We require a link from anywhere on your corporate website or blog (or from a staff-member's personal blog).
Who can use it?
As this parser is written in C#, it can be used in any .NET-Language like C# or VB.NET. The reason why we wrote it is that all existing BBCode-parsers for .NET seem to be very buggy and immature. Now we don't have trouble anymore.
What else?
That's it. It is that easy to use. If you have questions, feature suggestion or bug reports (very unlikely) you can contact us at team@codekicker.de in english and german. If you do speak german you should instead post you question on http//codekicker.de.
Last edited Oct 6, 2011 at 3:27 PM by codekicker, version 16
谢谢浏览!
Codekicker.BBCode(BBCode 和 HTML 互转的插件)介绍的更多相关文章
- Find命令、文件名后缀、Linux和Windows互传文件 使用介绍
第2周第5次课(3月30日) 课程内容: 2.23/2.24/2.25 find命令2.26 文件名后缀 2.27 Linux和Windows互传文件 find命令 文件查找: 1.which(一般用 ...
- ModernUI教程:目录 (完结)
入门 My first Modern UI app (manually) 第一个ModernUI应用(手动编写)(已完成) My first Moder ...
- Django REST framework--序列化
Django REST framework--序列化 基础准备工作 创建项目添加应用 (venv) lee@lee:~/PycharmProjects/Djdemo/djdemo$ python ma ...
- Django restful Framework 之序列化与反序列化
1. 首先在已建好的工程目录下新建app命名为snippets,并将snippets app以及rest_framework app加到工程目录的 INSTALLED_APPS 中去,具体如下: IN ...
- javascript的一些知识
一.Js的this,{},[] this是Javascript语言的一个关键字,随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是调用的函数自己. { } 大括号 ...
- js最详细的基础,jquery 插件最全的教材
一.Js的this,{},[] this是Javascript语言的一个关键字,随着函数使用场合的不同,this的值会发生变化.但是有一个总的原则,那就是this指的是调用的函数自己. { } 大括号 ...
- jQuery插件开发(转)
jQuery插件开发全解析 jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命 ...
- jQuery命名空间,插件开发
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- jQuery插件的开发之$.extend(),与$.fn.extend()
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种 ...
随机推荐
- 【LOJ#575】【LNR#2】不等关系(容斥,动态规划,分治FFT)
[LOJ#575][LNR#2]不等关系(容斥,动态规划,分治FFT) 题面 LOJ 题解 一个暴力\(dp\),设\(f[i][j]\)表示考虑完了前\(i\)个位置,其中最后一个数在前面所有数中排 ...
- 【深度学习】K-L 散度,JS散度,Wasserstein距离
度量两个分布之间的差异 (一)K-L 散度 K-L 散度在信息系统中称为相对熵,可以用来量化两种概率分布 P 和 Q 之间的差异,它是非对称性的度量.在概率学和统计学上,我们经常会使用一种更简单的.近 ...
- javascript构造函数深度克隆递归
<script type="text/javascript"> var obj={ name:'段丛磊', gex:18, sss:['李伟',18], fun:fun ...
- LinuxShell脚本——函数
LinuxShell脚本——函数 摘要:本文主要学习了Shell中函数的定义和使用. 函数的定义 Shell函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接 ...
- Spring MVC接口实例
概述 前文记录了MVC模式和Spring MVC的初步认识,现在记录创建一个项目,配置Spring MVC,编写接口程序. 创建项目 打开IntelliJ IDEA,点击"File-> ...
- MySQL数据库的事务及存储引擎
一.关系型数据库与非关系型数据库 1.关系型数据库的特点: 1)数据以表格的形式出现 2)每行为各种记录名称 3)每列为记录名称所对应的数据域 4)许多的行和列组成一张表单 5)若干的表单组成数据库 ...
- Android开源日志框架xlog
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/144 xlog的优点 在开发过程中,避免不了要使用日志组件 ...
- 【LeetCode】53.最大子序和
最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: ...
- webpack中使用jquery
首先我只有一个js文件,只用在那个文件中引入,因此 一 下载包 npm install jquery --save 二 在使用的jquery的文件顶部输入js代码 import $ from 'jq ...
- linux 创建虚拟块设备,制作文件系统并挂载,用于测试lustre
1.制作块文件 3 个 [root@localhost yaoxu]# [root@localhost yaoxu]# [root@localhost yaoxu]# 2.创建回环设备 [root@l ...