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.
data/assets/js/opf.js CHANGED
@@ -76,11 +76,7 @@
76
76
 
77
77
  var headroom = new Headroom(headerEl, {
78
78
  onUnpin: function() {
79
- if (hamburgerMenu.hasOpened() || (collapsibleDocsMenu && collapsibleDocsMenu.hasOpened())) {
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(docsRoot, collapsibleHeader) {
108
+ var initCollapsibleDocsNav = function(mainRoot, collapsibleHeader) {
109
+ var docsRoot = mainRoot.querySelector('section.documentation');
113
110
  var article = docsRoot.querySelector('article');
114
- var articleHeader = article.querySelector('header:first-child');
111
+ var articleHeader = docsRoot.querySelector('header:first-child');
115
112
  var docsNav = docsRoot.querySelector('.docs-nav');
116
- var docsNavHeader = docsNav.querySelector('.sidebar-header');
117
- var docsNavHeaderLink = docsNavHeader.querySelector('a');
118
- var docsNavHeaderH = docsNavHeader.offsetHeight + 20; // 20px is padding, below
119
- var docsNavH = docsNav.offsetHeight;
120
- var docsNavSections = docsNav.querySelectorAll('section');
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
- // Used to offset expandable documentation menu from the topmost edge of viewport
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
- docsNav.style.top = '' + topHeaderHeight + 'px';
130
- docsNavSections.forEach(function (el) {
131
- el.style.transition = 'opacity .2s cubic-bezier(0.23, 1, 0.32, 1)';
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
- docsNavSections.forEach(function (el) {
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
- docsNav.style.height = 'auto';
160
- docsNav.style.bottom = '' + 100 + 'px';
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
- collapse(docsNav);
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(docsNavHeader, {
168
+ var headroom = new Headroom(docsHeader, {
179
169
  classes: {
180
170
  pinned: 'pinned',
181
171
  unpinned: 'unpinned',
182
172
  },
183
173
  onUnpin: function () {
184
- if (hasOpened) {
185
- this.pin();
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
- docsNav.style.top = '' + topHeaderHeight + 'px';
192
- docsNav.style.transform = 'translateY(0)';
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.layout--docs .documentation, body.layout--product .documentation:not(.docs-landing), body.layout--spec .documentation:not(.docs-landing)') != null) {
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.layout--docs .documentation, body.layout--product .documentation:not(.docs-landing), body.layout--spec .documentation:not(.docs-landing)');
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.1.27
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-09 00:00:00.000000000 Z
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.1.27
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.1.27
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