Git Product home page Git Product logo

roots's Issues

let npm deal with package management

If roots is available on npm, why not deprecate the curl roots.cx/get | sh command? Also, for a similar reason, the roots update command could be removed in favor of using npm update roots.

Relying more on npm could remove a little of the complexity of this project, and hopefully provide a more standard interface for people used to working with node.js.

make error message fixes

if you are scrolled down a page and then you get an error on livereload the error message is still at the top of the page.. thus you can not see the error

Layouts and Partials

Just wanted to open this up to write down slash bounce around ideas for how this functionality will be handled.

Partials are built in to jade and ejs, who knows for haml. I'm probably going to get rid of haml anyway, it's not really necessary for this framework. The only reason I have it in there at all is for possible template conversion to rails if someone decided later that they wanted dynamic functionality. I feel like it's probably not worth it though, conversion would be quick.

I have layouts built into the jade compiler and the default layout is working fine, although I don't have it set up for individual overrides yet, and layouts aren't working for anything other than jade at the moment. It should be pretty easy to port it in, but in the process of setting this up I realized that the compilers need a big time refactor - mainly I want to superclass the template methods that are repeated across all compilers, and possibly make some distinction between view and asset compilers, as the view compilers take on the additional responsibility of rendering layouts etc. So next on the list for me is a major refactor (once again) to the compile project file then to all the compiler files.

Either way, what I wanted to bring up here was how we should handle layouts. For example, do we invent out own syntax for straight html layouts, or require jade or ejs because they are templating languages? Since ejs is written in pure html, it's not like there's any reason not to just use that, but with the extra tag for yield. I doubt anyone would honestly use a framework like this and write in mainly straight html, css, and js anyway. Also, should we allow multiple templating languages to be used at the same time? If this is the case, it would make things a little more difficult from the layout perspective, as cross-compiling would have to happen. I'm thinking maybe when you start the project you would be able to use either the default or another specified stack and you'd have to stick with that.

Ok that's enough out of me here...

Error 'roots js install'

Error install

roots js install bootstrap-js
bower cloning git://github.com/arhea/bower-bootstrap-js
bower cached git://github.com/arhea/bower-bootstrap-js
bower fetching bootstrap-js

/usr/local/lib/node_modules/roots/node_modules/bower/node_modules/tmp/lib/tmp.js:219
    throw err;
          ^
Error: status code of git: 127
    at ChildProcess.module.exports (/usr/local/lib/node_modules/roots/node_modules/bower/lib/util/spawn.js:27:17)
    at ChildProcess.EventEmitter.emit (events.js:99:17)
    at Process._handle.onexit (child_process.js:678:10)

Do not watch components folder

It seems the watcher gets inundated with the files generated by roots js install .... Make sure the watcher doesn't watch the bower-generated js/components folder

NOTE:

This was tested after installing jquery-ui

