Giter Site home page Giter Site logo

gruntjs.com's Introduction

Grunt Website Build Status: Linux

Setup Development

  1. npm install
  2. grunt

Tasks

  • grunt build - Manually Rebuild
  • grunt dev - Development Mode

Manually Run Server

npm start

Server port is: 5678.

Deploy to Heroku

Set Heroku keys (if needed) with

ssh-keygen -t rsa -C "YOUR_HEROKU_EMAIL" -f  ~/.ssh/id_rsa_heroku
ssh-add ~/.ssh/id_rsa_heroku
heroku keys:add ~/.ssh/id_rsa_heroku.pub

Push

git push [email protected]:grunt.git master:master

If you need to regenerate the Heroku site, use empty commits:

git commit --allow-empty -m "empty commit"
git push [email protected]:grunt.git master:master

gruntjs.com's People

Contributors

ajpiano avatar andersevenrud avatar arthurvr avatar boazsender avatar borracciablu avatar coliff avatar cowboy avatar dependabot[bot] avatar isaacdurazo avatar jkveganabroad avatar jonschlinkert avatar kaelig avatar kevinsawicki avatar krinkle avatar leobalter avatar materliu avatar nhall avatar niettcat avatar qivhou avatar shinnn avatar sindresorhus avatar stefanjudis avatar steveoh avatar supertassu avatar thanpolas avatar thorsten avatar trabus avatar vladikoff avatar xhmikosr avatar

Stargazers

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

Watchers

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

gruntjs.com's Issues

grunt plugin list not being cached completely

The plugin list has grown to be so big that the cache mechanism (localStorage) is now exceeding the Quota. On Chrome 23 I am seeing tons of requests to the npm registry, but only starting at "grunt-init".
Debugging showed that jquery-ajax-localstorage-cache was hitting a QUOTA_EXCEEDED error.

Most of the package.json files weigh in at around 5 - 20 KB, and much of the information is not needed for the website.

The best solution might be to create a condensed version of the plugin list to download. It should be fairly simple to transform the existing code to generate the plugin list as a single JSON file and upload it somewhere. This would also speed up the initial load time.

I'd be willing to create a proof of concept, the one issue I see is that this solution would require periodically running this condenser job somewhere to keep the information up to date. Any good ideas on how/where to accomplish this?

JavaScript Assets served from raw.github.com returning 403 Forbidden error

A number of JavaScript files are being served from the github.com domain. When I try to load the page, they sporadically return a 403 Forbidden error with the response:

You're over the rate limit.  Serve this file from your own servers.
Contact [email protected] if you have questions.

This is causing weirdness, such as the plugin list never loading (as it requires an unavailable lo-Dash)

A better approach might be to serve the assets via CDNs, most of which are already setup (jQuery, lo-Dash, etc); or host them yourself.

Case sensitivity in generated web site

The static site generator does not honor case sensitivity in anchor tags; it converts all letters to lower-case. This is fine in most cases (rimshot), but direct links to files hosted on GitHub may break--specifically, direct links to repos' Gruntfile.js.

For example, the current version of the "Who Uses Grunt" wiki page correctly links to https://github.com/jquery/jquery/blob/master/Gruntfile.js, but the generated web page references https://github.com/jquery/jquery/blob/master/gruntfile.js .

How do you specify shell commands in grunt tasks?

The docs seem to leave this out. I want to port my Node.js projects' Makefiles to Gruntfile.js's, but I've read the introductory grunt docs and still don't know how to do this basic feature.

As a mitigation, I could specify all my shell commands as scripts in package.json, but I'd prefer to keep all build steps in a single file.

Update the Getting Started Guide

The Getting Started Guide needs some tweaks.

remove

  • > Note: until 0.4.0 is officially released...

update

  • Example package.json still shows grunt 0.4.0rc7

image

  • Highlight grunt consistently (applies to all the docs pages):

When grunt is run on the command line

  • Highlight Gruntfile consistently (applies to all the docs pages):

Every Gruntfile (and gruntplugin) uses this basic format...

For example, this Gruntfile defines...

...don't need to be defined in the Gruntfile...

  • Fix broken link display:

If your project requires tasks not provided by a [grunt plugin][grunt plugins]

typos

  • If a locally installed gGunt is found

content

  • The Custom Tasks section should be split up into two sections: Custom Tasks, and Default Tasks. Most of that section is currently about Default Tasks and could lead people to think that you can only use custom tasks for the default task.

dest-as-target format deprecated?

Under the older formats, the dest-as-target format or:

concat: {
  'dist/bundle.js': ['*.js']
}

says "Consider this format deprecated, and avoid it where possible."

How true is that? I certainly don't avoid it and tell people to use it. IMO, it's a nice terse format and doesn't seem problematic unless you have a long dest you're trying to target on the cli. In which case I'd say... use a proper target format :)

Any objections to me changing the wording to: "This format may be deprecated in the future."?

/cc @cowboy @tkellen @sindresorhus

IA ideas, homepage etc

