jescalan / roots Goto Github PK
View Code? Open in Web Editor NEWa toolkit for rapid advanced front-end development
Home Page: http://roots.netlify.com/
License: Other
a toolkit for rapid advanced front-end development
Home Page: http://roots.netlify.com/
License: Other
https://github.com/sstephenson/eco - looks dope. a lot like ejs, but would be nice to use this as a test for the extension api i've been working on
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.
This should never, ever happen!
Having a 75% white text on a white background just doesn't make it for readability :(
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
https://github.com/LearnBoost/websocket.io
https://github.com/faye/faye-websocket-node
both are smaller and better maintained. and we don't need flash support or anything, nobody who develops websites uses IE.
This combined with require.js will make managing client-side javascript super quick and simple.
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...
causes all shit to break loose
i have something simple like this
http://dl.dropbox.com/u/47552986/Screenshots/28.png
but it looks like it is getting plopped in there twice
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)
not sure is this is because of the watcher or the code, but i should fix this
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)`
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
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.
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.
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
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
if you type something like roots sdfljsd;flj it crashes. should just prompt you to ask for help
Like Bootstrap examples do.
multiple errors after refresh
I installed Heroku on my Windows.
However, whenever I use the command roots deploy
, it keeps saying that I need to install Heroku first.
often times when requiring multiple files together, the extra coffeescript closure is more of a pain than a help. i think an option should be exposed to switch this off
Totally jacked this from yeoman, but it's a great idea. We can use this project to make a little set of manpages.
There are a lot of variables and settings in the roots css index file, these should be generated as overrides in new projects so they can be configured
roots Heroku deploy fails (and deletes the code in the process)
commands output - http://gist.github.com/4280424
Every time a reload is sent through it, it reloads the page twice. This is probably because it has a foreach directory loop.
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.
๐
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
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.
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.
There is some test coverage here, but it needs to be a lot more complete. Put in work son.
Is there a global setting for rounded corners or a utility for removing/adjusting them?
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
Maybe not everyone wants to compress their stuff, ok?
If we buffer the stream before it hits the browser, we could technically inject the livereload code there and eliminate the need for a mixin, which would be dope. But this is a massively difficult task.
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
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?
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
Currently they silently fail if you have a syntax error. Not hard to change, I just have to remind myself to actually do it...
kinda critical for making anything ๐
Should be easy enough. Could be an extension to background enabled by flag or something like bg-retina: - opinions?
It would be nice to see some examples with source code (like http://brunch.io/). What do you think ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.