easy_html_generator 1.0.4 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +6 -0
  3. data/.gitignore +12 -0
  4. data/.rubocop.yml +18 -0
  5. data/.travis.yml +14 -0
  6. data/Gemfile +3 -0
  7. data/README.md +51 -337
  8. data/Rakefile +42 -0
  9. data/config.ru +4 -0
  10. data/docs/CONFIGURATION.md +84 -0
  11. data/{CONTRIBUTING.md → docs/CONTRIBUTING.md} +2 -0
  12. data/docs/GENERATORS.md +210 -0
  13. data/docs/GETSTARTED.md +92 -0
  14. data/easy_html_generator.gemspec +54 -0
  15. data/lib/easy_html_generator/checksum.rb +4 -0
  16. data/lib/easy_html_generator/config.rb +0 -77
  17. data/lib/easy_html_generator/generator/base.rb +20 -58
  18. data/lib/easy_html_generator/generator/combine.rb +9 -19
  19. data/lib/easy_html_generator/generator/compile/base.rb +51 -0
  20. data/lib/easy_html_generator/generator/compile/coffee.rb +6 -13
  21. data/lib/easy_html_generator/generator/compile/haml/helper/activesupport_override.rb +1 -6
  22. data/lib/easy_html_generator/generator/compile/haml/helper/asset_helper.rb +7 -7
  23. data/lib/easy_html_generator/generator/compile/haml.rb +20 -45
  24. data/lib/easy_html_generator/generator/compile/sass.rb +9 -13
  25. data/lib/easy_html_generator/generator/copy.rb +7 -14
  26. data/lib/easy_html_generator/generator/delete.rb +4 -13
  27. data/lib/easy_html_generator/generator/minimize/css.rb +5 -12
  28. data/lib/easy_html_generator/generator/minimize/html.rb +5 -12
  29. data/lib/easy_html_generator/generator/minimize/images.rb +6 -20
  30. data/lib/easy_html_generator/generator/minimize/js.rb +5 -12
  31. data/lib/easy_html_generator/generator/service/analytics.rb +19 -19
  32. data/lib/easy_html_generator/generator/service/bower.rb +21 -17
  33. data/lib/easy_html_generator/generator/service/grunt.rb +12 -11
  34. data/lib/easy_html_generator/generator/service/sitemap.rb +33 -0
  35. data/lib/easy_html_generator/generator/structure.rb +2 -6
  36. data/lib/easy_html_generator/generator.rb +6 -6
  37. data/lib/easy_html_generator/project.rb +5 -0
  38. data/lib/easy_html_generator/project_path_resolver.rb +57 -0
  39. data/lib/easy_html_generator/rack_dispatcher.rb +1 -1
  40. data/lib/easy_html_generator/version.rb +4 -0
  41. data/lib/easy_html_generator/workspace.rb +1 -1
  42. data/lib/easy_html_generator.rb +19 -18
  43. data/src/demo/assets/styles/app.css.sass +47 -2
  44. data/src/demo/lib/helper/projecthelper.rb +3 -0
  45. data/src/demo/project.yml +142 -0
  46. data/src/demo/views/index/_bower_and_grunt.haml +7 -0
  47. data/src/demo/views/index/_dry.haml +16 -0
  48. data/src/demo/views/index/_haml_sass_coffee.haml +11 -0
  49. data/src/demo/views/index/_inline_coffee_and_sass.haml +43 -0
  50. data/src/demo/views/index/_sass_mixins.haml +76 -0
  51. data/src/demo/views/index.html.haml +13 -1
  52. data/src/demo/views/layout/_assets.javascripts.haml +7 -0
  53. data/src/demo/views/layout/_assets.metadata.haml +12 -0
  54. data/src/demo/views/layout/_assets.stylesheets.haml +9 -0
  55. data/src/demo/views/layout/_footer.haml +3 -0
  56. data/src/demo/views/layout/_header.haml +1 -0
  57. data/src/demo/views/layout.haml +8 -4
  58. data/src/demo/views/plain.html +1 -0
  59. data/src/shared/assets/styles/mixins/_bootstrap-fixes.sass +12 -0
  60. data/src/shared/assets/styles/mixins/_headjs-bootstrap-mediaqueries.sass +30 -0
  61. data/src/shared/project.yml +56 -35
  62. data/src/template/project.yml +57 -43
  63. metadata +75 -7
  64. data/src/demo/views/index/_lore_ipsum.haml +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4121de001c06afef8a4674c5027e2327efc693c9
