showoff 0.9.9.1 → 0.9.10
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/lib/showoff/version.rb +1 -1
- data/lib/showoff_utils.rb +31 -1
- data/public/css/close.png +0 -0
- data/public/css/menu.png +0 -0
- data/public/css/presenter.css +207 -117
- data/public/css/showoff.css +46 -0
- data/public/js/presenter.js +28 -25
- data/public/js/showoff.js +33 -1
- data/views/presenter.erb +24 -27
- metadata +4 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: addc994cfd5492d9ca208490be1263930272cccd
         | 
| 4 | 
            +
              data.tar.gz: a615f934502ee5ba58767aabd025e0a8f4d9075d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 667f49e11f8fb6bebc5576446874556e85e81abcf041ab94f7d4731dfd0ea9bc4db7ae203d756b24087326fd048b0d61a2d98fe9c0a13a3836a1c7dc22e6f285
         | 
| 7 | 
            +
              data.tar.gz: 1b30d26ad6cfa760e6fcb80e722bbc2422c3337027ca4bbe6893ad733dc599c059b7a9278705c4fb0a4b2cf57896131d160e73dc1089df662e204af79beb58bb
         | 
    
        data/lib/showoff/version.rb
    CHANGED
    
    
    
        data/lib/showoff_utils.rb
    CHANGED
    
    | @@ -323,7 +323,7 @@ class ShowOffUtils | |
| 323 323 | 
             
                get_config_option(dir, "markdown", "redcarpet")
         | 
| 324 324 | 
             
              end
         | 
| 325 325 |  | 
| 326 | 
            -
              def self.showoff_renderer_options(dir = '.', default_options =  | 
| 326 | 
            +
              def self.showoff_renderer_options(dir = '.', default_options = MarkdownConfig::defaults(dir))
         | 
| 327 327 | 
             
                opts = get_config_option(dir, showoff_markdown(dir), default_options)
         | 
| 328 328 | 
             
                Hash[opts.map {|k, v| [k.to_sym, v]}] if opts    # keys must be symbols
         | 
| 329 329 | 
             
              end
         | 
| @@ -447,4 +447,34 @@ module MarkdownConfig | |
| 447 447 |  | 
| 448 448 | 
             
                end
         | 
| 449 449 | 
             
              end
         | 
| 450 | 
            +
             | 
| 451 | 
            +
              def self.defaults(dir_name)
         | 
| 452 | 
            +
                case ShowOffUtils.showoff_markdown(dir_name)
         | 
| 453 | 
            +
                when 'rdiscount'
         | 
| 454 | 
            +
                  {
         | 
| 455 | 
            +
                    :autolink          => true,
         | 
| 456 | 
            +
                  }
         | 
| 457 | 
            +
                when 'maruku'
         | 
| 458 | 
            +
                  {}
         | 
| 459 | 
            +
                when 'bluecloth'
         | 
| 460 | 
            +
                  {
         | 
| 461 | 
            +
                    :auto_links        => true,
         | 
| 462 | 
            +
                    :definition_lists  => true,
         | 
| 463 | 
            +
                    :strikethrough     => true,
         | 
| 464 | 
            +
                    :superscript       => true,
         | 
| 465 | 
            +
                    :tables            => true,
         | 
| 466 | 
            +
                  }
         | 
| 467 | 
            +
                when 'kramdown'
         | 
| 468 | 
            +
                  {}
         | 
| 469 | 
            +
                else
         | 
| 470 | 
            +
                  {
         | 
| 471 | 
            +
                    :autolink          => true,
         | 
| 472 | 
            +
                    :no_intra_emphasis => true,
         | 
| 473 | 
            +
                    :strikethrough     => true,
         | 
| 474 | 
            +
                    :superscript       => true,
         | 
| 475 | 
            +
                    :tables            => true,
         | 
| 476 | 
            +
                    :underline         => true,
         | 
| 477 | 
            +
                  }
         | 
| 478 | 
            +
                end
         | 
| 479 | 
            +
              end
         | 
| 450 480 | 
             
            end
         | 
| Binary file | 
    
        data/public/css/menu.png
    ADDED
    
    | Binary file | 
    
        data/public/css/presenter.css
    CHANGED
    
    | @@ -1,6 +1,11 @@ | |
| 1 1 | 
             
            /* Sizes must be defined for child elements to use them in fluid calculations. */
         | 
| 2 2 | 
             
            #main {
         | 
| 3 3 | 
             
              height: 100%;
         | 
| 4 | 
            +
              height: 100vh;
         | 
| 5 | 
            +
              display: -webkit-flex;
         | 
| 6 | 
            +
              display:         flex;
         | 
| 7 | 
            +
              -webkit-flex-flow: column;
         | 
| 8 | 
            +
                      flex-flow: column;
         | 
| 4 9 | 
             
              min-width: 630px;
         | 
| 5 10 | 
             
            }
         | 
| 6 11 |  | 
| @@ -10,10 +15,7 @@ div.zoomed { | |
| 10 15 | 
             
              -moz-transform-origin: 0 0;
         | 
| 11 16 | 
             
            }
         | 
| 12 17 |  | 
| 13 | 
            -
            #preso { margin: 2% auto; }
         | 
| 14 | 
            -
             | 
| 15 18 | 
             
            #topbar {
         | 
| 16 | 
            -
              height: 5%;
         | 
| 17 19 | 
             
              min-height: 24px;
         | 
| 18 20 | 
             
              background: #cfcfcf;
         | 
| 19 21 | 
             
              vertical-align: middle;
         | 
| @@ -53,24 +55,41 @@ div.zoomed { | |
| 53 55 | 
             
                display: none;
         | 
| 54 56 | 
             
              }
         | 
| 55 57 |  | 
| 56 | 
            -
             | 
| 57 58 | 
             
            #center {
         | 
| 58 | 
            -
               | 
| 59 | 
            +
              display: -webkit-flex;
         | 
| 60 | 
            +
              display:         flex;
         | 
| 61 | 
            +
              -webkit-flex-flow: row;
         | 
| 62 | 
            +
                      flex-flow: row;
         | 
