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.
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