Yanlış yapmayı deneyin. Bir URL parametresinin dinamik olarak ele alınmasını istersiniz. Jekyll, bir statik web oluşturucusudur. Dolayısıyla, ziyaret edilecek tüm sayfayı oluşturmalısınız. Bunun için bir jeneratör olabilir. sayfa https://github.com/mojombo/jekyll/wiki/Plugins
ben yapmak istediğiniz şey için bir jeneratör üzerinde çalıştı ve oldukça güzel çalışıyor üzerinde Jeneratör bölümüne bir göz atın, ben de 'prev' ve 'gelecek' düğmesine yarattı. Lütfen bir göz atın ve deneyin. Tüm kategoriler için çalışır (sadece ro one), ancak isterseniz bunu özelleştirebilirsiniz.
klasör yapısı
| -- _plugins
` news.rb
| -- _layouts
` news.html
| -- _includes
` nav.html
| -- _config.yml
| -- ro
` -- _posts
| -- 2012-04-10-test.textile
| -- 2012-04-10-test2.textile
| -- 2012-04-10-test4.textile
| -- 2012-04-10-test6.textile
| -- 2012-04-10-test15.textile
| -- 2012-04-10-test3.textile
` -- 2012-04-10-test5.textile
` _site
genrator news.rb
yakut kodu
module Jekyll
class NewsPage < Page
def initialize(site, base, dir, category, posts_number, posts_per_page, pagination_skip)
@site = site
@base = base
@dir = dir
@name = "news_#{pagination_skip}.html"
self.process(@name)
self.read_yaml(File.join(base, '_layouts'), 'news.html')
self.data['category'] = category
self.data['posts_per_page'] = posts_per_page
self.data['pagination_skip'] = pagination_skip
if pagination_skip != 0
self.data['prev_pagination_skip'] = pagination_skip - posts_per_page
end
if pagination_skip + posts_per_page < posts_number
self.data['next_pagination_skip'] = pagination_skip + posts_per_page
end
end
end
class NewsGenerator < Generator
safe true
def generate(site)
if site.layouts.key? 'news'
dir = site.config['category_dir'] || 'categories'
site.categories.keys.each do |category|
posts_number = site.categories[category].length
pagination_skip = 0;
posts_per_page = 5;
begin
write_news_page(site, File.join(dir, category), category, posts_number, posts_per_page, pagination_skip)
pagination_skip += posts_per_page;
end while pagination_skip < posts_number
end
end
end
def write_news_page(site, dir, category, posts_number, posts_per_page, pagination_skip)
index = NewsPage.new(site, site.source, dir, category, posts_number, posts_per_page, pagination_skip)
index.render(site.layouts, site.site_payload)
index.write(site.dest)
site.pages << index
end
end
end
news.html
dosyanın düzeni
---
---
{% for post in site.categories[page.category] offset:page.pagination_skip limit:page.posts_per_page %}
{{ post.content }}
{% endfor %}
{% include nav.html %}
The Navigation nav.html
dahil
<div class="nav">
{% if page.prev_pagination_skip %}
<a rel="prev" href="{{site.basepath}}categories/{{page.category}}/news_{{page.prev_pagination_skip}}.html">Prev</a>
{% endif %}
{% if page.next_pagination_skip %}
<a rel="next" href="{{site.basepath}}categories/{{page.category}}/news_{{page.next_pagination_skip}}.html">Prev</a>
{% endif %}
</div>
Bir deneyin ve isterseniz beğenmeme izin verin.
btw, nav.html dosyasının _includes klasöründe olmasının bir nedeni yoktur, doğrudan news.html dosyasına yazabilirsiniz, ancak yapınızı korudum. –
Çalışmıyor ama takip etmem gereken bir fikir. Teşekkürler. –
Ne demek istiyorsun: 'çalışmıyor', derleme problemi mi? ya da ihtiyacın olanı yapmaz. –