homepage:

  • what will it do for me?
  • how do i get started?
  • interactive gruntfile builder
  • ---below the fold---
  • who's using grunt?
  • the grunt source / github
  • footer (?) links to bocoup

plugin listing (searchable)
per-contrib plugin page (readmes converted to pretty html)

api documentation (searchable? converted from grunt docs)

other pages:

  • FAQ
  • contributing
  • contributors / the team / ???
  • getting started
  • ??

Code typo on page http://gruntjs.com/sample-gruntfile

Hi,

In the fourth code sample on page http://gruntjs.com/sample-gruntfile,
I believe the semi-colon at the end of the following line should be removed.
pkg: grunt.file.readJSON('package.json');

So the code sample:

module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json');
});
};

should instead be:

module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json')
});
};

The final code sample at the end of the page is correct as it puts a coma at the end of the line.

Regards,
Axel

Docs could use extended info to implement tasks fully supporting the files selector.

The documentation on how to configure tasks and specify the files filter options is excellent but there is no counterpart for it in the creating tasks section, which has does have good info on the basics of building tasks but skips over using the selected files.

It's a bit odd as everything else is very specced out and the selector options and filters are very powerful feature to leverage.

Now we have to root through the contrib tasks and find one which works similar to what we try to do and just voodoo-cargo-cult it cross referenced with the fragmented info that exists until it starts to makes sense.

