jekyll-theme-open-project 1.1.27 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +5 -5
- data/_includes/_nav-item.html +33 -0
- data/_includes/item-doc-page.html +53 -96
- data/_includes/item-external-links.html +6 -6
- data/_includes/project-doc-page.html +0 -70
- data/_layouts/default.html +1 -0
- data/_layouts/docs-base.html +74 -0
- data/_layouts/product.html +1 -0
- data/_sass/headroom.scss +2 -2
- data/_sass/jekyll-theme-open-project.scss +2 -6
- data/_sass/open-project-base.scss +5 -4
- data/_sass/open-project-header-footer.scss +1 -0
- data/_sass/open-project-mixins.scss +305 -255
- data/assets/js/opf.js +36 -51
- metadata +6 -4
data/assets/js/opf.js
CHANGED
@@ -76,11 +76,7 @@
|
|
76
76
|
|
77
77
|
var headroom = new Headroom(headerEl, {
|
78
78
|
onUnpin: function() {
|
79
|
-
|
80
|
-
this.pin();
|
81
|
-
} else {
|
82
|
-
isPinned = false;
|
83
|
-
}
|
79
|
+
isPinned = false;
|
84
80
|
},
|
85
81
|
onPin: function() {
|
86
82
|
isPinned = true;
|
@@ -109,87 +105,79 @@
|
|
109
105
|
|
110
106
|
/* Collapsible docs nav */
|
111
107
|
|
112
|
-
var initCollapsibleDocsNav = function(
|
108
|
+
var initCollapsibleDocsNav = function(mainRoot, collapsibleHeader) {
|
109
|
+
var docsRoot = mainRoot.querySelector('section.documentation');
|
113
110
|
var article = docsRoot.querySelector('article');
|
114
|
-
var articleHeader =
|
111
|
+
var articleHeader = docsRoot.querySelector('header:first-child');
|
115
112
|
var docsNav = docsRoot.querySelector('.docs-nav');
|
116
|
-
var
|
117
|
-
|
118
|
-
var
|
119
|
-
|
120
|
-
|
113
|
+
var docsNavItemsContainer = docsNav.querySelector('.nav-items');
|
114
|
+
|
115
|
+
var docsHeader = mainRoot.querySelector('header.documentation-header');
|
116
|
+
|
117
|
+
if (!docsHeader) { return; } // Must be docs landing page
|
118
|
+
|
119
|
+
var docsHeaderLink = docsHeader.querySelector('a');
|
120
|
+
var docsHeaderH = docsHeader.offsetHeight - 1; // 1px to compensate for border
|
121
121
|
|
122
|
-
|
122
|
+
|
123
|
+
// Used to offset things from the topmost edge of viewport
|
123
124
|
// to account for top header height
|
124
125
|
var topHeaderHeight = collapsibleHeader.getHeaderHeight();
|
125
126
|
|
126
127
|
docsRoot.classList.add('with-expandable-toc');
|
127
128
|
docsNav.classList.add('top-expandable');
|
128
129
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
});
|
130
|
+
docsHeader.style.top = '' + topHeaderHeight + 'px';
|
131
|
+
|
132
|
+
docsNavItemsContainer.style.top = '' + (topHeaderHeight + docsHeaderH) + 'px';
|
133
133
|
|
134
134
|
// Triggering opening via header link itself
|
135
135
|
|
136
136
|
var hasOpened = false;
|
137
|
-
var closingTransition;
|
138
137
|
|
139
138
|
var collapse = function (docsNav) {
|
140
139
|
hasOpened = false;
|
141
140
|
|
142
141
|
docsNav.classList.remove('expanded');
|
143
|
-
|
144
|
-
|
145
|
-
el.style.opacity = '0';
|
146
|
-
});
|
147
|
-
|
148
|
-
closingTransition = window.setTimeout(function () {
|
149
|
-
docsNav.style.height = '' + docsNavHeaderH + 'px';
|
150
|
-
docsNav.style.bottom = 'unset';
|
151
|
-
docsNav.scrollTop = 0;
|
152
|
-
}, 2);
|
142
|
+
docsHeader.classList.remove('nav-expanded');
|
143
|
+
docsRoot.classList.add('with-collapsed-toc');
|
153
144
|
};
|
145
|
+
|
154
146
|
var open = function (docsNav) {
|
155
147
|
hasOpened = true;
|
156
|
-
window.clearTimeout(closingTransition);
|
157
148
|
|
158
149
|
docsNav.classList.add('expanded');
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
docsNavSections.forEach(function (el) {
|
163
|
-
el.style.opacity = '1';
|
164
|
-
});
|
150
|
+
docsHeader.classList.add('nav-expanded');
|
151
|
+
docsRoot.classList.remove('with-collapsed-toc');
|
165
152
|
};
|
153
|
+
|
166
154
|
var toggle = function () {
|
167
155
|
if (hasOpened) { collapse(docsNav); }
|
168
156
|
else { open(docsNav); }
|
169
157
|
};
|
170
|
-
docsNavHeader.addEventListener('click', toggle);
|
171
158
|
|
172
|
-
|
159
|
+
docsHeader.addEventListener('click', toggle);
|
160
|
+
|
161
|
+
open(docsNav);
|
162
|
+
|
173
163
|
|
174
164
|
// Hiding docs nav
|
175
165
|
|
176
166
|
// TODO: Replace with moving this to the top
|
177
167
|
// in top header’s headroom hook?
|
178
|
-
var headroom = new Headroom(
|
168
|
+
var headroom = new Headroom(docsHeader, {
|
179
169
|
classes: {
|
180
170
|
pinned: 'pinned',
|
181
171
|
unpinned: 'unpinned',
|
182
172
|
},
|
183
173
|
onUnpin: function () {
|
184
|
-
|
185
|
-
|
186
|
-
} else {
|
187
|
-
docsNav.style.transform = 'translateY(-' + topHeaderHeight + 'px)';
|
188
|
-
}
|
174
|
+
docsHeader.style.transform = 'translateY(-' + topHeaderHeight + 'px)';
|
175
|
+
docsNavItemsContainer.style.top = '' + (docsHeaderH) + 'px';
|
189
176
|
},
|
190
177
|
onPin: function () {
|
191
|
-
|
192
|
-
|
178
|
+
docsHeader.style.top = '' + topHeaderHeight + 'px';
|
179
|
+
docsHeader.style.transform = 'translateY(0)';
|
180
|
+
docsNavItemsContainer.style.top = '' + (topHeaderHeight + docsHeaderH) + 'px';
|
193
181
|
},
|
194
182
|
});
|
195
183
|
|
@@ -243,13 +231,13 @@
|
|
243
231
|
|
244
232
|
var collapsibleHeader;
|
245
233
|
|
246
|
-
if (document.querySelector('body.
|
234
|
+
if (document.querySelector('body.docs-page > main') != null) {
|
247
235
|
collapsibleHeader = initCollapsibleHeader(
|
248
236
|
document.querySelector('.underlay.header'),
|
249
237
|
hamburgerMenu);
|
250
238
|
}
|
251
239
|
|
252
|
-
var docsRoot = body.querySelector('body.
|
240
|
+
var docsRoot = body.querySelector('body.docs-page > main');
|
253
241
|
var collapsibleDocsNav;
|
254
242
|
|
255
243
|
if (docsRoot !== null) {
|
@@ -257,10 +245,7 @@
|
|
257
245
|
collapsibleHeader.assignCollapsibleDocsNav(collapsibleDocsNav);
|
258
246
|
}
|
259
247
|
|
260
|
-
var docArticleSelectorPrefixes = [
|
261
|
-
'body.layout--docs .documentation > article',
|
262
|
-
'body.layout--spec .documentation > article',
|
263
|
-
'body.layout--product .documentation:not(.docs-landing) > article '];
|
248
|
+
var docArticleSelectorPrefixes = ['body.docs-page .documentation > article'];
|
264
249
|
|
265
250
|
for (var prefix of docArticleSelectorPrefixes) {
|
266
251
|
var docArticleHeaderNavToggle = document.querySelector(prefix + '> header > nav > button.docs-nav-toggle');
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-open-project
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: '1.2'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - '='
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.
|
75
|
+
version: '1.2'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - '='
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.
|
82
|
+
version: '1.2'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- LICENSE.txt
|
161
161
|
- README.md
|
162
162
|
- _config.yml
|
163
|
+
- _includes/_nav-item.html
|
163
164
|
- _includes/home-hero.html
|
164
165
|
- _includes/home-hub.html
|
165
166
|
- _includes/home-project.html
|
@@ -183,6 +184,7 @@ files:
|
|
183
184
|
- _includes/title.html
|
184
185
|
- _layouts/blog-index.html
|
185
186
|
- _layouts/default.html
|
187
|
+
- _layouts/docs-base.html
|
186
188
|
- _layouts/home.html
|
187
189
|
- _layouts/page.html
|
188
190
|
- _layouts/post.html
|