4
- data.tar.gz: c67d23e2d49c758f6278ee9a1dc88cb9fb19cef8
3
+ metadata.gz: 09e261a245dc181a7eccc30b1996735cef82ac01
4
+ data.tar.gz: 9b16640da263e0de0e464b282fe8caa1a53cb386
5
5
  SHA512:
6
- metadata.gz: 65d9714558acef3e3feaf91b4e9904225529fee83f4b293fec3717cd2acd2d099a0c10f0f28ac1ee9d97b6315ae795e7775b62a5572268b4511b1ef75fe2e348
7
- data.tar.gz: e48670c042579af8ebbf2a4690ff75cbbf4a42eaf7d6faefb2bf336f9b7ea238a89500308d44095abe69ae4715ec9260fdeb04922cf5351047cca8086a9e47b2
6
+ metadata.gz: 5bb7994ee0aab9b4892f4ef48564d1fc2f861b16de6aced27466a43a5e3f3e16372043ae55afb2a94c8e2db57fa37b920dc48155a8b9b72412e65c09b1311cf4
7
+ data.tar.gz: c3699481eaf0aab10f8b55174e7c922b7e4add82d337c0d4a2cdb582a4b1dffe5abe5dab51f06bdffbc8f8d637d6e12a0d156445ef5ba3a8a1661251bd460aee
data/.codeclimate.yml ADDED
@@ -0,0 +1,6 @@
1
+ languages:
2
+ Ruby: true
3
+
4
+ exclude_paths:
5
+ - "dist/*"
6
+ - "spec/*"
data/.gitignore ADDED
@@ -0,0 +1,12 @@
1
+ .sass-cache
2
+ .DS_Store
3
+ coverage
4
+ spec/fixtures/src/demo/node_modules
5
+ spec/fixtures/src/demo/bower_components
6
+ spec/fixtures/dist
7
+ dist
8
+ src/demo/bower_components
9
+ Gemfile.lock
10
+ .bundle
11
+ .yardoc
12
+ tmp
data/.rubocop.yml ADDED
@@ -0,0 +1,18 @@
1
+ Metrics/LineLength:
2
+ Max: 79
3
+
4
+ AllCops:
5
+ Include:
6
+ - '**/Rakefile'
7
+ - '**/config.ru'
8
+ Exclude:
9
+ - spec/fixtures/**/*
10
+
11
+ Style/Encoding:
12
+ Enabled: true
13
+
14
+ Style/RedundantException:
15
+ Enabled: false
16
+
17
+ Style/ClassAndModuleChildren:
18
+ Enabled: false
data/.travis.yml ADDED
@@ -0,0 +1,14 @@
1
+ language: ruby
2
+
3
+ rvm:
4
+ - 2.2.0
5
+
6
+ node_js:
7
+ - 0.10
8
+
9
+ before_script:
10
+ - npm install -g grunt-cli bower
11
+ - sudo apt-get install -y optipng jpegoptim
12
+ - bundle install
13
+
14
+ script: bundle exec rspec spec
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
data/README.md CHANGED
@@ -1,364 +1,78 @@
1
1
  # easy-html-generator [![Build Status](https://travis-ci.org/creative-workflow/easy-html-generator.svg?branch=master)](https://travis-ci.org/creative-workflow/easy-html-generator) [![Code Climate](https://codeclimate.com/github/creative-workflow/easy-html-generator/badges/gpa.svg)](https://codeclimate.com/github/creative-workflow/easy-html-generator) [![Gem Version](https://badge.fury.io/rb/easy_html_generator.svg)](http://badge.fury.io/rb/easy_html_generator)
2
2
 
