news 2026/10/7 9:24:08

PaddleX 版本演进全解析:从 v1.0 到 v3.0 的核心能力升级与更新要点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PaddleX 版本演进全解析:从 v1.0 到 v3.0 的核心能力升级与更新要点
  • 人工智能
  • 大模型
  • 低代码
  • 计算机视觉
  • 深度学习
  • NLP
  • 模型推理服务
  • RAG

【免费下载链接】PaddleX

All-in-One Development Tool based on PaddlePaddle

项目地址:https://gitcode.com/paddlepaddle/PaddleX
点击查看免费下载

本篇技术指南以仓库 docs/CHANGELOG.md 为骨架,系统梳理飞桨 PaddleX 从 v1.0.0(2020 年)到 v3.0.0(2025 年)的完整版本演进脉络,重点解读 v3.0 系列在模型库、统一推理接口、飞桨 3.0 适配、多硬件支持、高性能推理与服务化部署等维度的关键升级。读者读完可以快速掌握 PaddleX 各版本的能力边界、新产线/新模型清单、部署能力变化,以及如何在当前仓库中核对版本号、安装对应版本并调用产线能力。

一、版本演进总览

PaddleX 是飞桨(PaddlePaddle)推出的全流程低代码 AI 开发工具,其版本历史横跨两代架构:v1.x / v2.x 时代的传统"API + GUI"形态,与 v3.0 时代的"模型产线(Pipeline)+ 统一命令 + 多硬件适配"新形态。各版本时间线如下:

版本发布时间核心定位
v1.0.02020.05打通数据准备、模型训练、模型调优、多端安全部署全流程
v1.1.02020.07新增语义分割模型、ONNX 导出、Jetson/PaddleLite 部署
v1.2.02020.09新增 PPYOLO、OpenVINO/树莓派部署方案
v1.3.02020.12新增 RestFUL API 模块与工业质检案例
v2.0.0rc02021.05全面支持飞桨 2.0 动态图、C++ 部署升级
v2.0.02021.09预测结果可视化、PP-YOLO V2、Manufacture SDK
v2.1.02021.12超轻量模型 PPLCNet、PP-PicoDet、RestFUL API 升级
v3.0.0beta2024.0616 条模型产线、零代码/低代码开发模式
v3.0.0beta12024.09200+ 模型一键调用、13 条产线、统一命令开发
v3.0.0beta22024.11通用图像/人脸/属性识别产线、昇腾 910B 适配
v3.0.0rc02025.02新增 10+ 产线、40+ 模型、多硬件/多环境适配
v3.0.0rc12025.04全面适配飞桨 3.0 正式版、PP-DocBee、高性能推理升级
v3.0.02025.05270+ 模型、统一推理接口、全面适配飞桨 3.0 新特性

备注:当前仓库主线paddlex/.version文件中记录的版本号为3.0.3,版本读取逻辑定义在 paddlex/version.py(get_pdx_version()),读者可通过该文件确认所检出的仓库版本。

二、PaddleX v3.0 系列:新一代架构的核心升级

v3.0 系列是 PaddleX 的换代版本,从 beta 到正式版经历了 6 个里程碑,以下按版本逐层拆解其核心能力。

2.1 v3.0.0 正式版(2025.05):270+ 模型与统一推理接口

丰富的模型库

  • 模型总数达270+,覆盖图像/视频分类、检测、分割、OCR、语音识别、时序等场景;
  • 基于丰富模型库沉淀出通用文档解析、关键信息抽取、文档理解、表格识别、通用图像识别等多类成熟 AI 解决方案。

统一推理接口,重构部署能力

  • 推理接口标准化:降低不同种类模型带来的 API 差异,减少学习成本,提升企业落地效率;
  • 多模型组合能力:复杂任务可通过不同模型自由组合,实现 1+1>2 的效果;
  • 部署能力升级:多种模型部署使用统一命令管理,支持多卡推理与多卡多实例服务化部署。

