From 31444a6a674871a080da8f9ea318f6825578f7a8 Mon Sep 17 00:00:00 2001 From: gledos Date: Wed, 11 Oct 2023 15:55:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=B0=200.0.34-beta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 148 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 135 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index db6dbae..20bddf4 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ```yaml 标题: 通用写作律法 创建时间: 2023-08-26 -版本: 0.0.33-beta +版本: 0.0.34-beta ``` 《通用写作律法(General Writing Laws)》是由 @@ -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

### GWLM 16-5 超链接 -#### GWLM 16-5-0 概述 +#### GWLM 16-5-0 超链接概述 超链接的全称是超链接([hyperlink][]),有时也简称为超链,是富文本重要的功能之一, 随后被万维网的 HTML \ 元素发扬光大。 @@ -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).