3
- This gem is a powerful and easy to use web development tool that helps developing modern web sites by generating static html pages. It utilizes:
3
+ This gem is a powerful and easy to use web development tool that helps developing modern web sites in a comfortable and fast way by generating static html pages.
4
+
5
+ #### ehg utilizes:
4
6
  * [CoffeScript](http://coffeescript.org/) a.k.a. Javascript
5
7
  * [Sass](http://sass-lang.com/) a.k.a. Css
6
8
  * [Haml](http://haml.info/) a.k.a. Html
7
9
  * [ActionView](https://github.com/rails/rails/tree/master/actionview) for ruby haml templating comfort
8
- * ~ 600 lines of code
9
10
 
10
- It supports:
11
+ #### ehg supports:
11
12
  * [Bootstrap](http://getbootstrap.com/) for responsive and modern html layouts
12
13
  * [HeadJS](http://headjs.com/) for performance optimized resource loading
13
14
  * [Bower](http://bower.io/) for javascript dependency management
14
15
  * [Grunt](http://gruntjs.com/) for javascript based task management
15
16
  * [Google Anlaytics](https://www.google.com/analytics/) tracking of pageclicks
16
- * minimizing of coffee-, javascript-, sass-, css-, png- and jpg files
17
- * per project generators and ruby/haml view helper
18
- * shared generators, helpers, static-, sass- and image files
19
-
20
- It is developed with:
21
- - [Ruby](https://www.ruby-lang.org/) as implementation language
22
- - [Rspec](http://rspec.info/) for testing
23
- - [RuboCop](https://github.com/bbatsov/rubocop) for code quality
24
-
25
- It is based on:
26
- - [EasyHtmlCreator](https://github.com/dennisvandehoef/easy-html-creator) which was the fundament [Dennis van de Hoef](https://github.com/dennisvandehoef) and me developed on.
27
-
28
- ## Get started
29
- At first you need [Ruby](https://www.ruby-lang.org/de/) and [Bundler](http://bundler.io/).
30
-
31
- For specific generators install:
32
- * [OptiPng](http://optipng.sourceforge.net/) for png image minimizing
33
- * [JpegOptim](https://github.com/tjko/jpegoptim) for jpg image minimizing
34
- * [NodeJs](https://nodejs.org/download/) to use bower and grunt https://www.npmjs.com/
35
- * [Bower](http://bower.io/) to use bower `npm install -g bower`
36
- * [Grunt](http://gruntjs.com/getting-started) to use grunt `npm install -g grunt-cli`
37
-
38
- Create a new workspace folder
39
-
40
- mkdir my_workspace
41
- cd my_workspace
42
-
43
- Create a ruby `Gemfile`
44
-
45
- touch Gemfile
46
-
47
- Paste this into the `Gemfile`
48
-
49
- source 'https://rubygems.org'
50
-
51
- gem 'easy_html_generator'
52
-
53
- Run in terminal
54
-
55
- bundle install
56
- ehg --init
57
- ehg --create my_project
58
-
59
- Now you should see the following folder structure with `ls -alR`
60
-
61
- my_workspace
62
- ├── dist # the generated result will be stored here
63
- └── src # the generation input is stored here
64
- ├── demo
65
- ├── my_project # this is a project and will be available via http://localhost:9292/my_project
66
- │   ├── assets
67
- │   │   ├── images # content will be copied to `dist/my_project/images`
68
- │   │   ├── public # public content gets directly copied to `dist/my_project/`
69
- │   │   ├── scripts # content will be copied to `dist/my_project/scripts`
70
- │   │   └── styles # content will be copied to `dist/my_project/styles`
71
- │   ├── lib
72
- │   │   ├── generators # project specific generators
73
- │   │   └── helper # project specific view helpers you can use in haml files
74
- │   ├── project.yml # project specific generators config
75
- │   └── views
76
- │   ├── index.html.haml # the ham file for index.html
77
- │   └── layout.haml # the layout file index.html will use
78
- |
79
- └── shared # shared content over all projects
80
- ├── assets # shared assets over all projects
81
- │   ├── images
82
- │   ├── public
83
- │   ├── scripts
84
- │   └── styles
85
- │   └── mixins # here are css helpers for bootstrap and head js
86
- ├── lib
87
- │   ├── generators # generators shared over all projects
88
- │   └── helper # view helpers you can use in haml files
89
- └── project.yml # if a project doesnt have a `project.yml` this config will be used
90
-
91
- Now run
92
-
93
- ehg --server
94
-
95
- ...and navigate your web browser to `http://localhost:9292`
96
-
97
- After a short time of generating you should see a directory listening in your browser.
98
-
99
- ## Usage Terminal
100
- Usage: ehg [options]
101
- -s, --server [HOST_AND_PORT] start the rack server, default: 0.0.0.0:9292
102
- -g, --generate [PROJECT] generate one or all projects, default: all
103
- -i, --init initialize ehg workspace
104
- -c, --create [PROJECT] create a new project from template, default: demo
105
- -h, --help Show this message
106
-
107
- ## Usage Generators
108
- There are several generators controlled by the `project.yml`. If a project misses the project.yml the file `my_workspace/shared/project.yml` will be loaded and looks like this:
109
-
110
- paths:
111
- src:
112
- images: 'assets/images'
113
- scripts: 'assets/scripts'
114
- styles: 'assets/styles'
115
- ...
116
-
117
- generators:
118
- - structure:
119
- enabled: true
120
-
121
- - compile_coffee:
122
- enabled: true
123
- minimize: true
124
- selector: '**/*.js.coffee'
125
-
126
- - service_bower:
127
- enabled: true
128
- selector: 'bower.json'
129
- target: 'lib'
130
- ...
131
-
132
- ## Generators
133
- Generators are processed the way they appear in the `project.yml`. At the moment only one generator instance per `project.yml` is allowed. Every generator has the property `enabled`.
134
-
135
- ### Basic-Generators
136
- #### Structure
137
- * operates on: `dist`
138
- * creates necessary dist folders
139
- * config:
140
-
141
- ```
142
- generators:
143
- - structure:
144
- enabled: true
145
- ```
146
-
147
- #### Copy
148
- * operates on: `dist` and `src`
149
- * copies folder or files from dist to src per default
150
- * supports `src://` and `dist://`
151
- * config:
152
-
153
- ```
154
- generators:
155
- - copy:
156
- enabled: true
157
- dirs:
158
- -
159
- source: 'assets/styles'
160
- target: 'styles'
161
- selector: '**/*.css'
162
- -
163
- source: 'src://assets/scripts'
164
- target: 'dist://scripts'
165
- selector: '**/*.js'
166
- ```
167
-
168
- #### Combine
169
- * operates on: `dist`
170
- * combines merges files on dist per default
171
- * supports `src://` and `dist://`
172
- * config:
173
-
174
- ```
175
- generators:
176
- - combine
177
- enabled: true
178
- packages:
179
- -
180
- file: 'scripts/combined.js'
181
- files:
182
- - 'scripts/**/*.js'
183
- -
184
- file: 'dist://styles/combined.css'
185
- files:
186
- - 'src://styles/**/*.css'
187
- ```
188
-
189
- #### Delete
190
- * operates on: `dist`
191
- * deletes files or folders on dist per default
192
- * supports `src://` and `dist://`
193
- * config:
194
-
195
- ```
196
- generators:
197
- - delete
198
- enabled: false
199
- files:
200
- - '*'
201
- - 'src://bower_components'
202
- ```
203
-
204
- ### Compile-Generators
205
- #### Compile::Haml
206
- * operates on: `dist` and `src`
207
- * compiles haml files from src to html files in dist, supports partials, action view syntax and minimizing
208
- * config:
209
-
210
- ```
211
- generators:
212
- - compile_haml:
213
- enabled: true
214
- minimize: true
215
- default_layout: 'views/layout.haml'
216
- selector: '**/*.html.haml'
217
- renderer:
218
- attr_wrapper: '"'
219
- format: :html5
220
- shared_helper_path: 'shared/lib'
221
- ```
222
-
223
- #### Compile::Sass
224
- * operates on: `dist` and `src`
225
- * compiles sass files from src to css files in dist, supports shared mixins and minimizing
226
- * config:
227
-
228
- ```
229
- generators:
230
- - compile_sass:
231
- enabled: true
232
- minimize: true
233
- selector: '**/*.css.sass'
234
- ```
235
-
236
- #### Compile::Coffee
237
- * operates on: `dist` and `src`
238
- * compiles coffee files from src to js files in dist, supports minimizing
239
- * config:
240
-
241
- ```
242
- generators:
243
- - compile_coffee:
244
- enabled: true
245
- minimize: true
246
- selector: '**/*.js.coffee'
247
- ```
248
-
249
- ### Minimize-Generators
250
- #### Minimize::Html
251
- * operates on: `dist` and `src`
252
- * minimizes src html files and copies to dist
253
- * config:
254
-
255
- ```
256
- generators:
257
- - minimize_html:
258
- enabled: true
259
- selector: '**/*.html'
260
- prefix_extension: ''
261
- ```
262
-
263
- #### Minimize::Css
264
- * operates on: `dist` and `src`
265
- * minimizes src css files and copies to dist
266
- * config:
267
-
268
- ```
269
- generators:
270
- - minimize_css:
271
- enabled: true
272
- selector: '**/*.css'
273
- prefix_extension: '.min'
274
- ```
275
-
276
- #### Minimize::Js
277
- * operates on: `dist` and `src`
278
- * minimizes src js files and copies to dist
279
- * config:
17
+ * `minimizing` of coffee-, javascript-, sass-, css-, html-, haml-, png- and jpg files
18
+ * workspace `shared` generator-, haml-helper-, static-, sass- and image files
19
+ * `inline` sass and coffee script in haml files, `inline_stylesheet_link_tag` and `inline_javascript_include_tag`
20
+ * `partitial templates` and `layout files` for haml
280
21
 
281
- ```
282
- generators:
283
- - minimize_js:
284
- enabled: true
285
- selector: '**/*.js'
286
- prefix_extension: '.min'
287
- ```
22
+ ## Resources
288
23
 
289
- #### Minimize::Images
290
- * operates on: `dist` and `src`
291
- * minimizes src image files and copies to dist, uses [Piet](https://github.com/albertbellonch/piet)
292
- * config:
24
+ > "[Getting started](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GETSTARTED.md)"
293
25
 
294
- ```
295
- generators:
296
- - minimize_images:
297
- enabled: true
298
- selector: '**/*.{jpg,jpeg,png}'
299
- options:
300
- quality: 90
301
- level: 3
302
- verbose: true
303
- ```
26
+ > "[Configuration](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONFIGURATION.md)"
304
27
 
305
- ### Service-Generators
306
- #### Service::Bower
307
- * operates on: `dist` and `src`
308
- * resolves my_workspace/bower.json and copies bower_components to target in dist
309
- * config:
28
+ > "[Generators](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GENERATORS.md)"
310
29
 
311
- ```
312
- generators:
313
- - service_bower:
314
- enabled: true
315
- selector: 'bower.json'
316
- target: 'lib'
317
- ```
30
+ >"[Contributing](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONTRIBUTING.md)"
318
31
 
319
- #### Service::Grunt
320
- * operates on: `dist`
321
- * resolves my_workspace/Gruntfile.coffee and runs a task
322
- * config:
323
32
 
324
- ```
325
- generators:
326
- - service_grunt:
327
- enabled: true
328
- selector: 'Gruntfile.coffee'
329
- task: 'default'
330
- ```
33
+ ## Changes
331
34
 
332
- #### Service::Analytics
333
- * operates on: `dist`
334
- * appends google analytics code to selected html files
335
- * config:
35
+ #### Version 1.0.5
36
+ * refactor Generator::* and clean up code
37
+ * implement Generator::Service::Sitemap
38
+ * add repetitive feature to every generator
39
+ * add generic support for analytic codes, not only for google
40
+ * implement src:// and dest:// path expanding for all config values, streamline config names
41
+ * streamline project.yml parameter names
42
+ * you have to adjust your project.yml by adding path shortcuts to all your generators `src://` and `dest://` (see README for more path shortcuts) and rename some parameter names
336
43
 
44
+ #### Version 1.0.4
45
+ * add src:// and dest:// path expanding to basic generators
46
+ * raise on missing partial rendering
47
+ * set thin server to debug level, see requests
48
+ * extend bootsrap fixes
49
+ * add headjs hide-* mixins and classes
50
+ * better override path_to_stylesheet instead of hole stylesheet_link_tag method to make action_view_helper work with ehg
51
+ * don’t cache combined result
52
+ * create target dir on copy
53
+ * add missing rubocop dev dependency
337
54
 
338
- ```
339
- generators:
340
- - service_analytics:
341
- enabled: true
342
- append_to_files:
343
- - '**/*.html'
344
- google:
345
- enabled: true
346
- code: "<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', '{GOOGLE_UA_ID}', 'auto');ga('send', 'pageview');</script>"
347
- id: -1
348
- ```
55
+ #### Version 1.0.3
56
+ * bower target relative from dist folder not from dist/scripts folder
57
+ * optimize rack for local pagespeed testing
58
+ * fix directory listening
59
+ * add Rack::ShowExceptions
60
+ * project.uri_path retuns now relative paths
349
61
 
350
- ### Resources
351
- * https://github.com/creative-workflow/easy-html-generator
352
- * https://travis-ci.org/creative-workflow/easy-html-generator
353
- * https://codeclimate.com/github/creative-workflow/easy-html-generator
354
- * https://rubygems.org/gems/easy_html_generator
355
- * http://www.rubydoc.info/gems/easy_html_generator
356
- * https://github.com/dennisvandehoef/easy-html-creator
62
+ #### Version 1.0.2
63
+ * fix generate all `ehg -g`
64
+ * refactor rack app, use thin server
65
+ * implement ehg as rack middleware
357
66
 
358
- ### Authors
67
+ #### Version 1.0.1
68
+ * setup instructions
69
+ * travis integration
70
+ * code coverage
71
+ * rubocop rake task
359
72
 
360
- [Tom Hanoldt](https://github.com/monotom)
361
73
 
362
- # Contributing
74
+ # Authors
363
75
 
364
- Check out the [Contributing Guidelines](CONTRIBUTING.md)
76
+ - [Tom Hanoldt](https://github.com/monotom)
77
+ - [Alexander Illmayer](https://github.com/arecords)
78
+ - It is based on: [EasyHtmlCreator](https://github.com/dennisvandehoef/easy-html-creator) which was the fundament [Dennis van de Hoef](https://github.com/dennisvandehoef) and me developed on.
data/Rakefile ADDED
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+ require 'rake'
3
+ require 'easy_html_generator'
4
+ require 'bundler/gem_tasks'
5
+ require 'rspec/core/rake_task'
6
+
7
+ desc 'generate one or all project ditributions'
8
+ task :generate do |project|
9
+ if project
10
+ EasyHtmlGenerator.generate_project project
11
+ else
12
+ EasyHtmlGenerator.generate_all
13
+ end
14
+ end
15
+
16
+ desc 'Starts the rack server, see config.ru'
17
+ task :server, :host_and_port do |_t, args|
18
+ host_and_port = args[:host_and_port] || '0.0.0.0:9292'
19
+
20
+ tmp = host_and_port.split ':'
21
+ host = tmp.first
22
+ port = tmp.last
23
+
24
+ Rack::Server.start(app: EasyHtmlGenerator::Rackapp, Host: host, Port: port)
25
+ end
26
+
27
+ desc 'runs rubocop'
28
+ task :lint do
29
+ puts `rubocop .`
30
+ end
31
+
32
+ desc 'create a new project'
33
+ task :create, :name do |_t, args|
34
+ EasyHtmlGenerator::Workspace.create_project args[:name]
35
+ end
36
+
37
+ RSpec::Core::RakeTask.new
38
+
39
+ desc 'Run tests'
40
+ task test: :spec
41
+
42
+ task default: :test
data/config.ru ADDED
@@ -0,0 +1,4 @@
1
+ # encoding: utf-8
2
+ require 'easy_html_generator'
3
+
4
+ run EasyHtmlGenerator.rack_app
@@ -0,0 +1,84 @@
1
+ # Configuration
2
+
3
+ ### project.yml
4
+ There are several generators controlled by the `project.yml`. If a project misses the project.yml the file `my_workspace/shared/project.yml` will be loaded and looks like this:
5
+
6
+ paths:
7
+ src:
8
+ images: 'assets/images'
9
+ scripts: 'assets/scripts'
10
+ styles: 'assets/styles'
11
+ [...]
12
+ generators:
13
+ - structure:
14
+ enabled: true
15
+ - compile_coffee:
16
+ enabled: true
17
+ minimize: true
18
+ selector: 'src.scripts://**/*.js.coffee'
19
+ [...]
20
+
21
+ ### Path shortcuts
22
+ Any config value can use `path shortcuts` which will be resolved at runtime. The following shortcuts are available:
23
+ * `src://`: project.src_path
24
+ * `dist://`: project.dist_path
25
+ * `src.scripts://`: project.src_path_to(:scripts)
26
+ * `src.styles://`: project.src_path_to(:styles)
27
+ * `src.images://`: project.src_path_to(:images)
28
+ * `src.public://`: project.src_path_to(:public)
29
+ * `src.views://`: project.src_path_to(:views),
30
+ * `dist.scripts://`: project.dist_path_to(:scripts)
31
+ * `dist.styles://`: project.dist_path_to(:styles)
32
+ * `dist.images://`: project.dist_path_to(:images)
33
+ * `dist.public://`: project.dist_path_to(:public)
34
+ * `dist.views://`: project.dist_path_to(:views),
35
+ * `workspace.root://`: EasyHtmlGenerator::WORKSPACE_PATH
36
+ * `ehg.root://`: EasyHtmlGenerator::EHG_SRC_PATH
37
+
38
+ If we have a config value like ```src.scripts://bower_components/*``` the value will be expanded to ```/Users/mono/code/cw/tools/easy-html-generator/src/scripts/bower_components/*``` for ex..
39
+
40
+ ### Path regexp
41
+ based on ruby's [Dir method](http://www.rubydoc.info/stdlib/core/2.2.2/Dir.glob) pattern resolving.
42
+ * `*`matches all files
43
+ * `m*` matches all files beginning with m
44
+ * `*o` matches all files ending with o
45
+ * `*no*` matches all files that have no in them
46
+ * `**` matches directories recursively
47
+ * `?` matches any one character
48
+ * `[set]` matches any one character in set
49
+ * `{p,q}` matches either literal p or literal q
50
+ * `\` escapes the next metacharacter
51
+
52
+ ### Repetitive configuration
53
+ Nearly any generator can be configured repetitive. That means that the following copy generator configuration...
54
+
55
+ - copy:
56
+ enabled: true
57
+ source: 'src.styles://'
58
+ target: 'dist.styles://'
59
+ selector: '**/*.css'
60
+
61
+ ...can be transformed to:
62
+
63
+ - copy:
64
+ enabled: true
65
+ selector: '**/*'
66
+ repetitive:
67
+ -
68
+ source: 'src.images://'
69
+ target: 'dist.images://'
70
+ -
71
+ source: 'src.styles://'
72
+ target: 'dist.styles://'
73
+ selector: '**/*.css'
74
+
75
+
76
+ Note that the repetitive config will be merged with the configuration from root node (see `selector`).
77
+
78
+ # Resources
79
+
80
+ > "[Getting started](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GETSTARTED.md)"
81
+
82
+ > "[Generators](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/GENERATORS.md)"
83
+
84
+ >"[Contributing](https://github.com/creative-workflow/easy-html-generator/blob/master/docs/CONTRIBUTING.md)"
@@ -1,3 +1,5 @@
1
+ #Contributing
2
+
1
3
  ##Issues
2
4
 
3
5
  - Report issues or feature requests on [GitHub Issues](https://github.com/creative-workflow/easy-html-generator/issues).