全面适配飞桨框架 3.0

  • 支持编译器训练:训练命令追加-o Global.dy2st=True即可开启,GPU 上多数模型训练速度可提升 10% 以上,少部分模型可提升 30% 以上;
  • 推理侧整体适配飞桨 3.0 中间表示技术(PIR),静态图模型存储文件名由xxx.pdmodel改为xxx.json;
  • 全面支持 ONNX 格式模型,可通过 Paddle2ONNX 插件转换模型格式。

重磅能力支撑

  • 支撑PP-OCRv5的串联逻辑及多硬件、多后端、服务化部署能力;
  • 支撑PP-StructureV3的复杂模型串联/并联逻辑,首次串联并联共15 个模型实现多模型协同的复杂 Pipeline;
  • 支撑PP-ChatOCRv4的大模型串联逻辑,结合文心大模型 4.5 Turbo 与新增的 PP-DocBee2,关键信息抽取精度相比上一代提升 15.7 个百分点。

多硬件支持

  • 整体支持英伟达、英特尔、苹果 M 系列、昆仑芯、昇腾、寒武纪、海光、燧原等芯片的训练和推理;
  • 昇腾上全面适配模型达 200 个,支持 OM 高性能推理的模型达 21 个,并支持 PP-OCRv5、PP-StructureV3 等重要方案;
  • 昆仑芯上支持重要分类、检测、OCR 类模型(含 PP-OCRv5)。

2.2 v3.0.0rc1(2025.04):全面适配飞桨 3.0 正式版

  • 全面适配飞桨框架 3.0 新特性:与正式版一致,支持-o Global.dy2st=True编译器训练,推理适配 PIR,静态图文件名变更为xxx.json;
  • 新增飞桨自研文档图像理解多模态大模型 PP-DocBee:在学术界及内部业务场景文档理解评测榜单上达到同参数量级模型的 SOTA 水平,可应用于财报、研报、合同、说明书、法律法规等文档 QA 场景;
  • 全面支持 ONNX 格式模型,支持通过 Paddle2ONNX 插件转换模型格式;
  • 升级高性能推理:
    • 新增对 ONNX、OM 格式模型的支持,PaddleX 可根据需要智能选择模型格式;
    • 扩展支持的产线和模块:所有静态图推理的单功能模块与产线均可使用高性能推理插件;
    • 支持 CLI、API、配置文件 3 种配置方式,可在子产线、子模块粒度启用/禁用高性能推理插件;
  • 多硬件支持扩展:
    • NPU(昇腾):全面验证模型数量提升到 200 个;通用 OCR、图像分类、目标检测等常用产线支持 OM 模型格式推理,推理速度可提升 113.8%~226.4%,支持在 Atlas 200、Atlas 300 系列产品上推理部署;
    • GCU(燧原):正式纳入飞桨例行发版体系,完成 PaddleX 生态适配,支持 90 个模型的训练和推理。

2.3 v3.0.0rc0(2025.02):新增 10+ 产线与 40+ 模型

rc0 全面适配 PaddlePaddle 3.0rc0,新增产线、模型,并优化 API、扩展多硬件适配,具体如下。

新增 12 条产线(均可点击查看对应使用文档):

产线文档能力说明
文档预处理doc_preprocessor.md矫正旋转和扭曲的文档图像
文档场景信息抽取 v4document_scene_information_extraction_v4.md在 v3 基础上融合多模态能力、增强 OCR、优化 Prompt,抽取准确率提升 15 个百分点,支持本地大模型 OpenAI 接口调用
通用版面解析 v3PP-StructureV3.mdPP-StructureV3 核心方案,优化版面检测、表格识别、公式识别、阅读顺序恢复,支持文档图像/PDF 转标准 Markdown
通用表格识别 v2table_recognition_v2.md"表格分类 + 表格结构识别 + 单元格检测"多模型串联组网,实现更高精度端到端表格识别
旋转框检测rotated_object_detection.md支持旋转目标检测
人体关键点检测human_keypoint_detection.md精确获取肩、肘、膝等人体关键点,支撑姿态估计与行为识别
开放词汇目标检测open_vocabulary_detection.md开放域目标检测并预测类别
开放词汇分割open_vocabulary_segmentation.md开放域目标图像分割
通用视频检测video_detection.md提取视频空间与时间特征,实现目标精准识别和定位
通用视频分类video_classification.md提取视频时空特征并准确分类
多语种语音识别multilingual_speech_recognition.md将多种语言口述自动转为文本或命令
3D 多模态融合检测3d_bev_detection.md输入激光雷达、环视 RGB 相机等多传感器数据,输出三维空间物体的位置、形状、朝向、类别

