JS庫(kù)之Highlight.js的用法詳解
官網(wǎng):https://highlightjs.org/
下載地址:https://highlightjs.org/download/
下載到本地后,新建個(gè)頁(yè)面測(cè)試
1、在head中加入css和js的引用
<head> <title>highlight</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link rel="stylesheet" href="styles/default.css" rel="external nofollow" rel="external nofollow" > <script src="highlight.pack.js"></script> <script>hljs.initHighlightingOnLoad();</script> </head>
2、添加對(duì)應(yīng)要顯示的內(nèi)容
<pre> <code class="python"> # 讀取文件內(nèi)容 def fread(self): # 如果指針位置大于文件大小,說(shuō)明是更換了文件 self.filename = self.getLogPath() if not os.path.isfile(self.filename): while not self.checkfile() : time.sleep(5) self.filename = self.getLogPath() self.fclose() self.fopen() self.pos = 0 self.hd.seek(self.pos,0) fline = self.hd.readline() self.pos = self.hd.tell() return fline.replace("\n","") # 將文件指針定位到文件尾部 def feof(self): self.fopen() # 定位到文件末尾 self.hd.seek(0,2) #設(shè)置指針位置 self.pos = self.hd.tell() </code> </pre>
這里需要把要顯示的內(nèi)容放入到 <pre><code>這里放內(nèi)容...</code></pre> 這種格式中
默認(rèn)的話會(huì)智能識(shí)別,若是識(shí)別不出來(lái)是什么語(yǔ)言,就需要在<code>標(biāo)簽中加入class
例如 <pre><code class="java" >xxx</code></pre>
即可
下載的時(shí)候可以選擇你需要的語(yǔ)言,然后再打包,下載后會(huì)發(fā)現(xiàn)有個(gè)style文件夾,里面放了各種不同的顯示顏色,為了看看都是些什么樣子
我這里弄了個(gè)可以選擇樣式的頁(yè)面
代碼如下
<html> <head> <title>highlight</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link rel="stylesheet" href="styles/default.css" rel="external nofollow" rel="external nofollow" > <script src="highlight.pack.js"></script> <script>hljs.initHighlightingOnLoad();</script> </head> <body> <div id="changeStyleSelect"></div> PHP <hr> <pre><code class="php"> class Test { private $name; private $age; public function __construct($array) { $this->name = $array['name']; $this->age = $array['age']; } public function getName() { return $this->name; } public function setName($name) { $this->name = $name; } public function getAge() { return $this->age; } public function show() { printf('my name is %s,age is %d',$this->name,$this->age); } } </code></pre> javascript <hr> <pre> <code class="javascript"> test = { name : function () { return 'hello'; }, age : function () { return 13; } } </code> </pre> python <hr> <pre> <code class="python"> # 讀取文件內(nèi)容 def fread(self): # 如果指針位置大于文件大小,說(shuō)明是更換了文件 self.filename = self.getLogPath() if not os.path.isfile(self.filename): while not self.checkfile() : time.sleep(5) self.filename = self.getLogPath() self.fclose() self.fopen() self.pos = 0 self.hd.seek(self.pos,0) fline = self.hd.readline() self.pos = self.hd.tell() return fline.replace("\n","") # 將文件指針定位到文件尾部 def feof(self): self.fopen() # 定位到文件末尾 self.hd.seek(0,2) #設(shè)置指針位置 self.pos = self.hd.tell() </code> </pre> java <hr> <pre> <code class="java"> package l2f.gameserver.model; import java.util.ArrayList; public abstract class L2Character extends L2Object { public static final Short ABNORMAL_EFFECT_BLEEDING = 0x0_0_0_1; // not sure public void moveTo(int x, int y, int z) { _ai = null; _log.warning("Should not be called"); if (1 > 5) { return; } } /** Task of AI notification */ @SuppressWarnings( { "nls", "unqualified-field-access", "boxing" }) public class NotifyAITask implements Runnable { private final CtrlEvent _evt; List mList = new ArrayList() public void run() { try { getAI().notifyEvent(_evt, _evt.class, null); } catch (Throwable t) { t.printStackTrace(); } } } } </code> </pre> <script> styleArr = ["agate.css","androidstudio.css","arduino-light.css","arta.css","ascetic.css","atelier-cave-dark.css","atelier-cave-light.css","atelier-dune-dark.css","atelier-dune-light.css","atelier-estuary-dark.css","atelier-estuary-light.css","atelier-forest-dark.css","atelier-forest-light.css","atelier-heath-dark.css","atelier-heath-light.css","atelier-lakeside-dark.css","atelier-lakeside-light.css","atelier-plateau-dark.css","atelier-plateau-light.css","atelier-savanna-dark.css","atelier-savanna-light.css","atelier-seaside-dark.css","atelier-seaside-light.css","atelier-sulphurpool-dark.css","atelier-sulphurpool-light.css","brown-paper.css","codepen-embed.css","color-brewer.css","dark.css","darkula.css","default.css","docco.css","dracula.css","far.css","foundation.css","github.css","github-gist.css","googlecode.css","grayscale.css","gruvbox-dark.css","gruvbox-light.css","hopscotch.css","hybrid.css","idea.css","ir-black.css","kimbie.dark.css","kimbie.light.css","magula.css","mono-blue.css","monokai.css","monokai-sublime.css","obsidian.css","paraiso-dark.css","paraiso-light.css","pojoaque.css","purebasic.css","qtcreator_dark.css","qtcreator_light.css","railscasts.css","rainbow.css","school-book.css","solarized-dark.css","solarized-light.css","sunburst.css","tomorrow.css","tomorrow-night.css","tomorrow-night-blue.css","tomorrow-night-bright.css","tomorrow-night-eighties.css","vs.css","xcode.css","xt256.css","zenburn.css"]; selectHtml = []; selectHtml.push('<select id="changeStyle">'); for(i in styleArr) { OptionValue = styleArr[i]; selectHtml.push('<option value="' + OptionValue +'" >'+ OptionValue +'</option>'); } selectHtml.push('</select>'); selectHtmlString = selectHtml.join(""); document.getElementById('changeStyleSelect').innerHTML = selectHtmlString; obj = document.getElementById('changeStyle'); obj.addEventListener("change",function(event){ var value = this.options[this.options.selectedIndex].value; l = document.createElement('link'); l.setAttribute('href','styles/'+value); l.setAttribute('rel','stylesheet'); document.head.appendChild(l); }); </script> </body> </html>
效果圖:
總結(jié)
以上所述是小編給大家介紹的JS庫(kù)之Highlight.js的用法詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
HTML+JavaScript實(shí)現(xiàn)掃雷小游戲
這篇文章主要為大家詳細(xì)介紹了HTML+JavaScript實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09JavaScript中實(shí)現(xiàn)跨標(biāo)簽頁(yè)通信的方法詳解
跨標(biāo)簽頁(yè)通信是指在瀏覽器中的不同標(biāo)簽頁(yè)之間進(jìn)行數(shù)據(jù)傳遞和通信的過(guò)程,這篇文章為大家介紹了一下常見的跨標(biāo)簽頁(yè)通信方式,感興趣的小伙伴可以了解下2023-11-11eslint+prettier統(tǒng)一代碼風(fēng)格的實(shí)現(xiàn)方法
這篇文章主要介紹了eslint+prettier 統(tǒng)一代碼風(fēng)格的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07JavaScript中的立即執(zhí)行函數(shù)表達(dá)式介紹
這篇文章主要介紹了JavaScript中的立即執(zhí)行函數(shù)表達(dá)式介紹,本文著重講解了什么是立即調(diào)用函數(shù)表達(dá)式,需要的朋友可以參考下2015-03-03詳解webpack 入門總結(jié)和實(shí)踐(按需異步加載,css單獨(dú)打包,生成多個(gè)入口文件)
本篇文章主要介紹了webpack 入門總結(jié)和實(shí)踐(按需異步加載,css單獨(dú)打包,生成多個(gè)入口文件) ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06