このライブラリの紹介:C# BlazorでMarkdownファイルを表示する

このライブラリの紹介:C# BlazorでMarkdownファイルを表示する

私の考えは、ツールを無料で提供するだけでなく、このツールがどのように開発されたかも知ってもらえると、より便利だと思っています。

最終更新 2022/02/26 22:15
沙漠尽头的狼
読了目安 2 分
カテゴリ
Blazor
タグ
.NET C# Blazor Markdown

レッスン1 目的

数日前にオンラインIcon変換ツールを公開しました。安心してご利用いただくため、コードを一部修正し、Iconアイコンの変換・ダウンロード後に一時ファイルを即座に削除する処理を追加しました。また、ツール下部に開発手順とコードを掲載しています。この修正が適切かどうか、Issue 1をご参照ください。

この記事ではコード修正のプロセスについては説明しません(ツールとサイトのブログ記事で既にアップデート済みのため)。代わりに、ツール下部にMarkdownファイルを表示する実装方法をご紹介します。まずは効果をご覧ください。

BlazorでMarkdownを表示

なぜこの機能を追加したのか?

無料でツールを提供するだけでなく、このツールがどのように開発されたのかをユーザーに知っていただくことで、より利便性が高まると考えました。

  1. デフォルトでは非表示で、「どのように開発されたのか?」ボタンをクリックすると開発記事が表示されます。
  2. 現状コメント機能はありません(将来追加する可能性あり)。「ご意見(ご不満)はこちら」ボタンをクリックすると、Dotnet9サイトの同一ブログ記事へ遷移し、コメントを残せます。
  3. 隣に「ソースコードを見る」ボタンがあり、ツールのソースコードを閲覧できます。

以下、BlazorでMarkdownファイルを表示する方法を説明します。まず現時点で実装済みの機能は次のとおりです。

  1. MarkdownファイルをHTMLとして表示する。
  2. ハイライトは未実装。

2 開発手順

blazor-markdownを参考にしています。

  1. パッケージの追加
<PackageReference Include="BlazorMarkdown" Version="1.0.0" />
<PackageReference Include="HtmlSanitizer" Version="7.1.488" />
  1. コンポーネントの注入

Program.cs

builder.Services.AddScoped<IHtmlSanitizer, HtmlSanitizer>(x =>
{
    // 必要に応じてサニタイザーのルールを設定
    // ここではデフォルトのルールに加えてclass属性を許可
    var sanitizer = new HtmlSanitizer();
    sanitizer.AllowedAttributes.Add("class");
    return sanitizer;
});
  1. 名前空間の参照

_Imports.razor

@using BlazorMarkdown
  1. 使用例

Markdownファイルを準備します。例としてwwwroot下に配置します。

Markdownファイル

IcoTool.razorで直接使用できます。

<Markdown FilePath="wwwroot/2022/02/2022-02-22_02.md" />

まとめ

以上です。とても簡単です。効果は記事の冒頭をご覧ください。今日は簡潔に。

追記:markdownに画像などマルチメディアファイルが含まれる場合、以下のスタイルを追加してレスポンシブ対応してください。

<style>
    h3 {
        border-bottom: 1px solid #eee;
        margin-top: 50px;
        padding-bottom: 10px;
    }

    pre {
        background: #1E1E1E;
        color: #eee;
        overflow-x: auto;
        padding: 0.5em !important;
        white-space: pre;
        word-break: normal;
        word-wrap: normal;
    }

    img, video, source { max-width: 100% }

    pre > code { white-space: pre; }
</style>
さらに探索

関連読書

その他の記事
同じカテゴリ / 同じタグ 2024/02/29

Winformでもこんなデータ表示ができる

winform開発の過程で、データ表示機能が必要になることがよくあります。これまではgridcontrolコントロールを使用していましたが、今日は例を通して、winform blazor hybridでant design blazorのtableコンポーネントを使ってデータ表示を行う方法を紹介します。

続きを読む
同じカテゴリ / 同じタグ 2024/02/29

Winformの画面も綺麗にできる?

先日、winformでblazor hybridを使用することを紹介しました。また、blazorのUIを組み合わせることでwinformプログラムのデザインをより美しくできると言いました。今回はwinform blazor hybridで描画する例を挙げて説明します。参考になれば幸いです。

続きを読む