新增模型(48 个)

  • OCR 类 28 个:含自研版面区域检测模型 PP-DocLayout 系列、自研公式识别模型 PP-FormulaNet 系列、自研表格结构识别模型 SLANeXt 系列、更高识别精度的 PP-OCRv4_server_rec_doc 等;
  • CV 类 11 个:3D 多模态融合检测、开放词汇检测/分割、旋转框检测、人体关键点检测等;
  • Speech 类 5 个:Whisper 系列 5 个模型;
  • Video 类 4 个:视频检测 1 个、视频分类 3 个。

模型与产线能力升级

  • 支持更多参数:目标检测类别阈值、文本检测膨胀系数等;CV 类和 OCR 类模型支持 PDF 格式输入;
  • OCR 类产线支持文档前处理(方向分类、文档矫正),内置文本行方向分类模型;
  • 文档场景信息抽取 v3 产线支持标准 OpenAI 接口调用大语言模型;
  • 部分模型和产线接口发生变化,详见 docs/API_change_log/v3.0.0rc.md。

多硬件与多环境适配

  • 新增燧原 GCU 训推能力(90+ 模型)、昇腾 NPU 新增 50+ 模型、昆仑芯 XPU 新增 10+、寒武纪 MLU 新增 10+、海光 DCU 新增 30+,对应模型列表见 model_list_gcu.md、model_list_npu.md、model_list_xpu.md、model_list_mlu.md、model_list_dcu.md;
  • 适配 Windows 系统(修复部分安装失败问题);训练和推理全面适配 Python 3.11、Python 3.12。

部署能力全面升级

  • 高性能推理:支持 PaddleX CLI 一键安装插件且无需鉴权;新增 Windows 支持;支持模型 220+ 个;开源核心推理库 ultra-infer(见仓库 libs/ultra-infer 目录),便于二次开发与定制;
  • 服务化部署:升级基础方案适配新增产线;新增高稳定性方案,支持灵活调整服务配置优化性能。

2.4 v3.0.0beta2(2024.11):识别类产线补全与昇腾 910B 全流程适配

新增产线

  • 通用图像识别:提供更强的特征提取模型,支持用户自定义图像数据库识别未知类别,支持高性能推理与服务化部署;
  • 人脸识别:支持人脸数据库的增加和删除,支持高性能推理与服务化部署;
  • 车辆属性识别:检测车辆并识别颜色、车型属性;
  • 行人属性识别:检测行人并识别年龄、性别、穿着等属性。

以上产线的使用文档分别见 general_image_recognition.md、face_recognition.md、vehicle_attribute_recognition.md、pedestrian_attribute_recognition.md。

新增能力与优化点

  • 新增 42 个模型开发全流程适配昇腾 910B;
  • 支持打印模型推理 benchmark 信息,相关说明见 docs/module_usage/instructions/benchmark.md;
  • 公式识别产线支持 PDF 输入与结果可视化;印章文本识别产线支持 PDF 输入;
  • 预训练模型统一管理并内置到默认配置文件中;升级模型保存格式为高性能推理提供保障;优化部分模型默认参数以训练更高精度模型。

BugFix

  • 修复文档方向分类推理模型 bug、部分高性能推理和服务化部署 bug、SLANet/SLANet_plus 训练精度为 0 的 bug。

