Download the PHP package noi/parsedown-newline without Composer

On this page you can find all versions of the php package noi/parsedown-newline. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package parsedown-newline

Parsedown 日本語改行支援extension

このエクステンションは、ParsedownのHTML変換処理に以下の振る舞いを追加します:

この処理により、日本語(全角文字)で書いたMarkdownの

を解消します。

例えば、以下のようなMarkdownの可読性をだいなしにする苦肉の策は必要なくなります:

以降の動作例を確認してください。

動作例

Markdown

このように日本語で
複数行入力するとき、
改行は空白を意図していません。

Parsedownで変換したHTMLの表示

このように日本語で 複数行入力するとき、 改行は空白を意図していません。
         ^^^(ここに空白)   ^^^(ここにも空白)

「日本語で」と「複数行」の間、「するとき、」と「改行は」の間に空白が入ります。

このエクステンションを組み込んで変換したHTMLの表示

このように日本語で複数行入力するとき、改行は空白を意図していません。

空白は入りません。

ParsedownはHTML変換時、Markdown上の改行を\n(newline)としてそのまま残します。 \nはHTMLで空白として表示されます。

この空白は、元々単語を分かち書きする英語など多くの言語では問題になりませんが、 基本的に分かち書きをしない日本語では上記の例のようにちょっと気になるスキマになってしまいます。

このエクステンションは、HTML変換時に、意図しない空白の原因になる\nを削除します。

これにより、Markdownを日本語で書く場合にも改行位置を気にせず好きなように入力できるようになる利点が得られます。

改行処理ルール

HTML変換時の改行処理条件は以下のとおりです:

  1. 改行の前後両方が半角文字なら、\nを残す。
  2. 改行の前後両方が英数字(全角・半角問わず)なら、\nを残す。
  3. その他、改行の前後どちらか一方でも、特別に指定した文字種なら、\nを残す。
  4. 上記以外の場合、改行は全角文字に隣接しているので、\n削除

基本的には全角文字と隣接する改行は、空白を意図したものではないとみなして、削除します。 例外として、単語間の分かち書きを維持すべき文字種の間では、改行は空白を意図しているので、\nをそのまま残します。

この改行処理はコードblockには適用しません。

なお、Markdown上の改行をHTML上でも改行(<br>)と解釈させたいのであれば、 このエクステンションを使わずにParsedown標準のParsedown::setBreaksEnabled()を使用してください。

改行処理ルールの微調整

「全角文字と半角文字の間は必ず空白を開ける」 のような組版ルールに従ってMarkdownを書いている場合は、 改行位置でも一貫性を保つ必要があります。

しかし、このExtensionを組み込むと、デフォルト動作では全角文字に隣接する改行を削除するため、

全角 ABC
全角

のようなMarkdown("全角 ABC\n全角")の\nも変換後のHTMLでは消えてしまいます。 このHTMLの表示は

全角 ABC全角

になり("ABC"の後ろに空白がないため)組版ルールに違反したHTMLになってしまいます。

このような特定文字種にスペースを入れる規則を守る必要がある状況では、 以下のメソッドで改行処理ルールを調整することができます:

これらのメソッドにtrueを指定することで、各文字種に隣接する改行を削除しなくなります。

例えば、setSingleByteCharsSeparated(true)を設定すると、 改行の前後どちらか一方が半角文字であれば、 もう一方が全角文字だとしても\nを残します。 前述の例では改行が削除されなくなり、求めていた表示結果

全角 ABC 全角

が得られます。

あなたの文書が従う表記規則に一致するように上記メソッドで調整してください。

Installation - インストール方法

Composer で以下を実行してください。

または、composer.json に以下の行を含めてください。

Markdown Extraの拡張記法を使わない場合は、 erusev/parsedown-extraの行は必要ありません。

Composerによるパッケージ管理をしていない場合は、include_path のいずれかに Noi/ ディレクトリを作り、そこへ lib/ 以下のファイルを置いてください。

Usage - エクステンションの組み込み方法

使い方1: Noi\ParsedownNewline / Noi\ParsedownExtraNewline を使う

これらのクラスは、それぞれParsedownParsedownExtraに本エクステンションを組み込んだ実装クラスです。

そのままnewして使うか、さらに派生クラスを定義して他のエクステンションを組み込んで使用してください。

使い方2: 独自のParsedown派生クラスに組み込む

あなた独自のParsedown派生クラスがある場合は、本エクステンションのtraitを組み込んでください。

以下のようにNoi\Parsedown\JapaneseNewlineTraituseします:

注意

以下の条件を片方でも満たす場合はuseだけで組み込むことができません:

  1. 組み込むクラス(上記の場合YourParsedown)でunmarkedText()が再定義されている
  2. 同時にuseする他のtraitにunmarkedText()が定義されている

1の場合、本ExtensionのunmarkedText()が上書きされるため有効になりません。 2の場合、メソッド名の衝突エラーが発生します。

これらを解決するためには競合回避コードが必要です。 使い方3を確認してください。

使い方3: 競合回避コードを書く

本ExtensionのtraitはunmarkedText()をoverrideします。

同時にuseする他のtraitでもunmarkedText()が定義されている場合、 メソッド名の衝突エラーが発生してしまうため、そのままでは組み込むことができません。 これを解決するための競合回避コードを書く必要があります。

組み込み先クラスを以下のように定義してください:

要点は、実装クラスのunmarkedText()内で

です。

License

MITライセンスです。ライセンスの制限の範囲内であれば商用・非商用を問わず自由にお使いください。

Code released under the MIT License - see the LICENSE file for details.


All versions of parsedown-newline with dependencies

PHP Build Version
Package Version
Requires erusev/parsedown Version ~1.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package noi/parsedown-newline contains the following files

Loading the files please wait ....