Pure Highlightjsの紹介

WordPressのエコシステムにおいて、コードハイライトは技術ブログや開発者サイトにとって常に重要な機能である。最近、何年も休眠状態だったPure Highlightjsプラグインがついにメジャーアップデートを受け、コアのHighlight.jsライブラリが古いバージョンから最新のv11.11.1にアップグレードされた。

プラグインダウンロード

Pure Highlightjs コードハイライト

Pure Highlightjs コードハイライト

サイトのアップグレード バージョン2.1.3
308 サブダウンロード
2025-08-22更新
パスワードcloud コピーしました!
WordPressクラシックエディターとブロックエディターで、数百言語に対応したネイティブコードハイライトをサポート

Pure-Highlightjsフォルダをダウンロードして解凍し、プラグインディレクトリにアップロードしてバックエンドで有効にします!

忘れられた、更新された

Pure HighlightjsはWordPressプラットフォーム用の軽量コードハイライトプラグインで、開発者のicodechefによって2016年にリリースされ、その後更新が止まっていた。このプラグインは、そのシンプルさと効率性のために多くのWordPressユーザーに支持されていたが、時間の経過とともに、その組み込みバージョンのHighlight.jsは、私が他のプラグインのショートコードが好きではなく、組み込みのプリを好むように、メインストリームから深刻に遅れてしまったので、...そこで、WordPressネイティブのプリコードに特化するためにアップグレードしました。

このプラグインは小さいが、私のニーズにはちょうどいい。サイトエディターHighlight.jsの最新バージョンにアップグレードすることにした。

アップグレードによる改善点

Highlight.jsバージョン11.11.1へのアップグレードは、いくつかの重要な改善をもたらします:

  1. コードツールバー:新しいツールバーの展開、コピー、全選択ボタンがビューポートにフローティング表示され、非常にスムーズ!
  2. ダブルクリックで全選択:新しいダブルクリックですべてを選択し、コンピュータのコード領域をダブルクリックすると、すべてのコードを選択することができます
  3. コードブロックの高さ:新しいコードブロックの最大の高さは、長いコードの数が多い最大の高さを設定することができ、水平方向と垂直方向のスクロールバーがあります
  4. 折って広げる:高さが追加されたときにコードブロックを展開したり折りたたんだりする新しい展開ボタン
  5. ダークモード: 新しいダークモードは、プラグインは、昼と夜のコードのテーマスタイルを選択することができ、WordPressのテーマはダークモードを切り替えることができます持って、あなたは、このサイトの効果を体験することができます!
  6. スクロールバーを最適化する:このプラグインはsimplebarスクロールバーを追加し、コードスクロールバーのスタイルを最適化します。
  7. よりモダンなプログラミング言語のサポートTypeScript、Kotlin、Dartなどのモダンな言語をサポートし、合計192の言語と80のスタイルのテーマを追加。
  8. ネイティブの公式JS:合理化、JSへの変更なし、最適化されたクラシックエディターとブロックエディター
  9. より良い文法分析JSX、Vueテンプレートなどの構文の認識を改善しました。
  10. 互換性の修正旧バージョンの潜在的な互換性の問題を解決

なぜHighlightjsなのか?

数あるWordPressのコードハイライトプラグインの中でも、Pure Highlightjsはそのユニークな利点から、今でもその地位を保っている:

  • 軽量設計jQueryに依存せず、サイトパフォーマンスへの影響を最小限に抑えます。
  • ネイティブサポート他のプラグインのようにプラグインショートコードを必要としません。
  • シンプルで美しいデフォルトのスタイルは、クリーンでシャープ、技術文書に適しています。

コードデモ

コード・スクロールバーのデモ

simplebarスクロールバースタイルのスクロールバーは、様々な主流のブラウザと互換性があり、あなたは効果を確認するために、異なるブラウザの数でテストすることができます!

