jekyll-theme-open-project 1.1.25 → 1.1.26
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 +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
|