slight-lang 1.0.5 → 1.1.0
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/README.md +69 -132
- data/lib/slight.rb +3 -2
- data/slight.gemspec +1 -1
- metadata +3 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: a2fb6397892fd342cc22a6e31478efbbc6ca5744
         | 
| 4 | 
            +
              data.tar.gz: ec9f31523e9a92a671bdfb19b2ce05c943516855
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e6928741a6d117a8d18cb48d8f94df7965edcf286147d9dc35b8d4adebf8e9d742125d4da0d0e93c48d94391becc0c66ecb9a9890429428eb977570e0826542b
         | 
| 7 | 
            +
              data.tar.gz: '089f7d90260ad1b5c6712903621af6bba9fd48479b18f91dc73c4fab26be66cef920f6ec3854511e54eccdeb992b1ff949732fb378ad7098223069d52494ad98'
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,12 +1,10 @@ | |
| 1 1 | 
             
            # Slight-lang
         | 
| 2 2 | 
             
            A light and sweet template language.
         | 
| 3 3 |  | 
| 4 | 
            -
             | 
| 5 | 
            -
            Slight is a very simple and easy to use template language.
         | 
| 6 | 
            -
            Advantage of Slight:
         | 
| 4 | 
            +
            with:
         | 
| 7 5 | 
             
            - Pure Ruby syntax
         | 
| 8 6 | 
             
            - Html friendly
         | 
| 9 | 
            -
            -  | 
| 7 | 
            +
            - 0 learning cost
         | 
| 10 8 |  | 
| 11 9 | 
             
            ## Quick Start
         | 
| 12 10 | 
             
            #### [Installation]
         | 
| @@ -14,33 +12,33 @@ Advantage of Slight: | |
| 14 12 | 
             
            gem install slight-lang
         | 
| 15 13 |  | 
| 16 14 | 
             
            # you can also build gem from gemspec
         | 
| 17 | 
            -
            gem build slight.gemspec
         | 
| 18 | 
            -
            gem install ./slight-lang-1.0. | 
| 15 | 
            +
            # gem build slight.gemspec
         | 
| 16 | 
            +
            # gem install ./slight-lang-1.0.5.gem
         | 
| 19 17 | 
             
            ```
         | 
| 20 18 |  | 
| 21 | 
            -
            #### [ | 
| 22 | 
            -
            ######  | 
| 19 | 
            +
            #### [Usage]
         | 
| 20 | 
            +
            ###### - Command
         | 
| 23 21 | 
             
            ```bash
         | 
| 24 | 
            -
            slight [-v] <source> [<output>]
         | 
| 22 | 
            +
            root@ubuntu: slight [-v] <source> [<output>]
         | 
| 25 23 |  | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
            => index.htm
         | 
| 29 | 
            -
             | 
| 30 | 
            -
            slight index.slight
         | 
| 31 | 
            -
            => <tag>abcde</tag>
         | 
| 32 | 
            -
             | 
| 33 | 
            -
            slight -v
         | 
| 34 | 
            -
            => v 1.0.1
         | 
| 24 | 
            +
            # slight index.slight index.htm
         | 
| 25 | 
            +
            # => index.htm
         | 
| 35 26 | 
             
            ```
         | 
| 36 27 |  | 
| 37 | 
            -
            ###### REPL
         | 
| 38 | 
            -
            ```
         | 
| 39 | 
            -
            slsh
         | 
| 28 | 
            +
            ###### - REPL
         | 
| 29 | 
            +
            ```bash
         | 
| 30 | 
            +
            root@ubuntu: slsh
         | 
| 40 31 | 
             
            ```
         | 
| 41 | 
            -
            - build-in commands
         | 
| 42 | 
            -
             | 