| 63 | 
            +
              -webkit-flex: 5;
         | 
| 64 | 
            +
                      flex: 5;
         | 
| 59 65 | 
             
              background-color: #fff;
         | 
| 60 66 | 
             
            }
         | 
| 61 67 | 
             
              #sidebar {
         | 
| 62 | 
            -
                 | 
| 68 | 
            +
                display: -webkit-flex;
         | 
| 69 | 
            +
                display:         flex;
         | 
| 70 | 
            +
                -webkit-flex-flow: column;
         | 
| 71 | 
            +
                        flex-flow: column;
         | 
| 72 | 
            +
                -webkit-flex: 1;
         | 
| 73 | 
            +
                        flex: 1;
         | 
| 74 | 
            +
                -webkit-order: 0;
         | 
| 75 | 
            +
                        order: 0;
         | 
| 63 76 | 
             
                min-width: 210px;
         | 
| 64 | 
            -
                height: 100%;
         | 
| 65 | 
            -
                float: left;
         | 
| 66 77 | 
             
                padding: 0;
         | 
| 67 78 | 
             
                margin: 0;
         | 
| 68 | 
            -
                 | 
| 79 | 
            +
                background-color: #fff;
         | 
| 80 | 
            +
                border-right: 1px solid #ccc;
         | 
| 69 81 | 
             
              }
         | 
| 70 82 | 
             
                #timerSection {
         | 
| 71 | 
            -
                   | 
| 72 | 
            -
                   | 
| 73 | 
            -
                   | 
| 83 | 
            +
                  margin-bottom: 0.25em;
         | 
| 84 | 
            +
                  padding-left: 0.5em;
         | 
| 85 | 
            +
                  height: 2.15em;
         | 
| 86 | 
            +
                  line-height: 2.15em;
         | 
| 87 | 
            +
                  vertical-align: middle;
         | 
| 88 | 
            +
                }
         | 
| 89 | 
            +
             | 
| 90 | 
            +
                #timerSection #timerInfo {
         | 
| 91 | 
            +
                  margin-left: 25px;
         | 
| 92 | 
            +
                  font-weight: bold;
         | 
| 74 93 | 
             
                }
         | 
| 75 94 |  | 
| 76 95 | 
             
                #timerSection input[type='button'] {
         | 
| @@ -82,38 +101,39 @@ div.zoomed { | |
| 82 101 | 
             
                .tRed    { background: #d99; }
         | 
| 83 102 | 
             
                .tYellow { background: #dd9; }
         | 
| 84 103 |  | 
| 85 | 
            -
            #sidebar #feedbackPace {
         | 
| 86 | 
            -
             | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
            }
         | 
| 90 | 
            -
            #sidebar #feedbackPace #paceFast,
         | 
| 91 | 
            -
            #sidebar #feedbackPace #paceSlow {
         | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
             | 
| 95 | 
            -
            }
         | 
| 96 | 
            -
            #sidebar #feedbackPace #paceFast {
         | 
| 97 | 
            -
             | 
| 98 | 
            -
             | 
| 99 | 
            -
            }
         | 
| 100 | 
            -
            #sidebar #feedbackPace #paceSlow {
         | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 103 | 
            -
            }
         | 
| 104 | 
            -
            #sidebar #feedbackPace #paceMarker {
         | 
| 105 | 
            -
             | 
| 106 | 
            -
             | 
| 107 | 
            -
             | 
| 108 | 
            -
             | 
| 109 | 
            -
             | 
| 110 | 
            -
             | 
| 111 | 
            -
             | 
| 104 | 
            +
                #sidebar #feedbackPace {
         | 
| 105 | 
            +
                  height: 40px;
         | 
| 106 | 
            +
                  position: relative;
         | 
| 107 | 
            +
                  background: transparent url(pace.png) no-repeat center bottom;
         | 
| 108 | 
            +
                }
         | 
| 109 | 
            +
                #sidebar #feedbackPace #paceFast,
         | 
| 110 | 
            +
                #sidebar #feedbackPace #paceSlow {
         | 
| 111 | 
            +
                  font-size: 1.5em;
         | 
| 112 | 
            +
                  font-weight: bold;
         | 
| 113 | 
            +
                  display: none;
         | 
| 114 | 
            +
                }
         | 
| 115 | 
            +
                #sidebar #feedbackPace #paceFast {
         | 
| 116 | 
            +
                  float: left;
         | 
| 117 | 
            +
                  margin-left: 1em;
         | 
| 118 | 
            +
                }
         | 
| 119 | 
            +
                #sidebar #feedbackPace #paceSlow {
         | 
| 120 | 
            +
                  float: right;
         | 
| 121 | 
            +
                  margin-right: 1em;
         | 
| 122 | 
            +
                }
         | 
| 123 | 
            +
                #sidebar #feedbackPace #paceMarker {
         | 
| 124 | 
            +
                  left: 50%;
         | 
| 125 | 
            +
                  position: absolute;
         | 
| 126 | 
            +
                  transform: translate(-50%, -50%);
         | 
| 127 | 
            +
                  -webkit-transform: translate(-50%, 0);
         | 
| 128 | 
            +
                  -moz-transform: translate(-50%, 0);
         | 
| 129 | 
            +
                	-ms-transform: translate(-50%, 0);
         | 
| 130 | 
            +
                	-o-transform: translate(-50%, 0);
         | 
| 112 131 |  | 
| 113 | 
            -
            }
         | 
| 132 | 
            +
                }
         | 
| 114 133 |  | 
| 115 134 | 
             
                #slidemenu {
         | 
| 116 | 
            -
                   | 
| 135 | 
            +
                  -webkit-flex: 1;
         | 
| 136 | 
            +
                          flex: 1;
         | 
| 117 137 | 
             
                  background-color: #fff;
         | 
| 118 138 | 
             
                }
         | 
| 119 139 | 
             
                #slidemenu ul li {
         | 
| @@ -121,9 +141,14 @@ div.zoomed { | |
| 121 141 | 
             
                }
         | 
