14

最近、ウェブサイトの再開発を依頼されました。再加工されたサイトはMarkdownで作成され、 Hugo 静的サ​​イトジェネレーターを介して実行されます。

Hugo で処理された Markdown Web ページに他のファイルを含める方法はありますか? もしそうなら、どのように?私が何かを見逃していない限り、これはHugo docsで対処されていません。

HTML と一部のサーバー (少なくとも Apache) を使用すると、次のようなことができます。

<html>
<body>
Some content
<!--#include virtual="name_of_first_file_to_include" -->
More content
<!--#include virtual="name_of_second_file_to_include" -->
Still more content
</body>
<html>

「一部のコンテンツ」や「その他のコンテンツ」などをテンプレートに配置し、テンプレートの {{ .Content }} を介して「含まれる」.md ファイルに含まれるものを作成するテンプレート ページを作成しようとしました。ただし、1) テンプレートの使用方法が間違っているようです。2) 必要な場合にさらにファイルを取り込む方法がわかりません。

4

3 に答える 3

18

コンテンツ ファイルには、次の 2 つのオプションがあります。

  1. ショートコード。強力で文書化されています。
  2. その機能を利用mmarkして、マークダウンレンダリングエンジンとして使用しincludeます。コンテンツ ファイルの名前を「*.mmark」に変更します。https://github.com/miekg/mmarkを参照してください

私は Hugo のメンテナーです。

于 2016-09-30T21:10:10.753 に答える
3

同僚は、これに役立つショートコードを作成することを提案しました。これは私が考えていたものとはまったく異なりますが、私が望んでいたよりも複雑ですが、それほど悪くはなく、より良い方法は見つかりませんでした. したがって、ショートコードと CSV ファイルを使用してソリューションを実装しまし。簡単なサンプル ファイルは次のとおりです。

コンテンツ ファイルは引き続き (ほとんど) Markdown であり、次のようになります。

+++
date = "2016-09-29"
title = "short_code_test"
type = "pages"
+++

## Short Code test

Test table should appear below:  

{{< display_table_csv "static/test_data.csv" >}}
  <tr><th>Name</th><th>Birthday</th>
{{< /test_table_shortcode >}}

( type = "pages"hugo-uno デフォルトの pages/single.html テンプレートを変更/オーバーライドするテンプレートをプルするだけで、以下に表示する目的で出力をよりきれいにすることに注意してください。)

レイアウト/ショートコード/display_table_csv.html:

<table>
  <thead>
      {{ .Inner }}
  </thead>
  <tbody>
  {{ $url := (index .Params 0) }}
  {{ $sep := "," }}
  {{ range $row_i, $row := getCSV $sep $url }}
  <tr>
    {{ range $col_i, $col := $row }}
    <td>{{ $col }}</td>
    {{ end }}
  </tr>
  {{ end }}
  </tbody>
</table>

静的/test_data.csv:

John, 1940-10-09
Paul, 1942-06-18
George, 1943-02-25
Ringo, 1940-07-07

この画像は、物事がどのようにレンダリングされたかを示しています。 ショートコード テストのスクリーンショット

Hugo ドキュメントData-driven Content ページも役に立ちました。

于 2016-09-29T17:58:25.533 に答える