| 43 32 | 
             
            ```ruby
         | 
| 33 | 
            +
            sl:> button 'btn btn-success btn-lg', name:'btn_submit', type:'submit' do
         | 
| 34 | 
            +
            sl:>    "Submit"
         | 
| 35 | 
            +
            sl:> end
         | 
| 36 | 
            +
            sl:> ;   (Enter ';' to run the script)
         | 
| 37 | 
            +
             | 
| 38 | 
            +
            # compile from file
         | 
| 39 | 
            +
            sl:> @../../example/component.slight.rb
         | 
| 40 | 
            +
            LOAD PATH="../../example/component.slight.rb"
         | 
| 41 | 
            +
             | 
| 44 42 | 
             
            # help
         | 
| 45 43 | 
             
            sl:> \h
         | 
| 46 44 | 
             
             @file    => load and compile file dynamically. E.g. @/tmp/page.slight
         | 
| @@ -48,124 +46,67 @@ sl:> \h | |
| 48 46 | 
             
             \eg      => example
         | 
| 49 47 | 
             
             \q       => exit
         | 
| 50 48 | 
             
             \v       => show version (also: \ver, \version)
         | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
            # exit
         | 
| 54 | 
            -
            sl:> \q  (ctrl + c)
         | 
| 55 | 
            -
            *** Exit now ***
         | 
| 56 | 
            -
            --bye--
         | 
| 57 | 
            -
             | 
| 58 | 
            -
             | 
| 59 | 
            -
            # show example
         | 
| 60 | 
            -
            sl:> \eg
         | 
| 61 | 
            -
                button "btn btn-primary" do
         | 
| 62 | 
            -
                  "Click me"
         | 
| 63 | 
            -
                end
         | 
| 64 | 
            -
            =>
         | 
| 65 | 
            -
                <button class="btn btn-primary">Click me</button>
         | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
            # compile slight file
         | 
| 69 | 
            -
            sl:> @../../example/component.slight.rb
         | 
| 70 | 
            -
            LOAD PATH="../../example/component.slight.rb"
         | 
| 71 | 
            -
            <button class="btn btn-success btn-lg">
         | 
| 72 | 
            -
            submit</button>
         | 
| 73 | 
            -
             | 
| 74 | 
            -
             | 
| 75 | 
            -
            # redirect output to file
         | 
| 76 | 
            -
            sl:> >@output.htm  (>@off to turn off)
         | 
| 77 | 
            -
            spool turned on
         | 
| 78 | 
            -
            OUTPUT PATH="output.htm"
         | 
| 79 | 
            -
            ```
         | 
| 80 | 
            -
            - Run Slight in REPL
         | 
| 81 | 
            -
             | 
| 82 | 
            -
            ```ruby
         | 
| 83 | 
            -
            sl:> button 'btn btn-success btn-lg', name:'btn_submit', type:'submit' do
         | 
| 84 | 
            -
            sl:>    "Submit"
         | 
| 85 | 
            -
            sl:> end
         | 
| 86 | 
            -
            sl:> ;   (Enter ';' to run the script)
         | 
| 87 | 
            -
             | 
| 88 | 
            -
            <button class="btn btn-success btn-lg" name="btn_submit" type="submit">
         | 
| 89 | 
            -
            Submit</button>
         | 
| 90 49 | 
             
            ```
         | 
| 91 50 |  | 
| 92 51 | 
             
            #### [Syntax]
         | 
| 93 52 |  | 
| 94 | 
            -
            - Pure Ruby Syntax
         | 
| 53 | 
            +
            ###### - Pure Ruby Syntax
         | 
| 95 54 |  | 
| 96 55 | 
             
            ```ruby
         | 
| 97 56 | 
             
            tag_name "class", [attributes: id, name, style, etc.] do; <content>; end
         | 
| 98 57 |  | 
| 99 | 
            -
             | 
| 58 | 
            +
            # example
         | 
| 100 59 | 
             
            div "panel panel-lg", css: "border: 5 dotted green", id: "msgbox" do
         | 
| 101 60 | 
             
              button "btn btn-primary" do
         | 
| 102 61 | 
             
                "Ok"
         | 
| 103 62 | 
             
              end
         | 
| 104 | 
            -
              button "btn btn-default" do
         | 
| 105 | 
            -
                "Cancel"
         | 
| 106 | 
            -
              end
         | 
| 107 63 | 
             
            end
         | 
| 108 | 
            -
             | 
| 109 | 
            -
            (of course {} syntax is also spported)
         | 
| 110 64 | 
             
            ```
         | 
| 111 | 
            -
            -  | 
| 65 | 
            +
            ###### - HTML attributes and tags are naturally supported
         | 
| 112 66 |  | 
| 113 | 
            -
            -  | 
| 67 | 
            +
            ###### - Support Shortcuts for HTML tags and attributes(can be customized)
         | 
| 114 68 |  | 
| 115 | 
            -
             | 
| 116 | 
            -
            [attribute]
         | 
| 117 | 
            -
              css   => "style"
         | 
| 118 | 
            -
              ln    => "href"
         | 
| 119 | 
            -
              url   => "href"
         | 
| 120 | 
            -
              char  => "charset"
         | 
| 121 | 
            -
              fn    => "src"
         | 
| 122 | 
            -
              lang  => "language"
         | 
| 123 | 
            -
              xn    => "xmlns"
         | 
