[转]UBB代码解析规范

CSDN 社区UBB使用常见问题解答

版本变更日志:
    2007年04月03日 创建此UBB解析说明文档


我们支持那些UBB?

下面列表罗列了我们支持的UBB标签:

功能 写法 解析
字体尺寸 [size={0}]{1}[/size] <span style="font-size: {0}">{1}</span>
颜色 [color={0}]{1}[/color] <span style="color: {0}">{1}</span>
字体加粗 [b]{0}[/b] <strong>{0}</strong>
字体斜体 [i]{0}[/i] <em>{0}</em>
字体带下滑线 [u]{0}[/u] <span style="text-decoration: underline">{0}</span>
字体带删除线 [del]{0}[/del] <span style="text-decoration: line-through">{0}</span>
内容居左显示 [align=left]{0}[/align] <div style="text-align: left">{0}</div>
内容居右显示 [align=right]{0}[/align] <div style="text-align: right">{0}</div>
内容居中显示 [align=center]{0}[/align] <div style="text-align: center">{0}</div>
链接地址 [url={0}]{1}[/url] <a href="{0}" target="_blank">{1}</a>
邮件地址 [email={0}]{1}[/email] <a href="mailto:{0}">{1}</a>
外部图片链接 [img={0}]{1}[/img] <img src="{0}" alt="{1}" />
包含的内容不作任何解析,输入的是如何就显示何种信息 [BanUBB]{0}[/BanUBB] 这个标签其间的任何内容都不作解析,输入何种格式,显示何种格式。
代码关键字高亮显示 [code={0}]{1}[/code] 系统将根据代码的不同,解析成不同的代码
目前支持的代码包含以下:
  • Assembly
  • BatchFile
  • C/C++ 
  • C#
  • CSS
  • HTML
  • INIFile
  • Java
  • JScript
  • Lua
  • MSIL
  • Delphi(Pascal)
  • Perl
  • PHP
  • Python
  • SQL
  • VB.NET
  • VBScript
  • XAML
  • XML

推荐使用的一些UBB写法

下面罗列一些推荐使用的UBB写法:

  • ddd[b]dsf[/b]ddd[i]sddsf[/i]sdds
  • 1ssas[i]23[b]143[/b]243dd[/i]2ss

UBB标签区分大小写么?

不区分,你可以输入大写或着小写的UBB标签,甚至可以输入大小写混合的UBB标签。

比如,你如下方式的输入都是可以被系统识别的

  • sdfdsf[B]sadsad[/b]dsfsdfds
  • sdfdsf[Del]dsfdsfs[/dEl]';;;sdf

 

开始标签与结束标签的配对问题

开始标签和结束标签必须一一配对,而且中间不允许出现类似如下的情况:[b]asadsss[i]sss232sssssss[/b]dddd3[/i]

出现上述情况时,由于 [b] 是最早出现的开始标签,结果就是 [i] 标签不起作用。 [b] 标签其作用。

上述策略会受 UBB 标签嵌套策略的干扰。不过一般结果是,只有一个标签起作用,另外一个不起作用。

 

UBB 标签嵌套的时候如何进行解析的?

何谓标签嵌套?

指UBB标签区域内还有其他UBB标签存在,这种情况就叫UBB标签嵌套。

并不是所有的UBB标签都支持嵌套,嵌套还包括被嵌套和嵌套别人。

完全不支持嵌套效果的UBB标签如下:

  • [BanUBB]{0}[/BanUBB] 强制禁用包含区间的文字不启用UBB效果。所以不存在UBB标签嵌套的问题。
  • [code={0}]{1}[/code] 代码高亮、缩紧处理有一套自己的处理逻辑,期间包含的任何文本,都只会被代码高亮缩紧逻辑所处理,不会被其他UBB标签所处理。
举例:

1、[BanUBB][code=C#]using System;[/code][/BanUBB]
这个由于BanUBB标签比code标签在外层,起作用的标签是BanUBB,也就是期中的文本原样显示。

2、[code=C#][BanUBB]using System;[/BanUBB][/code]
这个由于code标签比BanUBB标签在外层,起作用的解析是代码高亮缩进。

3、[b]1231[BanUBB]ddsgewg[/BanUBB]ssfew[/b]
由于 [BanUBB] 标签被嵌套,导致[b] 标签彻底作废,不起任何作用。



不能嵌套其他UBB标签的标签如下:

  • [img={0}]{1}[/img]
举例:

1、[img=http://community.csdn.net/IndexPage/Images/feedback.gif][b]如何反馈[/b][/img]
上述UBB文本中,[b]标签不起作用. 应为这个标签内的内容被解析成图片提示文字了,这时候输入任何东西。解析效果都看不到。


代码高亮显示支持的一些功能限制:

  • 除了上述列表支持的语言外,其他语言如果写成代码高亮的UBB方式,都将不进行解析,将原样进行显示。
  • 代码高亮显示组件由于是使用的一个第三方的组件,这个组件并没有支持C\C++ 语言,我们暂时也无法支持C\C++ 语言。由于C#语言跟C\C++ 语言很多显示效果是一样的,你可以暂时用 C# 语言来显示 C++ 的语言。



UBB 解析出现问题的反馈:

如果你发现任何UBB解析没有出现你预计的效果,请联系以下邮箱: ghj1976@csdn.net

 

posted @ 2007-08-03 11:06  戏水  阅读(4253)  评论(0编辑  收藏  举报