2011-12-29 4 views
39

Tôi muốn sử dụng Jekyll để tạo trang web. không phải blog. Có cách nào để tránh ngày tạo được chỉ định trong url và trong tên tệp của trang không?Cách tùy chỉnh url của Jekyll?

Tôi nghĩ rằng ý tưởng đằng sau Jekyll là tuyệt vời, nhưng có vẻ như quá gắn với nội dung thế hệ blog trong khi nó có thể hữu ích trong một trường hợp sử dụng chung hơn.

+0

Hãy xem 1. [jekyll-Permalinks] (http://jekyllrb.com/docs/permalinks/) và 2. [jekyll-configuration] (http://jekyllrb.com/docs/configuration/). –

Trả lời

9

Nếu bạn không sản xuất trang blog, bạn có thể tạo tệp trong ánh xạ cấu trúc thư mục cho một số URL nhất định. Chạy trên localhost, nếu thư mục của bạn có cấu trúc

- _layouts/ 
- config.yml 
- index.html 
- some_other_page.html 
- some_directory/ 
    - index.html 
    - some_sub_page.html 

Bạn sẽ có nội dung tại các địa điểm sau đây sau khi Jekyll đã xử lý các tập tin:

  • 0.0.0.0:4000 (index.html)
  • 0.0.0.0:4000/some_other_page.html (some_other_page.html)
  • 0.0.0.0:4000/some_directory (some_directory/index.html)
  • 0.0.0.0:4000/some_directory/some_sub_page.html (some_directory/so me_sub_page.html)

You can also use the permalink attribute on each post to set one manually, or set a different default in config.yml Liên kết chỉ có một tập hợp nhỏ các biến có sẵn để sử dụng và cần được xác định trong từng tệp bạn muốn đặt ở vị trí không chuẩn.

Cấu trúc thư mục này cũng sẽ tự động phân loại các bài đăng của bạn. Vì vậy, bạn có thể có:

- some_category (defined in the yaml front matter or the _config.yml 
    - index.html 
    - _posts/ 
     - some_post.md 
     - some_other_post.md 

Và bài viết sẽ tự động có thể loại 'một số loại', và index.html sẽ xuất hiện ở 0.0.0.0:4000/some-category, với định dạng permalink mặc định. Biến danh mục có sẵn dưới dạng :category trong chuỗi định dạng liên kết cố định.

45

Trong tập tin _config bạn có thể thay đổi permalink để bất cứ điều gì mà bạn thích, ví dụ như tôi là

permalink: /blog/:title 

Đối với ngày bạn có thể chọn ngày của riêng bạn bằng cách sử dụng vấn đề trước YAML, một lần nữa trong tôi tôi có

title: example 
date: you can pick what ever date you want 
+4

+1 để có câu trả lời không có tài nguyên bên ngoài, cảm ơn một nhóm! Tôi đã chọn cho liên kết cố định: /: như nhiều blog theo định dạng này. –

2

tôi đã xem qua câu hỏi cũ này trong khi tìm kiếm một cách để tổ chức trang Jekyll trong một thư mục _pages, tương tự như _posts. sau đó truy cập vào các trang này mà không hiển thị toàn bộ đường dẫn trong url.

Phương pháp mà làm việc tốt hơn cho tôi, là sử dụng jekyll collections như sau:

1 - Thêm một trang bộ sưu tập trong _config.yml:

collections: 
    pages: 
    output: true 
    permalink: /:path/ 

2 - tạo một thư mục mới có tên _pages (tên phải có cùng tên bộ sưu tập, được đặt trước bởi _)

3 - thêm các trang trong thư mục _pages, dưới dạng .md hoặc .html bắt đầu bằng YAML Front Matter.

ví dụ: /_pages/about.md sẽ có dạng:

--- 
layout: page 
--- 

<!-- about page content --> 

sau khi xây dựng, URL của trang giới thiệu sẽ là <your-web-site>/about.

Ngoài ra, để hiển thị tên bộ sưu tập, bạn phải xác định permalink của nó như:

permalink: /:collection/:path/ 
1

gì các tài liệu nói:

Bạn cấu hình permalinks trong tập tin của bạn như _config.yml này:

permalink: /:categories/:year/:month/:day/:title.html 

Nếu bạn không chỉ định bất kỳ cài đặt liên kết cố định nào, Jekyll u ses mô hình trên là mặc định. Liên kết vĩnh viễn cũng có thể được thiết lập bằng cách sử dụng built-in style permalink:

permalink: date 

Mặc dù bạn có thể chỉ định một mô hình tùy chỉnh permalink sử dụng các biến mẫu, Jekyll cũng cung cấp sau đây được xây dựng trong phong cách cho thuận tiện.

  • date = /:categories/:year/:month/:day/:title.html
  • khá = /: loại /: Năm /: tháng /: ngày /: Tiêu đề/
  • thứ tự = /:categories/:year/:y_day/:title.html
  • none = /:categories/:title.html

Nguồn: https://jekyllrb.com/docs/permalinks/


Làm thế nào tôi sử dụng nó:

permalink: /blog/:title/ 

này đặt trang với phong cách permalink khá. Do đó '/contact.md' sẽ trở thành '/ contact /'.