bookends 2.3.7 → 2.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -0
- data/lib/bookends/cli.rb +1 -5
- data/lib/bookends/file_actions.rb +1 -1
- data/lib/bookends/jekyll_handler.rb +4 -4
- data/lib/bookends/rails_handler.rb +16 -7
- data/lib/bookends/templates/bookends_helper.rb +63 -0
- data/lib/bookends/templates/bookends_helper_spec.rb +57 -0
- data/lib/bookends/templates/glostick_icons/dashboard.svg +19 -0
- data/lib/bookends/templates/glostick_icons/databases.svg +28 -0
- data/lib/bookends/templates/glostick_icons/dataclips.svg +11 -0
- data/lib/bookends/templates/glostick_icons/docs.svg +16 -0
- data/lib/bookends/templates/glostick_icons/elements.svg +39 -0
- data/lib/bookends/templates/glostick_icons/heroku-logo.svg +23 -0
- data/lib/bookends/templates/glostick_icons/navigator-purple.svg +21 -0
- data/lib/bookends/templates/glostick_icons/navigator.svg +21 -0
- data/lib/bookends/templates/glostick_icons/settings.svg +22 -0
- data/lib/bookends/templates/glostick_icons/signout.svg +15 -0
- data/lib/bookends/templates/glostick_icons/support.svg +27 -0
- data/lib/bookends/templates/icons/addons.svg +39 -0
- data/lib/bookends/templates/icons/buildpacks.svg +33 -0
- data/lib/bookends/templates/icons/buttons.svg +24 -0
- data/lib/bookends/templates/icons/connect.svg +23 -0
- data/lib/bookends/templates/icons/enterprise.svg +37 -0
- data/lib/bookends/templates/icons/platform.svg +21 -0
- data/lib/bookends/templates/icons/postgres.svg +28 -0
- data/lib/bookends/templates/icons/redis.svg +23 -0
- data/lib/bookends/templates/js/header-turbolinks.js +18 -0
- data/lib/bookends/templates/js/header.js +17 -0
- data/lib/bookends/templates/js/md5.js +194 -0
- data/lib/bookends/templates/{newsletter-init-turbolinks.js → js/newsletter-init-turbolinks.js} +0 -0
- data/lib/bookends/templates/{newsletter-init.js → js/newsletter-init.js} +0 -0
- data/lib/bookends/templates/{newsletter.js → js/newsletter.js} +0 -0
- data/lib/bookends/templates/rails_header.html.erb +43 -12
- data/lib/bookends/templates/scss/bookends.scss +2 -0
- data/lib/bookends/templates/{footer.scss → scss/footer.scss} +0 -0
- data/lib/bookends/templates/scss/glostick.scss +220 -0
- data/lib/bookends/version.rb +1 -1
- metadata +32 -6
@@ -0,0 +1,39 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<g id="Page-1_2_" sketch:type="MSPage">
|
17
|
+
<g transform="translate(2.000000, 2.000000)" sketch:type="MSLayerGroup">
|
18
|
+
<rect id="Rectangle-8-Copy" x="4" y="5" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
|
19
|
+
</rect>
|
20
|
+
<rect id="Rectangle-8" x="4" y="4" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
|
21
|
+
</rect>
|
22
|
+
<rect id="Rectangle-9-Copy" x="8" y="7" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
|
23
|
+
</rect>
|
24
|
+
<rect id="Rectangle-9" x="8" y="6" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
|
25
|
+
</rect>
|
26
|
+
<rect id="Rectangle-10-Copy" x="12" y="5" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
|
27
|
+
</rect>
|
28
|
+
<rect id="Rectangle-10" x="12" y="4" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
|
29
|
+
</rect>
|
30
|
+
<rect id="Rectangle-11-Copy" x="8" y="3" sketch:type="MSShapeGroup" class="st3" width="3" height="1">
|
31
|
+
</rect>
|
32
|
+
<rect id="Rectangle-11" x="8" y="2" sketch:type="MSShapeGroup" class="st2" width="3" height="1">
|
33
|
+
</rect>
|
34
|
+
<path id="Stroke-9" sketch:type="MSShapeGroup" class="st4" d="M1.9,3.8L8.6,0C9-0.1,10-0.1,10.4,0L17,3.8c0.5,0.4,1,1.3,1,1.9
|
35
|
+
v7.6c0,0.6-0.5,1.5-0.9,1.9L10.4,19C10,19.1,9,19.1,8.6,19L2,15.2c-0.5-0.4-1-1.3-1-1.9V5.7C1,5.1,1.5,4.2,1.9,3.8L1.9,3.8z"/>
|
36
|
+
<path id="Stroke-11_1_" sketch:type="MSShapeGroup" class="st5" d="M18,9l-7,4c-0.8,0.1-2.2,0.1-3,0L1,9"/>
|
37
|
+
</g>
|
38
|
+
</g>
|
39
|
+
</svg>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<g>
|
17
|
+
<g>
|
18
|
+
<path class="st1" d="M7.1,4l3.9-2.2c0.3-0.2,0.7-0.2,1.1,0L15.9,4c0.3,0.2,0.5,0.6,0.5,0.9v4.5c0,0.4-0.2,0.7-0.5,0.9L12,12.6
|
19
|
+
c-0.3,0.2-0.7,0.2-1.1,0l-3.9-2.2c-0.3-0.2-0.5-0.6-0.5-0.9V5C6.5,4.6,6.7,4.2,7.1,4z"/>
|
20
|
+
<path class="st6" d="M14.1,5.9l-2.4,1.4c-0.2,0.1-0.4,0.1-0.6,0L8.8,5.9"/>
|
21
|
+
</g>
|
22
|
+
<g>
|
23
|
+
<path class="st1" d="M2.1,12.6L6,10.4c0.3-0.2,0.7-0.2,1.1,0l3.9,2.2c0.3,0.2,0.5,0.6,0.5,0.9V18c0,0.4-0.2,0.7-0.5,0.9l-3.9,2.2
|
24
|
+
c-0.3,0.2-0.7,0.2-1.1,0L2.1,19c-0.3-0.2-0.5-0.6-0.5-0.9v-4.5C1.6,13.2,1.8,12.8,2.1,12.6z"/>
|
25
|
+
<path class="st6" d="M9.2,14.5l-2.4,1.4c-0.2,0.1-0.4,0.1-0.6,0l-2.4-1.4"/>
|
26
|
+
</g>
|
27
|
+
<g>
|
28
|
+
<path class="st1" d="M12.1,12.6l3.9-2.2c0.3-0.2,0.7-0.2,1.1,0l3.9,2.2c0.3,0.2,0.5,0.6,0.5,0.9V18c0,0.4-0.2,0.7-0.5,0.9L17,21.2
|
29
|
+
c-0.3,0.2-0.7,0.2-1.1,0L12.1,19c-0.3-0.2-0.5-0.6-0.5-0.9v-4.5C11.5,13.2,11.7,12.8,12.1,12.6z"/>
|
30
|
+
<path class="st6" d="M19.1,14.5l-2.4,1.4c-0.2,0.1-0.4,0.1-0.6,0l-2.4-1.4"/>
|
31
|
+
</g>
|
32
|
+
</g>
|
33
|
+
</svg>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<g>
|
17
|
+
<path class="st1" d="M14.7,19l4-2.3c0.9-0.5,1.4-1.4,1.4-2.4V7.6c0-1-0.5-1.9-1.4-2.4l-5.8-3.3c-0.9-0.5-1.9-0.5-2.8,0L4.3,5.2
|
18
|
+
C3.5,5.7,3,6.6,3,7.6v6.7c0,1,0.5,1.9,1.4,2.4l4,2.3"/>
|
19
|
+
<g>
|
20
|
+
<line class="st1" x1="11.5" y1="21.5" x2="11.5" y2="8.7"/>
|
21
|
+
<polyline class="st1" points="7.7,12.5 11.5,8.7 15.3,12.5 "/>
|
22
|
+
</g>
|
23
|
+
</g>
|
24
|
+
</svg>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<polyline class="st7" points="5.4,8.2 11.5,11.5 11.5,18.8 "/>
|
17
|
+
<line class="st7" x1="11.5" y1="11.5" x2="17.7" y2="8"/>
|
18
|
+
<path class="st1" d="M3.9,6l6.6-3.8c0.6-0.4,1.4-0.4,2,0L19.1,6c0.6,0.4,1,1,1,1.7v7.6c0,0.7-0.4,1.4-1,1.7l-6.6,3.8
|
19
|
+
c-0.6,0.4-1.4,0.4-2,0L3.9,17c-0.6-0.4-1-1-1-1.7V7.7C2.9,7,3.3,6.3,3.9,6z"/>
|
20
|
+
<polygon class="st6" points="13.4,12.6 15.5,11.4 17.6,12.6 17.6,15 15.5,16.2 13.4,15 "/>
|
21
|
+
<polygon class="st6" points="5.4,12.5 7.5,11.3 9.5,12.5 9.5,14.9 7.5,16.1 5.4,14.9 "/>
|
22
|
+
<polygon class="st6" points="9.4,5.7 11.5,4.5 13.6,5.7 13.6,8.1 11.5,9.3 9.4,8.1 "/>
|
23
|
+
</svg>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<g>
|
17
|
+
<g>
|
18
|
+
<path class="st1" d="M7.1,5.8L4.7,7.1C4,7.5,3.6,8.3,3.6,9.1v6.5c0,0.8,0.4,1.6,1.1,2l5.6,3.3c0.7,0.4,1.6,0.4,2.3,0l5.6-3.3
|
19
|
+
c0.7-0.4,1.1-1.2,1.1-2V9.1c0-0.8-0.4-1.6-1.1-2l-2.5-1.4"/>
|
20
|
+
</g>
|
21
|
+
</g>
|
22
|
+
<g>
|
23
|
+
<polyline class="st6" points="9.2,4.1 11.5,2.8 13.8,4.1 13.8,10.2 16.1,11.6 16.1,15.9 "/>
|
24
|
+
<polyline class="st6" points="9.2,4.1 11.5,5.4 13.8,4.1 "/>
|
25
|
+
<line class="st6" x1="11.5" y1="2.8" x2="11.5" y2="0.9"/>
|
26
|
+
<line class="st6" x1="11.5" y1="5.4" x2="11.5" y2="18.3"/>
|
27
|
+
<line class="st6" x1="13.8" y1="10.2" x2="13.8" y2="13.6"/>
|
28
|
+
<line class="st6" x1="16.1" y1="18.6" x2="16.1" y2="18.5"/>
|
29
|
+
<circle class="st6" cx="13.8" cy="14.3" r="0.7"/>
|
30
|
+
<polyline class="st6" points="18.4,17.3 18.4,17.2 16.1,15.9 13.8,17.2 13.8,19.9 "/>
|
31
|
+
<polyline class="st6" points="9.2,4.1 9.2,10.2 6.9,11.6 6.9,15.9 "/>
|
32
|
+
<line class="st6" x1="9.2" y1="10.2" x2="9.2" y2="13.6"/>
|
33
|
+
<line class="st6" x1="6.9" y1="18.6" x2="6.9" y2="18.5"/>
|
34
|
+
<circle class="st6" cx="9.2" cy="14.3" r="0.7"/>
|
35
|
+
<polyline class="st6" points="4.6,17.3 4.6,17.2 6.9,15.9 9.2,17.2 9.2,19.9 "/>
|
36
|
+
</g>
|
37
|
+
</svg>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<g>
|
17
|
+
<path class="st1" d="M3.9,6l6.6-3.8c0.6-0.4,1.4-0.4,2,0L19.1,6c0.6,0.4,1,1,1,1.7v7.6c0,0.7-0.4,1.4-1,1.7l-6.6,3.8
|
18
|
+
c-0.6,0.4-1.4,0.4-2,0L3.9,17c-0.6-0.4-1-1-1-1.7V7.7C2.9,7,3.3,6.3,3.9,6z"/>
|
19
|
+
<polygon class="st1" points="8.6,9.8 11.5,8.2 14.4,9.8 14.4,13.2 11.5,14.8 8.6,13.2 "/>
|
20
|
+
</g>
|
21
|
+
</svg>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<g id="Page-1" sketch:type="MSPage">
|
17
|
+
<g id="heroku-data-postgres" transform="translate(-7.000000, -10.000000)" sketch:type="MSLayerGroup">
|
18
|
+
<g>
|
19
|
+
<path class="st2" d="M17.8,12.6c-3.8-0.1-9.7,0.1-9.7,3.6c0,3.1,4.2,8,9.7,7.3L17.8,12.6C17.8,12.6,17.8,12.6,17.8,12.6z"/>
|
20
|
+
</g>
|
21
|
+
<g id="Stroke-4">
|
22
|
+
<path class="st2" d="M18.6,30.5c-0.7,0-1.3-0.3-1.8-0.8c-0.4-0.4-0.4-1,0-1.4c0.4-0.4,1-0.4,1.4,0c0.2,0.2,0.5,0.2,0.6,0.1
|
23
|
+
c0.1,0,0.3-0.2,0.3-0.5l0-15.3c3.8-0.1,9.7,0.1,9.7,3.6c0,2.7-3.2,6.8-7.7,7.3l0,4.3c0,0.9-0.4,1.7-1.1,2.2
|
24
|
+
C19.6,30.3,19.1,30.5,18.6,30.5z M21.2,14.6v6.9c3.3-0.5,5.7-3.6,5.7-5.3C26.8,15.5,25.3,14.7,21.2,14.6z"/>
|
25
|
+
</g>
|
26
|
+
</g>
|
27
|
+
</g>
|
28
|
+
</svg>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
3
|
+
<svg version="1.1" id="Layer_1" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"
|
4
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 23 23"
|
5
|
+
style="enable-background:new 0 0 23 23;" xml:space="preserve">
|
6
|
+
<style type="text/css">
|
7
|
+
.st0{fill:none;stroke:#876AAA;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
8
|
+
.st1{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
9
|
+
.st2{fill:#876AAA;}
|
10
|
+
.st3{opacity:0.3357;fill:#876AAA;enable-background:new ;}
|
11
|
+
.st4{fill:none;stroke:#876AAA;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
|
12
|
+
.st5{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;}
|
13
|
+
.st6{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
14
|
+
.st7{fill:none;stroke:#876AAA;stroke-linecap:round;stroke-miterlimit:10;}
|
15
|
+
</style>
|
16
|
+
<g>
|
17
|
+
<path class="st2" d="M10.8,1.7c-4-0.5-7,2.1-7,6c0,2.5,1.3,4.5,3.3,5.4l-4,6.8c-0.2,0.3-0.2,0.7,0,1c0.2,0.3,0.5,0.5,0.9,0.5h6.9
|
18
|
+
v-8.7v-2.1L10.8,1.7z"/>
|
19
|
+
<path class="st2" d="M19.9,20l-3.6-7.2c1.8-1.1,3-3,3-5.2c0-3.3-2.7-6.1-6.1-6.1c-0.3,0-0.5,0-0.8,0.1v2c0.3,0,0.5-0.1,0.8-0.1
|
20
|
+
c2.2,0,4.1,1.8,4.1,4.1s-1.8,4.1-4.1,4.1c-0.3,0-0.5,0-0.8-0.1v2c0.3,0,0.5,0.1,0.8,0.1c0.4,0,0.8,0,1.2-0.1l3.7,7.3
|
21
|
+
c0.2,0.3,0.5,0.5,0.9,0.5c0.2,0,0.3,0,0.5-0.1C20,21.1,20.2,20.5,19.9,20z"/>
|
22
|
+
</g>
|
23
|
+
</svg>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
//= require md5
|
2
|
+
var Heroku = Heroku || {};
|
3
|
+
|
4
|
+
$(document).on("ready page:load", function() {
|
5
|
+
var $avatars,
|
6
|
+
defaultAvatarURL,
|
7
|
+
email,
|
8
|
+
gravatarURL;
|
9
|
+
|
10
|
+
email = $.trim($('.glostick__account-details__email').text());
|
11
|
+
$avatars = $('.js-glostick-avatar');
|
12
|
+
defaultAvatarURL = 'https://www.herokucdn.com/images/ninja-avatar-48x48.png';
|
13
|
+
gravatarURL = "https://gravatar.com/avatar/" + (MD5(email)) + "?s=48&d=" + defaultAvatarURL;
|
14
|
+
|
15
|
+
return $avatars.each(function(i, e) {
|
16
|
+
return $(e).attr('src', gravatarURL);
|
17
|
+
});
|
18
|
+
});
|
@@ -0,0 +1,17 @@
|
|
1
|
+
//= require md5
|
2
|
+
|
3
|
+
$(function() {
|
4
|
+
var $avatars,
|
5
|
+
defaultAvatarURL,
|
6
|
+
email,
|
7
|
+
gravatarURL;
|
8
|
+
|
9
|
+
email = $.trim($('.glostick__account-details__email').text());
|
10
|
+
$avatars = $('.js-glostick-avatar');
|
11
|
+
defaultAvatarURL = 'https://www.herokucdn.com/images/ninja-avatar-48x48.png';
|
12
|
+
gravatarURL = 'https://gravatar.com/avatar/' + (MD5(email)) + '?s=48&d=' + defaultAvatarURL;
|
13
|
+
|
14
|
+
return $avatars.each(function(i, e) {
|
15
|
+
return $(e).attr('src', gravatarURL);
|
16
|
+
});
|
17
|
+
});
|
@@ -0,0 +1,194 @@
|
|
1
|
+
var MD5 = function(string) {
|
2
|
+
// MD5 HELPER FUNCTIONS
|
3
|
+
function safe_add(x, y) {
|
4
|
+
var lsw = (x & 0xFFFF) + (y & 0xFFFF),
|
5
|
+
msw = (x >> 16) + (y >> 16) + (lsw >> 16);
|
6
|
+
return (msw << 16) | (lsw & 0xFFFF);
|
7
|
+
}
|
8
|
+
|
9
|
+
/*
|
10
|
+
* Bitwise rotate a 32-bit number to the left.
|
11
|
+
*/
|
12
|
+
function bit_rol(num, cnt) {
|
13
|
+
return (num << cnt) | (num >>> (32 - cnt));
|
14
|
+
}
|
15
|
+
|
16
|
+
/*
|
17
|
+
* These functions implement the four basic operations the algorithm uses.
|
18
|
+
*/
|
19
|
+
function md5_cmn(q, a, b, x, s, t) {
|
20
|
+
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b);
|
21
|
+
}
|
22
|
+
function md5_ff(a, b, c, d, x, s, t) {
|
23
|
+
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
|
24
|
+
}
|
25
|
+
function md5_gg(a, b, c, d, x, s, t) {
|
26
|
+
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
|
27
|
+
}
|
28
|
+
function md5_hh(a, b, c, d, x, s, t) {
|
29
|
+
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
|
30
|
+
}
|
31
|
+
function md5_ii(a, b, c, d, x, s, t) {
|
32
|
+
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
|
33
|
+
}
|
34
|
+
|
35
|
+
/*
|
36
|
+
* Calculate the MD5 of an array of little-endian words, and a bit length.
|
37
|
+
*/
|
38
|
+
function binl_md5(x, len) {
|
39
|
+
/* append padding */
|
40
|
+
x[len >> 5] |= 0x80 << ((len) % 32);
|
41
|
+
x[(((len + 64) >>> 9) << 4) + 14] = len;
|
42
|
+
|
43
|
+
var i, olda, oldb, oldc, oldd,
|
44
|
+
a = 1732584193,
|
45
|
+
b = -271733879,
|
46
|
+
c = -1732584194,
|
47
|
+
d = 271733878;
|
48
|
+
|
49
|
+
for (i = 0; i < x.length; i += 16) {
|
50
|
+
olda = a;
|
51
|
+
oldb = b;
|
52
|
+
oldc = c;
|
53
|
+
oldd = d;
|
54
|
+
|
55
|
+
a = md5_ff(a, b, c, d, x[i], 7, -680876936);
|
56
|
+
d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
|
57
|
+
c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
|
58
|
+
b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
|
59
|
+
a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
|
60
|
+
d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
|
61
|
+
c = md5_ff(c, d, a, b, x[i + 6], 17, -1473231341);
|
62
|
+
b = md5_ff(b, c, d, a, x[i + 7], 22, -45705983);
|
63
|
+
a = md5_ff(a, b, c, d, x[i + 8], 7, 1770035416);
|
64
|
+
d = md5_ff(d, a, b, c, x[i + 9], 12, -1958414417);
|
65
|
+
c = md5_ff(c, d, a, b, x[i + 10], 17, -42063);
|
66
|
+
b = md5_ff(b, c, d, a, x[i + 11], 22, -1990404162);
|
67
|
+
a = md5_ff(a, b, c, d, x[i + 12], 7, 1804603682);
|
68
|
+
d = md5_ff(d, a, b, c, x[i + 13], 12, -40341101);
|
69
|
+
c = md5_ff(c, d, a, b, x[i + 14], 17, -1502002290);
|
70
|
+
b = md5_ff(b, c, d, a, x[i + 15], 22, 1236535329);
|
71
|
+
|
72
|
+
a = md5_gg(a, b, c, d, x[i + 1], 5, -165796510);
|
73
|
+
d = md5_gg(d, a, b, c, x[i + 6], 9, -1069501632);
|
74
|
+
c = md5_gg(c, d, a, b, x[i + 11], 14, 643717713);
|
75
|
+
b = md5_gg(b, c, d, a, x[i], 20, -373897302);
|
76
|
+
a = md5_gg(a, b, c, d, x[i + 5], 5, -701558691);
|
77
|
+
d = md5_gg(d, a, b, c, x[i + 10], 9, 38016083);
|
78
|
+
c = md5_gg(c, d, a, b, x[i + 15], 14, -660478335);
|
79
|
+
b = md5_gg(b, c, d, a, x[i + 4], 20, -405537848);
|
80
|
+
a = md5_gg(a, b, c, d, x[i + 9], 5, 568446438);
|
81
|
+
d = md5_gg(d, a, b, c, x[i + 14], 9, -1019803690);
|
82
|
+
c = md5_gg(c, d, a, b, x[i + 3], 14, -187363961);
|
83
|
+
b = md5_gg(b, c, d, a, x[i + 8], 20, 1163531501);
|
84
|
+
a = md5_gg(a, b, c, d, x[i + 13], 5, -1444681467);
|
85
|
+
d = md5_gg(d, a, b, c, x[i + 2], 9, -51403784);
|
86
|
+
c = md5_gg(c, d, a, b, x[i + 7], 14, 1735328473);
|
87
|
+
b = md5_gg(b, c, d, a, x[i + 12], 20, -1926607734);
|
88
|
+
|
89
|
+
a = md5_hh(a, b, c, d, x[i + 5], 4, -378558);
|
90
|
+
d = md5_hh(d, a, b, c, x[i + 8], 11, -2022574463);
|
91
|
+
c = md5_hh(c, d, a, b, x[i + 11], 16, 1839030562);
|
92
|
+
b = md5_hh(b, c, d, a, x[i + 14], 23, -35309556);
|
93
|
+
a = md5_hh(a, b, c, d, x[i + 1], 4, -1530992060);
|
94
|
+
d = md5_hh(d, a, b, c, x[i + 4], 11, 1272893353);
|
95
|
+
c = md5_hh(c, d, a, b, x[i + 7], 16, -155497632);
|
96
|
+
b = md5_hh(b, c, d, a, x[i + 10], 23, -1094730640);
|
97
|
+
a = md5_hh(a, b, c, d, x[i + 13], 4, 681279174);
|
98
|
+
d = md5_hh(d, a, b, c, x[i], 11, -358537222);
|
99
|
+
c = md5_hh(c, d, a, b, x[i + 3], 16, -722521979);
|
100
|
+
b = md5_hh(b, c, d, a, x[i + 6], 23, 76029189);
|
101
|
+
a = md5_hh(a, b, c, d, x[i + 9], 4, -640364487);
|
102
|
+
d = md5_hh(d, a, b, c, x[i + 12], 11, -421815835);
|
103
|
+
c = md5_hh(c, d, a, b, x[i + 15], 16, 530742520);
|
104
|
+
b = md5_hh(b, c, d, a, x[i + 2], 23, -995338651);
|
105
|
+
|
106
|
+
a = md5_ii(a, b, c, d, x[i], 6, -198630844);
|
107
|
+
d = md5_ii(d, a, b, c, x[i + 7], 10, 1126891415);
|
108
|
+
c = md5_ii(c, d, a, b, x[i + 14], 15, -1416354905);
|
109
|
+
b = md5_ii(b, c, d, a, x[i + 5], 21, -57434055);
|
110
|
+
a = md5_ii(a, b, c, d, x[i + 12], 6, 1700485571);
|
111
|
+
d = md5_ii(d, a, b, c, x[i + 3], 10, -1894986606);
|
112
|
+
c = md5_ii(c, d, a, b, x[i + 10], 15, -1051523);
|
113
|
+
b = md5_ii(b, c, d, a, x[i + 1], 21, -2054922799);
|
114
|
+
a = md5_ii(a, b, c, d, x[i + 8], 6, 1873313359);
|
115
|
+
d = md5_ii(d, a, b, c, x[i + 15], 10, -30611744);
|
116
|
+
c = md5_ii(c, d, a, b, x[i + 6], 15, -1560198380);
|
117
|
+
b = md5_ii(b, c, d, a, x[i + 13], 21, 1309151649);
|
118
|
+
a = md5_ii(a, b, c, d, x[i + 4], 6, -145523070);
|
119
|
+
d = md5_ii(d, a, b, c, x[i + 11], 10, -1120210379);
|
120
|
+
c = md5_ii(c, d, a, b, x[i + 2], 15, 718787259);
|
121
|
+
b = md5_ii(b, c, d, a, x[i + 9], 21, -343485551);
|
122
|
+
|
123
|
+
a = safe_add(a, olda);
|
124
|
+
b = safe_add(b, oldb);
|
125
|
+
c = safe_add(c, oldc);
|
126
|
+
d = safe_add(d, oldd);
|
127
|
+
}
|
128
|
+
return [a, b, c, d];
|
129
|
+
}
|
130
|
+
|
131
|
+
/*
|
132
|
+
* Convert an array of little-endian words to a string
|
133
|
+
*/
|
134
|
+
function binl2rstr(input) {
|
135
|
+
var i,
|
136
|
+
output = '';
|
137
|
+
for (i = 0; i < input.length * 32; i += 8) {
|
138
|
+
output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xFF);
|
139
|
+
}
|
140
|
+
return output;
|
141
|
+
}
|
142
|
+
|
143
|
+
/*
|
144
|
+
* Convert a raw string to an array of little-endian words
|
145
|
+
* Characters >255 have their high-byte silently ignored.
|
146
|
+
*/
|
147
|
+
function rstr2binl(input) {
|
148
|
+
var i,
|
149
|
+
output = [];
|
150
|
+
output[(input.length >> 2) - 1] = undefined;
|
151
|
+
for (i = 0; i < output.length; i += 1) {
|
152
|
+
output[i] = 0;
|
153
|
+
}
|
154
|
+
for (i = 0; i < input.length * 8; i += 8) {
|
155
|
+
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xFF) << (i % 32);
|
156
|
+
}
|
157
|
+
return output;
|
158
|
+
}
|
159
|
+
|
160
|
+
/*
|
161
|
+
* Calculate the MD5 of a raw string
|
162
|
+
*/
|
163
|
+
function rstr_md5(s) {
|
164
|
+
return binl2rstr(binl_md5(rstr2binl(s), s.length * 8));
|
165
|
+
}
|
166
|
+
|
167
|
+
/*
|
168
|
+
* Convert a raw string to a hex string
|
169
|
+
*/
|
170
|
+
function rstr2hex(input) {
|
171
|
+
var hex_tab = '0123456789abcdef',
|
172
|
+
output = '',
|
173
|
+
x,
|
174
|
+
i;
|
175
|
+
for (i = 0; i < input.length; i += 1) {
|
176
|
+
x = input.charCodeAt(i);
|
177
|
+
output += hex_tab.charAt((x >>> 4) & 0x0F) +
|
178
|
+
hex_tab.charAt(x & 0x0F);
|
179
|
+
}
|
180
|
+
return output;
|
181
|
+
}
|
182
|
+
|
183
|
+
/*
|
184
|
+
* Encode a string as utf-8
|
185
|
+
*/
|
186
|
+
function raw_md5(s) {
|
187
|
+
return rstr_md5(str2rstr_utf8(s));
|
188
|
+
}
|
189
|
+
function str2rstr_utf8(input) {
|
190
|
+
return unescape(encodeURIComponent(input));
|
191
|
+
}
|
192
|
+
|
193
|
+
return rstr2hex(raw_md5(string));
|
194
|
+
};
|
data/lib/bookends/templates/{newsletter-init-turbolinks.js → js/newsletter-init-turbolinks.js}
RENAMED
File without changes
|
File without changes
|
File without changes
|
@@ -17,19 +17,19 @@
|
|
17
17
|
<li class="has-dropdown">
|
18
18
|
<a href="https://www.heroku.com/products">Products</a>
|
19
19
|
<ul class="dropdown">
|
20
|
-
<li><a class="platform" href="https://www.heroku.com/platform">Heroku Platform</a></li>
|
21
|
-
<li><a class="postgres" href="https://www.heroku.com/postgres">Heroku Postgres</a></li>
|
22
|
-
<li><a class="redis" href="https://www.heroku.com/redis">Heroku Redis</a></li>
|
23
|
-
<li><a class="connect" href="https://www.heroku.com/connect">Heroku Connect</a></li>
|
24
|
-
<li><a class="enterprise" href="https://www.heroku.com/enterprise">Heroku Enterprise</a></li>
|
20
|
+
<li><a class="has-icon platform" href="https://www.heroku.com/platform">Heroku Platform</a></li>
|
21
|
+
<li><a class="has-icon postgres" href="https://www.heroku.com/postgres">Heroku Postgres</a></li>
|
22
|
+
<li><a class="has-icon redis" href="https://www.heroku.com/redis">Heroku Redis</a></li>
|
23
|
+
<li><a class="has-icon connect" href="https://www.heroku.com/connect">Heroku Connect</a></li>
|
24
|
+
<li><a class="has-icon enterprise" href="https://www.heroku.com/enterprise">Heroku Enterprise</a></li>
|
25
25
|
</ul>
|
26
26
|
</li>
|
27
27
|
<li class="has-dropdown">
|
28
28
|
<a href="https://elements.heroku.com">Elements</a>
|
29
29
|
<ul class="dropdown">
|
30
|
-
<li><a class="addons" href="https://elements.heroku.com/addons">Add-ons</a></li>
|
31
|
-
<li><a class="buttons" href="https://elements.heroku.com/buttons">Buttons</a></li>
|
32
|
-
<li><a class="buildpacks" href="https://elements.heroku.com/buildpacks">Buildpacks</a></li>
|
30
|
+
<li><a class="has-icon addons" href="https://elements.heroku.com/addons">Add-ons</a></li>
|
31
|
+
<li><a class="has-icon buttons" href="https://elements.heroku.com/buttons">Buttons</a></li>
|
32
|
+
<li><a class="has-icon buildpacks" href="https://elements.heroku.com/buildpacks">Buildpacks</a></li>
|
33
33
|
</ul>
|
34
34
|
</li>
|
35
35
|
<li><a id="pricing-head" href="https://www.heroku.com/pricing">Pricing</a></li>
|
@@ -83,15 +83,46 @@
|
|
83
83
|
<% end %>
|
84
84
|
|
85
85
|
<% if logged_in? %>
|
86
|
-
<li
|
87
|
-
|
88
|
-
|
86
|
+
<li>
|
87
|
+
<div class="glostick__user">
|
88
|
+
<div class="has-dropdown glostick__menu-icon">
|
89
|
+
<div class="icon icon-navigator-toggle"></div>
|
90
|
+
<div class="dropdown glostick__menu--navigator">
|
91
|
+
<a class="glostick__menu__item glostick__menu__item--dashboard" href="https://dashboard.heroku.com">Dashboard</a>
|
92
|
+
<a class="glostick__menu__item glostick__menu__item--databases" href="https://postgres.heroku.com">Databases</a>
|
93
|
+
<a class="glostick__menu__item glostick__menu__item--dataclips" href="https://dataclips.heroku.com">Dataclips</a>
|
94
|
+
<a class="glostick__menu__item glostick__menu__item--elements" href="https://elements.heroku.com">Elements</a>
|
95
|
+
<a class="glostick__menu__item glostick__menu__item--docs" href="https://devcenter.heroku.com">Documentation</a>
|
96
|
+
<a class="glostick__menu__item glostick__menu__item--support" href="https://support.heroku.com">Support</a>
|
97
|
+
</div>
|
98
|
+
</div>
|
99
|
+
|
100
|
+
|
101
|
+
<div class="has-dropdown glostick__menu-icon glostick__menu-icon--account">
|
102
|
+
<img class="glostick__user__avatar js-glostick-avatar" src="">
|
103
|
+
<a class="mobile-dashboard-link" href="https://dashboard.heroku.com/" title="<%= glostick_user_name %>, <%= glostick_user_email %>"><img class="glostick__user__avatar js-glostick-avatar" src=""></a>
|
104
|
+
<div class="dropdown glostick__menu--account">
|
105
|
+
<a class="glostick__menu__item glostick__menu__item--account-details">
|
106
|
+
<img class="glostick__account-details__avatar js-glostick-avatar" src="">
|
107
|
+
<div class="glostick__account-details__name">
|
108
|
+
<%= glostick_user_name %>
|
109
|
+
</div>
|
110
|
+
<div class="glostick__account-details__email">
|
111
|
+
<%= glostick_user_email %>
|
112
|
+
</div>
|
113
|
+
</a>
|
114
|
+
<a class="glostick__menu__item glostick__menu__item--settings" href="https://dashboard.heroku.com/account">Account settings</a>
|
115
|
+
<a class="glostick__menu__item glostick__menu__item--signout" href="https://dashboard.heroku.com/logout">Sign out</a>
|
116
|
+
</div>
|
117
|
+
</div>
|
118
|
+
|
119
|
+
</div>
|
89
120
|
</li>
|
90
121
|
<% else %>
|
91
122
|
<li class="user">
|
92
123
|
<%= link_to "Log in", login_path %>
|
93
124
|
<span>or</span>
|
94
|
-
<%= signup_link "Sign up", { class: "sign-up highlight", referral: "www-header", campaign_id: "70130000001x9jFAAQ"} %>
|
125
|
+
<%= signup_link "Sign up", { class: "sign-up highlight", referral: "www-header", campaign_id: "70130000001x9jFAAQ" } %>
|
95
126
|
</li>
|
96
127
|
<% end %>
|
97
128
|
</ul>
|
File without changes
|