趙亮 馮佳(河南警察學院,河南 鄭州 450000)
?
Moodle平臺語法高亮功能的兩種實現(xiàn)方法對比分析
趙亮馮佳
(河南警察學院,河南鄭州450000)
Moodle平臺是一個開源互聯(lián)網(wǎng)教學平臺,在運行程序設計類課程時,語法高亮功能的缺失嚴重影響平臺的使用效果。鑒于此,基于當前流行的開源代碼語法高亮解決方案,設計了兩種在Moodle中實現(xiàn)語法高亮的方法,并從多方面分析對比兩種方法并得出結論。
Moodle;語法高亮;GeSHi;SyntaxHighlighter
Moodle是由澳大利亞教師Martin Dougiamas創(chuàng)建的一個開源項目,21世紀初在國內(nèi)高校一度風行,但由于中文支持不好,早期版本功能繁雜體驗差,不管在國內(nèi)還是國外都未得到廣泛應用。而隨著版本的迭代更新,3.0版本的Moodle已經(jīng)修復了中文顯示的問題,隨著“微課”“翻轉課堂”的興起,Moodle作為一個功能強大的成熟框架,再次得到教育技術領域的關注[1]。
Moodle是一個基于主要使用PHP構建的Web系統(tǒng),因此可跨平臺運行在支持PHP的服務器上,包括Linux、Windows和MacOS,常見的架構是LAMP(Linux操作系統(tǒng),Web服務程序Apache,數(shù)據(jù)庫MySQL,后端腳本PHP,)如使用Windows Server,Web服務程序也可對應地使用IIS。
Moodle的安裝和部署十分方便簡單,對于熟悉Web Services的用戶,添加一個空白數(shù)據(jù)庫,將Moodle目錄放置于web目錄下即可輕松完成配置。而且bitnami還提供了集成XAMPP等Web套件一鍵安裝發(fā)布的安裝包,大部分高校教師可以輕松完成配置。因此,Moodle在高校應用極其廣泛,很多學校都有自己的站點。
河南警察學院的平臺上線于2015年9月,上線即承擔了《網(wǎng)絡協(xié)議分析》4個中隊的實驗實訓任務,期間遷移過一次服務器,3.0版本的Moodle測試功能中支持數(shù)據(jù)庫的網(wǎng)絡遷移,平臺運行狀況整體良好,在問卷調查中學生滿意度達到95%以上。2015年10月平臺向系內(nèi)教師開放,《電子數(shù)據(jù)的檢驗與分析》(取證)課程的實驗也遷移到本平臺上,2016年1月平臺承擔了《網(wǎng)絡協(xié)議分析》和《取證》課程的期末考試任務。
語法高亮功能,是程序設計中一些高級文本編輯器以及IDE中必備的功能,通過高亮來區(qū)分、操作符、變量、注釋,可以讓代碼的可讀性更好,同時也更加美觀。
圖1分別是記事本、Notepad++和Eclipse中一段java代碼的顯示效果,記事本沒有語法高亮,而后兩者使用了語法高亮,代碼可讀性區(qū)別顯而易見。
而Moodle平臺當承擔程序語言課程時,語法高亮是一個必備的功能,雖然Moodle有著大量的擴展和插件,但是目前并沒有完善的支持語法高亮的插件。語法高亮,在Moodle平臺的應用主要集中在以下幾個方面:①教程、考試等用戶可見的模塊,應有語法高亮的功能;②學生在編輯作業(yè)時輸入的代碼,應有語法高亮的功能;③在線文本編輯器應方便地通過標簽方式高亮編輯后的代碼。
圖1 代碼高亮效果對比
3.1方法一:GeSHi插件方式
GeSHi的全稱是Generic Syntax Highlighter,即通用語法高亮器,項目地址是http://qbnz.com/highlighter。GeSHi有著以下特點。
3.1.1服務端兼容性。GeSHi的編碼完全用PHP。這意味著良好的兼容性,任何支持PHP的服務器都能使用GeSHi。
3.1.2客戶端兼容性。GeSHi兼容XHTML標準的輸出,通過使用CSS樣式表類來高亮顯示。
3.1.3多語言支持。GeSHi目前支持超過100種語言的高亮顯示,包括PHP、HTML、CSS、java、C、Lisp、XML、Perl、Python和ASM等。
3.1.4高度可定制。GeSHi的允許你改變高亮顯示的輸出方式,同樣也是通CSS類來實現(xiàn)的。
3.1.5靈活性。GeSHi基于模塊化設計。關閉不必須的特性,預載CSS樣式表可以顯著提升速度。
GeSHi的插件全部為PHP文件,本質上就是一個PHP類庫,實現(xiàn)web文本的語法高亮方式如下:
其中,include語句載入geshi庫,新建一個geshi對象,其中$source是需要高亮的代碼或者頁面,調用parse_code()函數(shù)就可以完成代碼部分的高亮。
3.1.6GeSHi在Moodle平臺上的實現(xiàn)及部署。根據(jù)需求分析,如果要使Moodle下不同的頁面中的特定部分能夠語法高亮,需要使用Moodle的Filter模塊,F(xiàn)ilter模塊是Moodle提供的使用正則表達式匹配文本,并對匹配到的文本進行相關操作的模塊,語法高亮可以使用Filter功能對特殊關鍵字標簽生效,如[code][/code]標簽的實現(xiàn)如下:
Filter生效后,需要在使用用對相應的代碼部分添加[code][/code]標簽來完成。
3.2方法二:SyntaxHighlighter主題方式
SyntaxHighlighter是一個基于JavaScript的代碼高亮開源插件,由Alex Gorbatchev開發(fā),項目地址是http:// alexgorbatchev.com/SyntaxHighlighter。SyntaxHighlighter也有著以下特點。
3.2.1兼容性。SyntaxHighlighter是在前端層面高亮顯示代碼,所以不存在服務端兼容的問題,前端同樣是支持XHTML標準和CSS。
3.2.2多語言支持。SyntaxHighlighter目前僅提供23種常見的語言的支持。
3.2.3高度可定制。SyntaxHighlighter使用筆刷的方式來實現(xiàn)代碼高亮,定制顯示效果只需要修改筆刷即可。
3.2.4性能。SyntaxHighlighter是前端語言,不占用服務器端資源,性能差別僅在于瀏覽器。
3.2.5SyntaxHighlighter插件組成。SyntaxHighlighter插件包括以下幾個文件夾:Scripts,面存放了所有功能性的JS文件;Src,源文件,里面是shCore和shLegacy這兩個核心JS文件,和Scripts里的一致;Styles,存放了各種主題風格的css文件以及顯示小圖標需要的圖片。
SyntaxHighlighter的核心是shCore文件,語法高亮的功能性函數(shù)都在此文件中定義。此外,Scrpits里還提供了常見的23種筆刷文件,如shBrushCpp,shBrushJava等,用于對不同的語言采用不同的高亮規(guī)則。
因為SyntaxHighlighter是高亮實現(xiàn)機制是基于前端JS,因此部署到Moodle上可以通過修改主題的方式。
3.2.6Moodle主題機制。Moodle主題包含以下幾個目錄及文件,具體功能如表1所示。
表1 Moodle主題包含的目錄/文件及其功能
Moodle主題的工作原理如圖2所示,使用PixCSS等資源的是MVC架構中的view部分,包括Moodle主體頁面及自定義layout頁面,lib.php提供自定義工具函數(shù),config.php配置主題,最終用戶可以通過setting.php完成主體的設置及個性化。由此可知,在主題中配置SyntaxHighlighter,shCore.js和JS筆刷文件需要放置于javascript目錄下,CSS文件需要放置于style目錄下,并在Config.php中完成JS和CSS的載入:
圖2 Moodle主題生效機制
完成以上工作后,還需要在各種有需求的view頁面加入以下JS代碼:
4兩種高亮實現(xiàn)方法的對比分析
本文嘗試的2種方法均可以完成Moodle平臺上語法高亮的需求,方便程序設計類課程的課程在Moodle平臺上線,表為2種方法各自的綜合對比。
總之,使用前端JS解決方案的SyntaxHighlighter優(yōu)于在后端使用php的GeSHi,雖然使用
標簽存在沖突的可能性,但現(xiàn)階段瀏覽器對JS支持良好的環(huán)境下,使用SyntaxHighlighter無疑是一種更加便捷、高效的代碼高亮方法。
表2 2種高亮實現(xiàn)方法的綜合對比
[1]陳肖庚,王頂明.MOOC的發(fā)展歷程與主要特征分析[J].現(xiàn)代教育技術,2013(11):5-10.
Comparison and Analysis of Two Methods to Realize the Syntax Highlighting Function of Moodle Platform
Zhao LiangFeng Jia
(Henan Police College,Zhengzhou Henan 450000)Moodle is an open-source internet education platform,When running the program design courses,the lack of syntax highlighting features a serious impact on the use of the platform.In view of this,based on the current popular open source code syntax highlighting solution,the two in Moodle syntax highlighting method were designed,and analyzed and compared the two methods from many aspects,and draw the conclusion.
Moodle;syntax highlighting;GeSHi;SyntaxHighlighter
TP311.52
A
1003-5168(2016)04-0020-03
2016-03-12
馮佳(1985-),男,碩士,工程師,研究方向:交通管理,ITS技術;趙亮(1987-),男,碩士,研究方向:信息安全,網(wǎng)絡空間安全。
猜你喜歡大狗熊在睡覺 大灰狼畫報·益智版(2024年3期)2024-12-09 00:00:00也談詩的“功能” 中華詩詞(2022年6期)2022-12-31 06:41:24刷新生活的頁面 保健醫(yī)苑(2022年1期)2022-08-30 08:39:14關于非首都功能疏解的幾點思考 中國科技論壇(2017年7期)2017-07-25 08:49:53可能是方法不對 意林原創(chuàng)版(2016年10期)2016-11-25 10:28:30用對方法才能瘦 Coco薇(2016年2期)2016-03-22 02:42:52四大方法 教你不再“坐以待病”! Coco薇(2015年1期)2015-08-13 02:47:34捕魚 小雪花·成長指南(2015年4期)2015-05-19 14:47:56中西醫(yī)結合治療甲狀腺功能亢進癥31例 中國中醫(yī)藥現(xiàn)代遠程教育(2014年22期)2014-03-01 04:32:55辨證施護在輕度認知功能損害中的應用 中國中醫(yī)藥現(xiàn)代遠程教育(2014年16期)2014-03-01 04:28:54