Code Monkey home page Code Monkey logo

happyplan's Introduction

UNMAINTAINED

I can only recommend you to checkout this brand new static website generator which is far more flexible than this one.

โžก https://github.com/MoOx/statinamic


HappyPlan!

NPM version Build Status

A fantastic preconfigured static website generator

HappyPlan is a static website generator based on a bundle of amazing tools. It's just all about fun.

What in it ?

  • A task-based command line build tool: Grunt.js & all pre-defined tasks you'll need (scripts, styles & images automatic minification & compression).
  • A static website generator from html or markdown: assemble.
  • An amazing CSS pre-processor, Sass (via libsass).
  • Autoprefixer to automatically add CSS vendor prefix to your CSS, using to caniuse.com database.
  • A quick way to provide scalable icons as font thanks an awesome Grunt task grunt-webfont.
  • A Livereload server provided by the grunt-contrib-watch task to make development as fast as hell.
  • Support the Bower package manager to handle web components.

Notice: you can change/override/add stuff very easily, thanks to grunt. More about that in the documentation

Oh, by the way, why "happy plan" ? Here is not the answer.

Documentation

Visit the documentation for all the things.

TL;DR

Requirements

According you already have Node & NPM installed you can run this commands:

$ npm install -g grunt-cli happyplan-cli bower

Learn more about requirements.

Create a project using happyplan

$ npm init
$ npm install happyplan --save-dev
$ happyplan

Contributing

When you want to fix a bug or add a feature, just be sure to get all testing requirements installed, & run tests before making your Pull Request.

You can run in one command the build process & the tests.

$ npm install
$ npm test

In case you don't know it yet, npm {cmd} just run the command {cmd} specified in the package.json script section. In our case, it run grunt test. And to be precise, the test task run the nodeunit one.

Tests some features