<?php
/**
 * PHP长行代码演示示例
 * 用于测试滚动条效果
 */

// 基本变量定义
$testString = "这是一个普通的字符串变量,用于演示PHP的基本语法特性";
$numberValue = 123456;
$arrayData = [
    'name' => '测试数据',
    'type' => '演示',
    'values' => [10, 20, 30, 40, 50]
];

// 这是一行很长的代码,包含了多个函数调用和字符串拼接,目的是测试滚动条效果。这里我们模拟一个复杂的数据处理过程,包含字符串操作、数组处理和数学计算等多种操作的组合。这段代码会将多个不同类型的数据进行转换和组合,生成一个复杂的结果字符串。
$longLine1 = "处理结果: " . strtoupper(trim(json_encode(array_merge($arrayData, ['timestamp' => time(), 'random' => rand(1000, 9999), 'status' => 'completed', 'message' => '这是一条很长的消息,用于增加字符串长度,测试滚动效果。这里继续添加一些内容,让这行代码变得足够长,以便在显示时需要滚动条才能完全查看。']), " \t\n\r\0\x0B"))) . " | 计算结果: " . (sqrt(pow($numberValue, 2) + pow($numberValue / 2, 2)) * 1.5) . " | 状态信息: 操作已完成,耗时 " . microtime(true) . " 毫秒,内存使用: " . memory_get_usage() . " 字节";

// 另一个长行代码,演示条件判断和函数嵌套的复杂情况
if (strlen($testString) > 10 && is_array($arrayData) && count($arrayData['values']) > 3 && $numberValue > 100000 && strpos($testString, 'PHP') !== false && (time() % 2 == 0)) {
    $longLine2 = "满足所有条件 | 数组信息: " . print_r($arrayData, true) . " | 字符串长度: " . strlen($testString) . " | 随机数: " . rand(1, 1000) . " | 当前时间: " . date('Y-m-d H:i:s') . " | 这是为了测试滚动条而添加的额外内容,继续增加长度直到足够长,确保在大多数编辑器或显示窗口中都需要滚动才能看到完整内容。这里再添加一些文字,让这行代码变得更长一些,以达到测试目的。";
} else {
    $longLine2 = "不满足所有条件的默认值";
}

// 函数定义
function processData($input) {
    if (!is_array($input)) {
        return "无效输入: 必须提供数组类型";
    }
    
    // 处理数据的逻辑
    $result = [];
    foreach ($input as $key => $value) {
        $result[strtoupper($key)] = is_string($value) ? strrev($value) : $value;
    }
    
    return $result;
}

// 类定义
class DemoClass {
    private $property1;
    protected $property2;
    public $property3;
    
    public function __construct($param1, $param2) {
        $this->property1 = $param1;
        $this->property2 = $param2;
        $this->property3 = "默认值: " . $param1 . " - " . $param2;
    }
    
    public function getCombined() {
        return $this->property1 . "|" . $this->property2 . "|" . $this->property3;
    }
}

// 执行演示
echo "PHP长行代码测试演示\n";
echo "=====================\n";
echo "1. 长行字符串1: " . $longLine1 . "\n\n";
echo "2. 长行字符串2: " . $longLine2 . "\n\n";
echo "3. 处理后的数据: " . print_r(processData($arrayData), true) . "\n\n";

$demoObj = new DemoClass("参数1", "参数2");
echo "4. 对象信息: " . $demoObj->getCombined() . "\n";
?>

クラシック・エディターのコード・デモ

クラシックエディタに、最大高さを設定するコードを追加。

<?php
/**
 * PHP长行代码演示示例
 * 用于测试滚动条效果
 */

// 基本变量定义
$testString = "这是一个普通的字符串变量,用于演示PHP的基本语法特性";
$numberValue = 123456;
$arrayData = [
    'name' => '测试数据',
    'type' => '演示',
    'values' => [10, 20, 30, 40, 50]
];

