Board logo

标题: [技术讨论] 代码高亮 以及 Markdown 风格转 BBCode [打印本页]

作者: 523066680    时间: 2017-5-9 08:45     标题: 代码高亮 以及 Markdown 风格转 BBCode

语法高亮按标题级别缩进

Perl 转换代码(然并卵)
配合 Highlight Code Converter : our $highlight = 'D:/Lib/highlight-3.36-x64/highlight.exe';
Markdown 稿件
转换效果:[连载]Perl 一句话代码示例 翻译+整理 - Chapter 2. 换行和间隔符


作者: CrLf    时间: 2017-5-9 09:50

本帖最后由 CrLf 于 2017-5-9 10:58 编辑

为了能显示 tab 字符,之前已经把 code 部分改用 <pre> 标签了,所以高亮插件未必能用诶
当我没说
作者: codegay    时间: 2017-5-9 18:08

回复 2# CrLf


   其它网站也是用的pre的。应该是可以的。
作者: codegay    时间: 2017-5-9 18:10

我只需要支持markdown。
高亮可以没有。
作者: 523066680    时间: 2017-5-9 22:36

本帖最后由 523066680 于 2017-5-9 22:52 编辑

发现 有个 perltidy工具可以直接将代码转换为语法高亮的HTML,再写个脚本转BBCODE,效果不错,但 perltidy 只适合 Perl:

use v5.5;
# & test <> " ?
sub binary
{
    my $n = shift;
    return $n if $n == 0 || $n == 1;
    my $k = int($n / 2);
    my $b = $n % 2;
    my $E = binary($k);
    return $E . $b;
}
print binary(5);
[Finished in 0.3s]
作者: 老刘1号    时间: 2017-5-10 13:07

test

@echo off
echo Hollo,world
Pause >NUL
作者: 523066680    时间: 2017-5-10 14:52     标题: Highlight Code Converter 使用示例

本帖最后由 523066680 于 2017-5-12 10:55 编辑

部分参数
  1. -I, --include-style      在HTML文件中保留CSS样式表(不生成CSS文件)
  2. -k, --font=<font>        设置字体
  3. -K, --font-size=<num?>   设置字号
  4. -l, --line-numbers       带行号
  5. -m, --line-number-start=<cnt>   行号起始值
  6. -s, --style=<style>       指定字体
  7. -t, --replace-tabs=<num>  将 tab 替换为指定数量的空格
  8. -u, --encoding=<enc>      指定输入输出的编码类型
  9. --inline-css              将 css style 属性嵌入 <span> 标签,而不是独立列出
复制代码
示例:
  1. highlight -K2 -Sperl -OBBCode -ssourceforge ./temp.pl -o BBCode.txt
复制代码

use IO::Handle;
STDOUT->autoflush(1);

my @order = func( 1 );
permute([qw/a b c d e f/], \@order);

sub func
{
    my $n = shift;
    my $div = 1;
    my @odo;
    while ( $n != 0 )
    {
        $mod = $n % $div;
        $n = int($n/$div);
        unshift @odo, $mod;
        $div++;
    }
    return @odo;
}

sub permute
{
    my ($ele, $ord) = @_;
    my $get;
    my @result;
   
    for my $idx ( @$ord )
    {
        $get = splice( @$ele, $idx, 1 );
        push @result, $get;
    }

    while ( @$ele )
    {
        push @result, shift @$ele;
    }

    print @result;
}

作者: 523066680    时间: 2017-5-12 09:08     标题: 根据 title 级别生成不同层次的缩进(markdown 中的title)

根据 title 级别生成不同层次的缩进(markdown 中的title)
#T1
abc
##T20
abc
##T21
def
###T3
abc
abc
#T1
test
##T2
abc
#T1
abc



T1T1T1[Finished in 0.1s]

[attach]10623[/attach]
[attach]10624[/attach]
作者: codegay    时间: 2017-5-12 09:17

看不懂看不懂。再见。
作者: 523066680    时间: 2017-5-12 10:09

回复 9# codegay


    Posting Topics That Nobody Else Can Read.
作者: 老刘1号    时间: 2017-6-1 12:54

本帖最后由 老刘1号 于 2017-6-1 19:41 编辑

自己写了个小工具,效果不怎么样……
测试(蜜汁高亮):http://www.bathome.net/thread-43845-1-1.html
感觉应该限定单词边界……现在是直接关键字套标签.
BUG多多……
作者: 523066680    时间: 2017-6-5 20:18

回复 11# 老刘1号


    应设置等宽字体
  1. [font=consolas][/font]
复制代码

作者: 老刘1号    时间: 2017-6-5 22:58

回复 12# 523066680


    加上感觉怪怪的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2