| 124 | 
            -
              mf    => "manifest"
         | 
| 125 | 
            -
             | 
| 126 | 
            -
            e.g.
         | 
| 127 | 
            -
             | 
| 128 | 
            -
              div css:'border: 10 solid blue' do; "hello"; end
         | 
| 129 | 
            -
            =>
         | 
| 130 | 
            -
              <div style="border: 10 solid blue">
         | 
| 131 | 
            -
                Hello
         | 
| 132 | 
            -
              <div>
         | 
| 69 | 
            +
            - Attribute Shortcuts
         | 
| 133 70 |  | 
| 134 | 
            -
             | 
| 135 | 
            -
             | 
| 136 | 
            -
             | 
| 137 | 
            -
             | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 71 | 
            +
            | shortcut | attribute | shortcut | attribute |
         | 
| 72 | 
            +
            |-------|--------------| -------|--------------|
         | 
| 73 | 
            +
            | :css | style | :fn | src |
         | 
| 74 | 
            +
            | :ln | href | :lang | language |
         | 
| 75 | 
            +
            | :url | href | :xn | xmlns |
         | 
| 76 | 
            +
            | :char | charset | :mf | manifest |
         | 
| 140 77 |  | 
| 141 | 
            -
             | 
| 78 | 
            +
            ```ruby  
         | 
| 79 | 
            +
            # example
         | 
| 80 | 
            +
              div css:'border: 10 solid blue' do; "hello"; end
         | 
| 81 | 
            +
            # <div style="border: 10 solid blue">
         | 
| 82 | 
            +
            #   Hello
         | 
| 83 | 
            +
            # <div>
         | 
| 84 | 
            +
            ```
         | 
| 142 85 |  | 
| 143 | 
            -
             | 
| 144 | 
            -
            =>
         | 
| 145 | 
            -
              <div>hello</div>
         | 
| 86 | 
            +
            - Html Tag Shortcuts
         | 
| 146 87 |  | 
| 88 | 
            +
            | shortcut | attribute |
         | 
| 89 | 
            +
            |-------|--------------|
         | 
| 90 | 
            +
            | _ | <div>$content</div> |
         | 
| 91 | 
            +
            | js | <script language='javscript'>$content</script> |
         | 
| 92 | 
            +
            | use | <script type='text/javascript' src='$content'></script> |
         | 
| 93 | 
            +
            | use | <link rel='stylesheet' href='$content'></link> |
         | 
| 147 94 |  | 
| 95 | 
            +
            ```ruby
         | 
| 96 | 
            +
            # example
         | 
| 148 97 | 
             
              js %{
         | 
| 149 98 | 
             
                console.log("hello slight");
         | 
| 150 99 | 
             
              }
         | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
              </script>
         | 
| 155 | 
            -
             | 
| 100 | 
            +
            # <script language="javascript">
         | 
| 101 | 
            +
            #   console.log("hello slight");
         | 
| 102 | 
            +
            # </script>
         | 
| 156 103 |  | 
| 157 104 | 
             
              use 'resource/bootstrap.js'
         | 
| 158 | 
            -
             | 
| 159 | 
            -
              <script type='text/javascript' src='resource/bootstrap.js'></script>
         | 
| 160 | 
            -
             | 
| 161 | 
            -
             | 
| 162 | 
            -
              use 'resource/bootstrap.css'
         | 
| 163 | 
            -
            =>
         | 
| 164 | 
            -
              <link rel='stylesheet' href='resource/bootstrap.css'></link>
         | 
| 105 | 
            +
            # <script type='text/javascript' src='resource/bootstrap.js'></script>
         | 
| 165 106 | 
             
            ```
         | 
| 166 107 |  | 
| 167 | 
            -
            #### [ | 
| 168 | 
            -
            -  | 
| 108 | 
            +
            #### [Customization]
         | 
| 109 | 
            +
            ###### - Usage (more details please refer to example)
         | 
| 169 110 |  | 
| 170 111 | 
             
            ```ruby
         | 
| 171 112 | 
             
            conf = Slight::Configuration.new do |c|
         | 
| @@ -176,29 +117,25 @@ end | |
| 176 117 | 
             
            custom_engine = Slight::Engine.new(conf)
         | 
| 177 118 | 
             
            ```
         | 
| 178 119 |  | 
| 179 | 
            -
            -  | 
| 120 | 
            +
            ###### - Configuration Options
         | 
