Skip to content

Commit 80ceab1

Browse files
Docs wide layout (#65)
* - changed default layout to wide mode * - added switcher that will change layout mode and save mode into cookie * - layout mode switcher will be available only for desktop version
1 parent be509ed commit 80ceab1

17 files changed

+8116
-58
lines changed

Gemfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ gem 'wdm', '>= 0.1.0' if Gem.win_platform?
55
gem 'jekyll-admin', group: :jekyll_plugins
66

77
group :development, :test do
8-
gem 'jekyll', '~> 3.7.2'
8+
gem 'jekyll', '~> 3.8.3'
99
gem 'jekyll-redirect-from', '~> 0.13.0'
1010
gem 'jekyll-sitemap', '~> 1.1.1'
1111
gem 'jekyll-feed'

Gemfile.lock

+25-29
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
activesupport (4.2.10)
5-
i18n (~> 0.7)
4+
activesupport (5.2.0)
5+
concurrent-ruby (~> 1.0, >= 1.0.2)
6+
i18n (>= 0.7, < 2)
67
minitest (~> 5.1)
7-
thread_safe (~> 0.3, >= 0.3.4)
88
tzinfo (~> 1.1)
99
addressable (2.5.2)
1010
public_suffix (>= 2.0.2, < 4.0)
11-
autoprefixer-rails (8.0.0)
11+
autoprefixer-rails (9.0.0)
1212
execjs
13-
backports (3.11.1)
13+
backports (3.11.3)
1414
bootstrap (4.0.0)
1515
autoprefixer-rails (>= 6.0.3)
1616
popper_js (>= 1.12.9, < 2)
@@ -20,22 +20,20 @@ GEM
2020
em-websocket (0.5.1)
2121
eventmachine (>= 0.12.9)
2222
http_parser.rb (~> 0.6.0)
23-
eventmachine (1.2.5)
24-
eventmachine (1.2.5-x64-mingw32)
23+
eventmachine (1.2.7-x64-mingw32)
2524
execjs (2.7.0)
26-
faraday (0.14.0)
25+
faraday (0.15.2)
2726
multipart-post (>= 1.2, < 3)
28-
ffi (1.9.21)
29-
ffi (1.9.21-x64-mingw32)
27+
ffi (1.9.25-x64-mingw32)
3028
forwardable-extended (2.6.0)
3129
gemoji (3.0.0)
32-
html-pipeline (2.7.1)
30+
html-pipeline (2.8.3)
3331
activesupport (>= 2)
3432
nokogiri (>= 1.4)
3533
http_parser.rb (0.6.0)
3634
i18n (0.9.5)
3735
concurrent-ruby (~> 1.0)
38-
jekyll (3.7.2)
36+
jekyll (3.8.3)
3937
addressable (~> 2.4)
4038
colorator (~> 1.0)
4139
em-websocket (~> 0.5)
@@ -48,12 +46,12 @@ GEM
4846
pathutil (~> 0.9)
4947
rouge (>= 1.7, < 4)
5048
safe_yaml (~> 1.0)
51-
jekyll-admin (0.7.0)
49+
jekyll-admin (0.8.1)
5250
addressable (~> 2.4)
5351
jekyll (~> 3.3)
5452
sinatra (~> 1.4)
5553
sinatra-contrib (~> 1.4)
56-
jekyll-feed (0.9.3)
54+
jekyll-feed (0.10.0)
5755
jekyll (~> 3.3)
5856
jekyll-github-metadata (2.9.4)
5957
jekyll (~> 3.1)
@@ -66,12 +64,11 @@ GEM
6664
jekyll (~> 3.3)
6765
jekyll-watch (2.0.0)
6866
listen (~> 3.0)
69-
jemoji (0.9.0)
70-
activesupport (~> 4.0, >= 4.2.9)
67+
jemoji (0.10.0)
7168
gemoji (~> 3.0)
7269
html-pipeline (~> 2.2)
7370
jekyll (~> 3.0)
74-
kramdown (1.16.2)
71+
kramdown (1.17.0)
7572
liquid (4.0.0)
7673
listen (3.1.5)
7774
rb-fsevent (~> 0.9, >= 0.9.4)
@@ -82,28 +79,26 @@ GEM
8279
minitest (5.11.3)
8380
multi_json (1.13.1)
8481
multipart-post (2.0.0)
85-
nokogiri (1.8.2)
86-
mini_portile2 (~> 2.3.0)
87-
nokogiri (1.8.2-x64-mingw32)
82+
nokogiri (1.8.4-x64-mingw32)
8883
mini_portile2 (~> 2.3.0)
89-
octokit (4.8.0)
84+
octokit (4.9.0)
9085
sawyer (~> 0.8.0, >= 0.5.3)
9186
pathutil (0.16.1)
9287
forwardable-extended (~> 2.6)
9388
popper_js (1.12.9)
9489
public_suffix (3.0.2)
95-
rack (1.6.8)
96-
rack-protection (1.5.3)
90+
rack (1.6.10)
91+
rack-protection (1.5.5)
9792
rack
98-
rack-test (0.8.2)
93+
rack-test (1.0.0)
9994
rack (>= 1.0, < 3)
100-
rb-fsevent (0.10.2)
95+
rb-fsevent (0.10.3)
10196
rb-inotify (0.9.10)
10297
ffi (>= 0.5.0, < 2)
10398
rouge (3.1.1)
10499
ruby_dep (1.5.0)
105100
safe_yaml (1.0.4)
106-
sass (3.5.5)
101+
sass (3.5.7)
107102
sass-listen (~> 4.0.0)
108103
sass-listen (4.0.0)
109104
rb-fsevent (~> 0.9, >= 0.9.4)
@@ -126,20 +121,21 @@ GEM
126121
tilt (2.0.8)
127122
tzinfo (1.2.5)
128123
thread_safe (~> 0.1)
124+
wdm (0.1.1)
129125

130126
PLATFORMS
131-
ruby
132127
x64-mingw32
133128

134129
DEPENDENCIES
135130
bootstrap (~> 4.0.0)
136-
jekyll (~> 3.7.2)
131+
jekyll (~> 3.8.3)
137132
jekyll-admin
138133
jekyll-feed
139134
jekyll-github-metadata (~> 2.9.4)
140135
jekyll-redirect-from (~> 0.13.0)
141136
jekyll-sitemap (~> 1.1.1)
142137
jemoji
138+
wdm (>= 0.1.0)
143139

144140
BUNDLED WITH
145-
1.16.1
141+
1.16.3

_config.yml

+1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ defaults:
106106
values:
107107
layout: docs
108108
toc: true
109+
wide: true
109110

110111
# Custom variables
111112
repo: "https://github.com/codefresh-io/docs.codefresh.io"

_includes/header.html

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
{% if page.layout == "docs" %} {% endif %}
2424

2525
<link href="https://fonts.googleapis.com/css?family=Lato:300,300i,400,400i,700,700i|Source+Code+Pro:400,500,600" rel="stylesheet">
26+
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.1/css/all.css" integrity="sha384-O8whS3fhG2OnA5Kas0Y9l3cfpmYjapjI0E4theH4iuMD+pLhbf6JI0jIMfYcK3yZ" crossorigin="anonymous">
2627

2728
<link href="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.css" rel="stylesheet">
2829

_includes/scripts.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<script src="{{ site.baseurl }}/assets/js/vendor/clipboard.min.js"></script>
2323
<script src="{{ site.baseurl }}/assets/js/vendor/holder.min.js"></script>
2424
<script src="{{ site.baseurl }}/assets/js/vendor/jquery.smooth-scroll.min.js"></script>
25-
25+
<script src="{{ site.baseurl }}/assets/js/vendor/js.cookie.min.js"></script>
2626

2727
<script src="{{ site.baseurl }}/assets/js/src/application.js"></script>
2828
<script src="{{ site.baseurl }}/assets/js/src/ie-emulation-modes-warning.js"></script>

_layouts/docs.html

+22-3
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,43 @@
1616

1717
{% include docs-navbar.html %}
1818

19-
<div class="container docs-layout">
19+
{% if page.wide %}
20+
<div class="container-fluid docs-layout" data-layout-mode="{% if page.wide == true %}wide{% else %}boxed{% endif%}">
21+
{% else %}
22+
<div class="container docs-layout" data-layout-mode="{% if page.wide == true %}wide{% else %}boxed{% endif%}">
23+
{% endif %}
2024
<div class="row flex-xl-nowrap">
2125
<div class="col-12 col-md-4 col-xl-3 col-xxl-3 bd-sidebar">
2226
{% include docs-sidebar.html.twig %}
2327
</div>
2428

2529
{% if page.toc %}
26-
<div class="d-none d-xl-block col-xl-3 col-xxl-3 bd-toc">
30+
<div class="d-none d-xl-block col-xl-2 col-xxl-2 bd-toc">
2731
<div class="toc-inner">
2832
{% include docs-toc.html.twig sanitize=true html=content h_min=2 h_max=4 class="section-nav" item_class="toc-entry nav" item_link_class="nav-link" %}
2933
</div>
3034
</div>
3135
{% endif %}
3236

33-
<main class="col-12 col-md-8 {% if page.toc == true %}col-xl-6 col-xxl-6{% else %}col-xl-9 col-xxl-9{% endif%} py-3 pl-3 bd-content" role="main">
37+
<main class="col-12 col-md-8 {% if page.toc == true %}col-xl-8 col-xxl-8{% else %}col-xl-10 col-xxl-10{% endif%} py-3 pl-3 bd-content" role="main">
3438
<div class="bd-content-inner py-md-3 pl-4 pl-md-5 pr-4 pr-md-5">
3539
<h1 class="bd-title" id="content">{{ page.title | smartify }}</h1>
3640
<p class="bd-lead">{{ page.description | smartify }}</p>
41+
<div class="bd-content-top-controls">
42+
<div class="btn-group dropleft">
43+
<button type="button" class="btn dropdown-toggle btn-control-dropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
44+
<i class="fas fa-cog"></i>
45+
</button>
46+
<div class="dropdown-menu">
47+
<div class="form-group">
48+
<span class="switch switch-sm">
49+
<input type="checkbox" class="switch" id="layoutModeSwitcher">
50+
<label for="layoutModeSwitcher">Wide layout</label>
51+
</span>
52+
</div>
53+
</div>
54+
</div>
55+
</div>
3756
{{ content }}
3857
</div>
3958
</main>

assets/css/docs.min.css

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/css/docs.min.css.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/js/docs.min.js

+4-12
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

assets/js/src/application.js

+44-8
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
/*!
2-
* JavaScript for Bootstrap's docs (https://getbootstrap.com)
3-
* Copyright 2011-2017 The Bootstrap Authors
4-
* Copyright 2011-2017 Twitter, Inc.
5-
* Licensed under the Creative Commons Attribution 3.0 Unported License. For
6-
* details, see https://creativecommons.org/licenses/by/3.0/.
7-
*/
8-
91
/* global Clipboard: false, anchors: false, Holder: false */
102

113
(function ($) {
@@ -191,5 +183,49 @@
191183
font: 'Helvetica',
192184
fontweight: 'normal'
193185
})
186+
187+
function changeLayout(wide) {
188+
var $docsLayout = $('.docs-layout')
189+
// eslint-disable-next-line no-unused-vars
190+
// var $bdContext = $('.bd-content')
191+
// var $bdToc = $('bd-toc')
192+
if (wide) {
193+
$docsLayout.removeClass('container').addClass('container-fluid')
194+
} else {
195+
$docsLayout.removeClass('container-fluid').addClass('container')
196+
}
197+
}
198+
199+
$('#layoutModeSwitcher')
200+
.on('change', function () {
201+
var chckd = this.checked ? '1' : '0'
202+
changeLayout(this.checked)
203+
window.Cookies.set('layoutMode', chckd)
204+
$(this).next().html(this.checked ? 'Wide layout' : 'Boxed layout')
205+
})
206+
.each(function () {
207+
var layoutMode = window.Cookies.get('layoutMode')
208+
// eslint-disable-next-line no-undefined
209+
if (layoutMode === undefined) {
210+
var defaultMode = $('.docs-layout').data('layout-mode')
211+
if (defaultMode === 'wide') {
212+
changeLayout(true)
213+
$(this).prop('checked', true)
214+
$(this).next().html('Wide layout')
215+
} else if (defaultMode === 'boxed') {
216+
changeLayout(false)
217+
$(this).prop('checked', false)
218+
$(this).next().html('Boxed layout')
219+
}
220+
} else if (Number(layoutMode) === 1) {
221+
$(this).prop('checked', true)
222+
changeLayout(true)
223+
$(this).next().html('Wide layout')
224+
} else if (Number(layoutMode) === 0) {
225+
$(this).prop('checked', false)
226+
changeLayout(false)
227+
$(this).next().html('Boxed layout')
228+
}
229+
})
194230
})
195231
}(jQuery))

0 commit comments

Comments
 (0)