easy_html_generator 1.0.4 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +6 -0
- data/.gitignore +12 -0
- data/.rubocop.yml +18 -0
- data/.travis.yml +14 -0
- data/Gemfile +3 -0
- data/README.md +51 -337
- data/Rakefile +42 -0
- data/config.ru +4 -0
- data/docs/CONFIGURATION.md +84 -0
- data/{CONTRIBUTING.md → docs/CONTRIBUTING.md} +2 -0
- data/docs/GENERATORS.md +210 -0
- data/docs/GETSTARTED.md +92 -0
- data/easy_html_generator.gemspec +54 -0
- data/lib/easy_html_generator/checksum.rb +4 -0
- data/lib/easy_html_generator/config.rb +0 -77
- data/lib/easy_html_generator/generator/base.rb +20 -58
- data/lib/easy_html_generator/generator/combine.rb +9 -19
- data/lib/easy_html_generator/generator/compile/base.rb +51 -0
- data/lib/easy_html_generator/generator/compile/coffee.rb +6 -13
- data/lib/easy_html_generator/generator/compile/haml/helper/activesupport_override.rb +1 -6
- data/lib/easy_html_generator/generator/compile/haml/helper/asset_helper.rb +7 -7
- data/lib/easy_html_generator/generator/compile/haml.rb +20 -45
- data/lib/easy_html_generator/generator/compile/sass.rb +9 -13
- data/lib/easy_html_generator/generator/copy.rb +7 -14
- data/lib/easy_html_generator/generator/delete.rb +4 -13
- data/lib/easy_html_generator/generator/minimize/css.rb +5 -12
- data/lib/easy_html_generator/generator/minimize/html.rb +5 -12
- data/lib/easy_html_generator/generator/minimize/images.rb +6 -20
- data/lib/easy_html_generator/generator/minimize/js.rb +5 -12
- data/lib/easy_html_generator/generator/service/analytics.rb +19 -19
- data/lib/easy_html_generator/generator/service/bower.rb +21 -17
- data/lib/easy_html_generator/generator/service/grunt.rb +12 -11
- data/lib/easy_html_generator/generator/service/sitemap.rb +33 -0
- data/lib/easy_html_generator/generator/structure.rb +2 -6
- data/lib/easy_html_generator/generator.rb +6 -6
- data/lib/easy_html_generator/project.rb +5 -0
- data/lib/easy_html_generator/project_path_resolver.rb +57 -0
- data/lib/easy_html_generator/rack_dispatcher.rb +1 -1
- data/lib/easy_html_generator/version.rb +4 -0
- data/lib/easy_html_generator/workspace.rb +1 -1
- data/lib/easy_html_generator.rb +19 -18
- data/src/demo/assets/styles/app.css.sass +47 -2
- data/src/demo/lib/helper/projecthelper.rb +3 -0
- data/src/demo/project.yml +142 -0
- data/src/demo/views/index/_bower_and_grunt.haml +7 -0
- data/src/demo/views/index/_dry.haml +16 -0
- data/src/demo/views/index/_haml_sass_coffee.haml +11 -0
- data/src/demo/views/index/_inline_coffee_and_sass.haml +43 -0
- data/src/demo/views/index/_sass_mixins.haml +76 -0
- data/src/demo/views/index.html.haml +13 -1
- data/src/demo/views/layout/_assets.javascripts.haml +7 -0
- data/src/demo/views/layout/_assets.metadata.haml +12 -0
- data/src/demo/views/layout/_assets.stylesheets.haml +9 -0
- data/src/demo/views/layout/_footer.haml +3 -0
- data/src/demo/views/layout/_header.haml +1 -0
- data/src/demo/views/layout.haml +8 -4
- data/src/demo/views/plain.html +1 -0
- data/src/shared/assets/styles/mixins/_bootstrap-fixes.sass +12 -0
- data/src/shared/assets/styles/mixins/_headjs-bootstrap-mediaqueries.sass +30 -0
- data/src/shared/project.yml +56 -35
- data/src/template/project.yml +57 -43
- metadata +75 -7
- data/src/demo/views/index/_lore_ipsum.haml +0 -1
| @@ -0,0 +1,57 @@ | |
| 1 | 
            +
            # encoding: utf-8
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # this class represents a project and handles generators and ressources
         | 
| 4 | 
            +
            class EasyHtmlGenerator::ProjectPathResolver
         | 
| 5 | 
            +
              def initialize(project)
         | 
| 6 | 
            +
                @project = project
         | 
