标签: bbcode

通过删除额外/冗余格式标记来清理HTML

我一直在使用CKEditor wysiwyg编辑器建立一个网站,允许用户使用HTML编辑器添加一些注释.我最终在我的数据库中有一些非常冗余的嵌套HTML代码,这会减慢查看/编辑这些注释的速度.

我的评论看起来像这样(这是一个非常小的例子.我有超过100个嵌套标签的评论):

<p>
 <strong>
  <span style="font-size: 14px">
   <span style="color: #006400">
     <span style="font-size: 14px">
      <span style="font-size: 16px">
       <span style="color: #006400">
        <span style="font-size: 14px">
         <span style="font-size: 16px">
          <span style="color: #006400">This is a </span>
         </span>
        </span>
       </span>
      </span>
     </span>
    </span>
    <span style="color: #006400">
     <span style="font-size: 16px">
      <span style="color: #b22222">Test</span>
     </span>
    </span>
   </span>
  </span>
 </strong>
</p>
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 是否有任何库/代码/软件可以对HTML代码进行智能(即格式识别)清理,删除所有对格式没有影响的冗余标记(因为它们被内部标记覆盖)?我尝试了很多现有的在线解决方案(例如HTML Tidy).他们都没有做我想做的事.

  • 如果没有,我需要编写一些HTML解析和清理代码.我打算使用PHP Simple HTML DOM遍历HTML树并找到所有无效的标签.您是否建议任何其他更适合我的HTML解析器?

谢谢

.

更新:

我编写了一些代码来分析我的HTML代码.我拥有的所有HTML标签都是:

  • <span>用于font-size和/或的样式color
  • <font>与属性color和/或size
  • <a> …

html php dom bbcode html-parsing

33
推荐指数
3
解决办法
2万
查看次数

你能推荐一个非HTML WYSIWYG网页编辑器吗?

我正在寻找一个好的WYSIWYG编辑器的市场.我的用户打算写的东西就像我现在在Stack Overflow上做的那样,但是他们不像SO用户那样精通技术,所以我需要一个WYSIWYG编辑器而不是这个Markdown编辑器.

功能方面,我希望编辑器具有与此编辑器具有的按钮大致相同的功能,即粗体/斜体/链接/引号/列表(编号/项目符号)/标题.更多功能当然很有趣.

我希望编辑器不要保存为HTML,而是使用其他格式,如BBCode或Markdown.这是因为我想尽量减少用户将脚本或任何其他恶意注入数据库的可能性.

有许多不同的WYSIWYG编辑器,如FCKeditor,TinyMCE等,但不幸的是大多数都保存在HTML中.

虽然TinyMCE有BBCode模式,但我读到TinyMCE 有点臃肿.我偶然发现Markdown WYSIWYG项目似乎或多或少死了.

你有其他建议吗?

如果编辑器是基于jQuery构建的,这是一个加分.

markdown wysiwyg editor bbcode

27
推荐指数
3
解决办法
7850
查看次数

Java BBCode库

有没有人使用过BBCode的优秀Java实现?我在看

  1. javabbcode:没什么好看的
  2. kefir-bb:列为alpha
  3. JBoss源代码中的BBcode解析器.

还有更好的选择吗?

java parsing bbcode

17
推荐指数
1
解决办法
1万
查看次数

有没有办法在JavaScript中使用ungreedy匹配正则表达式?

我想知道是否有一种方法可以在JavaScript中使用ungreedy匹配?我尝试了U modifer,但它似乎不起作用.

我想用JavaScript编写一个小的BBCode解析器,但是如果没有ungreedy匹配,就不可能(至少就我所知)做这样的事情:

'[b]one[/b] two [b]three[/b]'.replace( /\[b\](.*)\[\/b\]/, '<b>$1</b>' );
Run Code Online (Sandbox Code Playgroud)

但是这样的替换会很好,因为那时不需要检查HTML有效性.未封闭的标记将保留简单的文本.

javascript regex bbcode non-greedy

16
推荐指数
1
解决办法
5558
查看次数

格式丰富的内容的标记语言是什么?

当您开发基于Web的应用程序并且希望允许来自用户的格式丰富的文本时,您必须选择如何允许该输入.已经创建了许多不同的标记语言,因为它可能更难以清理HTML.

各种不同标记语言的优点和缺点如下:

或者换句话说,在选择使用特定标记语言时,您会考虑哪些因素.

html formatting markup markdown bbcode

12
推荐指数
2
解决办法
1330
查看次数

将phpBB BBCode帖子转换为Markdown

我有一个phpBB2论坛,帖子存储在BBCode中.论坛帖子在数据库中存储如下:

[quote:e5adceb8e8][quote:e5adceb8e8="Person 2"][quote:e5adceb8e8="Person 3"]Nested quote[/quote:e5adceb8e8]Another nested quote[/quote:e5adceb8e8]Some text[/quote:e5adceb8e8]

[b:e5adceb8e8]Some bold text[/b:e5adceb8e8]
[i:e5adceb8e8]italic text[/i:e5adceb8e8]
[u:e5adceb8e8]underlined text[/u:e5adceb8e8]

[code:1:e5adceb8e8]print &#40;&quot;hello world!&quot;&#41;;[/code:1:e5adceb8e8]

[img:e5adceb8e8]http://www.google.co.nz/intl/en_com/images/logo_plain.png[/img:e5adceb8e8]

