在vue项目中使用prismjs(网页代码高亮插件)

在vue项目中使用prismjs

什么是prismjs

prismjs是一款代码高亮美化插件,在一些技术博客类的网站中需要展示代码时,可以使用它类似与markdown的代码块,
官网链接:https://prismjs.com/index.html

怎么使用

1、安装插件
//安装prismjs 插件
npm install prismjs -S

//安装prismjs的编译器插件
npm install babel-plugin-prismjs -D
2、配置插件

在项目下找到babel.config.js
在module.exports中的plugins追加以下配置,如果原本没有plugins可以手动添加

 module.exports = {
  plugins: [
    ["prismjs", {
      "languages": ["javascript", "css", "markup"],
      "plugins": ["line-numbers"], //配置显示行号插件
      "theme": "okaidia", //主体名称
      "css": true
    }]
  ]
}
3、在项目中引入模块
import Prism from "prismjs";

在钩子函数mounted中添加

Prism.highlightAll()
4、在需要美化的代码块中添加class

注意这里的html结构是pre包裹着code

类名的含义

line-numbers显示行号
language-xxxlang-xxx选择编程语言,如:language-js

<pre>
    <code class="language-js line-numbers" >
        let msg = "这是一段代码演示"
        console.log(msg)
    </code>
</pre>

效果如下:
在这里插入图片描述

类名对照表

横杠-前的是语言,横杠后的是对应类名:
如:JavaScript - javascript, js
对应的类名是:language-jsorlanguage-javascript,以此类推

