2012-12-24 32 views
16

मैंने एक अद्भुत गिटहब पेज website for my little project बनाया, और मैंने कुछ अन्य पेज gh-pages शाखा में जोड़े। मेरी समस्या यह है कि, हर बार जब मैं 'सेटिंग्स => स्वचालित पृष्ठ जेनरेटर' से वेबसाइट को पुन: उत्पन्न करता हूं, तो सब कुछ साफ़ हो जाता है और मुझे फ़ाइलों को मैन्युअल रूप से पुनर्स्थापित करना होता है।साइट को पुन: उत्पन्न करने से पहले सब कुछ हटाने के लिए मैं गिटहब पेज "स्वचालित जनरेटर" को कैसे रोकूं?

क्या इस तरह से रोकने या काम करने का कोई तरीका है?

यह बेहतर होगा अगर स्वचालित जेनरेटर मौजूदा फ़ाइलों को हटाए बिना अपनी सामग्री को ओवरराइट कर रहा था।

उत्तर

36
  1. gh-pages शाखा चेकआउट करें।
  2. mkdir _layouts
  3. कदम index.html_layouts-
  4. संपादित _layouts/index.html नई फ़ाइल {{content}}
  5. साथ अनुभाग सामग्री के भीतरी एचटीएमएल की जगह बनाने के index.md
  6. स्वचालित पृष्ठ जनरेटर के पेस्ट markdown सामग्री index.md
  7. में

    निम्नलिखित को index.md

    पर प्रीपेड करें
    --- 
    layout: index 
    --- 
    
  8. बनाने _config.yml
  9. _config.yml में निम्नलिखित शामिल हैं:

    markdown: kramdown 
    kramdown: 
        auto_ids: true 
    

    इस कदम GitHub के markdown वाक्यविन्यास

  10. जोड़ने & परिवर्तन हो मिलान करने के लिए है, और फिर शाखा धक्का वापस जिथब के लिए

अब आप बस gh-branch in your github source browser से index.md संपादित कर सकते हैं और यह jekyll स्वचालित रूप से और नहीं अपने gh-शाखा में कुछ भी साथ गड़बड़ का उपयोग कर अद्यतन करेगा।

तुम भी अधिक आइटम लेआउट प्लेस होल्डर {{page.varname}} का उपयोग कर और फिर अपने index.md के शीर्षक के लिए varname:your text जोड़ने में संपादन योग्य बना सकते हैं।

+3

मैं वास्तव में क्या देख रहा था, धन्यवाद! हालांकि इसे काम करने के लिए मुझे 'लेआउट: इंडेक्स' को 'लेआउट: इंडेक्स' में बदलना पड़ा। अन्यथा मुझे एक "deep_merge" त्रुटि मिलती है। – chris838

+2

यह github पेज ट्यूटोरियल में क्यों नहीं है !!!! धन्यवाद। – si28719e

+1

यह स्वीकार्य उत्तर होना चाहिए। – Matthew

0

नहीं, संभव नहीं है। जब आप "जेनरेट" करते हैं तो गिटहब gh-pages रिपोजिटरी को मिटा देता है। सबसे अच्छा आप कर सकते हैं अब आप क्या कर रहे हैं। शैलियों को बदलने के लिए गिटहब पेज जनरेटर का उपयोग करने का एक अन्य विकल्प नहीं हो सकता है, लेकिन शैलियों के स्रोत को खोजने के लिए (वे शायद कहीं भी गिटहब पर हैं) और परिवर्तनों को बदलकर मैन्युअल रूप से बदलें (सीएसएस फाइलों और अन्य मामूली बदलावों को प्रतिस्थापित करें)

2

ठीक है, कुछ प्रयासों के बाद मुझे समाधान मिला।

मैंने देखा कि मेरी साइट के लिए केवल एक ही फ़ाइल बदल गई index.html थी, बाकी की जेनरेट की गई साइट समान थी। Index.html के अंदर <section>content</section> टैग था जिसमें मार्कडाउन से उत्पन्न HTML शामिल था।

इसलिए मैंने दो फाइलें header.inc और footer.inc बनाई, जिसमें इंडेक्स पेज के लिए "स्थिर" भाग शामिल था। सामग्री भाग को README.md फ़ाइल से उत्पन्न किया जाना चाहिए था।

मुझे पता चला कि गीथब द्वारा render a RAW markdown in raw mode पर एचटीएमएल में प्रदान की गई एक एपीआई है।
तो, पहेली का अंतिम भाग रॉ प्रोजेक्ट के साथ, मेरी परियोजना के README.md के लिए परमालिंक प्राप्त करना था; जो मुझे here खोजने के लिए हुआ था।

तो मैं इस simple bash script कि index.html अकेले पुन: बनाता है लिखा है, शेष साइट को बिना छुए:

$ 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 

कार्यान्वयन देखें:

#!/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 

तो मैं बस के रूप में स्क्रिप्ट का शुभारंभ विवरण here

मैंने "लीप डे" लेआउट के साथ परीक्षण किया; लेकिन मुझे लगता है कि यह दूसरों के लिए भी काम करता है।

0

आप configure Jekyll exclude विकल्प के साथ कुछ निर्देशिकाओं को छोड़ने के लिए कर सकते हैं।

(ध्यान दें कि Jekyll एक keep_files विकल्प है -। destintation निर्देशिका में फ़ाइलों के लिए है कि)