2013-07-24 18 views
11

Tôi có một trang jekyll cơ bản bao gồm các trang (không phải bài viết) nhưng, vì tôi muốn sắp xếp các trang khi tôi liệt kê chúng, tôi phải sử dụng plugin Jekyll-Sort (các trang phân loại kỳ lạ không được tích hợp vào jekyll).Làm cách nào để đẩy thư mục jekyll _site vào chi nhánh gh-trang và để nguyên trong nguồn chính?

Vì tôi đang sử dụng plugin, tôi không thể tận dụng tính năng tự động của GitHub. Vì vậy, tôi muốn đẩy mã nguồn của dự án đến chi nhánh master và chỉ thư mục _site đến chi nhánh gh-pages.

tôi không thể tìm ra cách để làm điều này - tôi đã cố gắng thêm một repo git bên trong thư mục _site để đẩy đến gh-pages nhưng mỗi khi tôi chạy jekyll nó xóa toàn bộ thư mục đó và tôi đã làm mất thư mục .git.

Mọi đề xuất? Hoặc một cách để tự nhiên sắp xếp?

Trả lời

1

Tôi đã làm điều này trong một thời gian bản thân mình với một kịch bản shell.

Giải pháp 1.

Tạo .gitignore không bao gồm _site/folder. Sau đó, có kịch bản shell của bạn kiểm tra xem bạn đang ở trên tổng thể, nếu có, thêm tất cả các tập tin thay đổi và cam kết chúng. Sau đó di chuyển _site/folder sang một thư mục tạm thời. Chuyển sang chi nhánh gh-trang và sao chép thư mục tạm thời qua. Thêm tất cả và cam kết. Đẩy cả nhánh chính & gh trang.

Giải pháp 2. Sao chép nội dung của _site/folder sang một repo khác là bản sao chính xác của repo bạn đang làm việc nhưng đã kiểm tra trên chi nhánh gh-pages.Sau đó chỉ cần đẩy ngành thạc sĩ từ repo nguồn và chi nhánh gh-trang từ repo khác

+2

Cả hai tùy chọn đều cảm thấy rất khó khăn và không sạch sẽ, tôi thậm chí sẽ không cố gắng sử dụng chúng. Có phải là một cách tốt hơn – mizurnix

+0

Tôi không chắc chắn bao nhiêu gh-trang đã thay đổi trong vài năm qua, nhưng tôi không thể tưởng tượng họ cho phép bạn chạy plugin trên các máy chủ github. điều này có nghĩa là bạn sẽ cần phải đẩy cả nguồn cũng như trang được tạo ra. Và dù bạn làm thế nào đi nữa, bạn sẽ muốn điều đó trong hai nhánh. Vì vậy, yeah ... – Polygnome

7

Một giải pháp ít đau đớn:

  1. Thanh toán chi nhánh của bạn, nơi xây dựng mã nguồn của bạn tọa lạc (có thể src, hoặc master)
  2. (Tùy chọn: Thêm _site-.gitconfig của bạn, vì vậy nó có được của bỏ qua, nếu chưa làm)
  3. Hủy bỏ tất cả các nội dung của thư mục _site:

    $ rm -r _site/*

  4. Clone của repo của bạn chi nhánh gh-pages vào _site thư mục:

    $ git clone -b gh-pages `git config remote.origin.url` _site

bước cuối cùng: Chỉ cần cho Jekyll xây dựng, làm cam kết & push:

$ jekyll build ,

cd vào _site:

$ cd _site,

mục tiêu tất cả các file cho cam kết:

$ git add -A,

cam kết họ:

git commit -am 'Yeah. Built from subdir'

và đẩy trang web của bạn tới GitHub-Pages:

git push.

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