jekyll-theme-open-project 1.1.25 → 1.1.26
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +44 -32
- data/_includes/item-doc-page.html +6 -3
- data/_includes/project-doc-page.html +96 -0
- data/_sass/headroom.scss +1 -1
- data/_sass/jekyll-theme-open-project.scss +2 -1
- data/_sass/open-project-base.scss +3 -0
- data/_sass/open-project-mixins.scss +33 -5
- data/assets/js/opf.js +13 -8
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f54c864f92c1990c16c57ba81232c3656ca564c42d361031d3c9b0856c3da8ef
|
4
|
+
data.tar.gz: afa0d424a4a9dddbd6d5084918724adc2a2d93fbb9982d48dd85855d0d06d41f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d2b238dc44d3e0169c9a7b15515c2b4bcb8a71b2fe71ec19bd3aa2025a157833511ece3997448091776e5e852cf2b2314e4ee0a18f52ba7ce47789f186f47b0
|
7
|
+
data.tar.gz: 540c37e4228591bc114c575c49b333ca3b38e9542eb51bd84f1c0e7a790bb1a1e0395e77ea0d01f99679f8dea826545b3c15d2398ec54c1b9da57bf7c54ffe0a
|
data/README.md
CHANGED
@@ -449,6 +449,31 @@ docs_url: https://docs.rs/proj/ver/…/
|
|
449
449
|
# like docs.rs and rubydoc, special icon and/or label will be shown.
|
450
450
|
```
|
451
451
|
|
452
|
+
#### Displaying software docs
|
453
|
+
|
454
|
+
Inside the repository and optionally subtree specified under `docs`
|
455
|
+
in above sample, place a file called `navigation.md` containing
|
456
|
+
only frontmatter, following this sample:
|
457
|
+
|
458
|
+
```yaml
|
459
|
+
sections:
|
460
|
+
- name: Introduction
|
461
|
+
items:
|
462
|
+
- overview
|
463
|
+
- installation
|
464
|
+
- name: Usage
|
465
|
+
items:
|
466
|
+
- basic
|
467
|
+
```
|
468
|
+
|
469
|
+
In the same directory, place the required document pages—in this case, `overview.md`,
|
470
|
+
`installation.md`, and `basic.md`. Each document page is required to contain
|
471
|
+
standard YAML frontmatter with at least `title` specified.
|
472
|
+
|
473
|
+
During project site build, Jekyll pulls docs for software that’s part of the
|
474
|
+
site and builds them, converting pages from Markdown/AsciiDoc to HTML and adding
|
475
|
+
the navigation.
|
476
|
+
|
452
477
|
|
453
478
|
### Specification
|
454
479
|
|
@@ -466,35 +491,10 @@ ietf_datatracker_ver: "01"
|
|
466
491
|
|
467
492
|
source_url: https://example.com/spec-source-markup
|
468
493
|
# Required.
|
469
|
-
```
|
470
494
|
|
471
|
-
### Documentation for software, and specification contents
|
472
495
|
|
473
|
-
|
474
|
-
package’s own repository, under a directory such as `docs/`.
|
475
|
-
Inside that directory, place a file called `navigation.md` containing
|
476
|
-
only frontmatter, in format like this:
|
496
|
+
# For displaying spec contents, see below:
|
477
497
|
|
478
|
-
```yaml
|
479
|
-
sections:
|
480
|
-
- name: Introduction
|
481
|
-
items:
|
482
|
-
- overview
|
483
|
-
- installation
|
484
|
-
- name: Usage
|
485
|
-
items:
|
486
|
-
- basic
|
487
|
-
```
|
488
|
-
|
489
|
-
In the same directory, place the required document pages—in this case, `overview.md`,
|
490
|
-
`installation.md`, and `basic.md`. Each document page is required to contain
|
491
|
-
standard YAML frontmatter with at least `title` specified.
|
492
|
-
|
493
|
-
For **specification contents** to be built, provide configuration
|
494
|
-
and navigation in YAML frontmatter of corresponding `_specs/<specname>.adoc` file,
|
495
|
-
following this example:
|
496
|
-
|
497
|
-
```yaml
|
498
498
|
spec_source:
|
499
499
|
git_repo_url: https://github.com/<user>/<repo>
|
500
500
|
git_repo_subtree: images
|
@@ -511,12 +511,24 @@ navigation:
|
|
511
511
|
ignore_missing: yes
|
512
512
|
```
|
513
513
|
|
514
|
+
#### Displaying specification contents
|
515
|
+
|
516
|
+
While software doc pages are currently simply generated using standard
|
517
|
+
Jekyll means from Markdown/AsciiDoc into HTML,
|
518
|
+
building specs is handled in a more flexible way,
|
519
|
+
delegating the source -> Open Project site-compatible HTML conversion
|
520
|
+
to an engine.
|
521
|
+
|
522
|
+
For specs to be built, provide build config and navigation
|
523
|
+
in the YAML frontmatter of corresponding `_specs/<specname>.adoc` file
|
524
|
+
as described in spec YAML frontmatter sample.
|
525
|
+
|
514
526
|
For now, only the `png_diagrams` engine is supported, with Metanorma-based
|
515
527
|
project build engine to come.
|
516
528
|
|
517
|
-
During project site build, Jekyll pulls
|
518
|
-
|
519
|
-
|
529
|
+
During project site build, Jekyll pulls spec sources that’s part of the
|
530
|
+
site and builds them, converting pages from source markup to HTML using
|
531
|
+
the engine specified, and adding the navigation.
|
520
532
|
|
521
533
|
### Symbol
|
522
534
|
|
@@ -569,7 +581,7 @@ This means when Jekyll encounters `{% include <include_name> %}`
|
|
569
581
|
in a template, it looks first in `<site root>/<include_name>`,
|
570
582
|
and then in `<theme root>/_includes/<include_name>`. Consequently,
|
571
583
|
you put your include overrides directly in site root, **not** inside
|
572
|
-
`_includes/` directory of your
|
584
|
+
`_includes/` directory of your site.
|
573
585
|
|
574
586
|
|
575
587
|
## Theme layouts
|
@@ -694,8 +706,8 @@ theme-generated files and directories from adding chaos to your Git staging.
|
|
694
706
|
_software/*/.git
|
695
707
|
_software/*/docs
|
696
708
|
_software/_*_repo
|
697
|
-
_specs
|
698
|
-
_specs
|
709
|
+
_specs/*/
|
710
|
+
!_specs/*.*
|
699
711
|
parent-hub/*
|
700
712
|
```
|
701
713
|
|
@@ -11,7 +11,7 @@
|
|
11
11
|
{% assign nav = item_docs | where_exp: "item", "item.path contains 'docs/navigation'" | first %}
|
12
12
|
|
13
13
|
{% if nav == nil %}
|
14
|
-
{% assign nav = page.navigation %}
|
14
|
+
{% assign nav = page.navigation || layout.navigation %}
|
15
15
|
{% endif %}
|
16
16
|
|
17
17
|
{% assign num_nav_sections = nav.sections | size %}
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
<nav class="docs-nav">
|
22
22
|
|
23
|
-
{% if is_docs_landing
|
23
|
+
{% if is_docs_landing != true %}
|
24
24
|
<header class="sidebar-header">
|
25
25
|
{% if include.item_type == 'software' %}
|
26
26
|
<div class="logo-container">
|
@@ -30,6 +30,9 @@
|
|
30
30
|
<h3 class="title">
|
31
31
|
<a href="{{ product_base_url | relative_url }}">{{ item_data.title }}</a>
|
32
32
|
</h3>
|
33
|
+
<span class="section-title">
|
34
|
+
→ {{ page.title|replace: " ", " " }}
|
35
|
+
</span>
|
33
36
|
</header>
|
34
37
|
|
35
38
|
<section class="external-links">
|
@@ -106,7 +109,7 @@
|
|
106
109
|
</div>
|
107
110
|
{% endif %}
|
108
111
|
|
109
|
-
<h1 class="text">{{ page.title }}</h1>
|
112
|
+
<h1 class="text">{{ page.article_header_title | default: page.title }}</h1>
|
110
113
|
</div>
|
111
114
|
|
112
115
|
{% if is_docs_landing == false and item_data.docs.git_repo_url %}
|
@@ -0,0 +1,96 @@
|
|
1
|
+
{% assign product_base_url = page.url | split: "/" | slice: 0, 3 | join: "/" | append: "/" %}
|
2
|
+
|
3
|
+
<section class="documentation">
|
4
|
+
{% assign docs_base_url = product_base_url | append: "docs/" %}
|
5
|
+
{% assign nav = page.navigation | default: layout.navigation %}
|
6
|
+
{% assign num_nav_sections = nav.sections | size %}
|
7
|
+
|
8
|
+
<nav class="docs-nav">
|
9
|
+
|
10
|
+
<header class="sidebar-header">
|
11
|
+
<h3 class="title">
|
12
|
+
<a href="javascript: void 0;">{{ include.header_main }}</a>
|
13
|
+
</h3>
|
14
|
+
{% if include.header_side %}
|
15
|
+
<span class="section-title">
|
16
|
+
→ {{ include.header_side|replace: " ", " " }}
|
17
|
+
</span>
|
18
|
+
{% endif %}
|
19
|
+
</header>
|
20
|
+
|
21
|
+
{% for section in nav.sections %}
|
22
|
+
<section>
|
23
|
+
<h4 class="section-title">{{ section.name }}</h4>
|
24
|
+
<ul class="section-items">
|
25
|
+
{% for item in section.items %}
|
26
|
+
{% if item.path %}
|
27
|
+
{% comment %}Spec contents{% endcomment %}
|
28
|
+
{% assign item_path = item.path %}
|
29
|
+
{% assign link = product_base_url | append: item_path | append: "/" %}
|
30
|
+
{% else %}
|
31
|
+
{% comment %}Software docs{% endcomment %}
|
32
|
+
{% assign item_path = item %}
|
33
|
+
{% assign link = docs_base_url | append: item_path | append: "/" %}
|
34
|
+
{% endif %}
|
35
|
+
|
36
|
+
{% assign linked_page = include.items | where_exp: "item", "item.url contains link" | first %}
|
37
|
+
|
38
|
+
{% if item.title %}
|
39
|
+
{% assign item_title = item.title %}
|
40
|
+
{% elsif item.ignore_missing != true %}
|
41
|
+
{% assign item_title = linked_page.title %}
|
42
|
+
{% endif %}
|
43
|
+
|
44
|
+
{% if linked_page or item.ignore_missing %}
|
45
|
+
{% if page.url != link %}
|
46
|
+
<li class="item">
|
47
|
+
<a href="{{ link | relative_url }}">
|
48
|
+
{{ item_title }}
|
49
|
+
</a>
|
50
|
+
{% else %}
|
51
|
+
<li class="item selected">
|
52
|
+
<span>
|
53
|
+
{{ item_title }}
|
54
|
+
</span>
|
55
|
+
{% endif %}
|
56
|
+
{% else %}
|
57
|
+
<li class="item">
|
58
|
+
<span class="tbd">
|
59
|
+
{% if item.title %}
|
60
|
+
{{ item.title }}
|
61
|
+
{% else %}
|
62
|
+
{{ item }}
|
63
|
+
{% endif %}
|
64
|
+
</span>
|
65
|
+
{% endif %}
|
66
|
+
|
67
|
+
{% assign link = "" %}
|
68
|
+
{% endfor %}
|
69
|
+
</ul>
|
70
|
+
</section>
|
71
|
+
{% endfor %}
|
72
|
+
</nav>
|
73
|
+
|
74
|
+
<article>
|
75
|
+
<header>
|
76
|
+
<div class="title">
|
77
|
+
{% if include.item_type == 'software' and page.url == product_base_url %}
|
78
|
+
<div class="logo-container">
|
79
|
+
{% include software-symbol.html item_id=page.id %}
|
80
|
+
</div>
|
81
|
+
{% endif %}
|
82
|
+
|
83
|
+
<h1 class="text">{{ page.article_header_title | default: page.title }}</h1>
|
84
|
+
</div>
|
85
|
+
|
86
|
+
<div>
|
87
|
+
<h3 class="lead">{{ page.description }}</h3>
|
88
|
+
</div>
|
89
|
+
</header>
|
90
|
+
|
91
|
+
<div class="body">
|
92
|
+
{{ content }}
|
93
|
+
</div>
|
94
|
+
|
95
|
+
</article>
|
96
|
+
</section>
|
data/_sass/headroom.scss
CHANGED
@@ -132,6 +132,7 @@ a {
|
|
132
132
|
background: white;
|
133
133
|
display: block;
|
134
134
|
position: relative;
|
135
|
+
overflow: hidden;
|
135
136
|
|
136
137
|
&:link, &:hover, &:visited {
|
137
138
|
color: inherit;
|
@@ -204,6 +205,8 @@ a {
|
|
204
205
|
.tags {
|
205
206
|
list-style: none;
|
206
207
|
padding: 0;
|
208
|
+
overflow: hidden;
|
209
|
+
text-overflow: ellipsis;
|
207
210
|
|
208
211
|
> li {
|
209
212
|
display: inline;
|
@@ -517,6 +517,39 @@
|
|
517
517
|
cursor: pointer;
|
518
518
|
padding-top: 10px;
|
519
519
|
padding-bottom: 10px;
|
520
|
+
|
521
|
+
&:after {
|
522
|
+
content: "▼";
|
523
|
+
}
|
524
|
+
|
525
|
+
.item-type {
|
526
|
+
display: none;
|
527
|
+
margin-right: 10px;
|
528
|
+
}
|
529
|
+
.title {
|
530
|
+
flex-grow: 0;
|
531
|
+
}
|
532
|
+
.section-title {
|
533
|
+
margin-left: 10px;
|
534
|
+
margin-right: 10px;
|
535
|
+
overflow: hidden;
|
536
|
+
text-overflow: ellipsis;
|
537
|
+
flex-grow: 1;
|
538
|
+
transition: transform .2s ease-out;
|
539
|
+
}
|
540
|
+
|
541
|
+
&.headroom--top {
|
542
|
+
.section-title {
|
543
|
+
transform: translateY(-5em);
|
544
|
+
transition: none;
|
545
|
+
}
|
546
|
+
}
|
547
|
+
|
548
|
+
&.unpinned {
|
549
|
+
.item-type, .subsection {
|
550
|
+
display: inline-block;
|
551
|
+
}
|
552
|
+
}
|
520
553
|
}
|
521
554
|
|
522
555
|
&.expanded {
|
@@ -527,11 +560,6 @@
|
|
527
560
|
border-bottom: none;
|
528
561
|
}
|
529
562
|
}
|
530
|
-
|
531
|
-
&.pinned {
|
532
|
-
z-index: 4;
|
533
|
-
transform: translateY(0);
|
534
|
-
}
|
535
563
|
}
|
536
564
|
}
|
537
565
|
}
|
data/assets/js/opf.js
CHANGED
@@ -127,7 +127,6 @@
|
|
127
127
|
docsNav.classList.add('top-expandable');
|
128
128
|
|
129
129
|
docsNav.style.top = '' + topHeaderHeight + 'px';
|
130
|
-
docsNavHeader.innerHTML = docsNavHeader.innerHTML + ' ▼';
|
131
130
|
docsNavSections.forEach(function (el) {
|
132
131
|
el.style.transition = 'opacity .2s cubic-bezier(0.23, 1, 0.32, 1)';
|
133
132
|
});
|
@@ -244,13 +243,13 @@
|
|
244
243
|
|
245
244
|
var collapsibleHeader;
|
246
245
|
|
247
|
-
if (document.querySelector('body.layout--product .documentation:not(.docs-landing), body.layout--spec .documentation:not(.docs-landing)') != null) {
|
246
|
+
if (document.querySelector('body.layout--docs .documentation, body.layout--product .documentation:not(.docs-landing), body.layout--spec .documentation:not(.docs-landing)') != null) {
|
248
247
|
collapsibleHeader = initCollapsibleHeader(
|
249
248
|
document.querySelector('.underlay.header'),
|
250
249
|
hamburgerMenu);
|
251
250
|
}
|
252
251
|
|
253
|
-
var docsRoot = body.querySelector('body.layout--product .documentation:not(.docs-landing), body.layout--spec .documentation:not(.docs-landing)');
|
252
|
+
var docsRoot = body.querySelector('body.layout--docs .documentation, body.layout--product .documentation:not(.docs-landing), body.layout--spec .documentation:not(.docs-landing)');
|
254
253
|
var collapsibleDocsNav;
|
255
254
|
|
256
255
|
if (docsRoot !== null) {
|
@@ -258,11 +257,17 @@
|
|
258
257
|
collapsibleHeader.assignCollapsibleDocsNav(collapsibleDocsNav);
|
259
258
|
}
|
260
259
|
|
261
|
-
var
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
260
|
+
var docArticleSelectorPrefixes = [
|
261
|
+
'body.layout--docs .documentation > article',
|
262
|
+
'body.layout--spec .documentation > article',
|
263
|
+
'body.layout--product .documentation:not(.docs-landing) > article '];
|
264
|
+
|
265
|
+
for (var prefix of docArticleSelectorPrefixes) {
|
266
|
+
var docArticleHeaderNavToggle = document.querySelector(prefix + '> header > nav > button.docs-nav-toggle');
|
267
|
+
var docArticleFooterNavToggle = document.querySelector(prefix + '> footer > nav > button.docs-nav-toggle');
|
268
|
+
for (var el of [docArticleFooterNavToggle, docArticleHeaderNavToggle]) {
|
269
|
+
if (el) { el.addEventListener('click', collapsibleDocsNav.toggle); }
|
270
|
+
}
|
266
271
|
}
|
267
272
|
|
268
273
|
if (triggerEl !== null && inputEl !== null && topMenuEl !== null) {
|
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.
|
4
|
+
version: 1.1.26
|
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-
|
11
|
+
date: 2018-12-08 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.
|
75
|
+
version: 1.1.26
|
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.
|
82
|
+
version: 1.1.26
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: bundler
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -172,6 +172,7 @@ files:
|
|
172
172
|
- _includes/nav-links.html
|
173
173
|
- _includes/nav-page-link.html
|
174
174
|
- _includes/post-card.html
|
175
|
+
- _includes/project-doc-page.html
|
175
176
|
- _includes/project-nav.html
|
176
177
|
- _includes/scripts.html
|
177
178
|
- _includes/social-links.html
|