jekyll-theme-open-project 1.1.27 → 1.2
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/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
|