ERROR OUTPUT:

    fs.js:837
        throw errnoException(errno, 'watch');
              ^
    Error: watch EMFILE
      at errnoException (fs.js:806:11)`

Add some sort of plugin interface

It would be pretty cool to allow people to quickly and easily add in their own compilers or maybe other plugins. I don't really know how we'd do this or what other plugins besides compilers could be added, but it would be pretty awesome.

A couple examples of what I'm thinking

  • if someone wants it, a compiler for haml
  • a system that parses tumblr tags and generates sample data so you could use this to generate tumblr themes
  • a plugin that would add compass and sass support

It would be great to have an easy way to install these and make functionality available. This way we could also keep the core super clean and enhance it quickly by mixing in modules of extra functionality if/when we need them.

Add require.js to template

Require.js is really the best way to manage javascript dependencies on the client side. It would be very simple to integrate this into the roots new template, and this should be done.

UglifyJS throws an error on compile of blank project

I'm not going to say this is definitely a bug in uglifyjs, but the stack trace is complete unhelpful, meaning I'll probably have to do neuro-style debugging to find out which line is causing this issue. Not critical, as everything still appears to be compiling, but should be taken care of.

/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/transform.js:206
        self.consequent = self.consequent.transform(tw);
                                      ^
TypeError: Cannot call method 'transform' of null
    at /usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/transform.js:206:43
    at Object.merge.before (/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/compress.js:88:9)
    at AST_Node.transform (/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/transform.js:62:20)
    at /usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/transform.js:128:49
    at Object.merge.before (/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/compress.js:88:9)
    at AST_Node.transform (/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/transform.js:62:20)
    at AST_Node.optimize (/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/compress.js:115:24)
    at Object.merge.before (/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/compress.js:89:21)
    at AST_Node.transform (/usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/transform.js:62:20)
    at /usr/local/lib/node_modules/roots-static/node_modules/uglify-js2/lib/transform.js:137:31

maybe not port 3000

lets detect if 3000 is open.. if not lets use another port

typically i have a few servers running at a time :)

and 3000 is pretty typical for rails

Roots can't detect Heroku

I installed Heroku on my Windows.
However, whenever I use the command roots deploy, it keeps saying that I need to install Heroku first.

add man pages

Totally jacked this from yeoman, but it's a great idea. We can use this project to make a little set of manpages.

Design for docs

I've been working on a design for the upcoming docs site. I'm thinking roots.cx, which is available. This is how it's looking so far, simple and fresh. Any thoughts?

v1

File watcher reloads twice

Every time a reload is sent through it, it reloads the page twice. This is probably because it has a foreach directory loop.

watcher doesn't pull in new files

If you add a file to the project while watching, the file is ignored until you restart the watcher. If there's any way we could get the watcher to pull in new files, that would be incredible.

Create a plugin for compass

Compass is generally a pain in the ass to integrate into other things, since it is essentially its own build system. But a lot of people love it anyway, and I'd like to have a plugin that integrates it in as straightforward a way as possible.

Really, i think this is what we're after, but I wouldn't be surprised if this needed some extra work and system integration, especially for things like sprites: https://github.com/chriseppstein/compass/tree/stable/frameworks/compass

Which languages should we support?

I'm thinking about removing haml, because why would you use it when you have jade - they are the same type of concept. In ruby, almost everyone uses haml or erb for view templates, and here we have jade and ejs, which are essentially the same thing but javascript equivalents.

Looking at tilt, there are a lot of shenanigans types of templates in here that would hardly be used for a project structure like this. I'm a big fan on the default jade, stylus, coffee stack, but I know some people are in to different styles.

I think ejs is a good addition, I think less would be a good one (for people who like css with brackets and semis) - after that i'd call it a day - we'd have both whitespace dependent and more terse languages and non-ws-dependent and slightly more explicit languages for both css and html.

Error on comand "compile"

When compiling the project takes off error

compiling project... 
minifying & compressing...
WARN: Dropping unused function argument e [null:652,22]
WARN: Dropping unused variable $active [null:677,10]
WARN: Dropping unused function argument that [null:913,27]
WARN: Dropping unused variable that [null:857,12]
WARN: Dropping unused variable that [null:927,12]
WARN: Dropping unused variable that [null:1178,10]
WARN: Dropping unused function argument event [null:1800,22]
WARN: Dropping unused function argument event [null:1870,20]
WARN: Dropping unused function argument event [null:1881,20]
WARN: Dropping unused function argument e [null:1978,20]
Please check the validity of the CSS block starting from the line #58

but the 'watch' project is working fine.

Any changes to a stylus file are not effective.

Better Tests

There is some test coverage here, but it needs to be a lot more complete. Put in work son.

rounded corners

Is there a global setting for rounded corners or a utility for removing/adjusting them?

Suggestion: Switch to dom-based building

Would you guys be interested in testing out dom-based building?

I have been workign on assetgraph for a while. It's a project that tries to model web assets for web performance optimization. The concept of it is that the placement of files in the file system is irrelevant. Instead it parses the assets to find and populate dependencies from them. Pretty much like the browser does.
This give you a lot cleaner code, since you don't have to annotate for the build system, and the build system doesn't need a lot of configuration for where the files are.

If you are interested I could try and see if I can fit assetgraph-builder into your project.

You can read more about it here: https://github.com/One-com/assetgraph-builder

only recompile the files that are needed

so I think this would involve knowing what type of file was modified

be it JS .. CSS .. or HTML

from there we crawl the tree and only recompile related assets

via @rmnvrmnvrmnv

Mix layout templating languages

So technically it seems feasible that you could have a layout in one language and have a file in another language compile into it. The question is, is this worth doing?

Custom FTP Deploys

It will be easy enough to have the roots deploy command deploy the app to heroku, but what would be even more awesome would be to also allow a deploy via ftp to your own server. We could just ask for ftp info to be entered into a separate file which would be gitignored and pulled into the app config.

This library looks like a great start: https://github.com/mscdex/node-ftp

Compilers need error handling

Currently they silently fail if you have a syntax error. Not hard to change, I just have to remind myself to actually do it...

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.