2.5 v3.0.0beta1(2024.09):200+ 模型一键调用

  • 模型丰富一键调用:将覆盖文档图像智能分析、OCR、目标检测、时序预测等领域的 200+ 飞桨模型整合为 13 条模型产线,通过极简 Python API 一键调用;同时支持 20+ 单功能模块,便于组合使用;
  • 提高效率降低门槛:实现基于图形界面和统一命令的模型全流程开发,打造大小模型结合、大模型半监督学习、多模型融合的 8 条特色产线;
  • 多种场景灵活部署:支持高性能部署、服务化部署、端侧部署;100+ 模型支持高性能推理和服务化部署,7 类重点视觉模型支持端侧部署;
  • 主流硬件高效支持:70+ 模型全流程适配昇腾 910B,15+ 模型适配昆仑芯和寒武纪。

2.6 v3.0.0beta(2024.06):16 条产线与低代码开发模式

  • 基础模型产线:精选 68 个优质飞桨模型,覆盖图像分类、目标检测、图像分割、OCR、文本图像版面分析、时序预测等任务;
  • 特色模型产线:提供大小模型结合、大模型半监督学习、多模型融合的高效解决方案;
  • 低代码开发模式:
    • 零代码:通过 GUI 交互式提交后台训练任务,打通在线/离线部署,支持以 API 形式调用在线服务;
    • 低代码:通过统一 API 实现 16 条产线全流程开发,支持自定义模型流程串联;
  • 多硬件本地支持:支持英伟达 GPU、昆仑芯、昇腾、寒武纪等硬件,可纯离线使用。

三、v2.x 与 v1.x 时代:从 API 工具到全流程平台的演进

3.1 v2.1.0(2021.12):轻量模型与检测加速

  • 新增超轻量分类模型PPLCNet:Intel CPU 上单张图像预测约 5ms,ImageNet-1K 上 Top1 准确率 80.82%;
  • 新增轻量级检测模型PP-PicoDet:首个在 1M 参数量内 mAP(0.5:0.95) 超过 30+(416 像素输入),ARM CPU 下可达 150FPS;
  • 升级 PaddleX Restful API 支持飞桨动态图开发模式;新增检测模型负样本训练策略;新增 Python 轻量级服务化部署。

3.2 v2.0.0(2021.09):API、部署与 GUI 全面升级

  • API:检测/实例分割任务新增预测结果可视化与预测错误原因分析;检测任务支持负样本优化抑制背景误检;语义分割与图像分类支持返回归一化置信度;
  • 部署:PaddleX 模型 2 个 API 快速完成 Python 部署;C++ 部署全面升级,支持 PaddleDetection、PaddleClas、PaddleSeg、PaddleX 端到端统一部署;发布 Manufacture SDK,提供工业级多端多平台预编译部署开发包;
  • GUI:支持 30 系列显卡;新增 PP-YOLO V2(COCO test 精度 49.5%、V100 预测 68.9 FPS)、4.2MB 的 PP-YOLO tiny、实时分割模型 BiSeNetV2;新增导出 API 训练脚本功能;
  • 产业案例:新增钢筋计数、缺陷检测、机械手抓取、工业表计读数等训练与部署案例。

3.3 v2.0.0rc0(2021.05):动态图时代开启

  • 全面支持飞桨 2.0 动态图,更易用的开发模式;
  • 新增 PP-YOLOv2、PP-YOLO tiny、BiSeNetV2 等模型;
  • C++ 部署模块全面升级:PaddleInference 适配 2.0 预测库;支持 PaddleDetection、PaddleSeg、PaddleClas 与 PaddleX 模型部署;新增 GPU 多卡预测、基于 ONNX 的 TensorRT 高性能加速与 Triton 服务化部署。

3.4 v1.3.0(2020.12):RestFUL API 与工业质检

  • 模型:ResNet50_vd 新增 10 万分类预训练模型;FasterRCNN 新增模型裁剪与多通道图像训练支持;
  • 部署:修复 OpenVINO C++ 部分 Bug;树莓派部署新增 Arm V8 支持;
  • 新增RestFUL API 模块,可快速开发基于 PaddleX 的训练平台,含 HTML Demo 与 Remote 版可视化客户端;
  • 新增工业质检产业案例(GPU/CPU 两种部署场景)。

