2014-08-30 19 views
9

Tôi có một kho lưu trữ với một wiki chứa đầy hơn 80 trang. Tôi muốn hiển thị chỉ mục của tất cả các trang wiki trên trang Jekyll (GitHub Pages) cho dự án, cũng như hiển thị từng trang trên trang web bằng cách sử dụng bố cục tùy chỉnh và sử dụng kiểu của phần còn lại của trang web.Hiển thị một wiki GitHub trên trang GitHub Trang web Jekyll

Để làm điều này, bản năng đầu tiên của tôi là sử dụng các mô đun con git để bao gồm các trang từ wiki (mà GitHub thể hiện dưới dạng git repo) trong repo của trang web Jekyll. Nhưng đó là như xa như tôi đã nhận: Theo như tôi có thể nói, không có nơi nào mà Jekyll sẽ chấp nhận các tập tin markdown mà không phù hợp như một bài đăng. Họ không được đặt tên với một ngày, và họ không có bất kỳ frontmatter, vì vậy Jekyll chỉ bỏ qua chúng.

Để giải quyết vấn đề này, tôi thường chỉ viết một plugin để làm những gì tôi muốn. Nhưng vì trang web được lưu trữ trên các trang GitHub, nó sẽ không cho phép bất kỳ plugin nào tôi tạo.

Vì vậy, tôi thực sự không biết cách tiếp tục. Thậm chí có thể không có plugin tùy chỉnh không?

Trả lời

7

Ý tưởng là:

  1. download plugin của tôi: https://github.com/djacquel/WikiToJekyll
  2. đọc doc
  3. cài đặt và cào
  4. uống một ly bia

Tôi đã thử nghiệm nó ở đây: https://github.com/djacquel/JekyllTest/tree/gh-pages Với các trang wiki này: https://github.com/djacquel/JekyllTest/wiki

gì raketask/plugin đang làm sau khi cài đặt và cấu hình (5 phút):

  1. rake wikisub thêm một submodule git trỏ đến wiki của bạn. Phải là một cộng đồng wiki khác nhưng có thể vào kho lưu trữ khác
  2. sao chép và chuyển đổi các trang wiki tải như markdown với yaml trước vấn đề
  3. xây dựng Jekyll, sau đó các trang wiki Plugin chặn liên kết chuyển đổi để chuyển đổi chúng như Jekyll liên kết
  4. trật tự pizzas

Hiện tại, vấn đề duy nhất (hoặc không) là Kramdown không hoạt động tốt với đánh dấu Github. Bạn phải chuyển sang redcarpet.

Hai nhiệm vụ khác có sẵn:

  • rake wikibuild: xây dựng lại trang wiki

  • rake wiki: trang wiki đồng bộ, xây dựng và tùy đẩy sự thay đổi để kho Jekyll

Et hop !

+0

Đó là phản hồi rất chi tiết và chi tiết.Tôi có một cái gì đó tương tự trong tâm trí nhưng tôi đã quá lười biếng để viết một cái gì đó như thế :) Một điều mà có lẽ cũng cần phải được giải quyết là các liên kết nội bộ giữa các trang wiki (nếu có), mà có thể cần phải được thay đổi để trỏ đến các trang trên trang web thay vì các trang trên github (tôi đoán điều này phụ thuộc nếu liên kết là tuyệt đối hoặc tương đối và nếu cấu trúc chính của trang tương tự như một trên github). –

+0

@ MitjaBezenšek bạn đúng Tôi đã bỏ lỡ điểm này. Đây có thể là một mã Kata tốt cho bạn ;-) 'yêu cầu "kramdown" ' sau đó giống như ' kDoc = Kramdown :: Document.new (fileContent)' nhưng, bây giờ tôi không thể lấy parser.parse trả về bộ phân tích cú pháp :: collection_defs cho tất cả các trang wiki. Chỉ trong trường hợp kho lưu trữ ở đây: https://github.com/djacquel/JekyllTest –

+0

Chỉ cần tôi hiểu, tôi sẽ tự chạy một tập lệnh có thể kéo các thay đổi mới, sao chép các tệp vào một thư mục khác, sau đó thêm frontmatter cho mỗi người trong số họ (và có thể sửa liên kết)? –

Các vấn đề liên quan