| 122 142 |  | 
| 123 143 | 
             
                .menu {
         | 
| 124 | 
            -
                   | 
| 125 | 
            -
             | 
| 144 | 
            +
                  -webkit-flex: 1;
         | 
| 145 | 
            +
                          flex: 1;
         | 
| 126 146 | 
             
                  overflow:auto;
         | 
| 147 | 
            +
                  background-color: #fff;
         | 
| 148 | 
            +
                  font-family: helvetica;
         | 
| 149 | 
            +
                }
         | 
| 150 | 
            +
                .menu ul li {
         | 
| 151 | 
            +
                  padding: 5px;
         | 
| 127 152 | 
             
                }
         | 
| 128 153 |  | 
| 129 154 | 
             
                .menu a {
         | 
| @@ -135,7 +160,9 @@ div.zoomed { | |
| 135 160 | 
             
                  -webkit-border-radius: 0.25em;
         | 
| 136 161 | 
             
                  -khtml-border-radius: 0.25em;
         | 
| 137 162 | 
             
                  border-radius: 0.25em;
         | 
| 163 | 
            +
                  text-decoration: none;
         | 
| 138 164 | 
             
                }
         | 
| 165 | 
            +
                .menu li.highlighted a,
         | 
| 139 166 | 
             
                .menu a:hover {
         | 
| 140 167 | 
             
                  margin: 0;
         | 
| 141 168 | 
             
                  border: 1px solid #ccc;
         | 
| @@ -143,78 +170,93 @@ div.zoomed { | |
| 143 170 | 
             
                }
         | 
| 144 171 | 
             
                .menu > ul > li > ul {
         | 
| 145 172 | 
             
                  padding-left: 20px;
         | 
| 146 | 
            -
                  font-size:  | 
| 173 | 
            +
                  font-size: 120%;
         | 
| 174 | 
            +
                  font-weight: 100;
         | 
| 147 175 | 
             
                }
         | 
| 148 176 | 
             
                .menu > ul > li > a {
         | 
| 149 177 | 
             
                  padding: 10px;
         | 
| 150 178 | 
             
                  background: #eee;
         | 
| 179 | 
            +
                  font-size: 140%;
         | 
| 151 180 | 
             
                }
         | 
| 152 181 |  | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 155 | 
            -
                 | 
| 156 | 
            -
                 | 
| 157 | 
            -
             | 
| 182 | 
            +
              #presenter {
         | 
| 183 | 
            +
                display: -webkit-flex;
         | 
| 184 | 
            +
                display:         flex;
         | 
| 185 | 
            +
                -webkit-flex-flow: column;
         | 
| 186 | 
            +
                        flex-flow: column;
         | 
| 187 | 
            +
                -webkit-flex: 4;
         | 
| 188 | 
            +
                        flex: 4;
         | 
| 189 | 
            +
                -webkit-order: 1;
         | 
| 190 | 
            +
                        order: 1;
         | 
| 158 191 | 
             
              }
         | 
| 159 192 |  | 
| 160 | 
            -
            #preview  | 
| 161 | 
            -
             | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 164 | 
            -
             | 
| 165 | 
            -
             | 
| 193 | 
            +
                #preview {
         | 
| 194 | 
            +
                  -webkit-flex: 1;
         | 
| 195 | 
            +
                          flex: 1;
         | 
| 196 | 
            +
                  overflow: auto;
         | 
| 197 | 
            +
                  background: #eee;
         | 
| 198 | 
            +
                  padding: 1em;
         | 
| 199 | 
            +
                }
         | 
| 166 200 |  | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 169 | 
            -
            }
         | 
| 201 | 
            +
                  #preview .content form div.tools input[type=button].display {
         | 
| 202 | 
            +
                    display: inline;
         | 
| 203 | 
            +
                  }
         | 
| 204 | 
            +
                  #preview .content form div.tools input[type=submit] {
         | 
| 205 | 
            +
                    display: none;
         | 
| 206 | 
            +
                  }
         | 
| 170 207 |  | 
| 171 | 
            -
             | 
| 172 | 
            -
             | 
| 173 | 
            -
             | 
| 174 | 
            -
              }
         | 
| 175 | 
            -
                #progress {
         | 
| 176 | 
            -
                  margin-left: 1em;
         | 
| 177 | 
            -
                }
         | 
| 178 | 
            -
                #debugInfo {
         | 
| 179 | 
            -
                  display: inline;
         | 
| 180 | 
            -
                }
         | 
| 181 | 
            -
                #enableFollower,
         | 
| 182 | 
            -
                #enableRemote {
         | 
| 183 | 
            -
                  float: right;
         | 
| 184 | 
            -
                  border: 1px solid #ccc;
         | 
| 185 | 
            -
                  margin: 1px;
         | 
| 186 | 
            -
                  padding: 0.1em;
         | 
| 187 | 
            -
                  -moz-border-radius: 0.25em;
         | 
| 188 | 
            -
                  -webkit-border-radius: 0.25em;
         | 
| 189 | 
            -
                  -khtml-border-radius: 0.25em;
         | 
| 190 | 
            -
                  border-radius: 0.25em;
         | 
| 191 | 
            -
                }
         | 
| 192 | 
            -
                #enableRemote.active {
         | 
| 193 | 
            -
                  background-color: #fff8bf;
         | 
| 194 | 
            -
                  -webkit-box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
         | 
| 195 | 
            -
                  -moz-box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
         | 
| 196 | 
            -
                  box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
         | 
| 197 | 
            -
                }
         | 
| 198 | 
            -
                #zoomer {
         | 
| 199 | 
            -
                  float: right;
         | 
| 200 | 
            -
                }
         | 
| 208 | 
            +
                  img#disconnected {
         | 
| 209 | 
            +
                    margin: 0.5em 1em;
         | 
| 210 | 
            +
                  }
         | 
| 201 211 |  | 
| 202 | 
            -
            # | 
| 203 | 
            -
             | 
| 204 | 
            -
             | 
| 205 | 
            -
             | 
| 212 | 
            +
                #statusbar {
         | 
| 213 | 
            +
                  height: 22px;
         | 
| 214 | 
            +
                  line-height: 22px;
         | 
