21

私の目標は、公開された任意の jekyll ページから Github 上のその場所に戻るリンクを作成することです。

そのため、この URL を作成するときにページのパス名にアクセスする必要があります。ただし、この情報を提供するテンプレートの API には何も表示されません。pageのソースを見ましたが、テンプレート経由でアクセスした場合、ファイル/パス属性の値がありませんでした。

4

2 に答える 2

38

更新:最近はを使用できます{{page.path}}


リキッドコードを使用して、リンクを適切に構築できるようです。{{ page.url }}

たとえば、次のページが必要な場合:http: //railsdocs.org/pages/get-involved.htmlこのページにリンクする:https ://github.com/dogweather/railsdocs.org/blob/gh-pages/ pages / get-involved.md

次のようなものを追加できるようです。

[source](https://github.com/dogweather/railsdocs.org/blob/gh-pages/{{page.url | replace:'.html','.md'}})

マークダウンに移動し、必要なリンクを取得します。

より一般的な解決策:

または、ページがファイル名に直接アクセスできるようにするジェネレーターを作成することもできます。これをディレクトリ内の.rbファイルに追加します。_plugins

module Jekyll

  class PagePathGenerator < Generator
    safe true
    ## See post.dir and post.base for directory information. 
    def generate(site)
      site.posts.each do |post|
        post.data['path'] = post.name
      end

    end
  end

end

そうすれば、投稿のファイル名を確実に取得できます{{ page.path }}。このソリューションは、URLから変換するよりも堅牢です。これは、ページ名に、URLに変換するときに「サニタイズ」される文字を含めることができるためです。(投稿には、日付情報などを追加する必要もあります)。代わりに、このプラグインを使用すると、投稿の名前に直接アクセスできます。

同様の戦略により、そのデータも必要な場合に、投稿へのパスを取得できます。

于 2012-11-09T00:37:55.820 に答える
18

これがいつ追加されたのかはわかりませんがpage.path、ソース ファイルのパスは Jekyll ルート ディレクトリからの相対パスです。

于 2013-06-26T20:38:23.560 に答える