| 7 | 
            +
                @path_prefix_replace_map = {
         | 
| 8 | 
            +
                  'src'            => project.src_path,
         | 
| 9 | 
            +
                  'dist'           => project.dist_path,
         | 
| 10 | 
            +
                  'src.scripts'    => project.src_path_to(:scripts),
         | 
| 11 | 
            +
                  'src.styles'     => project.src_path_to(:styles),
         | 
| 12 | 
            +
                  'src.images'     => project.src_path_to(:images),
         | 
| 13 | 
            +
                  'src.public'     => project.src_path_to(:public),
         | 
| 14 | 
            +
                  'src.views'      => project.src_path_to(:views),
         | 
| 15 | 
            +
                  'dist.scripts'   => project.dist_path_to(:scripts),
         | 
| 16 | 
            +
                  'dist.styles'    => project.dist_path_to(:styles),
         | 
| 17 | 
            +
                  'dist.images'    => project.dist_path_to(:images),
         | 
| 18 | 
            +
                  'dist.public'    => project.dist_path_to(:public),
         | 
| 19 | 
            +
                  'dist.views'     => project.dist_path_to(:views),
         | 
| 20 | 
            +
                  'workspace.root' => EasyHtmlGenerator::WORKSPACE_PATH,
         | 
| 21 | 
            +
                  'ehg.root'       => EasyHtmlGenerator::EHG_SRC_PATH
         | 
| 22 | 
            +
                }
         | 
| 23 | 
            +
              end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              def resolve_config(config)
         | 
| 26 | 
            +
                resolve_hash(config)
         | 
| 27 | 
            +
              end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
              private
         | 
| 30 | 
            +
             | 
| 31 | 
            +
              def resolve_hash(myHash)
         | 
| 32 | 
            +
                myHash.each do |key, value|
         | 
| 33 | 
            +
                  value.is_a?(Hash) ? resolve_hash(value) : (value.is_a?(Array) ? (myHash[key] = resolve_array(value)) : (myHash[key] = resolve_path(value)))
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              def resolve_array(myArray)
         | 
| 38 | 
            +
                myArray.map do |value|
         | 
| 39 | 
            +
                  value.is_a?(Array) ? resolve_array(value) : (value.is_a?(Hash) ? resolve_hash(value) : resolve_path(value))
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
              def resolve_path(path)
         | 
| 44 | 
            +
                return path unless path.is_a? String
         | 
| 45 | 
            +
                return path unless path.include? '://'
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                splitted = path.split('://')
         | 
| 48 | 
            +
                unresolved_prefix = splitted.first
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                path_prefix = @path_prefix_replace_map[unresolved_prefix]
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                return path unless @path_prefix_replace_map.key? unresolved_prefix
         | 
| 53 | 
            +
                return path_prefix if splitted.length == 1
         | 
| 54 | 
            +
             | 
| 55 | 
            +
                File.join(path_prefix, splitted.second)
         | 
| 56 | 
            +
              end
         | 
| 57 | 
            +
            end
         | 
| @@ -11,7 +11,7 @@ class EasyHtmlGenerator::RackDispatcher | |
| 11 11 | 
             
              </style></head>
         | 
| 12 12 | 
             
              <body>
         | 
| 13 13 | 
             
                {CONTENT}
         | 
| 14 | 
            -
                <a target='_blank' href='#{EHG_URL}'> | 
| 14 | 
            +
                <a target='_blank' href='#{EHG_URL}'>ehg on Github</a></body></html>"
         | 
| 15 15 |  | 
| 16 16 | 
             
              def initialize(app)
         | 
| 17 17 | 
             
                @app = app
         | 
| @@ -25,7 +25,7 @@ class EasyHtmlGenerator::Workspace | |
| 25 25 |  | 
| 26 26 | 
             
              def self.create_project(name)
         | 