| 180 121 |  | 
| 181 122 | 
             
            ```ruby
         | 
| 182 | 
            -
             | 
| 183 | 
            -
             | 
| 184 | 
            -
             | 
| 185 | 
            -
             | 
| 186 | 
            -
             | 
| 187 | 
            -
             | 
| 188 | 
            -
             | 
| 189 | 
            -
             | 
| 190 | 
            -
             | 
| 191 | 
            -
             | 
| 192 | 
            -
             | 
| 193 | 
            -
              # Before-Filters accept original source pass the output to Slight compiler.
         | 
| 194 | 
            -
              # After-Filters accept output from Slight compiler pass the output to end user.
         | 
| 195 | 
            -
              c.use     FilterA, :before
         | 
| 196 | 
            -
              c.use     FilterB, :after
         | 
| 197 | 
            -
            end
         | 
| 123 | 
            +
            shortcut :A, :endpoint, "href"  #add an attribute shortcut
         | 
| 124 | 
            +
            shortcut :T, "box", "div"       #add a tag shortcut
         | 
| 125 | 
            +
            # set output IO
         | 
| 126 | 
            +
            setIO        STDOUT
         | 
| 127 | 
            +
            # undef ruby methods in slight context
         | 
| 128 | 
            +
            blinding     :p, :select, :puts, :send, :class
         | 
| 129 | 
            +
            # use Filter
         | 
| 130 | 
            +
            # Before-Filters accept original source pass the output to Slight compiler.
         | 
| 131 | 
            +
            # After-Filters accept output from Slight compiler pass the output to end user.
         | 
| 132 | 
            +
            use     FilterA, :before
         | 
| 133 | 
            +
            use     FilterB, :after
         | 
| 198 134 | 
             
            ```
         | 
| 199 135 |  | 
| 200 | 
            -
            #### [Tilt]
         | 
| 201 | 
            -
             | 
| 136 | 
            +
            #### [Tilt Intergration]
         | 
| 137 | 
            +
             | 
| 138 | 
            +
            ##### Working with Tilt
         | 
| 202 139 | 
             
            ```ruby
         | 
| 203 140 | 
             
            require 'slight/tilt'
         | 
| 204 141 |  | 
    
        data/lib/slight.rb
    CHANGED
    
    | @@ -2,7 +2,8 @@ require 'slight/engine' | |
| 2 2 | 
             
            module Slight
         | 
| 3 3 | 
             
              # Slight version string
         | 
| 4 4 | 
             
              # @api public
         | 
| 5 | 
            -
              VERSION = '1.0 | 
| 5 | 
            +
              VERSION = '1.1.0'
         | 
| 6 6 | 
             
              # 1.0.0 => Basic Template features | 201703
         | 
| 7 | 
            -
              # 1.0.5 => Support Tilt | 
| 7 | 
            +
              # 1.0.5 => Support Tilt | 201704
         | 
| 8 | 
            +
              # 1.1.0 => Doc Update | 201705
         | 
| 8 9 | 
             
            end
         | 
    
        data/slight.gemspec
    CHANGED
    
    | @@ -6,7 +6,7 @@ Gem::Specification.new do |gem| | |
| 6 6 | 
             
                  gem.authors       = ["oliver.yu"]
         | 
| 7 7 | 
             
                  gem.email         = ["nemo1023@gmail.com"]
         | 
| 8 8 | 
             
                  gem.description   = %q{A light and sweet template language}
         | 
| 9 | 
            -
                  gem.summary       = %q{The goal of this is to use ruby syntax  | 
| 9 | 
            +
                  gem.summary       = %q{The goal of this is to use pure ruby syntax to write template.}
         | 
| 10 10 | 
             
                  gem.homepage      = "https://github.com/OliversCat/Slight"
         | 
| 11 11 | 
             
                  gem.files         = `git ls-files`.split($\)
         | 
| 12 12 | 
             
                  #gem.files         = dir('.')
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: slight-lang
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0 | 
| 4 | 
            +
              version: 1.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - oliver.yu
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2017- | 
| 11 | 
            +
            date: 2017-05-10 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: A light and sweet template language
         | 
| 14 14 | 
             
            email:
         | 
| @@ -67,5 +67,5 @@ rubyforge_project: | |
| 67 67 | 
             
            rubygems_version: 2.6.11
         | 
| 68 68 | 
             
            signing_key: 
         | 
| 69 69 | 
             
            specification_version: 4
         | 
| 70 | 
            -
            summary: The goal of this is to use ruby syntax  | 
| 70 | 
            +
            summary: The goal of this is to use pure ruby syntax to write template.
         | 
| 71 71 | 
             
            test_files: []
         |