web-dev-qa-db-ja.com

Hugo / markdownのページをリンクする

私はHUGO( http://gohugo.io/ )静的サイトジェネレーターを初めて使用します。ローカルホストとしてローカルアクセス可能なHugoサーバーを実行しています:1313。 2つの異なるセクションでページをリンクしようとしています。 「_feature.md_」ファイルには「_grid_modules.md_」へのリンクが必要です。その逆も同様です。以下は、hugoで生成されたサイトの両方のファイルのディレクトリ構造です。

_~/mysite/content/about/feature.md_

_~/mysite/content/modules/grid_modules.md_

両方のページをリンクするための最良の方法は何ですか?私が試しているのは次のとおりです

_feature.md_:

"[grid_modules] (../modules/grid_modules)"

このリンクにアクセスしようとすると、「_localhost:1313/about/modules/grid_modules_」でエラーが発生しますが、場所が間違っていることがわかります。

リンクに欠けているものは何ですか?代わりに「_localhost:1313/modules/grid_modules_」が表示されないのはなぜですか。

13
Adeel

この回答は、 bep によって提供される answer に基づいています。その答えは正しいですが、あまり明確ではありません(解決策を見つける前に、さまざまなことを試してそれを何度も読んだので)。

前に述べたように:

ページのURLは、URL構成によって異なります( https://gohugo.io/extras/permalinks/ を使用するか、個々のページのURLとして直接設定します)。

refタグとrelrefタグマークダウン内を使用して、リンクが正しいURLに解決されるようにすることができます。

あなたの例では、これは次のいずれかのようになります(絶対URLと相対URLのどちらが必要かによって異なります)。

[grid_modules] ( {{< relref "modules/grid_modules" >}})
[grid_modules] ( {{< ref "modules/grid_modules" >}})
11
Clay

ページのURLは、URL構成によって異なります( https://gohugo.io/extras/permalinks/ を使用するか、個々のページでURLとして直接設定します) 。

そして、これは多くの場合、ファイルシステム上のパスと同じではありません。

Hugoには、役立つヘルパー関数がいくつかあります。このドキュメントのrefおよびrelrefを参照してください。

https://gohugo.io/extras/crossreferences/

10
bep

私はこれと同じ問題に遭遇し、次のより簡単な解決策が機能することを発見しました。 content /の下のページから[text](/url/path)の形式でURLが指定されている場合、/ url/pathルートは事実上content /(またはレンダリングされたサイトのpublic /)になります。したがって、「〜/ mysite/content/about/feature.md」内から「〜/ mysite/content/modules/grid_modules.md」にリンクするには、「feature.md」に書き込むだけです。

[grid_modules](/modules/grid_modules)
1
Mike M