chinese-typesetting:更好的中文文案排版
欢迎指正。GitHub 地址:https://github.com/jxlwqq/chinese-typesetting
更好的中文文案排版
统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。
安装
使用 composer 安装:
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);
// α 碳原子为与有机物中与官能团相连的第一个碳原子,第二个为 β 碳原子,以此类推。
在中文与英文字母/用于数学、科学和工程的希腊字母/数字之间添加空格。 参考依据:中文文案排版指北:空格
目前,比较主流的约定是在中文与英文之间添加空格。我在此基础上,增加了对用于数学、科学和工程的希腊字母的支持。
全角转半角
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;
$chineseTypesetting = new ChineseTypesetting();
$text = '这个名为 ABC 的蛋糕只卖 1000 元。';
$chineseTypesetting->full2Half($text);
// 这个名为 ABC 的蛋糕只卖 1000 元。
有限度的全角转半角(英文、数字、空格以及一些特殊字符等使用半角字符)。参考依据:中文文案排版指北:全角和半角
清除 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>
首行是否缩进,争议较大,个人倾向于段首空两格,会破坏美感的观点。
使用全部或指定的方法来纠正排版
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>
chinese-typesetting:更好的中文文案排版的更多相关文章
- 免费的编程中文书籍索引 from github
免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿. 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版. stackoverflow 上的程序员应该阅读的非编程类书籍有哪些 ...
- Coding and Paper Letter(五十八)
资源整理. 1 Coding: 1.支持TMS.WMTS标准瓦片下载,支持百度地图瓦片.高德地图瓦片.腾讯地图瓦片.天地图.ArcServer Rest瓦片.ArcServer本地缓存切片.geose ...
- 前端组件库 - 搭建web app常用的样式/组件等收集列表(移动优先)
0. 前端自动化(Workflow) 前端构建工具 Webpack - module bundler Yeoman - a set of tools for automating developmen ...
- Guide 哥:有哪些程序员受用一生的好习惯?
本文来自 Guide 哥开源的 Github 仓库 programmer-advancement:https://github.com/Snailclimb/programmer-advancemen ...
- 转:Laravel 项目开发规范
文件介绍很好 值得细细看看 https://www.jianshu.com/p/e464a35e5ed2 https://learnku.com/docs/laravel-specification/ ...
- PHP-FIG - PHP 标准规范
转自:https://psr.phphub.org/ PHP 标准规范 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 ...
- 微软推出中文学习AI助手Microsoft Learn Chinese
编者按:美国总统特朗普访华期间,他6岁的外孙女阿拉贝拉用中文普通话演唱和背诵传统诗歌的视频在中国社交媒体上引起广泛关注,可以感受得到,越来越多的人对中文学习充满了兴趣.智能私教微软小英帮助很多中国 ...
- 您的下个中文网站可以使用的5个高质量中文Webfont
你有没有考虑为什么中文网站的版式风格不像大多数现代英文网站那样丰富?您想了解如何让您的下一个中文网站项目更吸引用户的眼球么?继续往下读吧…… 根据Smashing Magazine进行的一项调查显示 ...
- elasticsearch教程--中文分词器作用和使用
概述 本文都是基于elasticsearch安装教程 中的elasticsearch安装目录(/opt/environment/elasticsearch-6.4.0)为范例 环境准备 ·全新最小 ...
随机推荐
- 学习 C++,关键是要理解概念,而不应过于深究语言的技术细节
学习 C++学习 C++,关键是要理解概念,而不应过于深究语言的技术细节. 学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统. C++ 支 ...
- mysql驱动(github上的)
https://github.com/Eonblast/Emysql https://github.com/denglf/erlang-db-driver https://github.com/diz ...
- erlang的简单模拟半包的产生
gen_tcp:linsten()/2使用的是{packet,2/4/8},则gen_tcp模块在接受或者发送时自动除去包头或者自动加上包头. 本例中使用的是{packet,0}. -module( ...
- 【Java面试题】11 什么是内部类?Static Nested Class 和 Inner Class的不同。
Inner Class(内部类)定义在类中的类. (一般是JAVA的说法) Nested Class(嵌套类)是静态(static)内部类.(一般是C++的说法)静态内部类:1 创建一个static内 ...
- 【JavaNIO的深入研究4】内存映射文件I/O,大文件读写操作,Java nio之MappedByteBuffer,高效文件/内存映射
内存映射文件能让你创建和修改那些因为太大而无法放入内存的文件.有了内存映射文件,你就可以认为文件已经全部读进了内存,然后把它当成一个非常大的数组来访问.这种解决办法能大大简化修改文件的代码.fileC ...
- CSS导入使用及引用的两种方法
方法一<link rel="stylesheet" type="text/css" href="test.css"> 方法二&l ...
- js省市二级联动
html: <script src="js/city.js"></script> ...... <body> <div class=&qu ...
- 使用Base SDK 6.1编译的APP在iOS7的设备上运行,NavigationBar覆盖view的解决办法
if (__IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_6_1) { self.navigationController.navigationBar.tr ...
- dwr框架使用总结——简单示例
1.新建web项目,项目名为dwr 2.导入以下jar包: dwr.jar.classes12.jar.commons-logging-1.0.4.jar和commons-logging.jar 3. ...
- C#操作缓存--CacheHelper缓存帮助类
/// <summary>/// 类说明:Assistant/// 联系方式:361983679 /// 更新网站:<a href=\"http://www.cckan. ...