Color mode

Search notes

Filter with tag:, lang:, or path:.

Hard Breaks

Markdown の通常の改行を <br> 要素として出力するプラグインです。Obsidian の 「厳密な改行」をオフにしたときの挙動に合わせます。

English

概要

標準の Markdown では、段落内の単一の改行はソフトブレークとなり、空白として 描画されます。hardBreaks() は remark-breaks のトランス フォーマーを Riebeckite の Markdown パイプラインに登録し、ソフトブレークを ビルド時に <br> 要素へ変換します。

変換は Markdown AST の段階で行われるため、コードブロック、インラインコード、 明示的な hard break の意味は変わりません。クライアント JavaScript と CSS は 追加しません。

インストール

ts
import { defineConfig } from "@riebeckite/core";
import { hardBreaks } from "@riebeckite/plugin-hard-breaks";
 
export default defineConfig({
  // ...
  plugins: [hardBreaks()],
});

riebeckite.config.ts の plugins 配列に hardBreaks() を追加します。この プラグインは opt-in です。追加しない場合、パイプラインは標準の Markdown の ソフトブレークの挙動を維持します。

使い方

ts
import { hardBreaks } from "@riebeckite/plugin-hard-breaks";
 
hardBreaks();

ファクトリにオプションはありません。

変換前後の比較

入力:

md
今日はいい天気です。
散歩に行きました。
明日も晴れるといいな。

プラグインなし(標準の Markdown)では、3 行は 1 行として描画されます。 hardBreaks() を有効にすると次のようになります。

html
<p>今日はいい天気です。<br>
散歩に行きました。<br>
明日も晴れるといいな。</p>

動作仕様

入力 動作
段落内の単一の改行 <br> に変換する
空行による段落の分割 従来どおり段落を分割する
Fenced code block 変更しない
インラインコード 変更しない
見出し Markdown の見出し構造を維持する
リスト項目内の改行 Markdown AST の構造に従って処理する
Blockquote 内の改行 通常の段落と同様に処理する
明示的な hard break(行末の空白 2 つ、または \) 二重変換しない
Markdown 内の HTML そのまま扱う

制約事項

  • 変換するのはソフトブレークだけです。空行、リスト、コードブロックの解析方法は 変わりません。
  • 出力はビルド時に確定します。プラグインの一覧を変更したら再ビルドしてください。

Obsidian との関係

Obsidian には「厳密な改行」という設定があります。これをオフにすると、単一の 改行が改行として表示されます。このプラグインは同じ挙動を Riebeckite の レンダリング結果に持ち込みます。

主なエクスポート

  • hardBreaks(): プラグインを作成する
  • hardBreaksPlugin: hardBreaks の別名

関連資料

History

1 changesCollapseExpand
1 + <!-- Generated from packages/plugins/hard-breaks/README_ja.md. Do not edit this page directly; edit the package README and run `pnpm docs:sync`. -->
2 +
3 + # Hard Breaks
4 +
5 + Markdown の通常の改行を `<br>` 要素として出力するプラグインです。Obsidian の
6 + 「厳密な改行」をオフにしたときの挙動に合わせます。
7 +
8 + [English](./hard-breaks.md)
9 +
10 + ## 概要
11 +
12 + 標準の Markdown では、段落内の単一の改行はソフトブレークとなり、空白として
13 + 描画されます。`hardBreaks()` は
14 + [`remark-breaks`](https://github.com/remarkjs/remark-breaks) のトランス
15 + フォーマーを Riebeckite の Markdown パイプラインに登録し、ソフトブレークを
16 + ビルド時に `<br>` 要素へ変換します。
17 +
18 + 変換は Markdown AST の段階で行われるため、コードブロック、インラインコード、
19 + 明示的な hard break の意味は変わりません。クライアント JavaScript と CSS は
20 + 追加しません。
21 +
22 + ## インストール
23 +
24 + ```ts
25 + import { defineConfig } from "@riebeckite/core";
26 + import { hardBreaks } from "@riebeckite/plugin-hard-breaks";
27 +
28 + export default defineConfig({
29 + // ...
30 + plugins: [hardBreaks()],
31 + });
32 + ```
33 +
34 + `riebeckite.config.ts` の `plugins` 配列に `hardBreaks()` を追加します。この
35 + プラグインは opt-in です。追加しない場合、パイプラインは標準の Markdown の
36 + ソフトブレークの挙動を維持します。
37 +
38 + ## 使い方
39 +
40 + ```ts
41 + import { hardBreaks } from "@riebeckite/plugin-hard-breaks";
42 +
43 + hardBreaks();
44 + ```
45 +
46 + ファクトリにオプションはありません。
47 +
48 + ## 変換前後の比較
49 +
50 + 入力:
51 +
52 + ```md
53 + 今日はいい天気です。
54 + 散歩に行きました。
55 + 明日も晴れるといいな。
56 + ```
57 +
58 + プラグインなし(標準の Markdown)では、3 行は 1 行として描画されます。
59 + `hardBreaks()` を有効にすると次のようになります。
60 +
61 + ```html
62 + <p>今日はいい天気です。<br>
63 + 散歩に行きました。<br>
64 + 明日も晴れるといいな。</p>
65 + ```
66 +
67 + ## 動作仕様
68 +
69 + | 入力 | 動作 |
70 + | --- | --- |
71 + | 段落内の単一の改行 | `<br>` に変換する |
72 + | 空行による段落の分割 | 従来どおり段落を分割する |
73 + | Fenced code block | 変更しない |
74 + | インラインコード | 変更しない |
75 + | 見出し | Markdown の見出し構造を維持する |
76 + | リスト項目内の改行 | Markdown AST の構造に従って処理する |
77 + | Blockquote 内の改行 | 通常の段落と同様に処理する |
78 + | 明示的な hard break(行末の空白 2 つ、または `\`) | 二重変換しない |
79 + | Markdown 内の HTML | そのまま扱う |
80 +
81 + ## 制約事項
82 +
83 + - 変換するのはソフトブレークだけです。空行、リスト、コードブロックの解析方法は
84 + 変わりません。
85 + - 出力はビルド時に確定します。プラグインの一覧を変更したら再ビルドしてください。
86 +
87 + ## Obsidian との関係
88 +
89 + Obsidian には「厳密な改行」という設定があります。これをオフにすると、単一の
90 + 改行が改行として表示されます。このプラグインは同じ挙動を Riebeckite の
91 + レンダリング結果に持ち込みます。
92 +
93 + ## 主なエクスポート
94 +
95 + - `hardBreaks()`: プラグインを作成する
96 + - `hardBreaksPlugin`: `hardBreaks` の別名
97 +
98 + ## 関連資料
99 +
100 + - [プラグインガイド](../reference/plugin-api.ja.md)
101 +