Pure Highlightjsプラグインの紹介
バックステージの設定

トピック選択
- 昼間のテーマ:コードブロックのスタイルスタイルを選択し、選択後に保存し、プレビューします。合理化を行わず、数十のスタイルを選択することができます。
- 夜間テーマ:夜間モードを有効にするには、ルートhtml要素にダークを追加するテーマをサポートする必要があります。
スクロールバーの色
あなたは、テーマのスタイルに応じてスクロールバーのスタイルを設定する必要があり、すべての主要なブラウザと互換性のあるsimplebarとスクロールバーは、スクロールバーを必要とするサイト全体に適用することができ、残念ながらスクロールバースタイルのページ本体とhtmlの画面側をサポートしていません。
注:プラグインのバックエンドで設定したスクロールバーの色は、コードブロックのスクロールバーにのみ反映されます。
サイトの他の場所でsimplebarを使う必要がある場合は、以下のプラグインディレクトリファイルを開いてください:
//位置 plugins/Pure-Highlightjs/assets/pure-highlight.js
// 根据类名添加simplebar滚动条样式
document
.querySelectorAll(
'pre, .a, .b, .c,.com-scrollbar'
)
.forEach((el) => {
el.setAttribute('data-simplebar', '');
});
.a、.b、.c、.com-scrollbarのような上記のコードは、このようにdivまたは他の要素のクラス名をここに追加し、それが例えばsimplebarスクロールバーに適用されます:
<!-- 滚动条类最好是添加在这个div -->
<div class="com-scrollbar flex flex-col gap-4">
<!-- 不建议在这个div添加滚动条类 -->
<div class="content">
<span>コンテンツ</span>
<span>コンテンツ</span>
<span>コンテンツ</span>
<span>コンテンツ</span>
</div>
</div> ツールバーの色設定
各テーマのプラグインスタイルのスタイルが同じではないので、ツールスタイルの色の設定を追加し、色がコードで直接固定されている場合、いくつかのテーマのスタイルが調整されていないため、背景は、ツールバーの色を設定するスタイルに応じて選択することができます。
ツールバー表示モード
- 常にオン:ツールバーは常に表示され、消えることはありません。
- マウスホバー表示:コードブロック上にマウスを置くとツールバーが表示され、コードブロックをクリックするとモバイルが表示されます。
ツールバーフロート
ツールバーは常にスライドし、常にビューポート領域に表示され、下にスライドすると下に、上にスライドすると上にページを追いかけ、ビューポートがコードブロックを超えると元の位置に戻る。
コード・ブロックの高さ
記事内に多くのコードブロックがあり、各ブロックに多くのコード行がある場合?コードブロックの最大高さ(max-height)を設定することをお勧めします、クラシックエディタはコードを入力するときに高さを埋めることです、ブロックエディタはクラス名メソッドを使用することです。
クラシックエディターのコードブロックの高さ設定

図に示すように、クラシック・エディターがコードを挿入するためにコード・ボタンをクリックすると、デフォルトの高さは380になるが、他の数字に変更することもできる。コードを挿入すると、デフォルトでは最後に空白行が追加されます。ブロック内に他のコードがない場合は、空白行を削除することをお勧めします。(?)最初はコードの問題だと思ったのですが、最終的になぜもっと20pxの空の位置が、もともと空の行を追加するときにコードに挿入された半日探して、泣くのでしょうか?♀️), 以下は、古典的なエディタのデモは、300pxの最大の高さです:
<?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";
?> クラシック・エディターのコード・ブロックに高さがある場合、ツールバーには「Expand Collapse」ボタンが表示されます。
高さがない場合のクラシックエディタのコード

<?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();
?> 高さがない場合、Classic EditorにExpand Collapseボタンが表示されない。
ブロックエディター コード ブロックの高さ設定

今のところ、このような身長クラスの名前はほんの数種類しかない:
h-200 {
max-height: 200px; /*最大高度为200px*/
}
h-300 {
max-height: 300px; /*最大高度为300px*/
}
h-380 {
max-height: 380px; /*最大高度为380px*/
}
h-500 {
max-height: 500px; /*最大高度为500px*/
} ブロックエディタは、手動で固定クラスを使用して、古典的なエディタのような高さを入力しませんでしたか?それはあなたが手動入力の高さ関数を追加するには、ブロックツールバーをコード化できるかどうかを確認するために、エディタは、ブロックエディタ、フォローアップに連絡するだけかもしれませんが、デモは次のとおりです:
<?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";
?> 高さがある場合、ツールバーには「Expand Collapse」ボタンが表示されます。
ブロックエディタのコードに高さがない場合

高さを必要としない場合や、コードが少ない場合は、高さクラス名を設定する必要はありません。高さがない場合、ツールバーには白い折りたたみボタンが表示されません。デモは以下の通り。
<?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();
?> その後、更新されたプラグインの需要を更新します、そのようなプラグインは、任意の問題が追加してください。QQグループ 1398231フィードバック
