chinese-typesetting:更好的中文文案排版

歡迎指正。GitHub 地址:https://github.com/jxlwqq/chinese-typesettingphp

更好的中文文案排版

統一中文文案、排版的相關用法,下降團隊成員之間的溝通成本,加強網站氣質。html

安裝

使用 composer 安裝:git

composer require "jxlwqq/chinese-typesetting"

使用

添加空格

use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

$text = '今天,我在Apple Store上購買了一臺13英寸MacBook Pro筆記本電腦,花費了14188元。';
$chineseTypesetting->insertSpace($text);
// 今天,我在 Apple Store 上購買了一臺 13 英寸 MacBook Pro 筆記本電腦,花費了 14188 元。。

$text = 'α碳原子爲與有機物中與官能團相連的第一個碳原子,第二個爲β碳原子,以此類推。';
$chineseTypesetting->insertSpace($text);
// α 碳原子爲與有機物中與官能團相連的第一個碳原子,第二個爲 β 碳原子,以此類推。

在中文與英文字母/用於數學、科學和工程的希臘字母/數字之間添加空格。 參考依據:中文文案排版指北:空格github

目前,比較主流的約定是在中文與英文之間添加空格。我在此基礎上,增長了對用於數學、科學和工程的希臘字母的支持。bash

全角轉半角

use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

$text = '這個名爲 ABC 的蛋糕只賣 1000 元。';
$chineseTypesetting->full2Half($text);
// 這個名爲 ABC 的蛋糕只賣 1000 元。

有限度的全角轉半角(英文、數字、空格以及一些特殊字符等使用半角字符)。參考依據:中文文案排版指北:全角和半角composer

清除 HTML 標籤的樣式

use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除 Class 屬性
$text = '<p class="class-name">Hello World!</p>';
$chineseTypesetting->removeClass($text);
// <p>Hello World!</p>

// 清除 ID 屬性
$text = '<p id="id-name">Hello World!</p>';
$chineseTypesetting->removeId($text);
// <p>Hello World!</p>

// 清除 Style 屬性
$text = '<p style="color: #FFFFFF;">Hello World!</p>';
$chineseTypesetting->removeStyle($text);
// <p>Hello World!</p>

清除空的段落標籤

use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除空的段落標籤
$text = '<p>Hello World!</p><p></p>';
$chineseTypesetting->removeEmptyParagraph($text);
// <p>Hello World!</p>

清除全部空的標籤

use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除全部空的標籤
$text = '<p>Hello World!<span></span></p>';
$chineseTypesetting->removeEmptyTag($text);
// <p>Hello World!</p>

清除段首縮進

use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除段首縮進
$text = '<p>  Hello World!</p>';
$chineseTypesetting->removeIndent($text);
// <p>Hello World!</p>

首行是否縮進,爭議較大,我的傾向於段首空兩格,會破壞美感的觀點。ide

使用所有或指定的方法來糾正排版

use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 使用所有方法來糾正排版
$text = '<p class="class-name" style="color: #FFFFFF;"> Hello世界。</p>';
$chineseTypesetting->correct($text);
// <p>Hello 世界。</p>

// 使用指定方法來糾正排版
$text = '<p class="class-name" style="color: #FFFFFF;"> Hello世界。</p>';
$chineseTypesetting->correct($text, ['insertSpace', 'removeClass']);
// <p style="color: #FFFFFF;">Hello 世界。</p>
相關文章
相關標籤/搜索