有人用一个良好的Java执行设置高亮?我在看

  1. javabbcode :什么都看不到
  2. 菲尔-bb :列为阿尔法
  3. 设置高亮parser在Boss源代码。

是否有更好的选择吗?

有帮助吗?

解决方案

目前版本的KefirBB0.6不是列为测试了。我找到KefirBB分析器很容易配置和扩大与我自己的标签:

kefir-bb.sourceforge.net

(这是最好的 设置高亮 分析器我发现迄今为止)

我还找到了这个代码 fyhao.com, 但它不保护你的对不正确地嵌套标签(因此不适合用于分析用户输入输入):

    public static String bbcode(String text) {
        String html = text;

        Map<String,String> bbMap = new HashMap<String , String>();

        bbMap.put("(\r\n|\r|\n|\n\r)", "<br/>");
        bbMap.put("\\[b\\](.+?)\\[/b\\]", "<strong>$1</strong>");
        bbMap.put("\\[i\\](.+?)\\[/i\\]", "<span style='font-style:italic;'>$1</span>");
        bbMap.put("\\[u\\](.+?)\\[/u\\]", "<span style='text-decoration:underline;'>$1</span>");
        bbMap.put("\\[h1\\](.+?)\\[/h1\\]", "<h1>$1</h1>");
        bbMap.put("\\[h2\\](.+?)\\[/h2\\]", "<h2>$1</h2>");
        bbMap.put("\\[h3\\](.+?)\\[/h3\\]", "<h3>$1</h3>");
        bbMap.put("\\[h4\\](.+?)\\[/h4\\]", "<h4>$1</h4>");
        bbMap.put("\\[h5\\](.+?)\\[/h5\\]", "<h5>$1</h5>");
        bbMap.put("\\[h6\\](.+?)\\[/h6\\]", "<h6>$1</h6>");
        bbMap.put("\\[quote\\](.+?)\\[/quote\\]", "<blockquote>$1</blockquote>");
        bbMap.put("\\[p\\](.+?)\\[/p\\]", "<p>$1</p>");
        bbMap.put("\\[p=(.+?),(.+?)\\](.+?)\\[/p\\]", "<p style='text-indent:$1px;line-height:$2%;'>$3</p>");
        bbMap.put("\\[center\\](.+?)\\[/center\\]", "<div align='center'>$1");
        bbMap.put("\\[align=(.+?)\\](.+?)\\[/align\\]", "<div align='$1'>$2");
        bbMap.put("\\[color=(.+?)\\](.+?)\\[/color\\]", "<span style='color:$1;'>$2</span>");
        bbMap.put("\\[size=(.+?)\\](.+?)\\[/size\\]", "<span style='font-size:$1;'>$2</span>");
        bbMap.put("\\[img\\](.+?)\\[/img\\]", "<img src='$1' />");
        bbMap.put("\\[img=(.+?),(.+?)\\](.+?)\\[/img\\]", "<img width='$1' height='$2' src='$3' />");
        bbMap.put("\\[email\\](.+?)\\[/email\\]", "<a href='mailto:$1'>$1</a>");
        bbMap.put("\\[email=(.+?)\\](.+?)\\[/email\\]", "<a href='mailto:$1'>$2</a>");
        bbMap.put("\\[url\\](.+?)\\[/url\\]", "<a href='$1'>$1</a>");
        bbMap.put("\\[url=(.+?)\\](.+?)\\[/url\\]", "<a href='$1'>$2</a>");
        bbMap.put("\\[youtube\\](.+?)\\[/youtube\\]", "<object width='640' height='380'><param name='movie' value='http://www.youtube.com/v/$1'></param><embed src='http://www.youtube.com/v/$1' type='application/x-shockwave-flash' width='640' height='380'></embed></object>");
        bbMap.put("\\[video\\](.+?)\\[/video\\]", "<video src='$1' />");

        for (Map.Entry entry: bbMap.entrySet()) {
            html = html.replaceAll(entry.getKey().toString(), entry.getValue().toString());
        }

        return html;
    }

顺便说一句javaBBcode是部分开放源码项目: JavaBB.

其他提示

我相信一个更好的选择是使用wiki的标记。你可以试试Mylyn wiki文本包我目前使用取得了巨大成功对于我们的文档系统。

然而,这不是一个回答你的问题,如果你尝试的是分析某些论坛的文字,你已经自动:-我

我相信一个更好的选择是使用 wiki标记

除非你有非技术用户是用来设置高亮,是不是非常有兴趣学习的另一个神秘的记格式。

我已经成功地使用经常表现在过去翻之间html,并设置高亮.定义清单的表达,复盖每一个标记,预编译的模式为每一个。然后反复地变换的串与每个表达。工作这两种方法。性能实际上是非常良好,你可以适应自己的方言/扩展很容易。

缺点是,regex并不总是直接的工作。

另一个Java选择为设置高亮的解析和改变to HTML总理变压器。

https://github.com/inversoft/prime-transformer

我们建立这种对某些具体用途,但试图保持它的通用足够的一般消费。我已经有了一个基本的例子是如何把它放在一起着陆页上在想.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top