diff --git a/pages/dynamic/_download_item.haml b/pages/dynamic/_download_item.haml index 2931879..311e56d 100644 --- a/pages/dynamic/_download_item.haml +++ b/pages/dynamic/_download_item.haml @@ -1,4 +1,4 @@ -%tr +%tr{ :class => rc } %td.link %a{ :href => "/jasmine/downloads/#{filename}"}= filename %td.version= version diff --git a/pages/helpers.rb b/pages/helpers.rb index 03ea2b2..bfab47a 100644 --- a/pages/helpers.rb +++ b/pages/helpers.rb @@ -7,4 +7,19 @@ module FrankHelpers });" end + def downloads + require 'digest/sha1' + + Dir.glob('pages/downloads/*.zip').sort.reverse.collect do |f| + item = {} + item[:filename] = f.sub(/^pages\//, '') + item[:version] = /jasmine-standalone-(.*).zip/.match(f)[1] + item[:rc] = /\.rc/.match(f) ? 'rc' : '' + item[:size] = "#{File.size(f) / 1024}k" + item[:date] = File.mtime(f).strftime("%Y/%m/%d %H:%M:%S %Z") + item[:sha] = Digest::SHA1.hexdigest File.read(f) + item + end + end + end \ No newline at end of file diff --git a/pages/static/css/960gs/960.css b/pages/static/css/960gs/960.css new file mode 100644 index 0000000..bdfa213 --- /dev/null +++ b/pages/static/css/960gs/960.css @@ -0,0 +1 @@ +.container_12,.container_16{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16{display:inline;float:left;position:relative;margin-left:10px;margin-right:10px}.container_12 .grid_3,.container_16 .grid_4{width:220px}.container_12 .grid_6,.container_16 .grid_8{width:460px}.container_12 .grid_9,.container_16 .grid_12{width:700px}.container_12 .grid_12,.container_16 .grid_16{width:940px}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:60px}.container_12 .grid_2{width:140px}.container_12 .grid_4{width:300px}.container_12 .grid_5{width:380px}.container_12 .grid_7{width:540px}.container_12 .grid_8{width:620px}.container_12 .grid_10{width:780px}.container_12 .grid_11{width:860px}.container_16 .grid_1{width:40px}.container_16 .grid_2{width:100px}.container_16 .grid_3{width:160px}.container_16 .grid_5{width:280px}.container_16 .grid_6{width:340px}.container_16 .grid_7{width:400px}.container_16 .grid_9{width:520px}.container_16 .grid_10{width:580px}.container_16 .grid_11{width:640px}.container_16 .grid_13{width:760px}.container_16 .grid_14{width:820px}.container_16 .grid_15{width:880px}.container_12 .prefix_3,.container_16 .prefix_4{padding-left:240px}.container_12 .prefix_6,.container_16 .prefix_8{padding-left:480px}.container_12 .prefix_9,.container_16 .prefix_12{padding-left:720px}.container_12 .prefix_1{padding-left:80px}.container_12 .prefix_2{padding-left:160px}.container_12 .prefix_4{padding-left:320px}.container_12 .prefix_5{padding-left:400px}.container_12 .prefix_7{padding-left:560px}.container_12 .prefix_8{padding-left:640px}.container_12 .prefix_10{padding-left:800px}.container_12 .prefix_11{padding-left:880px}.container_16 .prefix_1{padding-left:60px}.container_16 .prefix_2{padding-left:120px}.container_16 .prefix_3{padding-left:180px}.container_16 .prefix_5{padding-left:300px}.container_16 .prefix_6{padding-left:360px}.container_16 .prefix_7{padding-left:420px}.container_16 .prefix_9{padding-left:540px}.container_16 .prefix_10{padding-left:600px}.container_16 .prefix_11{padding-left:660px}.container_16 .prefix_13{padding-left:780px}.container_16 .prefix_14{padding-left:840px}.container_16 .prefix_15{padding-left:900px}.container_12 .suffix_3,.container_16 .suffix_4{padding-right:240px}.container_12 .suffix_6,.container_16 .suffix_8{padding-right:480px}.container_12 .suffix_9,.container_16 .suffix_12{padding-right:720px}.container_12 .suffix_1{padding-right:80px}.container_12 .suffix_2{padding-right:160px}.container_12 .suffix_4{padding-right:320px}.container_12 .suffix_5{padding-right:400px}.container_12 .suffix_7{padding-right:560px}.container_12 .suffix_8{padding-right:640px}.container_12 .suffix_10{padding-right:800px}.container_12 .suffix_11{padding-right:880px}.container_16 .suffix_1{padding-right:60px}.container_16 .suffix_2{padding-right:120px}.container_16 .suffix_3{padding-right:180px}.container_16 .suffix_5{padding-right:300px}.container_16 .suffix_6{padding-right:360px}.container_16 .suffix_7{padding-right:420px}.container_16 .suffix_9{padding-right:540px}.container_16 .suffix_10{padding-right:600px}.container_16 .suffix_11{padding-right:660px}.container_16 .suffix_13{padding-right:780px}.container_16 .suffix_14{padding-right:840px}.container_16 .suffix_15{padding-right:900px}.container_12 .push_3,.container_16 .push_4{left:240px}.container_12 .push_6,.container_16 .push_8{left:480px}.container_12 .push_9,.container_16 .push_12{left:720px}.container_12 .push_1{left:80px}.container_12 .push_2{left:160px}.container_12 .push_4{left:320px}.container_12 .push_5{left:400px}.container_12 .push_7{left:560px}.container_12 .push_8{left:640px}.container_12 .push_10{left:800px}.container_12 .push_11{left:880px}.container_16 .push_1{left:60px}.container_16 .push_2{left:120px}.container_16 .push_3{left:180px}.container_16 .push_5{left:300px}.container_16 .push_6{left:360px}.container_16 .push_7{left:420px}.container_16 .push_9{left:540px}.container_16 .push_10{left:600px}.container_16 .push_11{left:660px}.container_16 .push_13{left:780px}.container_16 .push_14{left:840px}.container_16 .push_15{left:900px}.container_12 .pull_3,.container_16 .pull_4{left:-240px}.container_12 .pull_6,.container_16 .pull_8{left:-480px}.container_12 .pull_9,.container_16 .pull_12{left:-720px}.container_12 .pull_1{left:-80px}.container_12 .pull_2{left:-160px}.container_12 .pull_4{left:-320px}.container_12 .pull_5{left:-400px}.container_12 .pull_7{left:-560px}.container_12 .pull_8{left:-640px}.container_12 .pull_10{left:-800px}.container_12 .pull_11{left:-880px}.container_16 .pull_1{left:-60px}.container_16 .pull_2{left:-120px}.container_16 .pull_3{left:-180px}.container_16 .pull_5{left:-300px}.container_16 .pull_6{left:-360px}.container_16 .pull_7{left:-420px}.container_16 .pull_9{left:-540px}.container_16 .pull_10{left:-600px}.container_16 .pull_11{left:-660px}.container_16 .pull_13{left:-780px}.container_16 .pull_14{left:-840px}.container_16 .pull_15{left:-900px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both;content:' ';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0}* html .clearfix,*:first-child+html .clearfix{zoom:1} \ No newline at end of file diff --git a/pages/static/css/960gs/960_24_col.css b/pages/static/css/960gs/960_24_col.css new file mode 100644 index 0000000..6d92fa7 --- /dev/null +++ b/pages/static/css/960gs/960_24_col.css @@ -0,0 +1 @@ +.container_24{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16,.grid_17,.grid_18,.grid_19,.grid_20,.grid_21,.grid_22,.grid_23,.grid_24{display:inline;float:left;position:relative;margin-left:5px;margin-right:5px}.alpha{margin-left:0}.omega{margin-right:0}.container_24 .grid_1{width:30px}.container_24 .grid_2{width:70px}.container_24 .grid_3{width:110px}.container_24 .grid_4{width:150px}.container_24 .grid_5{width:190px}.container_24 .grid_6{width:230px}.container_24 .grid_7{width:270px}.container_24 .grid_8{width:310px}.container_24 .grid_9{width:350px}.container_24 .grid_10{width:390px}.container_24 .grid_11{width:430px}.container_24 .grid_12{width:470px}.container_24 .grid_13{width:510px}.container_24 .grid_14{width:550px}.container_24 .grid_15{width:590px}.container_24 .grid_16{width:630px}.container_24 .grid_17{width:670px}.container_24 .grid_18{width:710px}.container_24 .grid_19{width:750px}.container_24 .grid_20{width:790px}.container_24 .grid_21{width:830px}.container_24 .grid_22{width:870px}.container_24 .grid_23{width:910px}.container_24 .grid_24{width:950px}.container_24 .prefix_1{padding-left:40px}.container_24 .prefix_2{padding-left:80px}.container_24 .prefix_3{padding-left:120px}.container_24 .prefix_4{padding-left:160px}.container_24 .prefix_5{padding-left:200px}.container_24 .prefix_6{padding-left:240px}.container_24 .prefix_7{padding-left:280px}.container_24 .prefix_8{padding-left:320px}.container_24 .prefix_9{padding-left:360px}.container_24 .prefix_10{padding-left:400px}.container_24 .prefix_11{padding-left:440px}.container_24 .prefix_12{padding-left:480px}.container_24 .prefix_13{padding-left:520px}.container_24 .prefix_14{padding-left:560px}.container_24 .prefix_15{padding-left:600px}.container_24 .prefix_16{padding-left:640px}.container_24 .prefix_17{padding-left:680px}.container_24 .prefix_18{padding-left:720px}.container_24 .prefix_19{padding-left:760px}.container_24 .prefix_20{padding-left:800px}.container_24 .prefix_21{padding-left:840px}.container_24 .prefix_22{padding-left:880px}.container_24 .prefix_23{padding-left:920px}.container_24 .suffix_1{padding-right:40px}.container_24 .suffix_2{padding-right:80px}.container_24 .suffix_3{padding-right:120px}.container_24 .suffix_4{padding-right:160px}.container_24 .suffix_5{padding-right:200px}.container_24 .suffix_6{padding-right:240px}.container_24 .suffix_7{padding-right:280px}.container_24 .suffix_8{padding-right:320px}.container_24 .suffix_9{padding-right:360px}.container_24 .suffix_10{padding-right:400px}.container_24 .suffix_11{padding-right:440px}.container_24 .suffix_12{padding-right:480px}.container_24 .suffix_13{padding-right:520px}.container_24 .suffix_14{padding-right:560px}.container_24 .suffix_15{padding-right:600px}.container_24 .suffix_16{padding-right:640px}.container_24 .suffix_17{padding-right:680px}.container_24 .suffix_18{padding-right:720px}.container_24 .suffix_19{padding-right:760px}.container_24 .suffix_20{padding-right:800px}.container_24 .suffix_21{padding-right:840px}.container_24 .suffix_22{padding-right:880px}.container_24 .suffix_23{padding-right:920px}.container_24 .push_1{left:40px}.container_24 .push_2{left:80px}.container_24 .push_3{left:120px}.container_24 .push_4{left:160px}.container_24 .push_5{left:200px}.container_24 .push_6{left:240px}.container_24 .push_7{left:280px}.container_24 .push_8{left:320px}.container_24 .push_9{left:360px}.container_24 .push_10{left:400px}.container_24 .push_11{left:440px}.container_24 .push_12{left:480px}.container_24 .push_13{left:520px}.container_24 .push_14{left:560px}.container_24 .push_15{left:600px}.container_24 .push_16{left:640px}.container_24 .push_17{left:680px}.container_24 .push_18{left:720px}.container_24 .push_19{left:760px}.container_24 .push_20{left:800px}.container_24 .push_21{left:840px}.container_24 .push_22{left:880px}.container_24 .push_23{left:920px}.container_24 .pull_1{left:-40px}.container_24 .pull_2{left:-80px}.container_24 .pull_3{left:-120px}.container_24 .pull_4{left:-160px}.container_24 .pull_5{left:-200px}.container_24 .pull_6{left:-240px}.container_24 .pull_7{left:-280px}.container_24 .pull_8{left:-320px}.container_24 .pull_9{left:-360px}.container_24 .pull_10{left:-400px}.container_24 .pull_11{left:-440px}.container_24 .pull_12{left:-480px}.container_24 .pull_13{left:-520px}.container_24 .pull_14{left:-560px}.container_24 .pull_15{left:-600px}.container_24 .pull_16{left:-640px}.container_24 .pull_17{left:-680px}.container_24 .pull_18{left:-720px}.container_24 .pull_19{left:-760px}.container_24 .pull_20{left:-800px}.container_24 .pull_21{left:-840px}.container_24 .pull_22{left:-880px}.container_24 .pull_23{left:-920px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:after{clear:both;content:' ';display:block;font-size:0;line-height:0;visibility:hidden;width:0;height:0}* html .clearfix,*:first-child+html .clearfix{zoom:1} \ No newline at end of file diff --git a/pages/static/css/960gs/reset.css b/pages/static/css/960gs/reset.css new file mode 100644 index 0000000..99a0211 --- /dev/null +++ b/pages/static/css/960gs/reset.css @@ -0,0 +1 @@ +html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0} \ No newline at end of file diff --git a/pages/static/css/960gs/text.css b/pages/static/css/960gs/text.css new file mode 100644 index 0000000..f37d174 --- /dev/null +++ b/pages/static/css/960gs/text.css @@ -0,0 +1 @@ +body{font:13px/1.5 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif}a:focus{outline:1px dotted}hr{border:0 #ccc solid;border-top-width:1px;clear:both;height:0}h1{font-size:25px}h2{font-size:23px}h3{font-size:21px}h4{font-size:19px}h5{font-size:17px}h6{font-size:15px}ol{list-style:decimal}ul{list-style:disc}li{margin-left:30px}p,dl,hr,h1,h2,h3,h4,h5,h6,ol,ul,pre,table,address,fieldset{margin-bottom:20px} \ No newline at end of file diff --git a/pages/static/css/pygments.css b/pages/static/css/pygments.css new file mode 100644 index 0000000..e89794f --- /dev/null +++ b/pages/static/css/pygments.css @@ -0,0 +1,62 @@ +code .hll { background-color: #ffffcc } +code { background: #ffffff; } +code .c { color: #808080 } /* Comment */ +code .err { color: #F00000; background-color: #F0A0A0 } /* Error */ +code .k { color: #008000; font-weight: bold } /* Keyword */ +code .o { color: #303030 } /* Operator */ +code .cm { color: #808080 } /* Comment.Multiline */ +code .cp { color: #507090 } /* Comment.Preproc */ +code .c1 { color: #808080 } /* Comment.Single */ +code .cs { color: #cc0000; font-weight: bold } /* Comment.Special */ +code .gd { color: #A00000 } /* Generic.Deleted */ +code .ge { font-style: italic } /* Generic.Emph */ +code .gr { color: #FF0000 } /* Generic.Error */ +code .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +code .gi { color: #00A000 } /* Generic.Inserted */ +code .go { color: #808080 } /* Generic.Output */ +code .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +code .gs { font-weight: bold } /* Generic.Strong */ +code .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +code .gt { color: #0040D0 } /* Generic.Traceback */ +code .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ +code .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ +code .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ +code .kp { color: #003080; font-weight: bold } /* Keyword.Pseudo */ +code .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ +code .kt { color: #303090; font-weight: bold } /* Keyword.Type */ +code .m { color: #6000E0; font-weight: bold } /* Literal.Number */ +code .s { background-color: #fff0f0 } /* Literal.String */ +code .na { color: #0000C0 } /* Name.Attribute */ +code .nb { color: #007020 } /* Name.Builtin */ +code .nc { color: #B00060; font-weight: bold } /* Name.Class */ +code .no { color: #003060; font-weight: bold } /* Name.Constant */ +code .nd { color: #505050; font-weight: bold } /* Name.Decorator */ +code .ni { color: #800000; font-weight: bold } /* Name.Entity */ +code .ne { color: #F00000; font-weight: bold } /* Name.Exception */ +code .nf { color: #0060B0; font-weight: bold } /* Name.Function */ +code .nl { color: #907000; font-weight: bold } /* Name.Label */ +code .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +code .nt { color: #007000 } /* Name.Tag */ +code .nv { color: #906030 } /* Name.Variable */ +code .ow { color: #000000; font-weight: bold } /* Operator.Word */ +code .w { color: #bbbbbb } /* Text.Whitespace */ +code .mf { color: #6000E0; font-weight: bold } /* Literal.Number.Float */ +code .mh { color: #005080; font-weight: bold } /* Literal.Number.Hex */ +code .mi { color: #0000D0; font-weight: bold } /* Literal.Number.Integer */ +code .mo { color: #4000E0; font-weight: bold } /* Literal.Number.Oct */ +code .sb { background-color: #fff0f0 } /* Literal.String.Backtick */ +code .sc { color: #0040D0 } /* Literal.String.Char */ +code .sd { color: #D04020 } /* Literal.String.Doc */ +code .s2 { background-color: #fff0f0 } /* Literal.String.Double */ +code .se { color: #606060; font-weight: bold; background-color: #fff0f0 } /* Literal.String.Escape */ +code .sh { background-color: #fff0f0 } /* Literal.String.Heredoc */ +code .si { background-color: #e0e0e0 } /* Literal.String.Interpol */ +code .sx { color: #D02000; background-color: #fff0f0 } /* Literal.String.Other */ +code .sr { color: #000000; background-color: #fff0ff } /* Literal.String.Regex */ +code .s1 { background-color: #fff0f0 } /* Literal.String.Single */ +code .ss { color: #A06000 } /* Literal.String.Symbol */ +code .bp { color: #007020 } /* Name.Builtin.Pseudo */ +code .vc { color: #306090 } /* Name.Variable.Class */ +code .vg { color: #d07000; font-weight: bold } /* Name.Variable.Global */ +code .vi { color: #3030B0 } /* Name.Variable.Instance */ +code .il { color: #0000D0; font-weight: bold } /* Literal.Number.Integer.Long */ diff --git a/pages/static/css/screen.css b/pages/static/css/screen.css new file mode 100644 index 0000000..5a08a87 --- /dev/null +++ b/pages/static/css/screen.css @@ -0,0 +1,152 @@ +@import url("960gs/960.css"); + +/* http://www.levien.com/type/myfonts/inconsolata.html */ +@font-face +{ + font-family: "inconsolata"; + src: url("../fonts/inconsolata.otf"); +} + +@font-face +{ + font-family: "droid sans"; + src: url("../fonts/droidsans.ttf"); +} +@font-face +{ + font-family: "droid sans bold"; + src: url("../fonts/droidsans-bold.ttf"); +} +body +{ + color:#333; + font-family: helvetica, arial, sans-serif; + font-size:87.5%; /* 16px * 0.875 = 14px */ + line-height: 137.5%; /* 16px * 1.375 = 22px */ +} +a +{ + color: #55862e; + text-decoration: none; + border-bottom: solid 1px #3030a2; +} +a:hover +{ + text-decoration: none; + border-bottom: 0; +} + +a:visited{ + color: #777; + border-bottom: solid 1px #ccc; +} + +h1, h2, h3, h4, h5, h6 +{ + color: #000; +} +h1, h2, h3 +{ + font-family: "droid sans", helvetica, arial, sans-serif; +} + +h4, h5, h6 +{ + font-family: "droid sans bold", helvetica, arial, sans-serif; +} + +h1 +{ + font-size: 150.0%; +} +h2 +{ + font-size: 137.5%; +} +h3 +{ + font-size: 125.0%; +} +h4 +{ + font-size: 112.5%; +} +h5, h6{ + font-size: 100%; +} + +pre,code +{ + font-family: "inconsolata", monospace; + /* font-size: 1.142em; */ +} + +pre { + border-left: 2px solid #55862e; + padding-left: 1em; +} + +.noul +{ + border-bottom: 0; + text-decoration: none; +} + +img { + border: 0; +} + +img.screenshot { + padding-left: 35px; + padding-right: 10px; +} + +header, footer +{ + display: block; + padding: .1em 0; +} + + +header h1{ + font-size:1.142em; +} + +header h1 a, header h1 a:visited +{ + color:#55862e; + text-decoration: none; + border-bottom: none; +} + +footer{ + margin-top:1em; + border-top: solid 3px #ccc; +} + +footer img { + vertical-align: middle; + height: 59px; +} +.twtr-widget a, +.twtr-widget a:visited, +footer a, +footer a:visited { + border-bottom: none; +} + +ul.posts +{ + list-style-type: none; +} + +nav { + margin-bottom: 25px; +} + +table { border-collapse: collapse; width: 100% } +table th, table td { border: 1px solid #aaa; padding: .2em; } +table td { white-space:nowrap; } +#standalone-downloads td { font-family: monospace; } +#standalone-downloads td.sha { font-size: 0.8em; } +#standalone-downloads .rc td { background-color: #ddd; } diff --git a/pages/static/images/jasmine_logo.png b/pages/static/images/jasmine_logo.png new file mode 100644 index 0000000..9ffc5a0 Binary files /dev/null and b/pages/static/images/jasmine_logo.png differ diff --git a/pages/static/images/pivotal_logo.gif b/pages/static/images/pivotal_logo.gif new file mode 100644 index 0000000..9306043 Binary files /dev/null and b/pages/static/images/pivotal_logo.gif differ