| 215 | 
            +
                  text-transform: uppercase;
         | 
| 216 | 
            +
                  vertical-align: middle;
         | 
| 217 | 
            +
                  background: #fff;
         | 
| 218 | 
            +
                }
         | 
| 219 | 
            +
                  #progress {
         | 
| 220 | 
            +
                    margin-left: 1em;
         | 
| 221 | 
            +
                    position: relative;
         | 
| 222 | 
            +
                  }
         | 
| 223 | 
            +
                  #debugInfo {
         | 
| 224 | 
            +
                    display: inline;
         | 
| 225 | 
            +
                  }
         | 
| 226 | 
            +
                  #enableFollower,
         | 
| 227 | 
            +
                  #enableRemote {
         | 
| 228 | 
            +
                    float: right;
         | 
| 229 | 
            +
                    margin: 1px;
         | 
| 230 | 
            +
                    padding: 0.1em;
         | 
| 231 | 
            +
                  }
         | 
| 232 | 
            +
                  #enableRemote.active {
         | 
| 233 | 
            +
                    background-color: #fff8bf;
         | 
| 234 | 
            +
                    -webkit-box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
         | 
| 235 | 
            +
                    -moz-box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
         | 
| 236 | 
            +
                    box-shadow: 0px 0px 15px 5px rgba(255, 255, 190, .75);
         | 
| 237 | 
            +
                  }
         | 
| 238 | 
            +
                  #zoomer {
         | 
| 239 | 
            +
                    float: right;
         | 
| 240 | 
            +
                  }
         | 
| 206 241 |  | 
| 207 242 | 
             
            #bottom {
         | 
| 208 | 
            -
               | 
| 209 | 
            -
               | 
| 243 | 
            +
              display: -webkit-flex;
         | 
| 244 | 
            +
              display:         flex;
         | 
| 245 | 
            +
              -webkit-flex-flow: row;
         | 
| 246 | 
            +
                      flex-flow: row;
         | 
| 247 | 
            +
              height: 150px;
         | 
| 248 | 
            +
              background: #F5ED9B;
         | 
| 249 | 
            +
              border-top: 1px solid #ccc;
         | 
| 210 250 | 
             
            }
         | 
| 211 251 |  | 
| 212 252 | 
             
              #questions {
         | 
| 213 | 
            -
                 | 
| 214 | 
            -
             | 
| 253 | 
            +
                -webkit-flex: 1;
         | 
| 254 | 
            +
                        flex: 1;
         | 
| 255 | 
            +
                -webkit-order: 0;
         | 
| 256 | 
            +
                        order: 0;
         | 
| 215 257 | 
             
                min-width: 210px;
         | 
| 216 | 
            -
                border-right:  | 
| 217 | 
            -
                font-size: 1. | 
| 258 | 
            +
                border-right: 1px solid #ccc;
         | 
| 259 | 
            +
                font-size: 1.2em;
         | 
| 218 260 | 
             
                overflow: auto;
         | 
| 219 261 | 
             
                height: 100%;
         | 
| 220 262 | 
             
              }
         | 
| @@ -223,17 +265,31 @@ img#disconnected { | |
| 223 265 | 
             
              }
         | 
| 224 266 | 
             
              #questions ul {
         | 
| 225 267 | 
             
                margin-left: 1.5em;
         | 
| 268 | 
            +
                margin-right: 0.25em;
         | 
| 226 269 | 
             
              }
         | 
| 227 270 | 
             
              #questions ul li {
         | 
| 228 271 | 
             
                list-style-type: disc;
         | 
| 229 272 | 
             
              }
         | 
| 273 | 
            +
              #questions ul li:hover {
         | 
| 274 | 
            +
                background: #dedede url(close.png) no-repeat center center;
         | 
| 275 | 
            +
                color: transparent;
         | 
| 276 | 
            +
                -moz-border-radius: 1em;
         | 
| 277 | 
            +
                -webkit-border-radius: 1em;
         | 
| 278 | 
            +
                -khtml-border-radius: 1em;
         | 
| 279 | 
            +
                border-radius: 1em;
         | 
| 280 | 
            +
              }
         | 
| 230 281 |  | 
| 231 282 | 
             
              #notes {
         | 
| 232 | 
            -
                 | 
| 233 | 
            -
             | 
| 283 | 
            +
                -webkit-flex: 4;
         | 
| 284 | 
            +
                        flex: 4;
         | 
| 285 | 
            +
                -webkit-order: 1;
         | 
| 286 | 
            +
                        order: 1;
         | 
| 234 287 | 
             
                font-size: 1.5em;
         | 
| 235 288 | 
             
                overflow: auto;
         | 
| 236 289 | 
             
                height: 100%;
         | 
| 290 | 
            +
                font-family: helvetica;
         | 
| 291 | 
            +
                font-weight: 100;
         | 
| 292 | 
            +
                padding: 0 0.25em;
         | 
| 237 293 | 
             
              }
         | 
| 238 294 | 
             
              #notes p,
         | 
| 239 295 | 
             
              #notes h1,
         | 
| @@ -250,6 +306,7 @@ img#disconnected { | |
| 250 306 | 
             
              }
         | 
| 251 307 | 
             
              #notes ol, #notes ul {
         | 
| 252 308 | 
             
                padding-left: 2em;
         | 
| 309 | 
            +
                margin-bottom: 0.5em;
         | 
| 253 310 | 
             
              }
         | 
| 254 311 | 
             
              #notes ol {
         | 
| 255 312 | 
             
                list-style-type: decimal;
         | 