// 这是一行很长的代码,包含了多个函数调用和字符串拼接,目的是测试滚动条效果。这里我们模拟一个复杂的数据处理过程,包含字符串操作、数组处理和数学计算等多种操作的组合。这段代码会将多个不同类型的数据进行转换和组合,生成一个复杂的结果字符串。
$longLine1 = "处理结果: " . strtoupper(trim(json_encode(array_merge($arrayData, ['timestamp' => time(), 'random' => rand(1000, 9999), 'status' => 'completed', 'message' => '这是一条很长的消息,用于增加字符串长度,测试滚动效果。这里继续添加一些内容,让这行代码变得足够长,以便在显示时需要滚动条才能完全查看。']), " \t\n\r\0\x0B"))) . " | 计算结果: " . (sqrt(pow($numberValue, 2) + pow($numberValue / 2, 2)) * 1.5) . " | 状态信息: 操作已完成,耗时 " . microtime(true) . " 毫秒,内存使用: " . memory_get_usage() . " 字节";

// 另一个长行代码,演示条件判断和函数嵌套的复杂情况
if (strlen($testString) > 10 && is_array($arrayData) && count($arrayData['values']) > 3 && $numberValue > 100000 && strpos($testString, 'PHP') !== false && (time() % 2 == 0)) {
    $longLine2 = "满足所有条件 | 数组信息: " . print_r($arrayData, true) . " | 字符串长度: " . strlen($testString) . " | 随机数: " . rand(1, 1000) . " | 当前时间: " . date('Y-m-d H:i:s') . " | 这是为了测试滚动条而添加的额外内容,继续增加长度直到足够长,确保在大多数编辑器或显示窗口中都需要滚动才能看到完整内容。这里再添加一些文字,让这行代码变得更长一些,以达到测试目的。";
} else {
    $longLine2 = "不满足所有条件的默认值";
}

// 函数定义
function processData($input) {
    if (!is_array($input)) {
        return "无效输入: 必须提供数组类型";
    }
    
    // 处理数据的逻辑
    $result = [];
    foreach ($input as $key => $value) {
        $result[strtoupper($key)] = is_string($value) ? strrev($value) : $value;
    }
    
    return $result;
}

// 类定义
class DemoClass {
    private $property1;
    protected $property2;
    public $property3;
    
    public function __construct($param1, $param2) {
        $this->property1 = $param1;
        $this->property2 = $param2;
        $this->property3 = "默认值: " . $param1 . " - " . $param2;
    }
    
    public function getCombined() {
        return $this->property1 . "|" . $this->property2 . "|" . $this->property3;
    }
}

// 执行演示
echo "PHP长行代码测试演示\n";
echo "=====================\n";
echo "1. 长行字符串1: " . $longLine1 . "\n\n";
echo "2. 长行字符串2: " . $longLine2 . "\n\n";
echo "3. 处理后的数据: " . print_r(processData($arrayData), true) . "\n\n";

$demoObj = new DemoClass("参数1", "参数2");
echo "4. 对象信息: " . $demoObj->getCombined() . "\n";
?>

PHPコードデモ

<?php
// 简单的PHP类示例
class Greeting {
    private $name;
    
    public function __construct($name) {
        $this->name = $name;
    }
    
    public function sayHello() {
        return "Hello, " . $this->name . "!";
    }
}

$greeter = new Greeting("World");
echo $greeter->sayHello();
?>

CSSコードデモ

/* 响应式卡片样式 */
.card {
    width: 300px;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
    background: #fff;
}

.card:hover {
    transform: translateY(-5px);
}

@media (max-width: 768px) {
    .card {
        width: 100%;
    }
}

JavaScriptコードデモ

// 异步获取数据示例
async function fetchUserData(userId) {
    try {
        const response = await fetch(`https://api.example.com/users/${userId}`);
        if (!response.ok) {
            throw new Error('Network response was not ok');
        }
        const data = await response.json();
        console.log('User data:', data);
        return data;
    } catch (error) {
        console.error('Error fetching user data:', error);
    }
}

