markstory/geshi

CakePHP 插件,与 Geshi 语法高亮器集成。

安装数: 2,231

依赖者: 1

建议者: 0

安全: 0

星标: 26

关注者: 4

分支: 7

开放问题: 0

类型:cakephp-plugin

5.0.0 2024-04-21 03:40 UTC

This package is auto-updated.

Last update: 2024-09-21 04:31:57 UTC


README

此插件为您的应用程序添加 GeSHi 语法高亮提供简单助手。

安装

您可以使用 composer 安装此插件。将以下内容添加到您的 composer.json 文件中

"require": {
	"markstory/geshi": "~3.0"
}

运行 composer update 之后,您还应记住加载插件。在您的应用程序的 bootstrap.php 文件中添加以下内容

Plugin::load('Geshi');

在控制器中包含助手

GeSHi 助手提供三种不同的方式来设置 GeSHi 的功能,这会影响您如何在控制器中包含助手。

如果您想使用 geshi.php 配置文件,或者您想在视图内稍后设置功能,请确保不进行预配置。否则,如果您想在助手声明中包含功能设置,请进行预配置,下面将进行解释。

不进行预配置的包含

要使用助手,请在您的视图中包含该助手

public $helpers = ['Geshi.Geshi'];

您必须包含一个 geshi.php 配置文件,或从您的视图中简单设置功能。

进行预配置的包含

要使用助手并指定特定的 GeSHi 功能,请使用包含助手的选项形式

public $helpers = [
	'Geshi.Geshi' => [
		'set_header_type' => ['GESHI_FANCY_LINE_NUMBERS', 5]
	]
];

其中传入的键是 GeSHi 函数名,传入的值是函数值的数组。注意,因为 GeSHi 的常量此时已超出范围,所以必须像上面那样引用命名常量。GeshiHelper 将为您解析它们。

方法

highlight($html)

此方法将扫描 HTML 中的已知 lang 属性的 <pre> 块。此方法适合在博客文章或维基页面中突出显示代码示例。

您可以通过设置 <pre> 块的 lang 属性来指示文本中的语言。例如

<pre lang="php">
<?php
echo 'hi'
</pre>

将突出显示为 PHP 代码。

highlightText($text, $language)

此方法将在 $language 中突出显示 $text。使用此方法突出显示 GeSHI 支持的任何语言的文本。

highlightText($text, $language, $withStylesheet)

这是上面相同的方法,但如果您指定可选的第三个参数为 true,则助手将包含 GeSHi 生成的内联样式表。

配置

如前所述,有三种方法可以设置 GeSHI 的功能选项。

在控制器中进行配置

上面“进行预配置的包含”部分说明了如何进行此操作。如果在控制器中预配置,仍然可以通过在视图中进行配置来覆盖这些初始设置。

在视图中进行配置

您可以通过访问 $features 变量在您的视图中配置 GeSHI 的功能:例如 $this->Geshi->features = array(...)

$this->Geshi->setConfig('features', [
	'geshi_function_name' => ['geshi_parameter', list, values]
]);

请注意,GeSHI 的常量 确实 在此作用域内,因此从视图中引用参数值是可选的。

在视图中设置功能使您能够非常灵活地使用 GeSHI,例如,由同一控制器提供多种语言。

通过配置文件进行配置

您可以通过在您的 /config 目录中创建一个 geshi.php 文件来配置 GeSHi 实例。此文件应包含配置 $geshi 对象的代码/方法调用。一个示例可以在 tests/geshi.php 中找到

请注意,如果已在您的 $helpers 中预配置了 GeSHi 实例或已在您的视图中设置了 $this->Geshi->features,则将完全忽略配置文件。

许可

此代码受 MIT 许可证的许可。