2013-11-21 2 views
9

ich mit der grunt-assemble Grunzen Task-Konfiguration habe Schwierigkeiten, die wie folgt aussieht:Pfade der generierten Seiten mit montieren

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/' 
    } 

Das Gerüst der Projektvorlagen für assemble.io wie folgt aussieht:

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

Mein Wunsch gehen ist wie etwas bekommen:

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

Aber stattdessen bekomme ich so etwas wie:

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

Ich versuche, habe ein paar (viele tatsächlich) von Kombinationen (mit flatten und expand sowie die cwd Optionen), aber ich bin fest.

Die Verwendung von flatten hat zur Folge, dass die index.html Dateien sich gegenseitig überschreiben.

So mache ich eigentlich das Rendering in ein .tmp Verzeichnis und die Dateien in das build Verzeichnis verschieben. ich nicht, dass die Lösung gefällt weil dann die page.assets noch ist gebrochen (ihr Wert ../../.. wäre, für die Wurzel index.html).

Antwort

8

grunt zusammenbauen

(Beachten Sie, dass diese Informationen speziell auf 0.4.x grunze zusammenbauen bezieht, die die für grunt zubauen Plugin ist, hat aber eine völlig andere API)

@doowb fast hat es richtig, versuchen Sie expand: true und ext: '.html' zu den Dateien config hinzufügen:

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'} 
    ] 
    } 
} 

Werfen Sie auch einen Blick auf https://github.com/assemble/assemble-contrib-permalinks

montieren 0.7.x

Sammlungen sind erstklassig in 0.7.0 montieren, als Plugins sind, so Dinge wie relative Links zu erzeugen, Gebäude Paginierung, und die Schaffung von benutzerdefinierte Permalinks sind viel einfacher zu tun.

Wenn Sie 0.7.x montieren verwenden und nach oben, assemble-permalinks ist das Plugin die Sie verwenden möchten würde.

+2

Vielen Dank! Ich habe den richtigen Ort gesucht, aber es wird ein wenig verwirrend mit dem 'files' Objekt oder einer anderen möglichen Syntax. – zeropaper

+0

Wie würde dies mit dem Knoten assemble @jonschlellert @doowb gemacht werden? Würde es so etwas wie ... app.pages ([Pfad zu den Seiten], {[Dateikonfiguration]} oder ist das nur ein grunzendes Ding atm? –

2

Haben Sie versucht, das erweiterte files Objekt für Grunt Ziele mit der cwd Eigenschaft zu verwenden?

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

Ich habe tatsächlich. bekam Fehler zu Dateien nicht gefunden, wie der Blick, dass Fehler: Kann nicht „index.hbs“ Datei (Fehlercode: ENOENT) lesen. bei Object.util.error (..../node_modules/grunt/lib/grunt/util.js: 57: 39) bei Object.file.read (..../node_modules/grunt/lib/grunt/file.js: 237: 22) bei buildPage (..../node_modules/assemble/tasks/assemble.js:289:78) at ..../node_modules/assemble/tasks/assembly.js: 345: 23 – zeropaper

Verwandte Themen