3.5 v1.2.0(2020.09):PPYOLO 与多端部署扩展

  • 模型:新增 PPYOLO;FasterRCNN、MaskRCNN、YOLOv3、DeepLabv3p 新增 COCO 预训练模型;FasterRCNN/MaskRCNN 新增 backbone HRNet_W18;DeepLabv3p 新增 MobileNetV3_large_ssld;
  • 部署:新增 OpenVINO 部署方案;新增树莓派部署方案;优化 PaddleLite Android 预处理/后处理性能;C++ 部署增加use_mkl等参数,通过 MKL-DNN 显著提升 CPU 预测性能;
  • 案例:新增 RGB 图像与多通道遥感分割案例;新增命令行数据集切分功能(ImageNet、PascalVOC、MSCOCO、语义分割数据集)。

3.6 v1.1.0(2020.07):ONNX 导出与更多部署形态

  • 模型:新增 HRNet、FastSCNN;FasterRCNN/MaskRCNN 新增 backbone HRNet;集成 X2Paddle,全部分类与语义分割模型可导出 ONNX;
  • 部署:模型加密支持 Windows;新增 Jetson、PaddleLite 部署方案;C++ 部署新增 batch 批预测并采用 OpenMP 并行加速预处理;
  • 新增人像分割、工业表计读数案例;新增 LabelMe、精灵标注助手、EasyData 标注数据格式转换功能。

3.7 v1.0.0(2020.05):全流程打通

  • 数据准备:支持 EasyData 数据协议与主流标注工具协议;
  • 模型训练:集成 PaddleClas、PaddleDetection、PaddleSeg 视觉开发套件与丰富预训练模型;
  • 模型调优:内置可解释性模块与 VisualDL 可视化分析组件;
  • 多端安全部署:内置 PaddleSlim 模型压缩工具与模型加密部署模块,结合 Paddle Inference / Paddle Lite 实现高性能多端安全部署;
  • 易用易集成:统一全流程 API,5 步完成模型训练,10 行代码实现 Python/C++ 高性能部署;提供跨平台可视化工具 PaddleX-GUI。

四、实战:在当前仓库核对版本并上手 v3.0 能力

4.1 核对 PaddleX 版本号

仓库中版本号统一记录于paddlex/.version文件,由 paddlex/version.py 的get_pdx_version()读取。安装 PaddleX 后,可运行以下命令打印 PaddleX、PaddlePaddle 及各开发套件的版本信息:

python -c "from paddlex import version; version.show_versions()"

输出将包含PDX version、PaddlePaddle version以及各 repo(PaddleClas、PaddleDetection 等)的 version 与 commit id,便于定位当前环境对应的能力版本。

4.2 安装指定版本

根据 docs/installation/installation.md,安装飞桨后即可安装 PaddleX:

# 仅安装必须依赖(可后续按需安装可选依赖) pip install paddlex # 安装"基础功能"全部依赖 pip install "paddlex[base]" # 仅安装某项功能所需依赖(如 OCR) pip install "paddlex[ocr]"

注意:安装前需确保有 Python 运行环境(当前支持 Python 3.8~3.12),且 PaddlePaddle 安装成功。若需模型训练、微调等二次开发能力,还需按 docs/installation/installation.md 中的插件安装模式安装 PaddleClas、PaddleDetection、PaddleOCR、PaddleSeg、PaddleTS 等对应插件(仓库插件开发源码见 paddlex/repo_apis 与 paddlex/modules)。

4.3 使用统一命令/API 体验 v3.0 产线能力

v3.0 的"统一推理接口"落实到 CLI 与 Python API 两种方式(详见 docs/pipeline_usage/instructions/pipeline_CLI_usage.md 与 docs/pipeline_usage/instructions/pipeline_python_API.md):