| @@ -285,18 +342,42 @@ a.controls { | |
| 285 342 |  | 
| 286 343 | 
             
            /* iPhone */
         | 
| 287 344 | 
             
            /* Portrait */
         | 
| 288 | 
            -
            @media screen and (max-width:  | 
| 345 | 
            +
            @media screen and (max-width: 480px)
         | 
| 289 346 | 
             
            {
         | 
| 347 | 
            +
              #main {
         | 
| 348 | 
            +
                min-width: 0;
         | 
| 349 | 
            +
              }
         | 
| 350 | 
            +
             | 
| 351 | 
            +
              #center {
         | 
| 352 | 
            +
                -webkit-flex-flow: column;
         | 
| 353 | 
            +
                        flex-flow: column;
         | 
| 354 | 
            +
                -webkit-flex: 1;
         | 
| 355 | 
            +
                        flex: 1;
         | 
| 356 | 
            +
              }
         | 
| 357 | 
            +
              #bottom {
         | 
| 358 | 
            +
                -webkit-flex-flow: column;
         | 
| 359 | 
            +
                        flex-flow: column;
         | 
| 360 | 
            +
                -webkit-flex: 1;
         | 
| 361 | 
            +
                        flex: 1;
         | 
| 362 | 
            +
              }
         | 
| 363 | 
            +
                #bottom #questions {
         | 
| 364 | 
            +
                  border-bottom: 1px solid #ccc;
         | 
| 365 | 
            +
                  -webkit-flex: 1;
         | 
| 366 | 
            +
                          flex: 1;
         | 
| 367 | 
            +
                }
         | 
| 368 | 
            +
                #bottom #notes {
         | 
| 369 | 
            +
                  -webkit-flex: 2;
         | 
| 370 | 
            +
                          flex: 2;
         | 
| 371 | 
            +
                }
         | 
| 290 372 | 
             
              #topbar,#main,#center,#preview,#bottom,#sidebar {
         | 
| 291 | 
            -
                min-width: 320px !important;
         | 
| 292 | 
            -
                max-width: 320px !important;
         | 
| 293 | 
            -
                width: 320px !important;
         | 
| 294 373 | 
             
                margin: 0;
         | 
| 295 374 | 
             
                padding: 0;
         | 
| 296 375 | 
             
              }
         | 
| 297 376 | 
             
              #topbar #slideSource {
         | 
| 298 377 | 
             
                max-width: 256px;
         | 
| 299 378 | 
             
                overflow: hidden;
         | 
| 379 | 
            +
                height: 16px;
         | 
| 380 | 
            +
                padding-left: 16px;
         | 
| 300 381 | 
             
              }
         | 
| 301 382 | 
             
              #topbar #slideSource #slideFile {
         | 
| 302 383 | 
             
                display: inline-block;
         | 
| @@ -319,15 +400,30 @@ a.controls { | |
| 319 400 | 
             
              #topbar #links .mobile {
         | 
| 320 401 | 
             
                display: inline;
         | 
| 321 402 | 
             
              }
         | 
| 322 | 
            -
             | 
| 323 | 
            -
             | 
| 403 | 
            +
             | 
| 404 | 
            +
              #topbar {
         | 
| 405 | 
            +
                background-image: url(menu.png);
         | 
| 406 | 
            +
                background-position: left center;
         | 
| 407 | 
            +
                background-repeat: no-repeat;
         | 
| 324 408 | 
             
              }
         | 
| 325 | 
            -
              # | 
| 326 | 
            -
                 | 
| 327 | 
            -
                 | 
| 409 | 
            +
              #sidebar {
         | 
| 410 | 
            +
                display: block;
         | 
| 411 | 
            +
                position: absolute;
         | 
| 412 | 
            +
                top: 25px;
         | 
| 413 | 
            +
                z-index: 99999;
         | 
| 414 | 
            +
                height: 100%;
         | 
| 415 | 
            +
                overflow: scroll;
         | 
| 416 | 
            +
                display: none;
         | 
| 328 417 | 
             
              }
         | 
| 329 | 
            -
             | 
| 330 | 
            -
                 | 
| 418 | 
            +
                #sidebar #timerSection,
         | 
| 419 | 
            +
                #sidebar #feedbackPace {
         | 
| 420 | 
            +
                  display: none;
         | 
| 421 | 
            +
                }
         | 
| 422 | 
            +
             | 
| 423 | 
            +
             | 
| 424 | 
            +
              #statusbar {
         | 
| 425 | 
            +
                height: auto;
         | 
| 426 | 
            +
                line-height: inherit;
         | 
| 331 427 | 
             
              }
         | 
| 332 428 | 
             
              #statusbar #enableRemote,
         | 
| 333 429 | 
             
              #statusbar #enableFollower {
         | 
| @@ -346,12 +442,6 @@ a.controls { | |
| 346 442 | 
             
                height: 245px;
         | 
| 347 443 | 
             
                overflow: auto;
         | 
| 348 444 | 
             
              }
         | 
| 349 | 
            -
              #sidebar {
         | 
| 350 | 
            -
                position: absolute;
         | 
| 351 | 
            -
                top: 534px;
         | 
| 352 | 
            -
                float: none;
         | 
| 353 | 
            -
                height: auto;
         | 
| 354 | 
            -
              }
         | 
| 355 445 | 
             
              #preso {
         | 
| 356 446 | 
             
                width: 976px;
         | 
| 357 447 | 
             
                margin: 0;
         | 
    
        data/public/css/showoff.css
    CHANGED
    
    | @@ -234,6 +234,52 @@ img#disconnected { | |
| 234 234 | 
             
                font-weight: bold;
         | 
| 235 235 | 
             
            }
         | 
| 236 236 |  | 
| 237 | 
            +
            /**********************************
         | 
| 238 | 
            +
             ***       Table styling        ***
         | 
| 239 | 
            +
             **********************************/
         | 
| 240 | 
            +
             | 
| 241 | 
            +
            .content table {
         | 
| 242 | 
            +
                margin-left: auto;
         | 
| 243 | 
            +
                margin-right: auto;
         | 
| 244 | 
            +
                border-collapse:collapse;
         | 
| 245 | 
            +
                width: 80%;
         | 
| 246 | 
            +
                font-size: 1.7em;
         | 
| 247 | 
            +
            }
         | 
| 248 | 
            +
             | 
| 249 | 
            +
            .content.small table {
         | 
| 250 | 
            +
                font-size: 1.6em;
         | 
| 251 | 
            +
                width: 90%;
         | 
| 252 | 
            +
            }
         | 
