默认情况下,优快云的模板已经加载了SyntaxHighlighter的所需文件。
SyntaxHighlighter使用<pre>及<textarea>作为显示代码的容器,但目前优快云好像只支持<textarea>. 此外,优快云的在线编辑功能常常过于主动地为<pre>的内容加上<br />,从而破坏<pre>原有内容,因此,在优快云中不推荐使用<pre>,否则,要花很多时间为其重新整容。
在优快云中使用SyntaxHighlighter, <textarea>的name及class属性是必须指定的。name必须为”code”,class则根据需求设定。上例是C++代码,其class设定为”cpp”. 如果是C#代码,class则应设为”c-sharp”。而rows及cols属性可以不设。SyntaxHighlighter会自动根据页面来设置其值。但在编辑过程中,为这两个属性设定初始值可方便输入代码。我的体会是,如果是在优快云在线写博,可将rows设为10,将cols设为95,可得到较好的编辑环境。
由于不支持汇编的,所以用老罗代码着色器也不错。效果如下:
;********************************************************************
;API函数PathFindExtensionA By G-Spider[月窟]
;PathFindExtension功能:返回形如路径“D:/masm32/examples/exampl05/lcd.lcd.asm"串的后缀串".asm"的头指针
;输入参数:路径指针lpPathBuffer,可以由lpstrFile得到
;返回值:eax
;********************************************************************
PathFindExtension Proc uses ESI lpPathBuffer:DWORD
;----------------------------------------------------------------------
mov eax,lpPathBuffer
XOR ESI,ESI
TEST EAX,EAX
JE SHORT L77F5F625
MOV CL,BYTE PTR DS:[EAX]
TEST CL,CL
JE SHORT L77F5F625
L77F5F603 :
CMP CL,20h ;20H=32D,为ASCII代码SPACE,即查看是不是空格字符
JE SHORT L77F5F62A ;如果是SPACE,则跳转
CMP CL,2Eh ;2EH=46D,为ASCII代码 '.',即查看是否为点号
JE SHORT L77F5F5E5 ;如果是点号,则跳转
CMP CL,5Ch ;5CH=92D,为ASCII代码'/',即查看是否为分隔斜杠
JE SHORT L77F5F62A ;如果是斜杠,则跳转
L77F5F612 :
PUSH EAX
CALL CharNextA
MOV CL,BYTE PTR DS:[EAX]
TEST CL,CL
JNZ SHORT L77F5F603
TEST ESI,ESI
JE SHORT L77F5F625
MOV EAX,ESI
L77F5F625 :
ret
L77F5F62A :
XOR ESI,ESI ;说明'.'点号后面的不是后缀形式,于是将该指针清0,不用再保存这个点的指针值
JMP SHORT L77F5F612
L77F5F5E5 :
MOV ESI,EAX ;若为'.'点符,则用ESI保存其指针值
JMP SHORT L77F5F612 ;接着判断下一位字符
;----------------------------------------------------------------------
PathFindExtension EndP
;********************************************************************