CSDN 源码格式化测试

来源:互联网 发布:软件系统的定义 编辑:程序博客网 时间:2024/05/21 10:20

默认情况下,CSDN的模板已经加载了SyntaxHighlighter的所需文件。

SyntaxHighlighter使用<pre>及<textarea>作为显示代码的容器,但目前CSDN好像只支持<textarea>. 此外,CSDN的在线编辑功能常常过于主动地为<pre>的内容加上<br />,从而破坏<pre>原有内容,因此,在CSDN中不推荐使用<pre>,否则,要花很多时间为其重新整容。

在CSDN中使用SyntaxHighlighter, <textarea>的name及class属性是必须指定的。name必须为”code”,class则根据需求设定。上例是C++代码,其class设定为”cpp”. 如果是C#代码,class则应设为”c-sharp”。而rows及cols属性可以不设。SyntaxHighlighter会自动根据页面来设置其值。但在编辑过程中,为这两个属性设定初始值可方便输入代码。我的体会是,如果是在CSDN在线写博,可将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
;********************************************************************