打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python编程:使用pygments高亮代码
userphoto

2023.05.28 宁夏

关注

安装

python环境 : python3

Pygments版本:2.2.0

pip install Pygments

命令行使用

第一步: 准备代码

# -*- coding: utf-8 -*-
# @Date    : 2018-10-17
# @Author  : Peng Shiyu
def hello():
    print("hello world!")
if __name__ == '__main__':
    hello()

第二步:生成html

$ pygmentize -f html -o hello.html hello.py

1

参数:

-f html 指明需要输出html文件

-o hello.html 指明输出的文件名

hello.py 就是输入文件了

第三步:生成css

$ pygmentize -f html -a .highlight -S default > highlight.css

-a .highlight指所有css选择器都具有.highlight这一祖先选择器

-S default就是指定所需要的样式了,各位可以对各种样式都尝试一下。在官网上是可以直接尝试的哦!

> pygments.css将内容输出到pygments.css文件中

第四步:引用css文件

在hello.html文件中引用css文件

<link rel="stylesheet" href="highlight.css">

浏览器中打开hello.html的最终效果:

代码中使用

刚开始查看官方文档,代码复制下来不能用,又自己研究了一下

# -*- coding: utf-8 -*-
# @Date    : 2018-10-17
# @Author  : Peng Shiyu
from pygments import highlight
from pygments.formatters.html import HtmlFormatter
from pygments.lexers import get_lexer_by_name
from pygments.lexers.python import PythonLexer
code = 'print("hello world")'
# 二选一即可
# lexer = PythonLexer()
lexer = get_lexer_by_name("python")
# 指定风格
formatter = HtmlFormatter(style="xcode")
# 获取html
html = highlight(code, lexer, formatter)
print(html)
"""
   
       
       print
       (
       "hello world"
       )
       
"""
# 获取css
css = formatter.get_style_defs('.highlight')
print(css)
"""
.highlight .hll { background-color: #ffffcc }
.highlight  { background: #ffffff; }
.highlight .c { color: #177500 } /* Comment */
.highlight .err { color: #000000 } /* Error */
...
"""

将所输出的文本分别存入html、css文件,并在html中对css文件引用(如命令行中使用),最后也就呈现了一样的效果(需要将code变量换为命令行中使用的待格式化代码)

查看支持的风格

from pygments.styles import STYLE_MAP
for key in STYLE_MAP.keys():
    print(key)
   
"""    
default
emacs
friendly
colorful
autumn
murphy
manni
monokai
perldoc
pastie
borland
trac
native
fruity
bw
vim
vs
tango
rrt
xcode
igor
paraiso-light
paraiso-dark
lovelace
algol
algol_nu
arduino
rainbow_dash
abap
"""

以上风格带入HtmlFormatter中就能更改

参考文章

Pygments Introduction and Quickstart

使用Pygments来实现代码高亮

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
不得不知的几个Python开源项目
Wagtail 教程 9:支持 Markdown
9个实用的Javascript代码高亮脚本
用python flask 框架搭建的一个chatgpt服务的代码例子
黑客使用哪些编程语言?
wordpress自定义代码高亮 | // TODO:
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服