urbanmonastics / sourceparser
v0.4.3
2022-01-29 15:45 UTC
README
PHP中用于礼仪的快速Markdown解析器。这是一个用于Urban Monastics提供的源文本特定样式和格式的格式化库。
源文本使用Markdown功能的一个子集,并包含一些附加功能。为了使这些文本更容易接近和使用,我们希望发布一个库,该库可以使格式化它们变得简单直接。此库基于 Parsedown,由 Emanuil Rusev 开发。
特性
- 快速
- 无外部依赖。
- 考虑到多字节文本编码。
- 扩展以支持礼仪需求 - 启用所需功能
- 包括经文
- 包括行内十字架、停顿和短剑
- 包括代祷祈祷。包括介绍、回应和两部分的意图
- 包括超过3个字符的单词的小写字母 [启用单独]
- 包括包围Selah术语的样式 [启用单独]
- 包括抑制术语Alleluia(可定义在你的语言中) [启用单独]
- 包括行内红字文本。
- 支持加粗文本,以提供更健壮的抄本支持。
- GitHub风味
- 测试 在 7.0 到 8.0
扩展Markdown
为了确保我们可以支持额外的元素。这些扩展分为行内或块级标记。
行内扩展
这些可以放在文本中的任何位置。由于没有标准的方式在HTML中实现这些。因此我们需要
- _underline_ 使括号内的文本下划线。注意,我们禁用使用下划线来支持粗体或斜体的能力,以支持下划线文本。 (不支持GitHub)
- ‾over line‾ 使括号内的文本上划线。仅支持HTML格式。 (不支持GitHub)
- _‾under and over line‾_ 使括号内的文本既下划线又上划线。仅支持HTML格式,在其他输出中将显示为下划线。 (不支持GitHub)
- [red]red text[/red] 使括号内的文本变红。输出为
<span class="color-red">red text</span>,仅当启用 LiturgicalElements 时,否则将简单地删除。 - [+] 这将插入符号提示读者交叉自己。在非HTML中呈现为 ✛ [U+271B 或
✛]。 - [*] 这用于表示吟唱文本的中点。
- [t] 这是表示当前行继续下面的短剑/方尖碑。在有多于两行的吟唱文本中很有用。在非HTML中呈现为 † [U+2020 或
†或†]。
块扩展
- [V] 在 Responsory 期间,它表示领导说话的 Versicle 行。在非HTML中呈现为 ℣ [U+2123 或
℣]。 - [R] 在 Responsory 期间,它表示所有说话的 Response 行。在非HTML中呈现为 ℟ [U+211F 或
℟]。 - [II] 在 Intercessions 期间,这表示意图的 Introduction。当在团体中祈祷时,应由领导阅读。
- 在[IR] 祷告[em]间歇期间,这表示[strong]回应[strong]。它应该只放在引言之后的源文本行上。在格式化时将放置在其他位置。在团体祈祷时,应由领导者阅读。
- [I1] 在[em]祷告[em]间歇期间,这表示[strong]第一部分[strong]意向。
- [I2] 在[em]祷告[em]间歇期间,这表示[strong]第二部分[strong]意向。
- [IXtra] 在[em]祷告[em]间歇期间,这表示放置额外意向的位置。通常在最后一个完整意向之前。
其他选项
添加到您的项目
安装composer包
composer require UrbanMonastics/SourceTextParser
或下载最新版本并包含 SourceTextParser.php
示例用法
在最简单的方法中,您可以传递要解析的文本。
$SourceTextParser = new /UrbanMonastics/SourceTextParser(); echo $SourceTextParser->text("Hello *Source Parser*!"); # prints: <p>Hello <em>Source Parser</em>!</p>
您还可以利用源文本的结构。
$SourceTextParser = new SourceTextParser(); // Load the source data into the parser $Source = json_decode( file_get_contents('path/to/source.json'), true ); $SourceTextParser->loadSource( $Source ); $SourceTextParser->loadText(); echo $SourceTextParser->text("Hello *Source Parser*!"); # prints: <p>Hello <em>Source Parser</em>!</p> // Clear the loaded Source and Texts - without altering other options $SourceTextParser->clearSource();
格式化选项
这些文本可能需要在各种格式和环境中使用。可能会出现您想要确保仅渲染某些文本元素以供您使用的情况。
方法
- setSafeMode( bool ) 默认:false
启用时将确保输出无法执行代码。 - setStrictMode( bool ) 默认:false
启用时它要求标题不以空格开头... - setBreaksEnabled( bool ) 默认:false
启用时它将换行标记\n转换为<br>。 - setMarkupEscaped( bool ) 默认:false
启用时它将转义文档中存在的任何HTML语法。 - setUrlsLinked( bool )
启用时它将内联URL字符串转换为可点击链接。 - setPreserveIndentations( bool ) 默认:false
启用时,这将任何制表符(4个空格的集合)转换为四个双空格,并用span包装。启用此选项将禁用代码块中的制表符。 - setLiturgicalElements( bool ) 默认:true
启用时,标准Markdown将补充宗教元素。有关添加内容,请参阅上方扩展Markdown。 - setLiturgicalHTML( bool ) 默认:true
我们在HTML标签内放置宗教标记,还是直接将它们放入文档中。 - setSelahHTML( bool, string SelahTerm ) 默认:false, selah
我们是否用HTML包装术语Selah以方便样式设计。Selah术语是可选的,允许您指示其他语言中使用的术语。 - setSmallCapsText( bool ) 将查找所有每个字符都大写的三个或更多字符的单词。然后,这些单词将被包装在HTML中以转换为小写字母。这在一些圣经文本中用于指示术语"יְהֹוָה"(或yhwh)用于指代上帝。
- setSuppressAlleluia( bool, string AlleluiaTerm ) 默认:false, Alleluia
在圣灰星期三期间,禁止使用 Alleluia 这个词。启用此选项将删除任何只有 Alleluia 这个词的行。您还可以定义在文本中寻找的 Alleluia 术语以提供更广泛的语言支持。 - setTitlesEnabled( bool ) 默认:false
我们是否将来自text.json文档的任何标题放入输出 - setFootnotesEnabled( bool ) 默认:false
我们是否将来自text.json文档的脚注放入输出
$SourceTextParser->setLiturgicalElements( true ); echo $SourceTextParser->text("God, [+] come to my assistance,[*]"); // prints: <p>God, <span class="symbol-cross">✛</span> come to my assistance,<span class="symbol-star">*</span></p> $SourceTextParser->setLiturgicalHTML( false ); # The default value is True, so you can manually disable wrapping liturgical elements. echo $SourceTextParser->text("God, [+] come to my assistance,[*]"); // prints: <p>God, ✛ come to my assistance,*</p>
开发环境
为了更轻松地开发和构建 SourceTextParser,我们已经为您设置了一个本地Docker容器。在项目基本目录中有一些简单的Unix脚本,您可以在其中执行以进行设置。
# To build or update the container
./docker/build.sh
# To start an existing container
./docker/start.sh
# To stop/shutdown the container
./docker/stop.sh
# To run the PHPUnit tests in /test/SourceTextParserTest.php
./docker/phpunit.sh
# To attach to the running container
./docker/attach.sh
# To run the PHP composer update on the running container
./docker/update.sh
此外,我们将NGNIX访问和错误日志链接到Docker目录中的文件。这有助于故障排除。
docker/nginx/access.log
docker/nginx/error.log