Coder Social home page Coder Social logo

grunt-handlebars-compiler's People

Contributors

connorbode avatar flibdev avatar mattacular avatar pasangsherpa avatar redkabbage avatar thesisb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

grunt-handlebars-compiler's Issues

TypeError when trying to compile templates

I am using this configuration when trying to compile the templates:

handlebars:{
    all:{
        files:{
            "js/partials.js":"templates/source/**/*.handlebars"
        },
        options:{
             namespace: 'Handlebars.templates'
        }
    }
}

When I rungrunt handlebars` I get this error:

TypeError: _(...).map(...).flatten is not a function
    at Object.module.exports [as findup] (C:\Users\mySAP\Desktop\workspace\maperp_mobile_demo\www\node_modules\findup-sync\lib\findup-sync.js:33:8)
    at Task.task.init (C:\Users\mySAP\Desktop\workspace\maperp_mobile_demo\www\node_modules\grunt\lib\grunt\task.js:427:16)
    at Object.grunt.tasks (C:\Users\mySAP\Desktop\workspace\maperp_mobile_demo\www\node_modules\grunt\lib\grunt.js:120:8)
    at Object.module.exports [as cli] (C:\Users\mySAP\Desktop\workspace\maperp_mobile_demo\www\node_modules\grunt\lib\grunt\cli.js:38:9)
    at Object.<anonymous> (C:\Users\mySAP\AppData\Roaming\npm\node_modules\grunt-cli\bin\grunt:45:20)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Function.Module.runMain (module.js:457:10)

no option for the --min flag?

I know grunt offers other ways to minify js files, but since this project aims to offer the same options as the handlebars CLI, I figured it was worth mentioning that it's missing --min to trigger minification. If it was there, I'd use it. Thanks for a useful project!

Additional AMD option to return the template rather than extending the Handlebars.templates object

In my project I am compiling my templates for use within an AMD (require.js) context.

In a module, in order to use a compiled template, I do something like this:

define(["jquery", 'Handlebars', "templates/contextMenu"], function($, Handlebars){

    var ctxMenu = {
        contextMenu: {},
        ctxTmpl: Handlebars.templates['contextMenu'],
                ...

I was wondering about the feasibility and your thoughts on modifying the compiled output as to allow something like this:

define(["jquery", "templates/contextMenu"], function($, template){

    var ctxMenu = {
        contextMenu: {},
        ctxTmpl: template,
                ...

This can be achieved quite simply by changing the compiled template from:

define(['Handlebars'], function (Handlebars) {
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
templates['contextMenu'] = template(function (Handlebars,depth0,helpers,partials,data) {

to

define(['Handlebars'], function (Handlebars) {
var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
return template(function (Handlebars,depth0,helpers,partials,data) {

Looking forward to your thoughts on this.

partial variable in options has a typo

The option 'partial' is defined on line 35 as

partial: false, // specify that templates are partials

but on line 152, it is used as

// source is compiled at this point, let us reconstruct and decide wrappings

if (options.**partials**) {
wrapOpen = 'Handlebars.partials[\'' + filename + '\'] = template(';

Object #<Object> has no method options error at Object:modules.exports ../tasks\handlebars.js:25:22

Hi,
I ran into this error when attempting to compile my handlebars templates. This is what my config looks like:

handlebars: {
all: {
files: {
'p/src/template/handlebars/*/.handlebars': 'public/javascripts/handlebars-templates.js'
},
options: {
exportCommonJS: 'handlebars'
}
}
},
I'm loading the task at the bottom of my grunt.js using
grunt.loadNpmTasks('grunt-handlebars-compiler');

The command I'm using is grunt.cmd handlebars
Am I missing something? Has anyone else had this problem before?

Thanks.

Is it possible to compile the templates individually?

I have over 40 templates that I am conditionally loading using requirejs. I was wondering if this would allow to find all *.hbs files and compile them separately so I can only load the ones my page needs rather than all my templates in a single file.

Thanks

How to register helpers to be compiled

Hi,

i was wondering how i can compile templates with the helpers included? There is no option to specify which helpers should be build/compiled in..

Can you help me with that?

Best,
mrlove

test suite failing out of the box

$ grunt test
Running "clean:tests" (clean) task
Cleaning "tmp"...OK

Running "handlebars:vanilla" (handlebars) task
File "tmp/out.compiled.js" created.

Running "handlebars:namespace" (handlebars) task
File "tmp/out-namespace.compiled.js" created.

Running "handlebars:templateRoot" (handlebars) task
Found templateRoot and stripped it from the template name: "World.handlebars"
File "tmp/out-templateRoot.compiled.js" created.

Running "handlebars:exportAMD" (handlebars) task
Compiling as AMD/RequireJS module(s).
File "tmp/out-exportAMD.compiled.js" created.

Running "handlebars:exportCommonJS" (handlebars) task
Compiling as Common JS module(s).
File "tmp/out-exportCommonJS.compiled.js" created.

Running "handlebars:knownHelpers" (handlebars) task
Compiling with known helpers:
>> if, each
File "tmp/out-knownHelpers.compiled.js" created.

Running "nodeunit:tests" (nodeunit) task
Testing handlebars_test.jsF
>> handlebars
>> Message: The vanilla (no options) compiled output should match the clean (prepped) build
>> Error: '(function() {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [4,\'>= 1.0.0\'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.doctype); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.message); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());' == '(function() {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [2,\'>= 1.0.0-rc.3\'];\nhelpers = helpers || Handlebars.helpers; data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.doctype; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());'
>> at Object.exports.handlebars (test/handlebars_test.js:51:8)

>> handlebars
>> Message: The namespace compiled output should match the clean (prepped) build
>> Error: '(function() {\nvar template = Handlebars.template, templates = myApp.templates = myApp.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [4,\'>= 1.0.0\'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.doctype); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.message); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());' == '(function() {\nvar template = Handlebars.template, templates = myApp.templates = myApp.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [2,\'>= 1.0.0-rc.3\'];\nhelpers = helpers || Handlebars.helpers; data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.doctype; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());'
>> at Object.exports.handlebars (test/handlebars_test.js:51:8)

>> handlebars
>> Message: The output compiled as a AMD module should match the clean (prepped) build
>> Error: 'define([\'handlebars\'], function (Handlebars) {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [4,\'>= 1.0.0\'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.doctype); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.message); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n});' == 'define([\'handlebars\'], function (Handlebars) {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [2,\'>= 1.0.0-rc.3\'];\nhelpers = helpers || Handlebars.helpers; data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.doctype; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n});'
>> at Object.exports.handlebars (test/handlebars_test.js:51:8)

>> handlebars
>> Message: The output compiled as a Common JS module should match the clean (prepped) build
>> Error: 'var Handlebars = require(\'handlebars\');\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [4,\'>= 1.0.0\'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.doctype); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.message); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n' == 'var Handlebars = require(\'handlebars\');\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [2,\'>= 1.0.0-rc.3\'];\nhelpers = helpers || Handlebars.helpers; data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.doctype; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n'
>> at Object.exports.handlebars (test/handlebars_test.js:51:8)

>> handlebars
>> Message: The templateRoot should have been stripped to match the clean (prepped) build
>> Error: '(function() {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'World\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [4,\'>= 1.0.0\'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.doctype); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.message); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());' == '(function() {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'World\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [2,\'>= 1.0.0-rc.3\'];\nhelpers = helpers || Handlebars.helpers; data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression;\n\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.doctype; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());'
>> at Object.exports.handlebars (test/handlebars_test.js:51:8)

>> handlebars
>> Message: The output compiled with known helpers should match the clean (prepped) build
>> Error: '(function() {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld-helpers\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [4,\'>= 1.0.0\'];\nhelpers = this.merge(helpers, Handlebars.helpers); data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n  \n  var buffer = "", stack1;\n  buffer += "\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.message); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t\t";\n  return buffer;\n  }\n\nfunction program3(depth0,data) {\n  \n  var buffer = "";\n  buffer += "\\n\t\t<p>"\n    + escapeExpression((typeof depth0 === functionType ? depth0.apply(depth0) : depth0))\n    + "</p>\\n\t\t";\n  return buffer;\n  }\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = (depth0 && depth0.doctype); stack1 = typeof stack1 === functionType ? stack1.call(depth0, {hash:{},data:data}) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t";\n  stack1 = helpers[\'if\'].call(depth0, (depth0 && depth0.message), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n  if(stack1 || stack1 === 0) { buffer += stack1; }\n  buffer += "\\n\\n\t\t";\n  stack1 = helpers.each.call(depth0, (depth0 && depth0.messages), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n  if(stack1 || stack1 === 0) { buffer += stack1; }\n  buffer += "\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());' == '(function() {\nvar template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};\ntemplates[\'helloWorld-helpers\'] = template(function (Handlebars,depth0,helpers,partials,data) {\n  this.compilerInfo = [2,\'>= 1.0.0-rc.3\'];\nhelpers = helpers || Handlebars.helpers; data = data || {};\n  var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;\n\nfunction program1(depth0,data) {\n  \n  var buffer = "", stack1;\n  buffer += "\\n\t\t<div>Hello world! ";\n  if (stack1 = helpers.message) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.message; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + "</div>\\n\t\t";\n  return buffer;\n  }\n\nfunction program3(depth0,data) {\n  \n  var buffer = "";\n  buffer += "\\n\t\t<p>"\n    + escapeExpression((typeof depth0 === functionType ? depth0.apply(depth0) : depth0))\n    + "</p>\\n\t\t";\n  return buffer;\n  }\n\n  buffer += "<!doctype ";\n  if (stack1 = helpers.doctype) { stack1 = stack1.call(depth0, {hash:{},data:data}); }\n  else { stack1 = depth0.doctype; stack1 = typeof stack1 === functionType ? stack1.apply(depth0) : stack1; }\n  buffer += escapeExpression(stack1)\n    + ">\\n<html>\\n\t<body>\\n\t\t";\n  stack1 = helpers[\'if\'].call(depth0, depth0.message, {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});\n  if(stack1 || stack1 === 0) { buffer += stack1; }\n  buffer += "\\n\\n\t\t";\n  stack1 = helpers.each.call(depth0, depth0.messages, {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});\n  if(stack1 || stack1 === 0) { buffer += stack1; }\n  buffer += "\\n\t</body>\\n</html>";\n  return buffer;\n  });\n}());'
>> at Object.exports.handlebars (test/handlebars_test.js:51:8)

Warning: 6/6 assertions failed (94ms) Use --force to continue.

Aborted due to warnings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.