// 使用示例
fetchUserData(123);

GO言語コードデモ

package main

import (
	"fmt"
	"net/http"
)

// 简单的HTTP服务器
func handler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}

func main() {
	http.HandleFunc("/", handler)
	fmt.Println("Server starting on port 8080...")
	http.ListenAndServe(":8080", nil)
}

MySQLコードデモ

-- 创建用户表并查询示例
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 插入数据
INSERT INTO users (username, email) 
VALUES ('john_doe', '[email protected]');

-- 查询数据
SELECT * FROM users WHERE email LIKE '%@example.com';

Node.jsコードデモ

// Express.js 简单API示例
const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());

app.get('/api/greet', (req, res) => {
    const name = req.query.name || 'World';
    res.json({ message: `Hello, ${name}!` });
});

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

Pythonコードデモ

# 使用Flask创建Web服务
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api/square/<int:num>')
def square(num):
    return jsonify({"result": num ** 2})

if __name__ == '__main__':
    app.run(debug=True)

# 列表推导式示例
squares = [x**2 for x in range(10) if x % 2 == 0]
print(squares)

C++コードデモ

#include <iostream>
#include <vector>
#include <algorithm>

// 简单的C++程序示例
int main() {
    std::vector<int> numbers = {5, 2, 8, 1, 9};
    
    // 排序并输出
    std::sort(numbers.begin(), numbers.end());
    
    std::cout << "Sorted numbers: ";
    for (int num : numbers) {
        std::cout << num << " ";
    }
    std::cout << std::endl;
    
    return 0;
}

Javaコードデモ

// 简单的Java类和接口示例
public class Main {
    public static void main(String[] args) {
        Calculator calc = new BasicCalculator();
        System.out.println("5 + 3 = " + calc.add(5, 3));
    }
}

interface Calculator {
    int add(int a, int b);
}

class BasicCalculator implements Calculator {
    @Override
    public int add(int a, int b) {
        return a + b;
    }
}

デモ・スクリーンショット

バックステージ・デモ

WordPressネイティブのプリコードハイライトプラグインPure Highlightjsのメジャーアップデート:Highlight.js v11.11.1にアップグレード - LikaCloud
昼夜の切り替えを追加、このサイトで使用しているテーマも追加

クラシック・エディター・デモ

WordPressネイティブのプリコードハイライトプラグインPure Highlightjsのメジャーアップデート:Highlight.js v11.11.1にアップグレード - LikaCloud
クラシックエディター 挿入コードセット コードブロックの最大高さ
WordPressネイティブのプリコードハイライトプラグインPure Highlightjsのメジャーアップデート:Highlight.js v11.11.1にアップグレード - LikaCloud
WordPress ネイティブの pre メソッドを使用します!

ブロックエディターのデモ

WordPressネイティブのプリコードハイライトプラグインPure Highlightjsのメジャーアップデート:Highlight.js v11.11.1にアップグレード - LikaCloud
コードブロックを組み込んだブロックエディタ

192言語をサポート

WordPressネイティブのプリコードハイライトプラグインPure Highlightjsのメジャーアップデート:Highlight.js v11.11.1にアップグレード - LikaCloud
プラグインは192言語をサポート

80のスタイルテーマ

WordPressネイティブのプリコードハイライトプラグインPure Highlightjsのメジャーアップデート:Highlight.js v11.11.1にアップグレード - LikaCloud
テーマには、デイモードとナイトモードを含む80のスタイルテーマが用意されています。

テクニカル・ブロガーや文書作成者にとって、最新で効率的なコード・ハイライト・ツールは依然として需要があり、このPure Highlightjsの再生は、WordPressのコード表示機能に新たな息吹をもたらすかもしれない。

プラグイン設定ヘルプ