jekyll - автоматически добавлять материалы на страницы на страницах github - PullRequest
0 голосов
/ 28 мая 2010

Есть ли способ получить URL-адрес страницы на Jekyll? Под страницами я подразумеваю текстовые файлы, не являющиеся текстовыми сообщениями, например about.html и download.html в следующей иерархии:

root
 |
 +- _includes
 |
 +- _layouts
 |
 +- _posts
 |
 +- _config.yml
 |
 +- index.textile
 |
 +- about.textile
 |
 `- download.textile

Я бы хотел сделать что-то вроде этого:

<h1><a href="{{ page.url }}">{{ page.title }}</a></h1>

Это работает с постами, потому что их URL включены в метод to_liquid поста . С другой стороны, страницы, похоже, не содержат ничего подобного - у них действительно есть нужные мне свойства (или, например, , похоже, ), но они не экспортируют их в to_liquid; Я хотел бы переопределить это так Есть ли способ сделать это?

Я нашел jekyll_extensions , но я не знаю, работает ли он в моей целевой среде (страницы github).

Я бы хотел, по возможности, не включать параметр url во все заголовки yaml.

Большое спасибо!

Ответы [ 3 ]

3 голосов
/ 26 июня 2010

Теперь есть возможность обезопасить классы jekyll через новую систему плагинов!

Просто добавьте этот файл (page.rb) в каталог _plugins:

module Jekyll
  class Page
    def to_liquid
      self.data.deep_merge({
        "url" => File.join(@dir, self.url),
        "content" => self.content,
        "dir" => self.dir,
        "name" => self.name,
        "ext" => self.ext,
        "basename" => self.basename
      })
    end
  end
end

Я только что изменил to_liquid здесь, но я мог бы также добавить больше методов и т. Д.

3 голосов
/ 28 мая 2010

Я думаю, что ответ - нет. Вот вики Jekyll о том, что в глобальном page пункте:

Для сообщений - это объединение данных в Front Matter YAML и вычисленных данных (таких как URL и дата). Для обычных страниц, это просто Front Yatter YAML.

Даже если бы вы могли перенастроить движок Jekyll, чтобы он делал это для вас локально, я не уверен, как вы могли бы заставить это работать на собственных страницах Github (поскольку они будут использовать ванильный Jekyll, а не ваш).

1 голос
/ 06 февраля 2011

Похоже, что page.rb to_liquid теперь поддерживает данные "url", которые вам нужны ...

https://github.com/mojombo/jekyll/blob/master/lib/jekyll/page.rb

...