2013-11-21 7 views
9

मैं grunt-assemble घुरघुराना कार्य विन्यास जो इस तरह दिखता है के साथ संघर्ष कर रहा हूँ:पथ को इकट्ठा करने के साथ

assemble: { 
    options: { 
    flatten: false, 
    expand: true, 

    assets: '', 

    layout: 'default.hbs', 
    layoutdir: 'templates/layouts', 

    partials: ['templates/includes/*.hbs'], 
    helpers: ['templates/helpers/*.js'], 
    data: ['templates/data/*.{json,yml}'] 
    }, 

    dev: { 
    src: 'templates/pages/**/*.hbs', 
    dest: 'build/' 
    } 

assemble.io के लिए परियोजना टेम्पलेट्स के मचान की तरह दिखता है:

templates 
├── helpers 
├── includes 
│   ├── page-footer.hbs 
│   ├── page-header.hbs 
│   └── scripts.hbs 
├── layouts 
│   └── default.hbs 
└── pages 
    ├── en 
    │   └── index.hbs 
    ├── fr 
    │   └── index.hbs 
    └── index.hbs 

मेरी इच्छा की तरह कुछ मिल जाना है:

build 
├── en 
│   └── index.html 
├── fr 
│   └── index.html 
└── index.html 

लेकिन बजाय मैं की तरह कुछ मिलता है:

build 
└── templates 
    └── pages 
     ├── en 
     │   └── index.html 
     ├── fr 
     │   └── index.html 
     └── index.html 

मैं संयोजन के कुछ ही (एक बहुत वास्तव में) (flatten और expand के साथ-साथ cwd विकल्पों के साथ) की कोशिश की थी, लेकिन मैं अटक कर रहा हूँ।

flatten का उपयोग index.html फ़ाइलों को एक दूसरे को ओवरराइट करने के परिणामस्वरूप है।

इसलिए मैं वास्तव में एक .tmp निर्देशिका में रेंडरिंग की और उसके बाद निर्माण निर्देशिका के लिए फ़ाइलों को स्थानांतरित। मुझे उस समाधान को पसंद नहीं है क्योंकि, page.assets अभी भी टूटा हुआ (रूट मान index.html के लिए इसका मान ../../.. होगा)।

उत्तर

8

घुरघुराना एकत्र

(ध्यान दें कि यह जानकारी विशेष रूप से संदर्भित करता है असंतोष का शब्द-इकट्ठा करने के लिए 0.4.x, जो घुरघुराना इकट्ठा के लिए प्लगइन है, लेकिन एक पूरी तरह से अलग एपीआई है)

@doowb लगभग सही है, expand: true और ext: '.html' फाइल कॉन्फ़िगरेशन में जोड़ने का प्रयास करें:

assemble: { 
    options: { 
    flatten: false, 
    expand: true, 

    assets: '', 

    layout: 'default.hbs', 
    layoutdir: 'templates/layouts', 

    partials: ['templates/includes/*.hbs'], 
    helpers: ['templates/helpers/*.js'], 
    data: ['templates/data/*.{json,yml}'] 
    }, 

    dev: { 
    files: [ 
     {expand: true, cwd: 'templates/pages/', src: '**/*.hbs', dest: 'build/', ext: '.html'} 
    ] 
    } 
} 

इसके अलावा https://github.com/assemble/assemble-contrib-permalinks

पर एक नज़र डालें 0.7.x इकट्ठा

संग्रह में इकट्ठा 0.7.0, के रूप में प्लग इन हैं, प्रथम श्रेणी हैं हां, तो संबंधित लिंक्स पैदा पृष्ठांकन के निर्माण, और बनाने जैसी बातों कस्टम परमालिंक करना बहुत आसान है।

यदि आप 0.7.x और ऊपर इकट्ठा कर रहे हैं, तो assemble-permalinks वह प्लगइन है जिसका आप उपयोग करना चाहते हैं।

+2

बहुत बहुत धन्यवाद! मैं सही जगह पर देख रहा था, लेकिन यह 'फाइल' ऑब्जेक्ट या अन्य संभावित वाक्यविन्यास के साथ थोड़ा उलझन में पड़ता है। – zeropaper

+0

यह नोड का उपयोग करके @jonschlinkert @doowb इकट्ठा करने के द्वारा किया जाएगा? क्या यह कुछ ऐसा होगा ... app.pages ([पृष्ठों के लिए पथ], {[file config]} या यह सिर्फ एक गड़बड़ चीज है? –

2

क्या आपने cwd संपत्ति के साथ विस्तारित files ऑब्जेक्ट का उपयोग करने का प्रयास किया है?

assemble: { 
    options: { 
    flatten: false, 
    expand: true, 

    assets: '', 

    layout: 'default.hbs', 
    layoutdir: 'templates/layouts', 

    partials: ['templates/includes/*.hbs'], 
    helpers: ['templates/helpers/*.js'], 
    data: ['templates/data/*.{json,yml}'] 
    }, 

    dev: { 
    files: [ 
     { cwd: 'templates/pages/', src: '**/*.hbs', dest: 'build/' } 
    ] 
    } 
} 
+1

मैंने वास्तव में किया था। को मिली फ़ाइलों के बारे में त्रुटियां नहीं मिलीं, त्रुटि: "index.hbs" फ़ाइल (त्रुटि कोड: ENOENT) पढ़ने में असमर्थ। Object.util.error पर (..../node_modules/grunt/lib/grunt/util.js: 57: 39) ऑब्जेक्ट.फाइल.read पर (..../node_modules/grunt/lib/grunt/file.js: 237: 22) buildPage पर ..../node_modules/assemble/tasks/assemble.js:289:78) ..../node_modules/इकट्ठा/कार्य/assemble.js: 345: 23 – zeropaper

संबंधित मुद्दे