-
-
Save andymantell/1bd1e0fb5f8d659bf11f to your computer and use it in GitHub Desktop.
| var assemble = require('assemble'); | |
| var ext = require('gulp-extname'); | |
| module.exports = function(grunt) { | |
| grunt.registerTask('assemble', 'Assemble', function() { | |
| var done = this.async(); | |
| var site = assemble.init(); | |
| site.partials('src/core/templates/partials/**/*.hbs'); | |
| site.layouts('src/core/templates/layouts/*.hbs'); | |
| site.option('layout', 'default'); | |
| // Dummy helpers to stop errors being thrown for the moment | |
| site.helper('author', function() {return 'here'}); | |
| site.helper('button', function() {return 'here'}); | |
| site.helper('byline', function() {return 'here'}); | |
| site.helper('compile', function() {return 'here'}); | |
| site.helper('debug', function() {return 'here'}); | |
| site.helper('icon', function() {return 'here'}); | |
| site.helper('ifCond', function() {return true}); | |
| site.helper('image', function() {return 'here'}); | |
| site.helper('loadArticle', function() {return []}); | |
| site.helper('loadAuthorArticles', function() {return []}); | |
| site.helper('navigation', function() {return 'here'}); | |
| site.helper('panel', function() {return 'here'}); | |
| site.helper('parseJSON', function() {return []}); | |
| site.helper('render', function() {return 'here'}); | |
| site.helper('renderJSON', function() {return 'here'}); | |
| site.helper('teamFiller', function() {return ''}); | |
| // Build the pattern library | |
| site.task('demo', function() { | |
| site | |
| .src('src/sites/demo/pages/**/*.hbs') | |
| .pipe(ext()) | |
| .pipe(site.dest('converted-html/demo')); | |
| }); | |
| // Build the main site | |
| site.task('main', function() { | |
| site | |
| .src('src/sites/main/pages/**/*.hbs') | |
| .pipe(ext()) | |
| .pipe(site.dest('converted-html/main')); | |
| }); | |
| site.run(['demo', 'main'], done); | |
| }); | |
| }; |
Yeah, sorry, I realise it's really hard to debug this kind of stuff remotely. Here's the output of site.views.layouts from line 13 anyway:
One thing I noticed is that in all of your sub-layouts, you're using layout: default.hbs... it should just be layout: default. If you're doing this inside your pages, then it won't be pointing to the correct layout since page frontmatter overrides the global options e.g. site.option('layout', 'default');
Another thing that I had to do was return the streams inside the assemble tasks so the run waited for them to finish before telling grunt that it was done.
I created this repo with some samples based on what you described and everything seems to be working for me with those changes.
Hooray! That's pretty much sort of working now :-) It's all kinds of broken still, but that's to be expected - I still need to migrate all my helpers and I daresay fix a few other things but this is a darn good start - it gets about halfway through rendering now and the output all looks correctish and well formed. So, now I just need to finish the migration...
Thankyou so much for your help, is massively appreciated. I'll keep you posted on my progress... :-)
@anymantell will you put
console.log('layouts', site.views.layouts)on line 13?It's really hard to debug this when all we have are small pieces. I haven't been having problems with layouts so I need to find out if somehow I have a different version of something that's working only for me.