urbanmonastics/sourceparser

此包已被弃用,不再维护。作者建议使用 urbanmonastics/sourcetextparser 包。

PHP中用于礼仪的快速Markdown解析器。

v0.4.3 2022-01-29 15:45 UTC

This package is auto-updated.

Last update: 2024-02-29 16:54:35 UTC


README

Build Status Total Downloads Version License

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 或 &#10011;]。
  • [*] 这用于表示吟唱文本的中点。
  • [t] 这是表示当前行继续下面的短剑/方尖碑。在有多于两行的吟唱文本中很有用。在非HTML中呈现为 † [U+2020 或 &#8224;&dagger;]。

块扩展

  • [V] 在 Responsory 期间,它表示领导说话的 Versicle 行。在非HTML中呈现为 ℣ [U+2123 或 &#8483;]。
  • [R] 在 Responsory 期间,它表示所有说话的 Response 行。在非HTML中呈现为 ℟ [U+211F 或 &#8479;]。
  • [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