3

私は、インラインマークダウンをうなり声でプリコンパイルする方法を探していました。マークダウンを選択したのは、単純な書式設定のプレーン テキストを大量に扱っているためですが、JSON (または同様のもの) に完全に反対するわけではないからです。

ここに例があります:私が探しているもの:

<body>

    <div id="content">
        <div class="text">
            ## Markdown Headline
            markdown Paragraph 1
        </div>
        <div class="text">
            ## Markdown Headline
            Markdown Paragraph 2
        </div>
    </div>

</body>

さらに良いのは次のようなものです:

<body>

    <div id="content">
        <div class="text">
            {include: /path/to/markdown_file_1.md:block_1}
        </div>
        <div class="text">
            {include: /path/to/markdown_file_1.md:block_2}
        </div>
    </div>

</body>

マークダウンからテンプレートを作成するつもりはありません。単にテキストを含める方法であり、「grunt build」(または、yeoman の場合は「grunt server」) を使用して html にレンダリング/コンパイルされます。

上記の例は、次のようなものにコンパイルされることを意味します...

<body>

    <div id="content">
        <div class="text">
            <h1>Markdown Headline</h1></p>
            Lorem ipsum <b>dolar</b> set <a href="http://amet.com/">amet</a>.
        </div>
        <div class="text">
            <h1>Markdown Headline</h1></p>
            Integer <i>posuere erat a ante</i> venenatis dapibus posuere velit aliquet.
        </div>
    </div>

</body>

各 html ページは異なるため、テンプレートを作成することはできません。コピーを (マークダウン ファイルとして) 受け取っているので、html にマークダウンを「含め」て、それを grunt コンパイルすることができれば素晴らしいと思いました。

解決策を求めてstackoverflowを調べましたが、何も見つかりませんでした(おそらく、検索が間違っています)

また、次のことも調べました。

  • github.com/evilstreak/markdown-js - 閉じますが、「オンザフライ」で動作しているように見えますが、これは私の目的には不要です。

  • github.com/chjj/marked - 上記と同じ

  • github.com/treasonx/grunt-markdownmarkdown -ファイルをhtmlファイルにコンパイルするだけのようです

  • assemble.io/docs/Markdown.html - アセンブルに本当に期待していましたが、実装方法がわかりませんでした

  • github.com/wycats/handlebars.js - ハンドルバーはまさに私がインクルードできるようにしたい方法ですが、HTML ファイル内markdownを読み取り、それを grunt でレンダリング (事前コンパイル) するにはどうすればよいですか。handlebars

4

2 に答える 2

1

grunt-markdown (Simon のコメントによる) の組み合わせを使用して Markdown をレンダリングし、 grunt-importをビルドに挿入します。構成例 (テストされていないため、これを少しいじる必要があるかもしれません):

module.exports = function(grunt) {
    grunt.initConfig({
        markdown: {
            build: {
                files: [{
                    expand: true,
                    src: 'path/to/markdown/**/*.md',
                    dest: 'path/to/build/',
                    ext: '.html'
                }]
            }
        },
        import: {
            build: {
                src: 'path/to/build/**/*.html',
                dest: 'path/to/build/'
            }
        }
    });
    grunt.registerTask('build', ['markdown', 'import']);
}

インポート タスクは、@import "path/to/another/file";ソース ファイルなどの文字列を取得し、そのファイルの内容を宛先ファイルに挿入します。

于 2013-11-09T14:26:58.933 に答える