grunt-assemble icon indicating copy to clipboard operation
grunt-assemble copied to clipboard

Stop Grunt template processing for a file

Open evil-shrike opened this issue 8 years ago • 2 comments

I have a markdown page with a fenced code block which contains Grunt's template syntax (<%=)

bla-bla-bla
\``` 
            test: {
                options: {              
	                urls: ['http://127.0.0.1:<%= connect.test.options.port %>/tests-runner.html']
                }
            }
\```

Building of this page fails somewhere inside Grunt. In grunt.config actually. As it detects its template syntax and try to evaluate it. It's template syntax but it's documentation not code.

All this happens before md processing and HB-helpers evaluating - I can see raw markdown content in debugger. Stacktrack: grunt.config processContext, assemle.js#613 build, assemle.js#556 assemble.js#397

Is it possible to avoid Grunt's template processing against file content?

evil-shrike avatar Dec 06 '16 23:12 evil-shrike

@evil-shrike Thanks for the issue! If you're reporting a bug, please be sure to include:

  • The version of assemble you are using.
  • Your assemblefile.js (This can be in a gist)
  • The commandline output. (Screenshot or gist is fine)
  • What you expected to happen instead.

assemblebot avatar Dec 06 '16 23:12 assemblebot

grunt-assemble 0.5 Output:

Warning: An error occurred while processing a template (Cannot read property 'options' of undefined). Use --force to continue.

My Gruntfile is pretty big but basically it's something like this:

    assemble: {
      options: {
        assets: config.dest + '/assets',
        flatten: true,
        layoutdir: 'templates/layouts',
        data: 'data/metadata/*.{json,yml}',
        partials: 'templates/partials/*.hbs',
        helpers: 'templates/helpers/**/*.js',
        config: '<%= config %>',
        build: {
          now: moment(now).format('DD.MM.YYYY'),
          // it's for 'last-modified' HB-helper:
          sources: {
            docs: {
              src: config.wcPath + '/Docs/articles/',
              dest: '_stage/docs/'
            },
            caseStudy: {
              src: config.csPath + '/Docs/',
              dest: '_stage/casestudy/'
            }
          }
        },
        collections: [{
          name: 'root',
          sortby: 'order'
        }, {
          name: 'section'
        }, {
          name: 'pages'
        }],
        plugins: [
          'plugins/lunr-indexer',
          'plugins/page-toc'
        ],
        lunr: {
          dataPath:  '<%= config.versionRoot %>/search_index.json',
          indexPath: '<%= config.versionRoot %>/search_index_index.json',
          baseDir:   '<%= config.dest %>\\<%= config.versionDir %>'
        },
	    toc: {
		  depth: 4,
		  autoInsert: true
	    }
      },
      casestudy: {
        options: {
          layout: 'casestudypage.hbs'
        },
        files: [{
            expand: true,
            cwd: '_stage',
            src: ['casestudy/*.md'],
            dots: true,
            dest: config.versionRoot + '/',
            ext: '.html'
          }, {
            expand: true,
            cwd: 'templates/pages',
            src: ['casestudy/*.hbs'],
            dots: true,
            dest: config.versionRoot + '/',
            ext: '.html'
	      }
        ]
      },

evil-shrike avatar Dec 06 '16 23:12 evil-shrike