更新到 0.0.34-beta

This commit is contained in:
gledos 2023-10-11 15:55:10 +08:00
parent cc36ee0c2c
commit 31444a6a67

148
README.md
View File

@ -3,7 +3,7 @@
```yaml
标题: 通用写作律法
创建时间: 2023-08-26
版本: 0.0.33-beta
版本: 0.0.34-beta
```
<ruby>通用写作律法<rp>(</rp><rt>General Writing Laws</rt><rp>)</rp></ruby>》是由
@ -613,7 +613,7 @@ A1 --> B4 --> C5
## GWLM 13 字幕
### GWLM 13-0 概述
### GWLM 13-0 字幕概述
**简介:**
@ -677,11 +677,11 @@ A1 --> B4 --> C5
暂定的规则,需要研究。
### GWLM 15-0 概述
### GWLM 15-0 WCAG 概述
## GWLM 16 纯文本与富文本
### GWLM 16-0 概述
### GWLM 16-0 纯文本与富文本概述
纯文本与富文本缺乏相关完善的规范。GWLM 16 将参考各种常用纯/富文本使用者的观点,整理出各种纯/富文本的用法。
@ -710,7 +710,7 @@ A1 --> B4 --> C5
### GWLM 16-1 字体
#### GWLM 16-1-0 概述
#### GWLM 16-1-0 字体概述
字体包含:字体、尺寸、字重和倾斜。
@ -919,7 +919,7 @@ _这是倾斜的句子。_
### GWLM 16-2 其他字体效果
#### GWLM 16-1-0 概述
#### GWLM 16-1-0 其他字体效果概述
其他字体效果包含:下划线、删除线、着重号……
@ -1152,7 +1152,7 @@ Markdown 有两种标题标记,分别是:
### GWLM 16-4 缩进与换行
#### GWLM 16-4-0 概述
#### GWLM 16-4-0 缩进与换行概述
〔待续〕
@ -1512,7 +1512,7 @@ test</p>
### GWLM 16-5 超链接
#### GWLM 16-5-0 概述
#### GWLM 16-5-0 超链接概述
超链接的全称是超链接([hyperlink][]),有时也简称为超链,是富文本重要的功能之一,
随后被万维网的 HTML \<a> 元素发扬光大。
@ -1754,7 +1754,7 @@ HTML 注释有多种写法,下面是 [W3Schools 的 HTML 样式指南](https:/
### GWLM 16-7 签名块
[签名块][] 是早期电子邮件、Usenet 常用的功能。通常是以短横线、短横线和空格组成分割线:
[签名块][] 是早期电子邮件、Usenet 常用的功能。通常是以短横线、短横线和空格,组成分割线,后面的内容就是签名块。
```usenet
...orist it's an unnecessary optimization and a (to use your words)
@ -1867,13 +1867,135 @@ Markdown 最初的开发者,以及许多兼容的渲染器都没怎么考虑
暂定的规则,需要研究。
## GWLM 17 时间修补
## GWLM 17 日期与时间
暂定的规则,需要研究。
### GWLM 17-0 日期与时间概述
---
**标准:**
将时间视作整体不为「YYYY」「年」「MM」「月」「DD」「日」之间添加空格并在前后添加空格。[^ccg_102]
日期与时间是重要的工具,能记录文章的发布时间,如果没有它,那么先后提示就不复存在,非常不方便。
因为不同地区使用的格式略有差异,所以需要设立含有少量字符的基础格式,用来被电脑识别。
不过这项标准意外的完成得晚1998 年才推出 [ISO 8601][],并且主要原因还是为了应对 [千年虫问题][]……
[ISO 8601]: https://en.wikipedia.org/wiki/ISO_8601
[千年虫问题]: https://en.wikipedia.org/wiki/Year_2000_problem
大致格式就像「2023-09-17T18:42:22Z」。
**格式化:**
完整的 ISO 8601 时间不适合阅读所以会格式化成符合当地或是作者风格的格式比如「YYYY-MM-DD」是被格式化的日期
比如「1234-05-06」这样其中的「YYYY」是模板。
在编程语言中很流行这类格式化方法,比如 JavaScript 的 [Moment.js][] 库,下面是它常见的标记模板:
[Moment.js]: https://momentjs.com
| 「en」 | 标记 | 输出 |
| ------ | ---- | ------------------------------------ |
| 年 | YY | 70 71 … 29 30 |
| | YYYY | 1970 1971 … 2029 2030 |
| 月 | M | 1 2 … 11 12 |
| | MM | 01 02 … 11 12 |
| | MMM | Jan Feb … Nov Dec |
| | MMMM | January February … November December |
| 日 | D | 1 2 … 30 31 |
| | DD | 01 02 … 30 31 |
| AM/PM | A | AM PM |
| | a | am pm |
| 时 | H | 0 1 … 22 23 |
| | HH | 00 01 … 22 23 |
| | h | 1 2 … 11 12 |
| | hh | 01 02 … 11 12 |
| | k | 1 2 … 23 24 |
| | kk | 01 02 … 23 24 |
| 分 | m | 0 1 … 58 59 |
| | mm | 00 01 … 58 59 |
| 秒 | s | 0 1 … 58 59 |
| | ss | 00 01 … 58 59 |
不同地区也有一些差异,不过这里暂时不再详细探讨:
| 「zh」 | 标记 | 输出 |
| ------ | ---- | -------------------------- |
| 月 | MMM | 1月 2月 …… 11月 12月 |
| | MMMM | 一月 二月 …… 十一月 十二月 |
| AM/PM | A | 上午 下午 |
有了这些标记模板,就能格式化出各种日期样式。
备注:将 AM 和 PM 翻译成上午和下午本身没有为什么问题,但是不符合中文习惯,比如 11:30 在中文语境下,应称作中午,
而 Moment.js 支持更细致的调整其他地区的时间状态比如下面将中文的「AM/PM」分了 5 个时间状态。
```javascript
moment.updateLocale('zh-cn', {
meridiem : function (hour, minute, isLowercase) {
if (hour < 9) {
return "早上";
} else if (hour < 11 && minute < 30) {
return "上午";
} else if (hour < 13 && minute < 30) {
return "中午";
} else if (hour < 18) {
return "下午";
} else {
return "晚上";
}
}
});
```
### GWLM 17-1 日期
首先定义模板内容:
1. 半角数字0123456789
2. 全角数字:0123456789
3. 汉字数字(含十的幂):
1. 零一二三四五六七八九十百千万亿兆京
2. 〇一二三四五六七八九十百千万亿兆京
3. 零壹貳叁肆伍陸柒捌玖拾佰仟萬億兆京
4. 汉字数字(不含十的幂):
1. 零一二三四五六七八九
2. 〇一二三四五六七八九
3. 零壹貳叁肆伍陸柒捌玖
5. 月份 Unicode㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋
6. 日期 Unicode㏠㏡㏢㏣㏤㏥㏦㏧㏨㏩㏪㏫㏬㏭㏮㏯㏰㏱㏲㏳㏴㏵㏶㏷㏸㏹㏺㏻㏼㏽㏾
7. 时刻 Unicode㍘㍙㍚㍛㍜㍝㍞㍟㍠㍡㍢㍣㍤㍥㍦㍧㍨㍩㍪㍫㍬㍭㍮㍯㍰
那么 {{MM.2}} 这样的伪代码,就表示以列表 2 中的数字替代 MM 月份原本的数字。
将「2023-10-11」用下面的模板格式化就能输出各种格式
| 模板 | 输出 |
| -------------------------------------- | ------------------------ |
| {{YYYY.1}}年{{MM.1}}月{{DD.1}}日 | 2023年10月11日 |
| {{YYYY.2}}年{{MM.2}}月{{DD.2}}日 | 2023年10月11日 |
| {{YYYY.3.1}}年{{MM.3.1}}月{{DD.3.1}}日 | 二千零二十三年十月十一日 |
| {{YYYY.4.1}}年{{MM.3.1}}月{{DD.3.1}}日 | 二零二三年十月十一日 |
| {{YYYY.4.2}}年{{MM.3.2}}月{{DD.3.2}}日 | 二〇二三年十月十一日 |
| {{YYYY.4.2}}年{{MM.4.2}}月{{DD.4.2}}日 | 二〇二三年一〇月一一日 |
| {{YYYY.1}}年{{MM.5}}{{DD.6}} | 2022年㋉㏪ |
<!--
组件的分隔符:
/ 斜线(斜线)
. 句号、点或点(句号)
- 连字符(破折号)
- 空间
-->
### GWLM 17-2 时间
〔待续〕
### GWLM 17-3 修补
将日期时间视作整体不为「YYYY」「年」「MM」「月」「DD」「日」之间添加空格并在前后添加空格。[^ccg_102]
[^ccg_102]: undeadway, 《[是否可以明确一下日期的书写格式 · Issue #102 · sparanoid/chinese-copywriting-guidelines](https://github.com/sparanoid/chinese-copywriting-guidelines/issues/102)》, GitHub, 2019-12-25. (参照 2023-08-27).