Phiên bản ngắn:Lấy các phần tử tiếp theo và trước đó ra khỏi một mảng trong chất lỏng
Tôi muốn thêm 1 vào một số trong mẫu chất lỏng và sử dụng kết quả làm chỉ mục mảng.
{% capture plus_one %}{{ 0 | plus: 1 }}{% endcapture %}
<div>-Value of plus_one: {{plus_one}}</div>
<div>-This works: {{site.posts[1].title}}</div>
<div>-This doesn't: {{site.posts[plus_one].title}}</div>
Kết quả:
-Value of plus_one: 1
-This works: The Zone
-This doesn't:
phiên bản Long:
Tôi đang sử dụng Jekyll, không có plugins. Tôi muốn cung cấp cho bài đăng hiện tại một liên kết tới bài đăng tiếp theo thuộc cùng một danh mục. (Danh mục được mã hóa thành 'tạp chí' trong mã này.)
Mã của tôi lặp qua tất cả các bài đăng trong mảng danh mục, tìm kiếm bài đăng hiện tại. Khi nó được tìm thấy, tôi cố gắng lấy bài tiếp theo trong mảng danh mục.
{% for num in (0..site.categories.journal.size) %}
{% assign page2 = site.categories.journal[num] %}
{% if page2.title == page.title and page2.date == page.date %}
{% capture plus_one %}{{ num | plus: 1 }}{% endcapture %}
{% endif %}
{% endfor %}
<div>value of plus_one: {{plus_one}}</div>
<div>This doesn't work: {{site.categories.journal[plus_one].title}}</div>
<div>This does: {{site.categories.journal[1].title}}</div>
Kết quả:
<div>value of plus_one: 1</div>
<div>This doesn't work: </div>
<div>This does: A Blog Post Title</div>
Tôi đoán giá trị của biến 'plus_one' của tôi đang được coi là một chuỗi thay vì một số.
Có cách nào để chuyển đổi số đó thành một số không?
Hoặc có cách nào khác để đạt được những gì tôi đang cố gắng làm không?
Điều này nghe có vẻ tốt hơn giải pháp tôi đã đăng bên dưới, nhưng bạn có thể hiển thị ví dụ về cách "lặp lại bước đó" để chúng tôi có thể tiếp tục gọi trang.next cho đến khi chúng tôi tìm thấy trang có danh mục phù hợp ? –
Lặp lại là một khái niệm cơ bản về lập trình, thậm chí bạn làm điều đó trong câu trả lời được đăng của riêng bạn, vì vậy tôi không thực sự biết cách phản ứng lại điều đó. – Polygnome
Xin lỗi, câu hỏi của tôi không rõ ràng lắm. Tôi đã cố hỏi về điều kiện vòng lặp. Lý tưởng nhất là chúng tôi muốn chỉ vòng _until_ một trang phù hợp được tìm thấy. Tuy nhiên nó sẽ được chấp nhận để vòng lặp cho đến khi chúng tôi đã đạt đến trang cuối cùng (khi page.next là null). Cho đến nay, tôi đã không tìm thấy một cách để làm cho Liquid tạo ra một vòng lặp mà sẽ chấm dứt theo một trong các điều kiện này. –