JS库之Highlight.js的用法详解

官网:https://highlightjs.org/

下载地址:https://highlightjs.org/download/

下载到本地后,新建个页面测试

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、添加对应要显示的内容

<pre>
<code class="python">
  # 读取文件内容
  def fread(self):
    # 如果指针位置大于文件大小,说明是更换了文件
    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)
    #设置指针位置
    self.pos = self.hd.tell()
</code>
</pre> 

这里需要把要显示的内容放入到  <pre><code>这里放内容...</code></pre>  这种格式中

默认的话会智能识别,若是识别不出来是什么语言,就需要在<code>标签中加入class

例如 <pre><code class="java" >xxx</code></pre> 即可

下载的时候可以选择你需要的语言,然后再打包,下载后会发现有个style文件夹,里面放了各种不同的显示颜色,为了看看都是些什么样子

我这里弄了个可以选择样式的页面

代码如下

<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">
  # 读取文件内容
  def fread(self):
    # 如果指针位置大于文件大小,说明是更换了文件
    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)
    #设置指针位置
    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> 

效果图:

总结

以上所述是小编给大家介绍的JS库之Highlight.js的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • JS库 Highlightjs 添加代码行号的实现代码

    Highlightjs是一款优秀的代码高亮Js组件,可以很方便地对各种语言编写的代码添加语法高亮样式. 然而,Highlightjs默认是不包括显示代码行号(Line Number)这一特性的,不过可以通过简单的JS代码和CSS样式表实现对Highlightjs的行号显示功能. 参考博文链接: syntax-highlighting-with-highlightjs Javascript代码: //numbering for pre>code blocks $(function(){ $('pr

  • js使用highlight.js高亮你的代码

    在逛别人的博客的时候,看见别人的代码的例子使用了高亮的语法,无论是java,js还是php等等语言,都会自动的对关键字进行高亮. 于是在前几天自己写了一个博客,遇到code时,自然就想到了别人网站如何漂亮,巴拉巴拉. 开始了正式的捣鼓. 在捣鼓之前去别的网站看了看.这里贴上简书的效果: 其中的关键字,方法名,字符串都有不同的颜色,虽然这个代码高亮得不是很好看,但还过得去.于是去看了看document,发现是这样的: <pre class="hljs javascript">

  • JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】 原创

    本文实例讲述了JavaScript语法高亮库highlight.js用法.分享给大家供大家参考,具体如下: highlight.js是一款基于JavaScript的语法高亮库,目前支持125种编程语言,有63种可供选择的样式,而且能够做到语言自动识别,和目前主流的JS框架都能兼容,可以混合使用. 这款高亮库可以用在博客系统中,其使用方法及其简单,几乎不需要任何学习成本,下面介绍highlight.js的使用. 1.获取highlight.js库,用户可以从官网获取: 地址:https://hig

  • JS库之Highlight.js的用法详解

    官网:https://highlightjs.org/ 下载地址:https://highlightjs.org/download/ 下载到本地后,新建个页面测试 1.在head中加入css和js的引用 <head> <title>highlight</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link r

  • JS产生随机数的几个用法详解

    JS产生随机数的几个用法详解 <script> function GetRandomNum(Min,Max) { var Range = Max - Min; var Rand = Math.random(); return(Min + Math.round(Rand * Range)); } var num = GetRandomNum(1,10); alert(num); </script> var chars = ['0','1','2','3','4','5','6','7

  • JS、jQuery中select的用法详解

    1.js var obj=document.getElementById(selectid); obj.options.length = 0; //清除所有内容 obj.options[index] = new Option("three",3); //更改对应的值 obj.options[index].selected = true; //保持选中状态 obj.add(new Option("4","4")); "文本",&

  • Vue.js 中的 v-show 指令及用法详解

    1 用法 v-show 指令通过改变元素的 css 属性(display)来决定元素是显示还是隐藏. html: <div id="app"> <p v-show="type==='科技'">大数据之下的锦鲤:为什么你的微博总抽不到奖</p> </div> js: <script> var app = new Vue({ el: '#app', data: { type:'技术' } }); </sc

  • 对node.js中render和send的用法详解

    大多数情况下,渲染内容用res.render(),将会根据views中的模板文件进行渲染.如果不想使用views文件夹,想自己设置文件夹名字,那么app.set("views","aaaa"); 如果想写一个快速测试页,当然可以使用res.send().这个函数将根据内容,自动帮我们设置了Content-Type头部和200状态码.send()只能用一次,和end一样.和end不一样在哪里?能够自动设置MIME类型. 如果想使用不同的状态码,可以: res.stat

  • Vue.js slot插槽的作用域插槽用法详解

    目录 没有插槽的情况 Vue2.x 插槽 有插槽的情况 具名插槽 没有slot属性 插槽简单实例应用 作用域插槽 ( 2.1.0 新增 ) Vue3.x 插槽 插槽 作用域插槽 没有插槽的情况 <div id="app"> <child> <span>1111</span> </child> </div> <script> // 注册子组件 Vue.component("child"

  • JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】

    本文实例讲述了JS条形码插件JsBarcode用法.分享给大家供大家参考,具体如下: 这里介绍一下在GitHub生成条形码的js插件→JsBarcode 条码支持的有: CODE128   CODE128 (自动模式切换)   CODE128 A/B/C (强制模式) EAN   EAN-13   EAN-8   EAN-5   EAN-2   UPC (A) CODE39 ITF-14 MSI   MSI10   MSI11   MSI1010   MSI1110 Pharmacode Cod

  • 完美实现js拖拽效果 return false用法详解

    本文为大家分享了完美实现js拖拽效果的具体代码,告诉大家return false的用法,供大家参考,具体内容如下 1.return false可以用来阻止默认事件即系统默认事件.例如通过阻止默认事件,来对textarea中的值进行范围限制(通过限制keycode的数值),也可以自定义在页面中的右键菜单(oncontextmenu). 2.在鼠标移动(mousemove)等事件中,是需要给事件传一个参数,保证程序的正常运行.而为了兼容取事件方法为:var oEvent=ev||event; 3.在

  • js设计模式之单例模式原理与用法详解

    本文实例讲述了js设计模式之单例模式原理与用.分享给大家供大家参考,具体如下: 关于设计模式,我的理解是它是业务代码的提前解决方案.意思就是说在没有真正的业务之前,设计模式就存在了,这个是显然的.设计模式是人长期从事业务总结的具有普通适用性的解决方案. 就个人来讲,写了太多的命令式编程代码,所谓命令式代码就是业务需要怎样就写怎么样的功能,比如添加一个点击事件,比如进行一个验证等扥.写就写了很少站在设计模式的角度或者前人的角度去改善代码. 不给自己找客观原因,最近开始关注设计模式,尝试从设计模式的

  • php数组转换js数组操作及json_encode的用法详解

    对于php,个人感觉能够熟练操作数组和字符串,基本上已经是入门了,php本身有很多操作数组和字符串的函数,今天在做一个功能时,需要用Js动态的创建门店信息,这些信息是要从后台添加的,想来想去,通过php读取数据库,得到数组,然后将数组转化成符合需求js数组,php数组形式为: 复制代码 代码如下: $newArray = array(array('地区'=>'北京地区','items'=>'10','detail'=>array(0=>array('店名'=>'旗舰店','u

随机推荐