2014-10-04 18 views
24

Nếu câu hỏi này đã được hỏi tôi thực sự không thể tìm thấy nó ở bất cứ đâu!Jekyll Đăng thứ tự

Về cơ bản tôi đã bắt đầu một blog dựa trên jekyll với chủ đề jekyll-now. Tôi mới đến jekyll và cách nó hoạt động (đặc biệt là Chất lỏng). Tôi hiểu rằng bài đăng mới cần phải như sau: 2014-10-04-Hello-World.md. Nhưng tôi thực sự không hiểu làm thế nào tôi có thể đặt hàng chúng.

Suy nghĩ đầu tiên của tôi là họ đặt hàng theo ngày nên hai bài đăng trong cùng một ngày sẽ đặt hàng ngẫu nhiên. Nhưng đây không phải là trường hợp? Có cách nào để sắp xếp các bài viết theo thứ tự thời gian không. HOẶC ít nhất có một trang lưu trữ bài đăng?

Xin lỗi vì câu hỏi khá sai lạc nhưng tôi khá mắc kẹt về vấn đề này. Và tôi dường như không thể tìm thấy bất cứ điều gì dễ hiểu trên web.

Trả lời

26

Có một ví dụ trong tài liệu chính thức Jekyll làm thế nào để tạo một trang bài lưu trữ cơ bản:
Displaying an index of posts

Bonus: Đối với một trang lưu trữ đẹp (nhóm theo năm hoặc năm/tháng), xem this answer .


Bạn nói đúng, tôi không thể tìm thấy bất cứ điều gì trong tài liệu mà nó nói như thế nào bài viết được sắp xếp, nhưng trên thực tế Jekyll không sắp xếp chúng thứ tự thời gian, với bài mới nhất đầu tiên (bạn có thể xem này nếu bạn thử các ví dụ tôi đã liên kết ở trên).

Để sắp xếp chúng theo cách khác (những bài cũ trước), bạn có thể sử dụng từ khóa reversed, theo Liquid documentation:

{% for post in site.posts reversed %} 

Tuy nhiên, tôi không biết làm thế nào hai bài viết vào cùng ngày được sắp xếp, bởi vì tôi không viết nhiều bài viết, vì vậy tôi chưa bao giờ gặp vấn đề đó :-)
Bạn phải tự mình thử.

+0

Cảm ơn điều này đã sắp xếp sự cố. Đó là một sự xấu hổ tôi không thể đặt hàng theo thời gian như hai bài viết trong cùng một ngày dường như đặt hàng tuy nhiên họ thích! Tôi đang tìm cách tạo một kho lưu trữ để điều đó thực sự hữu ích. – Koxzi

+0

Bạn có thể sắp xếp theo thời gian, nếu bạn đã bực mình để đọc câu trả lời. ;) –

24

Chỉ phải đối mặt với cùng một vấn đề và giải quyết với giải pháp này: https://groups.google.com/forum/#!topic/jekyll-rb/8QCIzevauSU

Thêm một trường ngày đến YAML Mặt trận Matter của một bưu điện, như vậy:
date: 2010-09-15 14:40:45

ví dụ nếu bạn có 2 bài đăng vào ngày 2014/12/31, bạn có thể thêm date: 2014-12-31 00:30:00 vào latest_post.md và date: 2014-12-31 00:10:00 vào older_post.md.

Bạn có thể thêm múi giờ (ví dụ date: 2014-12-31 00:10:00 +08:00) nếu cần thiết :)

+0

Tuyệt vời để tìm hiểu trường ngày là tùy chọn! (Tôi đã giữ thủ công đồng bộ hóa với tên tệp ... duh :-( – tim

5

tôi đã cùng một vấn đề và googled cho một thời gian dài. Tôi đã nhận được cảm giác hỗn hợp rằng bài viết đặt hàng có thể là có thể hoặc có thể không được.

lẽ Hầu hết Koxzi đã có câu trả lời của anh ấy nhưng tôi muốn ghi lại cuộc đấu tranh của tôi vào bài này để nó có thể giúp những người dùng khác

Bạn cần phải làm hai thay đổi.
1. Mở bài đăng của bạn và thêm trọng lượng. ví dụ: trọng lượng: 100
2. Mở tệp html của bạn cho menu nơi bạn muốn các bài đăng được sắp xếp. Đối với trình đơn Java/J2EE, tôi có java.tệp html ở đường dẫn gốc của dự án của tôi.
THEN

Thêm {% assign pages_list = pages_list | sắp xếp: dòng chữ "weight"%} như được hiển thị trong mã bên dưới. Điều này sẽ sắp xếp theo trọng lượng.

{% for category in site.categories %} 
    {% if category[0] contains 'java' %} 
    <h3 id="{{ category[0] }}-ref">{{ category[0] | join: "/" }}</h3> 
    <ul> 
     {% assign pages_list = category[1] %} 
     {% assign pages_list = pages_list | sort:"weight" %} 
     {% include JB/pages_list %} 
    </ul> 
    {% endif %} 
{% endfor %} 
Các vấn đề liên quan