| 27 27 | 
             
                FileUtils.cp_r(
         | 
| 28 | 
            -
                  File.join(EasyHtmlGenerator:: | 
| 28 | 
            +
                  File.join(EasyHtmlGenerator::EHG_SRC_PATH, 'template'),
         | 
| 29 29 | 
             
                  File.join(EasyHtmlGenerator::SRC_PATH, name))
         | 
| 30 30 | 
             
              end
         | 
| 31 31 |  | 
    
        data/lib/easy_html_generator.rb
    CHANGED
    
    | @@ -1,7 +1,6 @@ | |
| 1 1 | 
             
            # encoding: utf-8
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
            $LOAD_PATH.unshift File.dirname(__FILE__)
         | 
| 3 | 
            +
            require 'easy_html_generator/version'
         | 
| 5 4 |  | 
| 6 5 | 
             
            # just require bootsrap and it will be in the sass path
         | 
| 7 6 | 
             
            require 'bootstrap-sass'
         | 
| @@ -13,14 +12,14 @@ require 'thin' | |
| 13 12 |  | 
| 14 13 | 
             
            # main module loads projects and dispatches rack requests
         | 
| 15 14 | 
             
            module EasyHtmlGenerator
         | 
| 16 | 
            -
               | 
| 15 | 
            +
              EHG_WORKSPACE_PATH =
         | 
| 17 16 | 
             
                File.expand_path File.join(File.dirname(__FILE__), '..')
         | 
| 18 17 |  | 
| 19 | 
            -
               | 
| 20 | 
            -
               | 
| 21 | 
            -
               | 
| 22 | 
            -
               | 
| 23 | 
            -
               | 
| 18 | 
            +
              EHG_SRC_PATH            = File.join(EHG_WORKSPACE_PATH, 'src')
         | 
| 19 | 
            +
              EHG_SHARED_PATH         = File.join(EHG_SRC_PATH, 'shared')
         | 
| 20 | 
            +
              EHG_SHARED_HELPER_PATH  = File.join(EHG_SHARED_PATH, 'lib', 'helper')
         | 
| 21 | 
            +
              EHG_SHARED_GENERATORS_PATH = File.join(EHG_SHARED_PATH, 'lib', 'generators')
         | 
| 22 | 
            +
              EHG_SHARED_STYLES_PATH  = File.join(EHG_SHARED_PATH, 'assets', 'styles')
         | 
| 24 23 |  | 
| 25 24 | 
             
              WORKSPACE_PATH          = Bundler.root
         | 
| 26 25 | 
             
              SRC_PATH                = File.join(WORKSPACE_PATH, 'src')
         | 
| @@ -35,9 +34,9 @@ module EasyHtmlGenerator | |
| 35 34 | 
             
                DIST_PATH
         | 
| 36 35 | 
             
              ]
         | 
| 37 36 |  | 
| 38 | 
            -
              COPY_ON_INIT | 
| 39 | 
            -
                 | 
| 40 | 
            -
                "#{ | 
| 37 | 
            +
              COPY_ON_INIT = {
         | 
| 38 | 
            +
                EHG_SHARED_PATH            => SHARED_PATH,
         | 
| 39 | 
            +
                "#{EHG_SRC_PATH}/template" => "#{SRC_PATH}/demo"
         | 
| 41 40 | 
             
              }
         | 
| 42 41 |  | 
| 43 42 | 
             
              Dir[File.dirname(__FILE__) + '/easy_html_generator/*.rb']
         | 
| @@ -75,7 +74,7 @@ module EasyHtmlGenerator | |
| 75 74 | 
             
              end
         | 
| 76 75 |  | 
| 77 76 | 
             
              def self.generate_all
         | 
| 78 | 
            -
                Workspace.projects.each{| | 
| 77 | 
            +
                Workspace.projects.each { |_name, project| project.generate }
         | 
| 79 78 | 
             
              end
         | 
| 80 79 |  | 
| 81 80 | 
             
              def self.generate_project(project)
         | 
| @@ -85,24 +84,26 @@ module EasyHtmlGenerator | |
| 85 84 | 
             
              def self.rack_app
         | 
| 86 85 | 
             
                Rack::Builder.new do
         | 
| 87 86 | 
             
                  use Rack::ShowExceptions
         | 
| 88 | 
            -
                  use Rack::Reloader, 0
         | 
| 89 87 | 
             
                  use EasyHtmlGenerator::RackDispatcher
         | 
| 90 88 | 
             
                  use Rack::Deflater
         | 
| 91 89 | 
             
                  use Rack::ContentLength
         | 
| 92 90 | 
             
                  use Rack::StaticCache, urls: [''], root: EasyHtmlGenerator::DIST_PATH
         | 
| 93 91 | 
             
                  use Rack::Static,
         | 
| 94 | 
            -
             | 
| 95 | 
            -
             | 
| 96 | 
            -
             | 
| 92 | 
            +
                      urls: [''],
         | 
| 93 | 
            +
                      root: EasyHtmlGenerator::DIST_PATH,
         | 
| 94 | 
            +
                      index: 'index.html'
         | 
| 97 95 |  | 
| 98 | 
            -
                  run  | 
| 96 | 
            +
                  run -> (_env) do
         | 
| 97 | 
            +
                    [404, { 'Content-Type' => 'text/plain' }, ['404 File not found!']]
         | 
| 98 | 
            +
                  end
         | 
| 99 99 | 
             
                end
         | 
| 100 100 | 
             
              end
         | 
| 101 101 |  | 
| 102 102 | 
             
              def self.start_server(host, port)
         | 
| 103 103 | 
             
                config = { Host: host,
         | 
| 104 | 
            -
                           Port: port}
         | 
| 104 | 
            +
                           Port: port }
         | 
| 105 105 |  | 
| 106 | 
            +
                Thin::Logging.debug = true
         | 
| 106 107 | 
             
                Rack::Handler.get('thin').run(rack_app, config)
         | 
| 107 108 | 
             
              end
         | 
