2012-12-24 25 views
16

Tôi đã tạo một Trang GitHub tuyệt vời website for my little project và tôi đã thêm một số trang khác vào chi nhánh gh-pages. Vấn đề của tôi là, mỗi lần tôi tạo lại trang web từ 'Cài đặt => Trình tạo trang tự động', mọi thứ đều được dọn dẹp và tôi phải khôi phục các tệp theo cách thủ công.Làm cách nào để ngăn GitHub Pages "Automatic Generator" xóa mọi thứ trước khi tạo lại trang web?

Có cách nào để ngăn chặn hoặc giải quyết vấn đề này không?

Sẽ tốt hơn nếu Trình tạo tự động chỉ ghi đè nội dung của anh ấy mà không xóa các tệp hiện có.

Trả lời

36
  1. Thanh toán chi nhánh gh-pages.
  2. mkdir _layouts
  3. di chuyển index.html để _layouts
  4. chỉnh sửa _layouts/index.html thay thế html bên trong của nội dung phần với {{content}}
  5. tạo tập tin mới index.md
  6. Dán nội dung markdown của máy phát điện trang tự động vào index.md
  7. thêm các nội dung sau vào index.md

    --- 
    layout: index 
    --- 
    
  8. tạo _config.yml
  9. bao gồm trong _config.yml:

    markdown: kramdown 
    kramdown: 
        auto_ids: true 
    

    bước này là để phù hợp với cú pháp markdown github của

  10. thêm & cam kết thay đổi, và sau đó đẩy chi nhánh trở lại để github.

Bây giờ bạn chỉ có thể chỉnh sửa index.md từ gh-branch in your github source browser và nó sẽ cập nhật sử dụng jekyll tự động và không gây rối với bất cứ điều gì trong gh-chi nhánh của bạn.

Bạn cũng có thể tạo thêm các mục có thể chỉnh sửa trong bố cục bằng cách sử dụng trình giữ chỗ {{page.varname}} và sau đó thêm varname:your text vào tiêu đề của index.md.

+3

chính xác những gì tôi đang tìm kiếm, cảm ơn bạn! Tôi đã phải thay đổi 'layout: index' thành' layout: index' để làm việc này. Nếu không, tôi nhận được lỗi "deep_merge". – chris838

+2

tại sao điều này không có trong hướng dẫn trang github !!!! cảm ơn. – si28719e

+1

Đây phải là câu trả lời được chấp nhận. – Matthew

0

Không, không thể. GitHub xóa kho lưu trữ gh-trang khi bạn thực hiện "tạo". Tốt nhất bạn có thể làm là những gì bạn đang làm bây giờ. Một tùy chọn khác có thể không sử dụng trình tạo trang GitHub để thay đổi kiểu, nhưng để tìm nguồn gốc của kiểu (chúng có thể ở GitHub ở đâu đó) và thay đổi bằng cách thay đổi bằng cách thay đổi (thay thế tệp css và các chỉnh sửa nhỏ khác)

2

Vâng, sau một vài lần thử, tôi đã tìm ra giải pháp.

Tôi nhận thấy rằng tệp duy nhất đã thay đổi cho trang web của tôi là index.html, phần còn lại của trang web được tạo giống nhau. Bên trong index.html có một thẻ <section>content</section> chứa html được tạo từ markdown.

Vì vậy, tôi đã tạo hai tệp header.incfooter.inc, có chứa phần "tĩnh" cho trang chỉ mục. Phần nội dung phải được tạo từ tệp README.md.

Tôi thấy rằng có API được cung cấp bởi github đến render a RAW markdown in raw mode thành html.
Vì vậy, phần cuối cùng của câu đố là để có được một permalink cho README.md của dự án của tôi, với nội dung RAW; mà tôi tình cờ tìm thấy here.

Vì vậy, tôi đã viết simple bash script này mà tái sinh index.html một mình, mà không cần chạm vào phần còn lại của trang web:

#!/bin/sh 
PG_DIR=$(dirname $0) 
RAW_README_URL=https://raw.github.com/lviggiano/owner/master/README.md 
GITHUB_API_URL=https://api.github.com/markdown/raw 

cat $PG_DIR/header.inc 
curl -s $RAW_README_URL | curl -s --data-binary @- -H 'Content-Type: text/plain' $GITHUB_API_URL 
cat $PG_DIR/footer.inc 

Sau đó, tôi chỉ cần khởi chạy kịch bản như:

$ cd myproject 
$ git checkout gh-pages 
$ git pull origin gh-pages:gh-pages 
$ ./bin/autogen > index.html 
$ git commit -m "updated index.html from latest README.md" index.html 
$ git push origin gh-pages:gh-pages 

Xem thi chi tiết here.

Tôi đã thử nghiệm với bố cục "Ngày nhuận"; nhưng tôi cho rằng nó cũng hoạt động cho những người khác.

0

Bạn có thể configure Jekyll bỏ qua một số thư mục nhất định với tùy chọn exclude.

(Lưu ý rằng Jekyll có một lựa chọn keep_files -. Đó là cho các tập tin trong thư mục destintation)

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