| 253 | 
            +
            .content.smaller table {
         | 
| 254 | 
            +
                font-size: 1.5em;
         | 
| 255 | 
            +
                width: 95%;
         | 
| 256 | 
            +
            }
         | 
| 257 | 
            +
             | 
| 258 | 
            +
            .content table th {
         | 
| 259 | 
            +
                border-bottom: 2px solid #ccc;
         | 
| 260 | 
            +
                padding: 0.5em;
         | 
| 261 | 
            +
                font-weight: bold;
         | 
| 262 | 
            +
            }
         | 
| 263 | 
            +
             | 
| 264 | 
            +
            .content table tr td {
         | 
| 265 | 
            +
                border-right: 1px solid #eee;
         | 
| 266 | 
            +
                border-bottom: 1px solid #efefef;
         | 
| 267 | 
            +
                text-align: center;
         | 
| 268 | 
            +
                padding: 0.5em;
         | 
| 269 | 
            +
            }
         | 
| 270 | 
            +
             | 
| 271 | 
            +
            .content table tr td:last-child {
         | 
| 272 | 
            +
                border-right: none;
         | 
| 273 | 
            +
            }
         | 
| 274 | 
            +
             | 
| 275 | 
            +
            .content table li {
         | 
| 276 | 
            +
                list-style-type: disc;
         | 
| 277 | 
            +
            }
         | 
| 278 | 
            +
             | 
| 279 | 
            +
             | 
| 280 | 
            +
            /**********************************
         | 
| 281 | 
            +
             ***      Sidebar styling       ***
         | 
| 282 | 
            +
             **********************************/
         | 
| 237 283 |  | 
| 238 284 | 
             
            #feedbackWrapper {
         | 
| 239 285 | 
             
              float: left;
         | 
    
        data/public/js/presenter.js
    CHANGED
    
    | @@ -6,7 +6,7 @@ var paceData = []; | |
