markstory / geshi
CakePHP 插件,与 Geshi 语法高亮器集成。
Requires
- php: >=8.1
- cakephp/cakephp: ^5.0
- cakephp/plugin-installer: ^2.0.1
- geshi/geshi: ^1.0.9.1
Requires (Dev)
- cakephp/cakephp-codesniffer: ^5.0
- phpunit/phpunit: ^10.1.0 <=10.5.3
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 许可证的许可。