問題タブ [metalsmith]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Metalsmith-layout と Metalsmith-in-place が機能しない
いくつかのプラグインを使用して、metalsmith で定型文を作成しようとしていますが、metalsmith-layouts と metalsmith-in-place を連携させることはできません。私は多くのことを試しましたが、そのうちの 1 つを機能させることに成功しましたが、テンプレート エンジン (ハンドルバーなど) を使用して 2 つ目は機能しませんでした。metalsmith-layouts は .hbs のファイルを読みたくないようです。
ハンドルバーと jstransform-handlebars を適切にインストールしました (.hbs ファイルは、metalsmith-in-place によって適切に変換されますが、metalsmith レイアウトでは機能しません ... これは本当に面倒です)。
私の目標は、ハンドルバーのようなテンプレート エンジンを使用してコンテンツがレンダリングされるレイアウト ファイルを使用することです。
ここに私のindex.jsコードがあります:
そして、ここに私のディレクトリがあります:
nunjucks - nunjucks インクルードを Metalsmith-in-place で使用するとレンダリング エラーが発生する
Metalsmith と Nunjucks を使用して、静的な Web サイトを作成しています。
metalsmith-layout プラグインを使用して、いくつかのマークダウン コンテンツをラップできるレイアウトを作成することを意味する、ブログのような Web サイトの作成に問題はありません。
しかし、私はいくつかのビューを作成したいと思います:
- レイアウトを使用する (フロントマターまたは extends メソッドを使用)
- いくつかの手作りのコンポーネント / パーシャル / マクロを使用する
たとえば、 index.njk :
私はmetalsmisth-in-placeプラグインを次のように使用しようとしました:
しかし、私はエラーがあります:The Transform "nunjucks" does not support rendering synchronously
inplace() はインクルードを適切にレンダリングできないようです...
何か案が ?
node.js - twig テンプレートで Metalsmith グローバル メタデータを使用する
小枝テンプレートで Metalsmith グローバル メタデータを使用しようとしています。
global.KEY
テンプレート言語に関係なく、変数を参照する必要があるため、次のように機能する必要があることを除いて、テンプレートでグローバルメタデータを使用することに関するドキュメントはあまり見つかりませんでした。
ただし、私の小枝テンプレートでは{{global.env}}
との両方{{global.site_title}}
が空の文字列を返します。
javascript - {{path}} を絶対リンクではなく相対リンクとして扱うハンドルバー
Handlebars でテンプレート化された Metalsmith で Web サイトを作成しています。
/articles/ 内のすべての記事を時系列で一覧表示する /articles/index.html という名前のアーカイブ ページを作成しましたが、アーカイブ ページのリンクをたどると /articles/articles/example-post に移動します。 /articles/example-post.html の代わりに html を使用します。相対バージョンではなく絶対バージョンの URL に移動するにはどうすればよいですか?
アーカイブの生成に使用したハンドルバー スクリプトは次のとおりです。
{{path}} メタデータは、Metalsmith によって自動的に生成されます。生成されたファイルで console.log を呼び出すと、次のような出力が得られます。
私のホームページには、ほぼ同じ設定があり、本来のように機能します。これをサブフォルダーで実行する方法はありますか?
編集:わかりました、明確にする必要があります: {{path}} は絶対リンクではなく相対リンクであることを認識しています。私の質問は次のとおりです。「{{path}} しか使用できず、それが相対パスである場合、これを正しく機能させるにはどうすればよいですか? 正しいリンクを生成するためにアクセスできる別の変数はありますか?正しいファイルを指すように {{path}} を編集する方法はありますか?私が見つけた限りでは、Handlebars の変数を編集する方法がないため、リンクに「/」を追加できませんまたは先頭の 'article/' を取り除きます。