| 108 109 | 
             
            end
         | 
| @@ -1,2 +1,47 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 1 | 
            +
            @import "bootstrap/variables"
         | 
| 2 | 
            +
            @import "bootstrap/mixins"
         | 
| 3 | 
            +
            @import "mixins/css3"
         | 
| 4 | 
            +
            @import "mixins/helper"
         | 
| 5 | 
            +
            @import "mixins/normalize"
         | 
| 6 | 
            +
            @import "mixins/buttons"
         | 
| 7 | 
            +
            @import "mixins/arrows"
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            *
         | 
| 10 | 
            +
              font-family: 'Open SANS',sans-serif
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            +headlines
         | 
| 13 | 
            +
              +text-shadow(1px, 1px, 3px, #555)
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            h1
         | 
| 16 | 
            +
              font-size: 42px
         | 
| 17 | 
            +
              +bold
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            img
         | 
| 20 | 
            +
              +transition(all, .3s, ease-in-out)
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            .semibold
         | 
| 23 | 
            +
              font-weight: 600
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            .content-left, .content-right
         | 
| 26 | 
            +
              +make-xs-column(12)
         | 
| 27 | 
            +
              +make-sm-column(6)
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            .button.magenta
         | 
| 30 | 
            +
              +make-magenta-button()
         | 
| 31 | 
            +
              +zoom-on-hover
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            .button.green
         | 
| 34 | 
            +
              +make-green-button()
         | 
| 35 | 
            +
              +zoom-on-hover
         | 
| 36 | 
            +
             | 
| 37 | 
            +
            .arrow-up
         | 
| 38 | 
            +
              +arrow-up(60px, 20px, #62bc19)
         | 
| 39 | 
            +
              +inline-block
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            .arrow-down
         | 
| 42 | 
            +
              +arrow-down(40px, 40px, #c83c29)
         | 
| 43 | 
            +
              +inline-block
         | 
| 44 | 
            +
             | 
| 45 | 
            +
            .section
         | 
| 46 | 
            +
              padding: 30px 0
         | 
| 47 | 
            +
              +make-row
         | 
| @@ -2,4 +2,7 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            # this helper will be loaded into the haml render context for this project
         | 
| 4 4 | 
             
            module Projecthelper
         | 
| 5 | 
            +
              def action_view_link
         | 
| 6 | 
            +
                link_to 'action_view', 'http://guides.rubyonrails.org/action_view_overview.html#overview-of-helpers-provided-by-action-view', target: 'blank'
         | 
| 7 | 
            +
              end
         | 
| 5 8 | 
             
            end
         | 
| @@ -0,0 +1,142 @@ | |
| 1 | 
            +
            generate_on_request_path_match:
         | 
| 2 | 
            +
              - '.*html$'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            paths:
         | 
| 5 | 
            +
              src:
         | 
| 6 | 
            +
                images:     'assets/images'
         | 
| 7 | 
            +
                scripts:    'assets/scripts'
         | 
| 8 | 
            +
                styles:     'assets/styles'
         | 
| 9 | 
            +
                public:     'assets/public'
         | 
| 10 | 
            +
                helper:     'lib/helper'
         | 
| 11 | 
            +
                generators:  'lib/generators'
         | 
| 12 | 
            +
                views:      'views'
         | 
| 13 | 
            +
              dist:
         | 
| 14 | 
            +
                public:     ''
         | 
| 15 | 
            +
                views:      ''
         | 
| 16 | 
            +
                images:     'images'
         | 
| 17 | 
            +
                scripts:    'scripts'
         | 
| 18 | 
            +
                styles:     'styles'
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            generators:
         | 
| 21 | 
            +
              - delete:
         | 
| 22 | 
            +
                  enabled: false
         | 
| 23 | 
            +
                  source: 'dist://**/*'
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              - structure:
         | 
| 26 | 
            +
                  enabled: true
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              - service_bower:
         | 
| 29 | 
            +
                  enabled: true
         | 
| 30 | 
            +
                  source: 'src://'
         | 
| 31 | 
            +
                  target: 'dist://lib'
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              - compile_coffee:
         | 
| 34 | 
            +
                  enabled: true
         | 
| 35 | 
            +
                  minimize: true
         | 
| 36 | 
            +
                  source: 'src.scripts://'
         | 
| 37 | 
            +
                  target: 'dist.scripts://'
         | 
| 38 | 
            +
                  selector: '**/*.js.coffee'
         | 
| 39 | 
            +
             | 
| 40 | 
            +
              - compile_sass:
         | 
| 41 | 
            +
                  enabled: true
         | 
| 42 | 
            +
                  minimize: true
         | 
| 43 | 
            +
                  source: 'src.styles://'
         | 
| 44 | 
            +
                  target: 'dist.styles://'
         | 
| 45 | 
            +
                  selector: '**/*.css.sass'
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              - copy:
         | 
| 48 | 
            +
                  enabled: true
         | 
| 49 | 
            +
                  repetitive:
         | 
| 50 | 
            +
                    -
         | 
| 51 | 
            +
                      source: 'src.styles://'
         | 
| 52 | 
            +
                      target: 'dist.styles://'
         | 
| 53 | 
            +
                      selector: '**/*.css'
         | 
| 54 | 
            +
                    -
         | 
| 55 | 
            +
                      source: 'src.scripts://'
         | 
| 56 | 
            +
                      target: 'dist.scripts://'
         | 
| 57 | 
            +
                    -
         | 
| 58 | 
            +
                      source: 'src.images://'
         | 
| 59 | 
            +
                      target: 'dist.images://'
         | 
| 60 | 
            +
                    -
         | 
| 61 | 
            +
                      source: 'src.public://'
         | 
| 62 | 
            +
                      target: 'dist.public://'
         | 
| 63 | 
            +
             | 
| 64 | 
            +
              - compile_haml:
         | 
| 65 | 
            +
                  enabled: true
         | 
| 66 | 
            +
                  minimize: true
         | 
| 67 | 
            +
                  source: 'src.views://'
         | 
| 68 | 
            +
                  target: 'dist.views://'
         | 
| 69 | 
            +
                  selector: '**/*.html.haml'
         | 
| 70 | 
            +
                  default_layout: 'views/layout.haml'
         | 
| 71 | 
            +
                  renderer:
         | 
| 72 | 
            +
                    attr_wrapper: '"'
         | 
| 73 | 
            +
                    format: :html5
         | 
| 74 | 
            +
                    shared_helper_path: 'shared/lib'
         | 
| 75 | 
            +
             | 
| 76 | 
            +
              - service_analytics:
         | 
| 77 | 
            +
                  enabled: false
         | 
| 78 | 
            +
                  source: 'dist.views://'
         | 
| 79 | 
            +
                  target: 'dist.views://'
         | 
| 80 | 
            +
                  selector: '**/*.html'
         | 
| 81 | 
            +
                  repetitive:
         | 
| 82 | 
            +
                    -
         | 
| 83 | 
            +
                      enabled: true
         | 
| 84 | 
            +
                      name: 'google'
         | 
| 85 | 
            +
                      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>"
         | 
| 86 | 
            +
                      params:
         | 
| 87 | 
            +
                        GOOGLE_UA_ID: google_id
         | 
| 88 | 
            +
             | 
| 89 | 
            +
              - minimize_js:
         | 
| 90 | 
            +
                  enabled: true
         | 
| 91 | 
            +
                  source: 'src.scripts://'
         | 
| 92 | 
            +
                  target: 'dist.scripts://'
         | 
| 93 | 
            +
                  selector: '**/*.js'
         | 
| 94 | 
            +
                  prefix_extension: '.min'
         | 
| 95 | 
            +
             | 
| 96 | 
            +
              - minimize_css:
         | 
| 97 | 
            +
                  enabled: true
         | 
| 98 | 
            +
                  source: 'src.styles://'
         | 
| 99 | 
            +
                  target: 'dist.styles://'
         | 
| 100 | 
            +
                  selector: '**/*.css'
         | 
| 101 | 
            +
                  prefix_extension: '.min'
         | 
| 102 | 
            +
             | 
| 103 | 
            +
              - minimize_html:
         | 
| 104 | 
            +
                  enabled: true
         | 
| 105 | 
            +
                  source: 'src.public://'
         | 
| 106 | 
            +
                  target: 'dist.public://'
         | 
| 107 | 
            +
                  selector: '**/*.html'
         | 
| 108 | 
            +
                  prefix_extension: ''
         | 
| 109 | 
            +
             | 
| 110 | 
            +
              - minimize_images:
         | 
| 111 | 
            +
                  enabled: false
         | 
| 112 | 
            +
                  source: 'src.images://'
         | 
| 113 | 
            +
                  target: 'dist.images://'
         | 
| 114 | 
            +
                  selector: '**/*.{jpg,jpeg,png}'
         | 
| 115 | 
            +
                  options:
         | 
| 116 | 
            +
                    quality: 90
         | 
| 117 | 
            +
                    level: 3
         | 
| 118 | 
            +
                    verbose: true
         | 
| 119 | 
            +
             | 
| 120 | 
            +
              - combine:
         | 
| 121 | 
            +
                  enabled: false
         | 
| 122 | 
            +
                  repetitive:
         | 
| 123 | 
            +
                    -
         | 
| 124 | 
            +
                      target: 'dist.scripts://combined.js'
         | 
| 125 | 
            +
                      sources:
         | 
| 126 | 
            +
                        - 'dist.scripts://**/*.js'
         | 
| 127 | 
            +
                    -
         | 
| 128 | 
            +
                      target: 'dist.styles://combined.css'
         | 
| 129 | 
            +
                      sources:
         | 
| 130 | 
            +
                        - 'dist.styles://**/*.css'
         | 
| 131 | 
            +
             | 
| 132 | 
            +
              - service_grunt:
         | 
| 133 | 
            +
                  enabled: true
         | 
| 134 | 
            +
                  source: 'src://Gruntfile.coffee'
         | 
| 135 | 
            +
                  task: 'default'
         | 
| 136 | 
            +
             | 
| 137 | 
            +
              - service_sitemap:
         | 
| 138 | 
            +
                  enabled: false
         | 
| 139 | 
            +
                  domain: www.demo.com
         | 
| 140 | 
            +
                  source: 'dist.views:'
         | 
| 141 | 
            +
                  target: 'dist.views://sitemap.xml'
         | 
| 142 | 
            +
                  selector: '**/*.html'
         | 
| @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            %h2.semibold
         | 
| 2 | 
            +
              use bower and grunt in your projects
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            %p
         | 
| 5 | 
            +
              just put a bower.json or a Gruntfile into your source folder and configure the generators in your project.yml. don't forget to install bower 'npm install -g bower\'
         | 
| 6 | 
            +
              = link_to 'http://bower.io/', 'http://bower.io/', target: 'blank'
         | 
| 7 | 
            +
              = link_to 'http://gruntjs.com/', 'http://gruntjs.com/', target: 'blank'
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            %h2.semibold
         | 
| 2 | 
            +
              Dont`t repeat your self!
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            %p
         | 
| 5 | 
            +
              Layouts, templates, partials, helpers and static assets. There are shared helper for haml, sass and coffee. You can extend these helpers. You can add per project helpers and generators or per workspace.
         | 
| 6 | 
            +
            %p
         | 
| 7 | 
            +
              So Dont Repeat Your self! There are tons of features allready implemented and there will be more!
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              = link_to 'Follow on github', 'https://github.com/creative-workflow/easy-html-generator', target: '_blank'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              The copyright for ex.
         | 
| 12 | 
            +
              %br
         | 
| 13 | 
            +
              %code
         | 
| 14 | 
            +
                \= copyright 'ehg'
         | 
| 15 | 
            +
              %br
         | 
| 16 | 
            +
              = copyright 'ehg'
         | 
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            %h2.semibold
         | 
| 2 | 
            +
              sass, haml, coffee
         | 
| 3 | 
            +
            %p
         | 
| 4 | 
            +
              We use sass, haml and coffe script. We also include
         | 
| 5 | 
            +
              = action_view_link
         | 
| 6 | 
            +
              for easier displaying images for ex.
         | 
| 7 | 
            +
              %br
         | 
| 8 | 
            +
              %code
         | 
| 9 | 
            +
                \= image_tag('demo.png', class: 'img-thumbnail', style: 'height: 50px; width: auto')
         | 
| 10 | 
            +
              %br
         | 
| 11 | 
            +
              = image_tag('demo.png', class: 'img-thumbnail', style: 'height: 50px; width: auto')
         | 
| @@ -0,0 +1,43 @@ | |
| 1 | 
            +
            %h2.semibold
         | 
| 2 | 
            +
              inline coffee and sass, with minimization support
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            .content-left
         | 
| 5 | 
            +
              %h3
         | 
| 6 | 
            +
                inline sass
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              %p.inline-sass
         | 
| 9 | 
            +
                text styled from inline sass
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              = with_sass do
         | 
| 12 | 
            +
                :plain
         | 
| 13 | 
            +
                  p.inline-sass
         | 
| 14 | 
            +
                    color: green
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              %pre.code
         | 
| 17 | 
            +
                = preserve do
         | 
| 18 | 
            +
                  :escaped
         | 
| 19 | 
            +
                    = with_sass do
         | 
| 20 | 
            +
                      :plain
         | 
| 21 | 
            +
                        p.inline-sass
         | 
| 22 | 
            +
                          color: green
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            .content-right
         | 
| 25 | 
            +
              %h3
         | 
| 26 | 
            +
                inline coffee
         | 
| 27 | 
            +
             | 
| 28 | 
            +
              %p
         | 
| 29 | 
            +
                %button.inline-coffee
         | 
| 30 | 
            +
                  click me
         | 
| 31 | 
            +
             | 
| 32 | 
            +
              = with_coffee do
         | 
| 33 | 
            +
                :plain
         | 
| 34 | 
            +
                  $('.inline-coffee').click ->
         | 
| 35 | 
            +
                    alert 'button clicked'
         | 
| 36 | 
            +
             | 
| 37 | 
            +
              %pre.code
         | 
| 38 | 
            +
                = preserve do
         | 
| 39 | 
            +
                  :escaped
         | 
| 40 | 
            +
                    = with_coffee do
         | 
| 41 | 
            +
                      :plain
         | 
| 42 | 
            +
                        $('.inline-coffee').click ->
         | 
| 43 | 
            +
                          alert 'button clicked'
         | 
| @@ -0,0 +1,76 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            %h2.semibold
         | 
| 3 | 
            +
              For sass we offer mixins for ...
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            .content-left
         | 
| 6 | 
            +
              %h3
         | 
| 7 | 
            +
                bootsrap, reset, normalize and headjs
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              %pre.code
         | 
| 10 | 
            +
                = preserve do
         | 
| 11 | 
            +
                  :escaped
         | 
| 12 | 
            +
                    @import "bootstrap/variables"
         | 
| 13 | 
            +
                    @import "bootstrap/mixins"
         | 
| 14 | 
            +
                    @import "mixins/normalize"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    *
         | 
| 17 | 
            +
                      font-family: 'Open SANS',sans-serif
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                    .content-left, .content-right
         | 
| 20 | 
            +
                      +make-xs-column(12)
         | 
| 21 | 
            +
                      +make-sm-column(6)
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            .content-right
         | 
| 24 | 
            +
              %h3
         | 
| 25 | 
            +
                css3 and helper mixins
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              %pre.code
         | 
| 28 | 
            +
                = preserve do
         | 
| 29 | 
            +
                  :escaped
         | 
| 30 | 
            +
                    @import "mixins/css3"
         | 
| 31 | 
            +
                    @import "mixins/helper"
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                    +headlines
         | 
| 34 | 
            +
                      +text-shadow(1px, 1px, 3px, #555)
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                    h1
         | 
| 37 | 
            +
                      +bold
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                    img
         | 
| 40 | 
            +
                      +transition(all, .3s, ease-in-out)
         | 
| 41 | 
            +
             | 
| 42 | 
            +
            .content-left
         | 
| 43 | 
            +
              %h3
         | 
| 44 | 
            +
                buttons
         | 
| 45 | 
            +
             | 
| 46 | 
            +
              %p
         | 
| 47 | 
            +
                .button.green
         | 
| 48 | 
            +
                  green button
         | 
| 49 | 
            +
                .button.magenta
         | 
| 50 | 
            +
                  magenta button
         | 
| 51 | 
            +
             | 
| 52 | 
            +
              %pre.code
         | 
| 53 | 
            +
                = preserve do
         | 
| 54 | 
            +
                  :escaped
         | 
| 55 | 
            +
                    @import "mixins/buttons"
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                    .button.magenta
         | 
| 58 | 
            +
                      +make-magenta-button()
         | 
| 59 | 
            +
                      +zoom-on-hover
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            .content-right
         | 
| 62 | 
            +
              %h3
         | 
| 63 | 
            +
                arrows
         | 
| 64 | 
            +
             | 
| 65 | 
            +
              %p
         | 
| 66 | 
            +
                .arrow-up
         | 
| 67 | 
            +
                .arrow-down
         | 
| 68 | 
            +
             | 
| 69 | 
            +
              %pre.code
         | 
| 70 | 
            +
                = preserve do
         | 
| 71 | 
            +
                  :escaped
         | 
| 72 | 
            +
                    @import "mixins/arrows"
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                    .arrow-up
         | 
| 75 | 
            +
                      +arrow-up(60px, 20px, #62bc19)
         | 
| 76 | 
            +
                      +inline-block
         | 
| @@ -1 +1,13 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
             | 
| 2 | 
            +
            %h1
         | 
| 3 | 
            +
              easy-html-generator - It speeds up your web developement ...easy! =)
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            - partials= ['_dry',
         | 
| 6 | 
            +
                         '_haml_sass_coffee',             
         | 
| 7 | 
            +
                         '_sass_mixins',
         | 
| 8 | 
            +
                         '_inline_coffee_and_sass',
         | 
| 9 | 
            +
                         '_bower_and_grunt']
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            - partials.each do |partial|
         | 
| 12 | 
            +
              .section
         | 
| 13 | 
            +
                = render_partial "index/#{partial}"
         | 
| @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            = javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js'
         | 
| 2 | 
            +
            = javascript_include_tag 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js'
         | 
| 3 | 
            +
            /[if lt IE 9]
         | 
| 4 | 
            +
              = javascript_include_tag 'https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js'
         | 
| 5 | 
            +
              = javascript_include_tag 'https://oss.maxcdn.com/respond/1.4.2/respond.min.js'
         | 
| 6 | 
            +
              %script
         | 
| 7 | 
            +
                var ltie9 = true
         | 
| @@ -0,0 +1,12 @@ | |
| 1 | 
            +
            %title
         | 
| 2 | 
            +
              easy-html-generator #demo
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            = meta_tag_http 'Content-Type',    'text/html; charset=utf-8'
         | 
| 5 | 
            +
            = meta_tag_http 'X-UA-Compatible', 'IE=edge'
         | 
| 6 | 
            +
            = meta_tag 'robots',               'noindex,follow,noodp,noydir'
         | 
| 7 | 
            +
            = meta_tag 'description',          ''
         | 
| 8 | 
            +
            = meta_tag 'keywords',             ''
         | 
| 9 | 
            +
            = meta_tag 'viewport',             'width=device-width, initial-scale=1.0'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            = link_tag 'favicon.ico', 'icon', 'image/x-icon'
         | 
| 12 | 
            +
            = link_tag 'favicon.ico', 'shortcut icon', 'image/x-icon'
         | 
| @@ -0,0 +1,9 @@ | |
| 1 | 
            +
             | 
| 2 | 
            +
            = stylesheet_link_tag 'http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 5 | 
            +
            = stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:400'
         | 
| 6 | 
            +
            = stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:400italic'
         | 
| 7 | 
            +
            = stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:600'
         | 
| 8 | 
            +
            = stylesheet_link_tag 'http://fonts.googleapis.com/css?family=Open+Sans:700'
         | 
| 9 | 
            +
            = inline_stylesheet_link_tag 'app.css'
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
             | 
    
        data/src/demo/views/layout.haml
    CHANGED
    
    | @@ -1,8 +1,12 @@ | |
| 1 1 | 
             
            !!!
         | 
| 2 2 | 
             
            %html{lang: 'de'}
         | 
| 3 3 | 
             
              %head
         | 
| 4 | 
            +
                = render_partial 'layout/_assets.metadata'
         | 
| 5 | 
            +
                = render_partial 'layout/_assets.stylesheets'
         | 
| 6 | 
            +
                = render_partial 'layout/_assets.javascripts'
         | 
| 4 7 |  | 
| 5 | 
            -
              %body{class:  | 
| 6 | 
            -
                =  | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 8 | 
            +
              %body{class: body_class}
         | 
| 9 | 
            +
                = render_partial 'layout/_header'
         | 
| 10 | 
            +
                .container
         | 
| 11 | 
            +
                  = yield
         | 
| 12 | 
            +
                = render_partial 'layout/_footer'
         | 
    
        data/src/demo/views/plain.html
    CHANGED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            this is a plain html demo file ...it works ...but please use haml and the full pwer of ehg ;)
         | 
| @@ -10,3 +10,15 @@ $grid-gutter-width: 0 | |
| 10 10 | 
             
            .form-horizontal .form-group
         | 
| 11 11 | 
             
              margin-left: 0
         | 
| 12 12 | 
             
              margin-right: 0
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            .navbar-default
         | 
| 15 | 
            +
              background: transparent
         | 
| 16 | 
            +
              border: none
         | 
| 17 | 
            +
              border-radius: 0
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            .navbar-collapse
         | 
| 20 | 
            +
              padding: 0
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            .container-fluid
         | 
| 23 | 
            +
              margin: 0
         | 
| 24 | 
            +
              padding: 0
         | 
| @@ -40,3 +40,33 @@ | |
| 40 40 | 
             
            @mixin min-width-lg
         | 
| 41 41 | 
             
              html.gte-1200 &
         | 
| 42 42 | 
             
                @content
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            // hide element in specific viewport range
         | 
| 45 | 
            +
            @mixin hide-xs
         | 
| 46 | 
            +
              html.lt-768 &
         | 
| 47 | 
            +
                display: none
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            @mixin hide-sm
         | 
| 50 | 
            +
              html.gte-768.lt-992 &
         | 
| 51 | 
            +
                display: none
         | 
| 52 | 
            +
             | 
| 53 | 
            +
            @mixin hide-md
         | 
| 54 | 
            +
              html.gte-992.lt-1200 &
         | 
| 55 | 
            +
                display: none
         | 
| 56 | 
            +
             | 
| 57 | 
            +
            @mixin hide-lg
         | 
| 58 | 
            +
              html.gte-1200 &
         | 
| 59 | 
            +
                display: none
         | 
| 60 | 
            +
             | 
| 61 | 
            +
            // classes for hiding elements
         | 
| 62 | 
            +
            .hidden-xs
         | 
| 63 | 
            +
              +hide-xs
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            .hidden-sm
         | 
| 66 | 
            +
              +hide-sm
         | 
| 67 | 
            +
             | 
| 68 | 
            +
            .hidden-md
         | 
| 69 | 
            +
              +hide-md
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            .hidden-lg
         | 
| 72 | 
            +
              +hide-lg
         |