[url]http://google.com[/url]

[url=http://google.com]Google[/url]

[color=darkred:e5adceb8e8]
Coloured text[/color:e5adceb8e8]

[size=18:e5adceb8e8]
Big text[/size:e5adceb8e8]

[list:e5adceb8e8]
List Item 1
List Item 2
[/list:u:e5adceb8e8]

[list:e5adceb8e8]
[*:e5adceb8e8]List Item 1
[*:e5adceb8e8]List Item 2
[/list:u:e5adceb8e8]

[list=1:e5adceb8e8]
[*:e5adceb8e8]List Item 1
[*:e5adceb8e8]List Item 2
[/list:o:e5adceb8e8]

[list=a:e5adceb8e8]
[*:e5adceb8e8]List Item 1
[*:e5adceb8e8]List Item 2
[/list:o:e5adceb8e8]
Run Code Online (Sandbox Code Playgroud)

我正在使用任何可以帮助我将此语法转换为Markdown的工具.理想情况下我只想要转换的[b],[i],[quote],[url],[code],和[list]标签.最好将[img]标记转换为Markdown中的链接,以避免页面调整大小问题.任何纯粹的表示元素(如[color][size]标签)都将转换为纯文本.

markdown phpbb bbcode

12
推荐指数
1
解决办法
2083
查看次数

任何好的JavaScript BBCode解析器?

目前我正在解析bbcode服务器端,但我想像这个网站一样显示预览.

如果我使用ajax处理bbcode服务器端,它有点滞后,所以我认为做客户端,只显示预览.

你们知道用javascript编写的任何bbcode解析器吗?

javascript parsing bbcode

11
推荐指数
2
解决办法
1万
查看次数

解析bbcode的最佳方法

我想在php网站上使用bbcode过滤器.(我正在使用cakephp,它将是一个bbcode助手)我有一些要求.

Bbcodes可以嵌套.所以这样的事情是有效的.

[block]  
    [block]  
    [/block]  
    [block]  
        [block]  
        [/block]  
    [/block]  
[/block]  
Run Code Online (Sandbox Code Playgroud)

Bbcodes可以有0个或更多参数.

例:

[video: url="url", width="500", height="500"]Title[/video]
Run Code Online (Sandbox Code Playgroud)

Bbcodes可能有多种行为.

让我们说,[url]text[/url]将被转换为[url:url="text"]text[/url] 或视频bbcode将能够在youtube,dailymotion ....

我认为它涵盖了我的大部分需求.我总是用正则表达式做点什么.但我最大的问题是匹配参数.事实上,我得到嵌套的bbcode工作和bbcode 0参数.但是,当我为参数添加正则表达式匹配时,它与嵌套的bbcode无法正确匹配.

"\[($tag)(=.*)\"\](.*)\[\/\1\]" //它不是.*但是非gready matcher

我现在没有完整的正则表达式,但我有一些看起来像那样的东西(上图).

那么有没有办法有效地匹配bbcode与正则表达式或其他东西.我唯一能想到的是使用访问者模式并以这种方式将我的文本与每个可能的标签分开,我可以对文本解析有更多的控制权,我可以验证我的文档,所以如果输入文本没有没有有效的bbcode.在保存任何内容之前,我可以通过错误通知用户.

我会使用sablecc来创建我的文本解析器. http://sablecc.org/

有什么好主意吗?或任何可能导致高效灵活的bbcode解析器的东西?

谢谢,抱歉我的英文不好......

php cakephp sablecc bbcode

9
推荐指数
3
解决办法
1万
查看次数

tinymce和list-items的问题

我在使用bbcodeplugin和list-items时遇到问题.虽然列表正在按照我想要的bbcode进行安全保护,但在重新打开和编辑文本时,tinymce会在列表中添加额外的标记,以便像

<ul>
<li>one</li>
</ul> 
Run Code Online (Sandbox Code Playgroud)

<ul>
<ul><li>one</li></ul>
</ul>
Run Code Online (Sandbox Code Playgroud)

所以每个<li>项目都包含一个<ul>我想要防止的附加项目.

我怎么可能排除所有列表项被tinymce-javascript修改?


这个问题似乎与"在插入代码时添加BR"这个问题有关,我现在在研究期间曾多次看到这个问题.因为不仅通过tinymce添加了ul标签,而且还添加了br标签.

拜托,有人可以给我任何提示吗?

tinymce list bbcode

9
推荐指数
1
解决办法
4712
查看次数

解析PHPBB3的BB代码

希望使用PHPBB3的函数解析PHP中的BB代码.我到目前为止:

<?php
    include_once("../../forum/includes/functions_content.php");

    $text = "[b]bold text here[/b] not bold here";
    $uid = $bitfield = $options = '';

    echo("parsing");
    echo generate_text_for_storage($text, $uid, $bitfield, $options, true, true, true);
    echo("finished");
?>
Run Code Online (Sandbox Code Playgroud)

然而它回声parsing但在此之后不会继续.我期待输出符合以下几点:

<b>bold text here</b> not bold here
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢!

编辑

没有答案仍然有效.我正在寻找一个独立的 php页面,它使用PHPBB3的BBCode解析器将BB代码字符串转换为HTML字符串.

php bbcode phpbb3

8
推荐指数
1
解决办法
2553
查看次数