diff --git a/Gruntfile.js b/Gruntfile.js index 3e3383a9..055e2fb6 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -5,17 +5,30 @@ module.exports = function(grunt) { pkg: grunt.file.readJSON('../package.json') }); - function writeToLiveSampleJS(matchedJS) { + /** + * Write React component to js file + * @param {String} liveEditJS + * @param {String} componentName + */ + function writeToLiveSampleJS(liveEditJS, componentName) { grunt.file.write('js/cookbook/' + componentName + '.js', liveEditJS); } + /** + * Update HTML file to include an ID and script src link + */ + function writeToHTML() { + grunt.file.write('_site/cookbook' + componentName + '.html', liveEditJS); + } + function readFromCookbookEntry(abspath, rootdir, subdir, filename) { var markdown = grunt.file.read(abspath), + codeSample = /```[\S]+\s*[\s\S]*?```/g, // read markdown file for code sample - matchedJS = markdown.match(/`{3}[\s\S]*?`{3}/g), + matchedJS = markdown.match(codeSample), trimmedJS, componentName, componentNameCamelCase, @@ -44,11 +57,12 @@ module.exports = function(grunt) { // Add code sample to live edit liveEditJS = '/**\n * @jsx React.DOM\n */\n\n var ' + componentNameUpperCase + '_COMPONENT = "' + matchedJS + '";\n React.renderComponent(\n ReactPlayground( {codeText:' + componentNameUpperCase + '_COMPONENT} ),\n document.getElementById("' + componentNameCamelCase + 'Example")\n );' - + console.log(componentName); + writeToLiveSampleJS(liveEditJS, componentName); } - grunt.registerTask('makeLiveSamples', 'Out live edit JS file for code samples in React Cookbook entries', function() { + grunt.registerTask('makeLiveSamples', 'Create live edit JS file for code samples in React Cookbook entries', function() { var rootdir = 'cookbook/'; // Recurse through cookbook directory