| 6 6 |  | 
| 7 7 | 
             
            $(document).ready(function(){
         | 
| 8 8 | 
             
              // set up the presenter modes
         | 
| 9 | 
            -
              mode = { track:  | 
| 9 | 
            +
              mode = { track: true, follow: true, update: true, slave: false, next: false};
         | 
| 10 10 |  | 
| 11 11 | 
             
              // attempt to open another window for the presentation if the mode defaults
         | 
| 12 12 | 
             
              // to enabling this. It does not by default, so this is likely a no-op.
         | 
| @@ -56,22 +56,28 @@ $(document).ready(function(){ | |
| 56 56 | 
             
              $('#zoomer').tipsy({ gravity: 'ne' });
         | 
| 57 57 |  | 
| 58 58 | 
             
              // Bind events for mobile viewing
         | 
| 59 | 
            -
               | 
| 59 | 
            +
              if( mobile() ) {
         | 
| 60 | 
            +
                $('#preso').unbind('tap').unbind('swipeleft').unbind('swiperight');
         | 
| 60 61 |  | 
| 61 | 
            -
             | 
| 62 | 
            -
             | 
| 63 | 
            -
             | 
| 64 | 
            -
             | 
| 62 | 
            +
                $('#preso').addSwipeEvents().
         | 
| 63 | 
            +
                  bind('tap', presNextStep).        // next
         | 
| 64 | 
            +
                  bind('swipeleft', presNextStep).  // next
         | 
| 65 | 
            +
                  bind('swiperight', presPrevStep); // prev
         | 
| 65 66 |  | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 67 | 
            +
                $('#topbar #slideSource').click( function(e) {
         | 
| 68 | 
            +
                  $('#sidebar').toggle();
         | 
| 69 | 
            +
                });
         | 
| 68 70 |  | 
| 69 | 
            -
             | 
| 70 | 
            -
             | 
| 71 | 
            -
             | 
| 72 | 
            -
             | 
| 71 | 
            +
                $('#topbar #update').click( function(e) {
         | 
| 72 | 
            +
                  e.preventDefault();
         | 
| 73 | 
            +
                  $.get("/getpage", function(data) {
         | 
| 74 | 
            +
                    gotoSlide(data);
         | 
| 75 | 
            +
                  });
         | 
| 73 76 | 
             
                });
         | 
| 74 | 
            -
              } | 
| 77 | 
            +
              }
         | 
| 78 | 
            +
             | 
| 79 | 
            +
              $('#remoteToggle').change( toggleFollower );
         | 
| 80 | 
            +
              $('#followerToggle').change( toggleUpdater );
         | 
| 75 81 |  | 
| 76 82 | 
             
              setInterval(function() { updatePace() }, 1000);
         | 
| 77 83 |  | 
| @@ -110,7 +116,7 @@ function reportIssue() { | |
| 110 116 | 
             
            }
         | 
| 111 117 |  | 
| 112 118 | 
             
            function editSlide() {
         | 
| 113 | 
            -
              var slide = $("span#slideFile").text();
         | 
| 119 | 
            +
              var slide = $("span#slideFile").text().replace(/\/\d+$/, '');
         | 
| 114 120 | 
             
              var link  = editUrl + slide + ".md";
         | 
| 115 121 | 
             
              window.open(link);
         | 
| 116 122 | 
             
            }
         | 
| @@ -212,6 +218,10 @@ function openNext() | |
| 212 218 |  | 
| 213 219 | 
             
            function askQuestion(question) {
         | 
| 214 220 | 
             
              $("#questions ul").prepend($('<li/>').text(question));
         | 
| 221 | 
            +
             | 
| 222 | 
            +
              $('#questions ul li:first-child').click( function(e) {
         | 
| 223 | 
            +
                $(this).remove();
         | 
| 224 | 
            +
              });
         | 
| 215 225 | 
             
            }
         | 
| 216 226 |  | 
| 217 227 | 
             
            function paceFeedback(pace) {
         | 
| @@ -494,6 +504,7 @@ function toggleTimer() | |
| 494 504 | 
             
                seconds = 0
         | 
| 495 505 | 
             
                timerRunning = false
         | 
| 496 506 | 
             
                totalMinutes = 0
         | 
| 507 | 
            +
                setProgressColor(false)
         | 
| 497 508 | 
             
                $("#timerInfo").text('')
         | 
| 498 509 | 
             
                $("#minStart").show()
         | 
| 499 510 | 
             
                $("#minStop").hide()
         | 
| @@ -515,6 +526,9 @@ function setProgressColor(progress) { | |
| 515 526 | 
             
              ts.removeClass('tGreen')
         | 
| 516 527 | 
             
              ts.removeClass('tYellow')
         | 
| 517 528 | 
             
              ts.removeClass('tRed')
         | 
| 529 | 
            +
             | 
| 530 | 
            +
              if(progress === false) return;
         | 
| 531 | 
            +
             | 
| 518 532 | 
             
              if(progress > 10) {
         | 
| 519 533 | 
             
                ts.addClass('tBlue')
         | 
| 520 534 | 
             
              } else if (progress > 0) {
         | 
| @@ -532,17 +546,6 @@ var setCurrentStyle = function(style, prop) { | |
| 532 546 | 
             
              try { slaveWindow.setCurrentStyle(style, false); } catch (e) {}
         | 
| 533 547 | 
             
            }
         | 
| 534 548 |  | 
| 535 | 
            -
            function mobile() {
         | 
| 536 | 
            -
              return ( navigator.userAgent.match(/Android/i)
         | 
| 537 | 
            -
                        || navigator.userAgent.match(/webOS/i)
         | 
| 538 | 
            -
                        || navigator.userAgent.match(/iPhone/i)
         | 
| 539 | 
            -
                        || navigator.userAgent.match(/iPad/i)
         | 
| 540 | 
            -
                        || navigator.userAgent.match(/iPod/i)
         | 
| 541 | 
            -
                        || navigator.userAgent.match(/BlackBerry/i)
         | 
| 542 | 
            -
                        || navigator.userAgent.match(/Windows Phone/i)
         | 
| 543 | 
            -
              );
         | 
| 544 | 
            -
            }
         | 
| 545 | 
            -
             | 
| 546 549 | 
             
            /********************
         | 
| 547 550 | 
             
             Follower Code
         | 
| 548 551 | 
             
             ********************/
         | 
    
        data/public/js/showoff.js
    CHANGED
    
    | @@ -27,6 +27,7 @@ var loadSlidesPrefix | |
| 27 27 |  | 
| 28 28 | 
             
            var mode = { track: true, follow: false };
         | 
| 29 29 |  | 
| 30 | 
            +
             | 
| 30 31 | 
             
            function setupPreso(load_slides, prefix) {
         | 
| 31 32 | 
             
            	if (preso_started)
         | 
| 32 33 | 
             
            	{
         | 
| @@ -346,8 +347,23 @@ function showSlide(back_step, updatepv) { | |
| 346 347 | 
             
            		pv.postSlide();
         | 
| 347 348 |  | 
| 348 349 | 
             
            		pv.update();
         | 
| 350 | 
            +
             | 
| 349 351 | 
             
            	}
         | 
| 350 352 |  | 
| 353 | 
            +
              // Update presenter view nav for current slide
         | 
| 354 | 
            +
              $( ".menu > ul > li > ul > li" ).each(function() {
         | 
| 355 | 
            +
                if ($(this).text().split(". ")[0] == slidenum+1) {
         | 
| 356 | 
            +
                  $(".menu > ul > li > ul ").hide();  //Collapse nav
         | 
| 357 | 
            +
                  $(".menu > ul > li > ul > li").removeClass('highlighted');
         | 
| 358 | 
            +
                  $(this).addClass('highlighted'); //Highlight current menu item
         | 
| 359 | 
            +
                  $(this).parent().show();         //Show nav block containing current slide
         | 
| 360 | 
            +
             | 
| 361 | 
            +
                  if( ! mobile() ) {
         | 
| 362 | 
            +
                    $(this).get(0).scrollIntoView(); //Scroll so current item is at the top of the view
         | 
| 363 | 
            +
                  }
         | 
| 364 | 
            +
                }
         | 
| 365 | 
            +
              });
         | 
| 366 | 
            +
             | 
| 351 367 | 
             
            	return ret;
         | 
| 352 368 | 
             
            }
         | 
| 353 369 |  | 
| @@ -666,7 +682,7 @@ function track() { | |
| 666 682 |  | 
| 667 683 | 
             
            // Open a new tab with an online code editor, if so configured
         | 
| 668 684 | 
             
            function editSlide() {
         | 
| 669 | 
            -
              var slide = $("span#slideFilename").text();
         | 
| 685 | 
            +
              var slide = $("span#slideFilename").text().replace(/\/\d+$/, '');
         | 
| 670 686 | 
             
              var link  = editUrl + slide + ".md";
         | 
| 671 687 | 
             
              window.open(link);
         | 
| 672 688 | 
             
            }
         | 
| @@ -1236,3 +1252,19 @@ function setupStats() | |
| 1236 1252 | 
             
                  $(this).find("div.detail").slideToggle("fast");
         | 
| 1237 1253 | 
             
              });
         | 
| 1238 1254 | 
             
            }
         | 
| 1255 | 
            +
             | 
| 1256 | 
            +
            /* Is this a mobile device? */
         | 
| 1257 | 
            +
            function mobile() {
         | 
| 1258 | 
            +
            /*
         | 
| 1259 | 
            +
              return ( navigator.userAgent.match(/Android/i)
         | 
| 1260 | 
            +
                        || navigator.userAgent.match(/webOS/i)
         | 
| 1261 | 
            +
                        || navigator.userAgent.match(/iPhone/i)
         | 
| 1262 | 
            +
                        || navigator.userAgent.match(/iPad/i)
         | 
| 1263 | 
            +
                        || navigator.userAgent.match(/iPod/i)
         | 
| 1264 | 
            +
                        || navigator.userAgent.match(/BlackBerry/i)
         | 
| 1265 | 
            +
                        || navigator.userAgent.match(/Windows Phone/i)
         | 
| 1266 | 
            +
              );
         | 
| 1267 | 
            +
            */
         | 
| 1268 | 
            +
             | 
| 1269 | 
            +
              return ( $(window).width() <= 480 )
         | 
| 1270 | 
            +
            }
         | 
    
        data/views/presenter.erb
    CHANGED
    
    | @@ -1,5 +1,4 @@ | |
| 1 | 
            -
            <!DOCTYPE html | 
| 2 | 
            -
            	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
         | 
| 1 | 
            +
            <!DOCTYPE html>
         | 
| 3 2 |  | 
| 4 3 | 
             
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
         | 
| 5 4 | 
             
            <head>
         | 
| @@ -29,8 +28,8 @@ | |
| 29 28 | 
             
              </table>
         | 
| 30 29 | 
             
            </div>
         | 
| 31 30 |  | 
| 32 | 
            -
            <div id="main" | 
| 33 | 
            -
              <div id="topbar" | 
| 31 | 
            +
            <div id="main">
         | 
| 32 | 
            +
              <div id="topbar">
         | 
| 34 33 | 
             
                <div id="slideSource">
         | 
| 35 34 | 
             
                  Source: <span id="slideFile"></span>
         | 
| 36 35 | 
             
                </div>
         | 
| @@ -56,7 +55,7 @@ | |
| 56 55 | 
             
              </div>
         | 
| 57 56 |  | 
| 58 57 | 
             
              <div id="center">
         | 
| 59 | 
            -
                <div id="sidebar" | 
| 58 | 
            +
                <div id="sidebar">
         | 
| 60 59 | 
             
                  <div id="timerSection">
         | 
| 61 60 | 
             
                    Timer:
         | 
| 62 61 | 
             
                    <span id="minStart">
         | 
| @@ -71,32 +70,30 @@ | |
| 71 70 | 
             
                    <span id="paceFast">Slow Down!</span>
         | 
| 72 71 | 
             
                    <img id="paceMarker" src="<%= @asset_path %>/css/paceMarker.png" />
         | 
| 73 72 | 
             
                  </div>
         | 
| 74 | 
            -
                  <div id=" | 
| 75 | 
            -
                    <div id="navigation" class="menu"></div>
         | 
| 76 | 
            -
                  </div>
         | 
| 77 | 
            -
                </div>
         | 
| 78 | 
            -
                <div id="preview" class="grid_8">
         | 
| 79 | 
            -
                  <img id="disconnected" src="<%= @asset_path %>/css/disconnected-large.png" />
         | 
| 80 | 
            -
                  <div id="preso" class="zoomed">loading presentation...</div>
         | 
| 73 | 
            +
                  <div id="navigation" class="menu"></div>
         | 
| 81 74 | 
             
                </div>
         | 
| 82 | 
            -
                <div id=" | 
| 83 | 
            -
                  < | 
| 84 | 
            -
                     | 
| 85 | 
            -
             | 
| 86 | 
            -
                   | 
| 87 | 
            -
                  < | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
                    < | 
| 93 | 
            -
             | 
| 75 | 
            +
                <div id="presenter">
         | 
| 76 | 
            +
                  <div id="preview">
         | 
| 77 | 
            +
                    <img id="disconnected" src="<%= @asset_path %>/css/disconnected-large.png" />
         | 
| 78 | 
            +
                    <div id="preso" class="zoomed">loading presentation...</div>
         | 
| 79 | 
            +
                  </div>
         | 
| 80 | 
            +
                  <div id="statusbar">
         | 
| 81 | 
            +
                    <span id="progress">
         | 
| 82 | 
            +
                      Slide: <span id="slideInfo"></span>
         | 
| 83 | 
            +
                    </span>
         | 
| 84 | 
            +
                    <div id="debugInfo"></div>
         | 
| 85 | 
            +
                    <input id="zoomer" type="range" min="0.5" max="1.5" step="0.01" onchange="javascript:zoom();" title="Alter the zoom level of the slide preview." />
         | 
| 86 | 
            +
                    <span id="enableRemote" title="Enables tracking of other presenters.">
         | 
| 87 | 
            +
                      <label for="remoteToggle">Enable Remote</label><input type="checkbox" id="remoteToggle" checked />
         | 
| 88 | 
            +
                    </span>
         | 
| 89 | 
            +
                    <span id="enableFollower" title="Send slide change notifications.">
         | 
| 90 | 
            +
                      <label for="followerToggle">Update Follower</label><input type="checkbox" id="followerToggle" checked />
         | 
| 91 | 
            +
                    </span>
         | 
| 92 | 
            +
                  </div>
         | 
| 94 93 | 
             
                </div>
         | 
| 95 94 | 
             
              </div>
         | 
| 96 95 |  | 
| 97 | 
            -
              <div id=" | 
| 98 | 
            -
             | 
| 99 | 
            -
              <div id="bottom" class="grid_12">
         | 
| 96 | 
            +
              <div id="bottom">
         | 
| 100 97 | 
             
                <div id="questions">
         | 
| 101 98 | 
             
                  <h3>Audience Questions</h3>
         | 
| 102 99 | 
             
                  <ul></ul>
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: showoff
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.9. | 
| 4 | 
            +
              version: 0.9.10
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Scott Chacon
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-11-25 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: sinatra
         | 
| @@ -182,12 +182,14 @@ files: | |
| 182 182 | 
             
            - views/onepage.erb
         | 
| 183 183 | 
             
            - views/presenter.erb
         | 
| 184 184 | 
             
            - views/stats.erb
         | 
| 185 | 
            +
            - public/css/close.png
         | 
| 185 186 | 
             
            - public/css/disconnected-large.png
         | 
| 186 187 | 
             
            - public/css/disconnected.png
         | 
| 187 188 | 
             
            - public/css/fast.png
         | 
| 188 189 | 
             
            - public/css/fg.menu.css
         | 
| 189 190 | 
             
            - public/css/grippy-close.png
         | 
| 190 191 | 
             
            - public/css/grippy.png
         | 
| 192 | 
            +
            - public/css/menu.png
         | 
| 191 193 | 
             
            - public/css/onepage.css
         | 
| 192 194 | 
             
            - public/css/pace.png
         | 
| 193 195 | 
             
            - public/css/paceMarker.png
         |