Features are tested using a simple build & a diff. Checkout test/features/* to find existing tested features. By default all features are tested, but you can run just some of them using the features option.

$ grunt test -features=feature1,feature2


Credits

happyplan's People

Contributors

bitdeli-chef avatar gyndav avatar madx avatar moox avatar nhoizey 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

Watchers

 avatar  avatar  avatar

happyplan's Issues

Move happy-plan.json to happy-plan.json.sample...

...And add a task that will rename the .sample to the .json if there is no happy-plan.json.
This will make update to end project using merge simpler (avoiding conflict if the user update the happy-plan.json for his need).
Easy to do. I can take care of that.
What do you think ?

Did you know that?

In package.json :

"scripts": {
        "start": "node app/server.js",
        "test": "grunt qunit",
        "build": "grunt build"
    }

It allows you to do for instance npm start

poke @MoOx

Find a prefix for theme name

As we now have the possibility to create themes and install them via bower, we should find a name convention for themes.

What do you think about hpt-:name or happytheme-:name? I prefer the first one.

.bowerrc, weird behaviour

I don't understand the behaviour of how we use .bowerrc.

I was wondering why .bowerrc isn't versioning and I saw that it's generated by Happy Plan.

So I ran the grunt cmd and I saw that compass couldn't import normalize.scss, which is totally normal because I couldn't install normalize.scss via bower coz I don't have any .bowerrc file.

Why .bowerrc is generated by happy plan? How do you do when you didn't run one time grunt and you need to install something via bower?

Logo

Order js files

For the moment, we simply use *.js to compile them into script.js at the end.

The problem is if you have:

  • a.js
  • b.js
  • c.js

and you absolutly need that a.js is the latest script in script.js, you can't.

How to resolve this problem?

poke @MoOx

Support for Jekyll plugins

In testing, Jekyll plugins seem to be left out of the happy-plan.default.json

Will try to add myself but reporting as issue here too.

Troubles with path

@MoOx you defined:

"dist": {
    "path": "dist/",
    "assets": {
      "path": "<%= happyPlan.dist.path %>assets/",
      "scripts": "<%= happyPlan.dist.assets.path %>js",
      "styles": "<%= happyPlan.dist.assets.path %>css",
      "images": "<%= happyPlan.dist.assets.path %>img",
      "fonts": "<%= happyPlan.dist.assets.path %>fonts",
      "static": "<%= happyPlan.dist.assets.path %>"
    },
    "medias": "<%= happyPlan.dist.path %>medias",
    "root": "<%= happyPlan.dist.path %>"
  },
  "baseUrl": ".",
  "baseUrls": {
    "_": "<%= happyPlan.baseUrl %>/",
    "scripts": "<%= happyPlan.baseUrl %>/js",
    "styles": "<%= happyPlan.baseUrl %>/css",
    "images": "<%= happyPlan.baseUrl %>/img",
    "fonts": "<%= happyPlan.baseUrl %>/fonts",
    "medias": "<%= happyPlan.baseUrl %>/medias"
  },

and you use in jekyll:

base_urls: 
  scripts: "{{ happyPlan.baseUrls.scripts }}"
  styles: "{{ happyPlan.baseUrls.styles }}"
  images: "{{ happyPlan.baseUrls.images }}"
  fonts: "{{ happyPlan.baseUrls.fonts }}"
assets:
  main:
    style: "{{ happyPlan.assets.main.style }}"
    script: "{{ happyPlan.assets.main.script }}"

which means all files go to ./assets/ but you call them without /assets/, whaaaaaat?

Static folder troubles

I'm stuck with static folder. (cc @MoOx)

I need to put some files like CNAME or favicon.png at the root of the website.

The thing is we've got static folder in assets. It's for files which have no compilation, it's just a way to copy paste files there to dist asset folder (/dist/assets/).

Though, these files should be at the root of dist.

There're multiple ways to fix it:

  • We stop to use dist/assets folder in dist and we put everything at the root (/dist).
  • We use two static folders. One for assets, one for root.

Themes should be possible

We must think about theme possibility.

I was think about having a theme folder, this is where you download it (via bower?) and you can do happyplan theme:copy --:name-of-the-theme

Change default task

Why not use for default task the watch task ? (the most used task by hand)

Warning, patch regarde!

Regarde should watch . and not only *. We don't want to watch folders. Could be create some bugs.

Upgrade Jekyll to 1.0

Build is actually broken if you have latest jekyll & grunt-jekyll version.
I'm on it.

Puzzled on how to get scripts to work w/ Bower

Discovered happy-plan today, looks perfect to me since I use everything provided.

Now, I got everything worked except the scripts.

  • I have placed my scripts in _scripts (multiple files)
  • I have installed some bower components in _bower components

If I run "grunt" I get a concatted scripts file with the scripts in _scripts. However, I feel l am missing some efficiency trcik here.

How am I supposed to work with this? Do I manually copy the js files from _bower_components to _scripts or do I reference them? How do I change the concat order (jquery etc. must be first)?

Move bower.json?

Now that themes are possible, shouldn't we move bower.json into src folder in order to be overwritten easily by the theme?

New structure

  • Replace all compilated folders from "folder" to "_folder"
  • All the "src" is copied excepted "_folder"
  • If you need to add something in assets or ./, just add it as you want. If you want to ignore something, just add _ behind the name

Reorganize happy-plan.json paths

What do you think about moving all paths variables into a happyPlan.path part ? Because since I'm adding more config into the happy-plan.json (#10), it will be easier to read...
What do you think ?

_assets/components folder

@MoOx How do you differentiate components for js and components for css?

For instance, I can have bootstrap.js and bootstrap.css. We need to suggest an arborescence for scss which are yours and scss which are from a plugin.

Add JsHint

Just to be sure you have nice formated Gruntfile.js & you main script clean :)

Review folder architectures

EDIT: new issue title is clear now :)

Like we can see with issues #2 and #3, I think _assets not really useless & bring too many weird behavior in the gruntfile (copy but clean & image optimize).
With grunt-contrib-imagemin, images are copied & optimized.
Why not just use an _img folder (for design) & an uploads folder for content related image, video, & content stuffs (or _content_assets ?).
Or maybe just use _assets for content stuffs ? (but make less sense...)

local happyplan bin is fucked up

I wanted to check out the themes functionaliy but it's a bit unclear, the docs on github homepage refer to a "happy" command now so I went on to install the binary in the repo (bin/happy)

  • Should add to docs how to install the happy bin
  • Should make happy installable via brew?

If i move the bin to my /usr/local/bin I have problems

wolfr3:happy-plan noone$ cp bin/happy /usr/local/bin/
wolfr3:happy-plan noone$ happy
-bash: /usr/local/bin/happy: Permission denied
wolfr3:happy-plan noone$ chmod +x /usr/local/bin/happy 
wolfr3:happy-plan noone$ happy

module.js:340
    throw err;
          ^
Error: Cannot find module 'celeri'
    at Function.Module._resolveFilename (module.js:338:15)
    (...)

is this about https://github.com/crcn/celeri ?

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.