For me as grunt n00b there seems to be a few common scenario's that could be covered: the read-only scenario (only using src's), the conversion scenario (multiple src's in, multiple dest's out) and a concat scenario (multiple src's in, single dest out).

If I look at the existing plugins there seems to be a lot of different ways with expansions and filters and nested loops over getters, even in the contrib tasks. For example grunt-contrib-copy does a lot of stuff more then others would and it's hard to grasp why.

Looking at non contrib plugins I might not be the only one who makes a mess and doesn't support cwd and flatten properly so it might be an improvement if a veteran could add some quality demo code to the project.

Task + api docs

So, for the "full" site I have an idea around displaying task + api docs.

Setup the gruntjs.com project so that grunt and all the grunt-contrib-* plugins (probably via the grunt-contrib collection) are dependencies.

Running npm install will pull them all down, and then grunt docs (the site documentation generation task) will extract the one page docs from each contrib plugin and build an index of them as "contrib tasks" into the main site. It will also extract the API docs from grunt and build that into an "api documentation" section of the site. And it will probably extract some other misc docs from grunt like usage guides, FAQs, the not-yet-written contribution guide, etc.

I want all the docs to be written in markdown, but in a format that the docs generator can parse. the API docs should ultimately be searchable, maybe like docs.emberjs.com but with less frames (?)

Wrong jquery template link

The Project Scaffolding page(project-scaffolding) in the section "Copying files" has a broken link to "jquery template".

limit plugins list for new version release

Eg. when 0.4 is released, the plugins list shouldn't show any plugin that was published before the day 0.4 was released. So that people don't see hundreds of outdated plugins.

Sample Gruntfile issues and another suggestion...

I'd send a pull request, but I couldn't actually find the page to edit: http://gruntjs.com/sample-gruntfile

The page seems to have a couple of grammatical errors. This sentence is odd: "Below is my configuration object for the "concat" task. I" . It seems there's a misplaced "I" at the end of the sentence. Additionally, the sentence "Within there we can then initialize our configuration object:" is a little wonky. I'd suggest "Inside the module.exports function, we can initialize our configuration object:".

I realize a lot of open source projects are successful because of volunteer efforts, but it'd be great if more people could volunteer because finding the content to edit on gruntjs.com was a little easier. May I suggest a wiki-style "edit this page" link?

Keep up the great work!

Latest and Hot plugins

We should make it easier to discover new and interesting plugins.

On the Bower components site I display Latest and Hot components. We could do something similar on the grunt plugin site.

Deprecated plugins

I just made my gunt-stylus plugin deprecated (npm deprecate) because I add all it’s unique features to grunt-contrib-stylus. And I think it will be good not to show npm deprecated packages in plugins list on a site.

Post-launch stuff

content

  • verify API docs are current
  • ensure guides also make sense in the context of grunt 0.3.x
  • check guides to see if they actually even make sense
  • mention peerDependencies for grunt plugins
  • add page for "Who uses Grunt?"
  • add page for "The Grunt Team"
  • update 404 page
  • wiki needs to be its own repo

site

  • Remove header anchors (http://gruntjs.com/rss)
  • Fix the "Read more" link @ the end of each entry (??)
  • change github sidebar/footer links to the org: https://github.com/gruntjs
  • remove trailing / from http://gruntjs.com/blog/
  • change News left-nav header in "blog" to Blog
  • on blog landing page, blog post headers should be H2
  • move plugin page content to wiki somewhere
  • build plugins JS into plugins page or something, the flash on load is wonky
  • Add Disqus comments to blog posts, shortname is gruntjs

styling

  • clean up -webkit- css
  • li line-height should probably be the same as p (maybe with a slight bottom-margin)
  • fix homepage footer link :hover state 1px issue
  • right now the latest version is hard-coded, we'll need to fix that eventually
  • responsive design (probably needs its own issue)
  • look into alternative (less dark) syntax highlighting theme

Media

Would be useful if some media assets where available, like the logo in various formats: svg, png, jpg

Grunt site-0.4.0 list of issues

@vladikoff I need some help from you 👯

  1. We need a CSS class for contrib plugins so I can add the ribbon with the star
  2. We need to activate the "active" CSS class for the side nav menu
  3. Dropdown menu on Plugins side nav is not working

See "Building the files object dynamically"...but how?

On this page under Files it says:

expand - Process a dynamic src-dest file mapping, see "Building the files 
object dynamically" for more information

but I don't know what this refers to, there's no link - apologies if it should be obvious, I can't find it though.

Who uses grunt?

Let's get a list going so we can display it on the website.

If your project or website uses grunt, and you wouldn't mind it being mentioned somewhere on gruntjs.com, let us know here. Also, if you have a cool logo, that always helps. Post it as well!

Can not install grunt

I tried npm install grunt.

But got an error message.

pm ERR! Error: No compatible version found: underscore.string@'>=2.2.0rc <2.3.0-'
npm ERR! Valid install targets:
npm ERR! ["0.9.2","1.0.0","1.1.3","1.1.4","1.1.5","1.1.6","2.0.0","2.1.0","2.1.1","2.3.0","2.3.1","2.3.2"]
npm ERR!     at installTargetsError (/usr/local/Cellar/node/0.10.12/lib/node_modules/npm/lib/cache.js:719:10)
npm ERR!     at next (/usr/local/Cellar/node/0.10.12/lib/node_modules/npm/lib/cache.js:698:17)
npm ERR!     at /usr/local/Cellar/node/0.10.12/lib/node_modules/npm/lib/cache.js:678:5
npm ERR!     at saved (/usr/local/Cellar/node/0.10.12/lib/node_modules/npm/node_modules/npm-registry-client/lib/get.js:138:7)
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <[email protected]>

npm ERR! System Darwin 12.4.0
npm ERR! command "/usr/local/Cellar/node/0.10.12/bin/node" "/usr/local/bin/npm" "install" "grunt"
npm ERR! cwd [path/to/directory]
npm ERR! node -v v0.10.12
npm ERR! npm -v 1.2.32
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     [path/to/directory]/npm-debug.log
npm ERR! not ok code 0

Is there a solution?

byline for the front page

Here's a suggested byline for the front page of the gruntjs.com site:

Grunt is a command-line build tool for JavaScript and other internet projects.
Written in JavaScript, it runs on the Node.js platform.

That second line, was sortof implied in your description, but I thought it should be more clear, because it declares which language-cult it belongs to, and surfers can instantly disqualify themselves if they're not interested.

This is my take on your current description of Grunt:

Grunt is a task-based command line build tool for JavaScript projects

  • Grunt is a - great start. So many projects never bother to give a clue as to what the hell they're all about. Seriously!
  • task-based - this is a bullshit term. task |task| noun a piece of work to be done or undertaken. Basically, every program ever written for any computer anywhere is 'task based', all the way back to Ada Lovelace. I looked it up in Wikipedia and these were the first few topics found:

http://en.wikipedia.org/wiki/Task-based_language_learning
http://en.wikipedia.org/wiki/Uniform_Task-Based_Management_System
http://en.wikipedia.org/wiki/The_Task-based_Asynchronous_Pattern

Nothing to do with Grunt. Now, a lot of your 'modules', no you call them 'plugins', claim to be 'grunt tasks'. That's fine. That's within the Grunt world. But your intro is for people who don't already know what Grunt is and 'task' does not give any clues.

  • command line build tool - Yes! good.
  • for JavaScript projects - doesn't have to be JS projects. Now, of course, every language cult has to go rewrite everything in their own language; for instance Ruby, PHP, Perl and Python all have their own package-management system, written in their own language, because their language is oh-so-much-better than all the others. Fine. That doesn't mean that a JavaScript-implemented program must only work on JavaScript stuff - in fact you have plugins on the front page that do HTML and CSS stuff, not to mention "A task to remove the BOM for any file you want" which is good for any Unicode file from the last ten years on any platform. And in fact many of the plugins are specifically for JS.

BTW - a lot of your plugin descriptions can be shortened cuz "grunt" and "task" are implied:
"Assets revving task for Grunt." => "Assets revving"
"A grunt task to run behat BDD tests." => "runs behat BDD tests"

List/filter grunt-0.4 compatible plugins on gruntjs.com?

Really like the gruntjs.com website, especially how it has a searchable list of grunt plugins.

With the release of grunt-0.4.x, though, I'm wondering which of the plugins listed will work with the new version.

Would it be useful to add some sort of tag or filter (or icon) on the plugin list that says if the latest version of the plugin published to npm is grunt-0.4 compatible?

If this sounds like a good idea, I'm happy to start working on a pull request.

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.