Prismjs:一個高質量的語法高亮庫

語法高亮在前端開發中扮演了重要的角色,常用來在博客、文檔、代碼分享平台中突出顯示關鍵字和語法結構 ,以便更好地展示代碼。Prismjs 是一個輕量級的、可擴展的、高質量的語法高亮庫。

一、Prismjs框架

Prismjs 能夠處理多種語言和文本格式, 如HTML、CSS、JavaScript、Markup 和 HTTP 等。它的核心包含了語法高亮和錯誤提示等基本功能,並提供了多種插件和主題,以供擴展和個性化定製。Prismjs框架的使用十分簡單,只需要在html文件中引入prism.js, 並在需要高亮顯示的塊級元素中使用pre和code標籤就行。


  
  
<hr/>
body { background-color: #fff; }
console.log("Hello, world!");

二、Prismjs代碼美化仿mac

代碼的視覺效果需要滿足更高的要求,Prismjs 的可擴展性可以大大提高美化代碼的效果。比如我們可以使用 「prism-material-themes」 模仿Mac的主題美化代碼:


  
  

三、Prismjs行號

行號是更好的代碼索引和辨識,在代碼塊前加入行號更是一大亮點,十分實用。Prismjs建議我們添加插件 「prism-line-numbers」,即可輕鬆實現行號:


  
  
  
  
  
console.log("This is a test.")

四、Prismjs特定語言

Prismjs支持許多具有語法結構的語言,例如我們可以使用 “prism-python” 插件支持Python語言:


  
  
  
  
  
  
  
# This is a test.
print("Hello, World!")

五、Prismjs老是卡住

Prismjs使用起來很簡單,但對於一些較大的代碼塊可能會導致讀取閃爍或凍結的問題,這些問題可能會更加明顯在舊版的瀏覽器中。為了解決這個問題,我們應該使用異步加載的方式初始化 Prismjs,並且懶加載代碼模塊,以免代碼塊過大導致初始化時卡頓。


  
  

六、Prismjs和highlight

Prismjs 和 highlight.js 都是常用於代碼高亮的js庫,它們的技術實現和代碼結構都很相似。但是,Prismjs比highlight.js具有更好的性能和更少的依賴關係,考慮到不同的實際情況,選擇哪一種庫是個人的決定。

七、Prismjs做自定義指令

Prismjs支持自定義指令,可用於擴展當前語法高亮的庫。在代碼塊添加指令 data-prism-src 和 data-prism-async 可以自定義加載指定內容和異步加載。


  

八、Prismjs顯示行號和語言

顯示行號和語言需要在css中添加指定樣式


  pre.line-numbers { position: relative; padding-left: 3.8em; counter-reset: linenumber; }
  pre.line-numbers > code { position: relative; }
  pre.line-numbers > code:before { content: counter(linenumber); counter-increment: linenumber; position: absolute; left: -3.6em; top: 0px; color: #ccc; font-size: 0.8em; }
  .token { font-weight: bold; color: #1e88e5; }
  .token.operator { color: #1e88e5; }
  .token.comment, .token.prolog, .token.doctype, .token.cdata { color: #1e88e5; }
  .token.string, .token.attr-value { color: #43a047; }
  .token.punctuation { color: #757575; }
  .language-css .token.property, .language-css .token.boolean, .language-css .token.number { color: #f4511e; }
  .language-css .token.selector { color: #9a4b9d; }
  .language-css .token.keyword { color: #1e88e5; }
  .token.tag .token.tag { color: #555; }

再次強調,Prismjs是一個輕量級的高質量的語法高亮庫,它可以輕鬆地解決我們在項目中的編碼高亮問題,並提供了豐富的擴展插件和主題,讓我們可以更加方便地打造自己的代碼美化。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/300383.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-29 12:51
下一篇 2024-12-29 12:51

相關推薦

  • Python語法大全解析

    本文旨在全面闡述Python語法,並提供相關代碼示例,幫助讀者更好地理解Python語言。 一、基礎語法 1、Python的注釋方式 # 這是單行注釋 “”” 這是多行注釋,可以注…

    編程 2025-04-29
  • Python中複數的語法

    本文將從多個方面對Python中複數的語法進行詳細的闡述。Python中的複數是指具有實部和虛部的數,其中實部和虛部都是浮點數。它們可以用「實數+虛數j」的形式表示。例如,3 + …

    編程 2025-04-29
  • parent.$.dialog是什麼技術的語法

    parent.$.dialog是一種基於jQuery插件的彈出式對話框技術,它提供了一個方便快捷的方式來創建各種類型和樣式的彈出式對話框。它是對於在網站開發中常見的彈窗、提示框等交…

    編程 2025-04-28
  • 編譯原理語法分析思維導圖

    本文將從以下幾個方面詳細闡述編譯原理語法分析思維導圖: 一、語法分析介紹 1.1 語法分析的定義 語法分析是編譯器中將輸入的字符流轉換成抽象語法樹的一個過程。該過程的目的是確保輸入…

    編程 2025-04-27
  • Python進階語法全面解析

    Python語言作為一種廣泛應用於人工智能、數據分析、雲計算等多個領域的編程語言,擁有廣泛的社區和強大的生態系統。Python提供了基本語法以及常用函數和模塊,用於解決大量常規編程…

    編程 2025-04-27
  • LL(1)語法分析器:從語法規則到語法樹

    在編譯原理中,語法分析是編譯器的一個重要階段。語法分析器的作用是將代碼轉換成語法樹,以便後續階段進行處理。LL(1)語法分析器是語法分析器的一種,它採用的是自頂向下的分析方法,可以…

    編程 2025-04-25
  • 深入分析Java Foreach語法

    一、Foreach介紹 Java的Foreach語法是一種迭代語法,被廣泛應用於遍曆數組或集合。其優點是在代碼數量和可讀性方面均佔有優勢,不需要額外定義計數器等變量,便可輕鬆遍歷集…

    編程 2025-04-24
  • VSCode代碼高亮實現原理

    一、初始:什麼是VSCode代碼高亮 VSCode是一款非常流行的代碼編輯器,擁有強大的開發能力和豐富的插件生態。其中最為重要的功能之一便是代碼高亮。 VSCode的代碼高亮是指在…

    編程 2025-04-24
  • 深入解析Mustache語法

    Mustache是一個輕量級、理性化的語法模板引擎,被廣泛應用於各種編程語言中,例如JavaScript、Python、Ruby等。本文章將通過多個方面,詳細闡述Mustache語…

    編程 2025-04-23
  • InfluxDB 語法詳解

    一、基本概念 InfluxDB 是一款開源的分佈式時序數據庫,採用 Go 語言編寫。在 InfluxDB 中,數據被組織為不同的時間序列(time series),每個時間序列由一…

    編程 2025-04-23

發表回復

登錄後才能評論