chulakov/ch-php-typograph

组件允许调整Muravjev排版并使用它

安装次数: 8,720

依赖者: 1

建议者: 0

安全: 0

星标: 1

关注者: 5

分支: 1

开放性问题: 0

类型:php-typograph-component

1.0.7 2021-12-10 10:25 UTC

This package is auto-updated.

Last update: 2024-09-10 16:22:22 UTC


README

这是一个基于PHP的内置配置器的排版组件

排版配置器设置Muravjev排版规则。

在配置器中添加或删除块没有实现。如果需要完全排除某个块,则可以禁用所有规则。

  • 是一个包含规则集合的模块。例如:块 Symbol 包含检测和处理各种符号的规则。
  • 规则 是一个包含发现文本中情况的正则表达式数组(-ki)和相应替换找到情况的正则表达式数组(-ki)。
    数组中还有一个(非必需)单元格,用于描述规则的实质。
  • oleg-chulakov-studio/mdash 的 Typograph composer 包 - 是 TypographBase 的后继者。在其中声明的不是所有块规则,这些规则在 TypographBase 类中可用。
    因此,不能连接/断开 TypographBase 类中所有块的规则。因此,某些 TypographBase 类的块规则已写入
    $additionalOptions 类变量 TypographConfigurator,以便进行后续设置。
  • Chulakov\PhpTypograph 命名空间中的 Typograph 类继承自 composer 包 oleg-chulakov-studio/mdash 中的 Typograph 类,因为需要添加
    TypographBase 类中可用但在 composer 包 oleg-chulakov-studio/mdash 中的 Typograph 类中不可用的排版规则。

安装

要安装组件,需要在 composer.json 中添加以下行

"require": {
    "chulakov/ch-php-typograph": "^1.0.0",
}

或者输入以下命令

composer require chulakov/ch-php-typograph

配置器的使用

  1. 声明排版配置器。使用配置文件中定义的规则和配置器内默认设置的排版规则设置排版
$configurator = new TypographConfigurator();
$configurator->configure();
  1. 使用通过构造函数传递的规则设置排版
$configurator = new TypographConfigurator($additionalRules, $changedRules);
  1. 声明新规则示例
$additionalRules = [
    [
        'selector' => 'Abbr',
        'ruleName' => 'nobr_vtch_BC',
        'params' => [
            'pattern' => '/(^|\s|\&nbsp\;|)([дД]о)?[ ](н)\.?[ ]?э\./ue',
            'replacement' => '$m[1] . $this->tag($m[2] . " н."." э.", "span", array("class" => "nowrap"))',
        ],
    ],
];
  1. 声明规则更改示例
$changedRules = [
    [
        'selector' => 'Etc.time_interval',
        'keysOfRule' => [
            'pattern',
            'replacement',
        ],
        'valuesOfKeyRule' => [
            '/([\d]{1,2}\:[\d]{2})(-|\&mdash\;|\&minus\;)([\d]{1,2}\:[\d]{2})/eui',
            '$this->tag($m[1] . "–" . $m[3], "span", array("class" => "nowrap"))',
        ],
    ],
];

使用排版

  1. 使用用户自定义设置创建排版对象并处理文本。在创建 TypographFacade 类对象时,会创建
    排版配置器
$typograph = new TypographFacade();
$processedText = $typograph->process('до н. э.');