Markup - markup, html, xml, svg, mathml, ssml, atom, rss
CSS - css
C-like - clike
JavaScript - javascript, js
ABAP - abap
ABNF - abnf
ActionScript - actionscript
Ada - ada
Agda - agda
AL - al
ANTLR4 - antlr4, g4
Apache Configuration - apacheconf
APL - apl
AppleScript - applescript
AQL - aql
Arduino - arduino
ARFF - arff
AsciiDoc - asciidoc, adoc
ASP.NET (C#) - aspnet
6502 Assembly - asm6502
AutoHotkey - autohotkey
AutoIt - autoit
Bash - bash, shell
BASIC - basic
Batch - batch
BBcode - bbcode, shortcode
Birb - birb
Bison - bison
BNF - bnf, rbnf
Brainfuck - brainfuck
BrightScript - brightscript
Bro - bro
BSL (1C:Enterprise) - bsl, oscript
C - c
C# - csharp, cs, dotnet
C++ - cpp
CIL - cil
Clojure - clojure
CMake - cmake
CoffeeScript - coffeescript, coffee
Concurnas - concurnas, conc
Content-Security-Policy - csp
Crystal - crystal
CSS Extras - css-extras
Cypher - cypher
D - d
Dart - dart
DAX - dax
Dhall - dhall
Diff - diff
Django/Jinja2 - django, jinja2
DNS zone file - dns-zone-file, dns-zone
Docker - docker, dockerfile
EBNF - ebnf
EditorConfig - editorconfig
Eiffel - eiffel
EJS - ejs, eta
Elixir - elixir
Elm - elm
Embedded Lua templating - etlua
ERB - erb
Erlang - erlang
Excel Formula - excel-formula, xlsx, xls
F# - fsharp
Factor - factor
Firestore security rules - firestore-security-rules
Flow - flow
Fortran - fortran
FreeMarker Template Language - ftl
GameMaker Language - gml, gamemakerlanguage
G-code - gcode
GDScript - gdscript
GEDCOM - gedcom
Gherkin - gherkin
Git - git
GLSL - glsl
Go - go
GraphQL - graphql
Groovy - groovy
Haml - haml
Handlebars - handlebars
Haskell - haskell, hs
Haxe - haxe
HCL - hcl
HLSL - hlsl
HTTP - http
HTTP Public-Key-Pins - hpkp
HTTP Strict-Transport-Security - hsts
IchigoJam - ichigojam
Icon - icon
.ignore - ignore, gitignore, hgignore, npmignore
Inform 7 - inform7
Ini - ini
Io - io
J - j
Java - java
JavaDoc - javadoc
JavaDoc-like - javadoclike
Java stack trace - javastacktrace
Jolie - jolie
JQ - jq
JSDoc - jsdoc
JS Extras - js-extras
JSON - json, webmanifest
JSON5 - json5
JSONP - jsonp
JS stack trace - jsstacktrace
JS Templates - js-templates
Julia - julia
Keyman - keyman
Kotlin - kotlin, kt, kts
LaTeX - latex, tex, context
Latte - latte
Less - less
LilyPond - lilypond, ly
Liquid - liquid
Lisp - lisp, emacs, elisp, emacs-lisp
LiveScript - livescript
LLVM IR - llvm
LOLCODE - lolcode
Lua - lua
Makefile - makefile
Markdown - markdown, md
Markup templating - markup-templating
MATLAB - matlab
MEL - mel
Mizar - mizar
MongoDB - mongodb
Monkey - monkey
MoonScript - moonscript, moon
N1QL - n1ql
N4JS - n4js, n4jsd
Nand To Tetris HDL - nand2tetris-hdl
Naninovel Script - naniscript, nani
NASM - nasm
NEON - neon
nginx - nginx
Nim - nim
Nix - nix
NSIS - nsis
Objective-C - objectivec, objc
OCaml - ocaml
OpenCL - opencl
Oz - oz
PARI/GP - parigp
Parser - parser
Pascal - pascal, objectpascal
Pascaligo - pascaligo
PC-Axis - pcaxis, px
PeopleCode - peoplecode, pcode
Perl - perl
PHP - php
PHPDoc - phpdoc
PHP Extras - php-extras
PL/SQL - plsql
PowerQuery - powerquery, pq, mscript
PowerShell - powershell
Processing - processing
Prolog - prolog
.properties - properties
Protocol Buffers - protobuf
Pug - pug
Puppet - puppet
Pure - pure
PureBasic - purebasic, pbfasm
PureScript - purescript, purs
Python - python, py
Q (kdb+ database) - q
QML - qml
Qore - qore
R - r
Racket - racket, rkt
React JSX - jsx
React TSX - tsx
Reason - reason
Regex - regex
Ren'py - renpy, rpy
reST (reStructuredText) - rest
Rip - rip
Roboconf - roboconf
Robot Framework - robotframework, robot
Ruby - ruby, rb
Rust - rust
SAS - sas
Sass (Sass) - sass
Sass (Scss) - scss
Scala - scala
Scheme - scheme
Shell session - shell-session, sh-session, shellsession
Smali - smali
Smalltalk - smalltalk
Smarty - smarty
SML - sml, smlnj
Solidity (Ethereum) - solidity, sol
Solution file - solution-file, sln
Soy (Closure Template) - soy
SPARQL - sparql, rq
Splunk SPL - splunk-spl
SQF: Status Quo Function (Arma 3) - sqf
SQL - sql
Stan - stan
Structured Text (IEC 61131-3) - iecst
Stylus - stylus
Swift - swift
T4 templating - t4-templating
T4 Text Templates (C#) - t4-cs, t4
T4 Text Templates (VB) - t4-vb
TAP - tap
Tcl - tcl
Template Toolkit 2 - tt2
Textile - textile
TOML - toml
Turtle - turtle, trig
Twig - twig
TypeScript - typescript, ts
TypoScript - typoscript, tsconfig
UnrealScript - unrealscript, uscript, uc
Vala - vala
VB.Net - vbnet
Velocity - velocity
Verilog - verilog
VHDL - vhdl
vim - vim
Visual Basic - visual-basic, vb, vba
WarpScript - warpscript
WebAssembly - wasm
Wiki markup - wiki
Xeora - xeora, xeoracube
XML doc (.net) - xml-doc
Xojo (REALbasic) - xojo
XQuery - xquery
YAML - yaml, yml
YANG - yang
Zig - zig
参考文献:

prismjs官网

使用 Prism.js 实现漂亮的代码语法高亮

在vue中使用prismjs,让页面代码变漂亮!

漂亮的代码语法高亮插件Prism.js简单使用文档

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 在 Vue 项目使用 Prism.js 的方法如下: 1. 安装 Prism.js:在项目打开终端,运行 npm install prismjs --save 或 yarn add prismjs 2. 引入 Prism.js:在 main.js 或其他入口文件,引入 Prism.js 和需要的语言支持,如: ```js import Prism from 'prismjs' import 'prismjs/components/prism-javascript' ``` 3. 使用 Prism.js:在组件引入并使用 Prism.js。例如,在 template 使用 v-pre 和 code 标签,在 script 设置语言,如: ```html <template> <div> <pre v-pre> <code class="language-javascript"> {{code}} </code> </pre> </div> </template> <script> export default { data () { return { code: 'console.log("Hello, World!")' } }, mounted () { Prism.highlightAll() } } </script> ``` 注意事项 - 通过上面的方法,你可能需要在你的项目手动引入 prism.css 样式文件。 - 请确保你已经安装了对应语言的支持 参考文献 - Prism.js 官网: https://prismjs.com/ - Vue.js 官网: https://vuejs.org/ ### 回答2: 在Vue项目使用Prism.js需要进行以下步骤: 1. 安装Prism.js库:在终端或命令行运行以下命令来安装Prism.js库: ``` npm install prismjs ``` 2. 引入Prism.js样式:在Vue项目的入口文件(通常是main.js引入Prism.js的样式文件。你可以选择在全局引入或者按需引入。 全局引入: ```javascript import 'prismjs/themes/prism.css'; ``` 按需引入:在需要使用Prism.js的组件引入样式文件。 3. 引入Prism.js组件:在需要使用Prism.js高亮代码的组件引入Prism.js组件。 ```javascript import Prism from 'prismjs'; // 引入Prism.js库 import 'prismjs/components/prism-javascript'; // 引入需要高亮的语言组件 ``` 4. 使用Prism.js:在需要高亮代码的地方使用Prism.js。 在Vue的template使用`v-pre`指令使Vue不解析和编译代码,然后给代码块添加class属性为`language-`加上你需要高亮的语言,代码块内容就会被Prism.js高亮: ```html <pre v-pre> <code class="language-javascript"> // 这里写需要高亮的代码 </code> </pre> ``` 在Vue的mounted钩子函数使用Prism.js对动态添加的代码块进行高亮: ```javascript mounted() { this.highlightCode(); }, methods: { highlightCode() { Prism.highlightAll(); } } ``` 以上就是在Vue项目使用Prism.js的基本步骤,通过这些步骤你就可以在你的Vue项目使用Prism.js对代码进行高亮。 ### 回答3: 使用 Prism.jsVue 项目进行代码高亮非常简单。以下是在 Vue 项目使用 Prism.js 的步骤: 1. 首先,在终端通过 npm 或者 yarn 安装 Prism.js:`npm install prismjs` 或者 `yarn add prismjs`。 2. 在需要使用 Prism.js 的组件,导入 Prism.js 和所需的语言和插件。 ```javascript import Prism from 'prismjs'; import 'prismjs/themes/prism.css'; // 可以选择合适的主题样式 import 'prismjs/components/prism-javascript'; // 导入所需的语言,例如 JavaScript ``` 3. 在组件的 `mounted` 钩子函数,获取所有需要高亮的代码块的 DOM 元素,并使用 Prism.js 进行代码高亮。 ```javascript mounted() { this.highlightCodeBlocks(); }, methods: { highlightCodeBlocks() { const codeBlocks = this.$el.querySelectorAll('pre code'); codeBlocks.forEach((code) => { Prism.highlightElement(code); }); }, }, ``` 4. 在模板使用 `<pre>` 和 `<code>` 标签包裹代码块。注意,code 标签必须添加合适的语言类名,以便 Prism.js 正确识别语言。 ```html <pre> <code class="language-javascript"> // 这里是需要高亮的代码 </code> </pre> ``` 5. 在需要实现代码高亮的页面引入该组件,即可看到代码块成功地被 Prism.js 高亮Prism.js 目前支持多种语言和插件,可以根据需要导入对应的语言和插件。同时,你也可以自定义主题样式来适应你的项目使用这种方法,你可以在 Vue 项目轻松地实现代码高亮功能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值