# CLI 快速体验 paddlex --pipeline image_classification \ --input https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg # 导出产线默认配置,便于自定义 paddlex --get_pipeline_config image_classification
# Python API 一键调用 from paddlex import create_pipeline pipeline = create_pipeline("image_classification") output = pipeline.predict( "https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_image_classification_001.jpg", batch_size=1, topk=5, )

产线的底层实现位于 paddlex/inference/pipelines,各单功能模块的推理实现位于 paddlex/inference/models,例如通用版面解析 v3 的复杂 15 模型串联并联逻辑可在 paddlex/inference/pipelines/layout_parsing 中查看,这与 v3.0.0 发布说明中"首次串联并联共 15 个模型"相互印证。

4.4 高性能推理与服务化部署

v3.0 系列把部署能力作为重点升级方向:高性能推理插件支持 ONNX/OM/Paddle 多种模型格式并可按需智能选择,支持 CLI/API/配置文件 3 种启用方式;服务化部署则提供基础方案与高稳定性方案。相关使用说明见 docs/pipeline_deploy/high_performance_inference.md 与 docs/pipeline_deploy/serving.md;高性能推理插件的核心开源实现位于仓库 libs/ultra-infer,开发者可据此进行二次开发与定制。

五、总结

从 v1.0.0 到 v3.0.0,PaddleX 完成了从"飞桨视觉套件封装工具"到"覆盖 CV、OCR、语音、时序、视频、3D 的多模态全流程低代码开发平台"的转型。v3.0 系列的核心主线清晰可循:统一推理接口降低使用门槛、模型产线化沉淀成熟解决方案、全面适配飞桨 3.0(编译器训练 + PIR + ONNX)、多硬件(英伟达/昇腾/昆仑芯/寒武纪/海光/燧原/苹果 M 系列)训推覆盖、高性能推理与服务化部署能力逐版本强化。对于开发者而言,直接基于 v3.0.0 及以上版本,配合 docs/pipeline_usage/tutorials 下的产线教程与 docs/support_list 下的模型/产线清单,即可快速选择合适模型并完成从推理集成到二次开发的落地。

  • 人工智能
  • 大模型
  • 低代码
  • 计算机视觉
  • 深度学习
  • NLP
  • 模型推理服务
  • RAG

【免费下载链接】PaddleX

All-in-One Development Tool based on PaddlePaddle

项目地址:https://gitcode.com/paddlepaddle/PaddleX
点击查看免费下载
上一篇:超越网格搜索:用Spearmint实现贝叶斯优化的超参数调优革命
下一篇:borgmatic 项目推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/7 9:22:38

告别tail -f焦虑:用Ponytail实现多文件实时日志合并与高亮排查

大家平时排查问题的时候,应该都有过这种体验:日志文件在服务器上飞速滚动,先用tail -f盯半天,发现还得再开一个终端去grep,切来切去不超过五分钟,眼睛就先花了。我前阵子处理一个定时任务偶发失败的问题&am…

作者头像 李华
网站建设 2026/10/7 9:20:16

STM32工业I/O模块设计:从电路原理到PCB实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/7 9:20:11

位运算实战指南:用bit压缩状态与优化性能

前阵子我在一个高并发推荐服务里做性能优化,最关键的改动之一,是把若干个boolean状态标记压缩进了一个int。也就是让每个标记只占一个bit——bits,计算机世界最小的积木——而不是一个完整的布尔字段。这个改动让核心接口时延降了四分之一&am…

作者头像 李华
网站建设 2026/10/7 9:20:09

C盘清理实战:用提示词工程与PowerShell脚本安全释放空间

1. 先把思路理清楚:这次清理C盘,我打算用“提示词”开路打开电脑发现C盘又飘红了,这是Windows用户绕不过去的一道坎。我自己折腾了这么多年,从一开始只会手动删文件,到后来写脚本,再到现在用“提示词”的方…

作者头像 李华
网站建设 2026/10/7 9:19:26

动态规划解最短路:状态设计与工程落地实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/7 9:19:16

驱动能力本质:从Qg、dV/dt到t_r的工程量化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华