jekyll-theme-open-project 1.3.4 → 2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +67 -46
- data/_config.yml +8 -0
- data/_includes/_nav-item.html +9 -7
- data/_includes/external-link.html +59 -0
- data/_includes/featured_posts.html +11 -0
- data/_includes/featured_software.html +55 -0
- data/_includes/featured_specs.html +31 -0
- data/_includes/home-hero.html +12 -11
- data/_includes/home-hub.html +38 -44
- data/_includes/home-project.html +15 -113
- data/_includes/index-page-hero.html +0 -1
- data/_includes/item-doc-page.html +16 -14
- data/_includes/item-external-links.html +5 -81
- data/_includes/nav-links.html +7 -3
- data/_includes/nav-page-link.html +3 -2
- data/_layouts/default.html +6 -1
- data/_layouts/docs-base.html +0 -6
- data/_layouts/home.html +4 -0
- data/_sass/jekyll-theme-open-project.scss +167 -93
- data/_sass/open-project-base.scss +27 -3
- data/_sass/open-project-header-footer.scss +66 -97
- data/_sass/open-project-mixins.scss +111 -97
- data/assets/css/style.scss +1 -4
- data/assets/js/adoc-toc.js +52 -1
- metadata +11 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 221eba4af24be71eba3079f5413049ed6cbcd524
|
4
|
+
data.tar.gz: b487631fd4ccba5cf8aad76f9a22f95f6c0ec08d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a41113305d82bb450ff44367a7a66060a882977bd120b6b13ffa2bc55d1d80afcc1535bf969e7b30aeb984770be2aa8c0195c183de7f594ad585de8b82b3860
|
7
|
+
data.tar.gz: 0c59bf275fabdc82837deeeeee0405f4b7e13047270b7b2bd95492191088e42e6574a1d67f4c7df2d236b1cca9407dbea2e068a7d033fd55e40c578cfcb204cb
|
data/README.md
CHANGED
@@ -119,7 +119,7 @@ These settings apply to both site types (hub and project).
|
|
119
119
|
|
120
120
|
tagline: Site tagline
|
121
121
|
pitch: Site pitch
|
122
|
-
# The above two are used
|
122
|
+
# The above two are used in home hero unit.
|
123
123
|
|
124
124
|
social:
|
125
125
|
links:
|
@@ -348,7 +348,6 @@ algolia_search:
|
|
348
348
|
index_name: '<your Algolia index name>'
|
349
349
|
# Only add this if you want to use Algolia’s search on your project site.
|
350
350
|
|
351
|
-
# NOTE: Must match corresponding hub site’s configuration entry.
|
352
351
|
tag_namespaces:
|
353
352
|
software:
|
354
353
|
namespace_id: "Human-readable namespace name"
|
@@ -356,6 +355,20 @@ tag_namespaces:
|
|
356
355
|
# writtenin: "Written in"
|
357
356
|
specs:
|
358
357
|
namespace_id: "Human-readable namespace name"
|
358
|
+
# NOTE: Tag namespaces must match corresponding hub site’s configuration entry.
|
359
|
+
|
360
|
+
landing_priority: [custom_intro, blog, specs, software]
|
361
|
+
# Which order should sections be displayed on landing.
|
362
|
+
#
|
363
|
+
# Default order: [software, specs, blog]
|
364
|
+
# Depending on your project’s focus & pace of development you may want to change that.
|
365
|
+
# Supported sections: featured_posts, featured_software, featured_specs, custom_intro.
|
366
|
+
#
|
367
|
+
# If you use custom_intro, project site must define an include "custom-intro.html".
|
368
|
+
# The contents of that include will be wrapper in section.custom-intro tag.
|
369
|
+
# Inside the include you’d likely want to have introductory summary wrapped
|
370
|
+
# in section.summary, and possibly custom call-to-action buttons
|
371
|
+
# (see Metanorma.com site for an example).
|
359
372
|
```
|
360
373
|
|
361
374
|
### File structure
|
@@ -470,6 +483,7 @@ description: A sentence.
|
|
470
483
|
# Not necessarily shown to the user,
|
471
484
|
# but used for HTML metadata if jekyll-seo-tag is enabled
|
472
485
|
|
486
|
+
tags: [Ruby, Python, RFC, "<some_namespace_id>:<appropriate_tag>"]
|
473
487
|
# Note: Avoid whitespaces and other characters that may make Jekyll
|
474
488
|
# percent-encode the tag in URLs. Replace " " (a regular space)
|
475
489
|
# with "_" (underline); underlines will be rewritten as spaces when tags
|
@@ -478,7 +492,23 @@ description: A sentence.
|
|
478
492
|
# e.g. chosen programming language or target viewer audience
|
479
493
|
# (see hub site configuration for tag namespace setup).
|
480
494
|
# Avoid long namespace/tag combos as they can overflow item’s card widget.
|
481
|
-
|
495
|
+
|
496
|
+
external_links:
|
497
|
+
- url: https://github.com/riboseinc/asciidoctor-rfc
|
498
|
+
- url: https://docs.rs/proj/ver/…/
|
499
|
+
- { url: https://example.com/, title: "Custom title" }
|
500
|
+
# External links.
|
501
|
+
# For software, typically points to docs sites or source code repository.
|
502
|
+
# For specs, this usually contains RFC, IETF links, spec source code.
|
503
|
+
# * Link label can be specified with the title key.
|
504
|
+
# Select URLs are recognized and an appropriate label
|
505
|
+
# (possibly icon) is shown by default,
|
506
|
+
# otherwise you **should** specify the title.
|
507
|
+
# Currently, recognized URLs include
|
508
|
+
# GitHub, Docs.rs, RubyDoc,
|
509
|
+
# ietf.org/html/rfcN, datatracker.ietf.org/doc/…
|
510
|
+
# * Order links according to importance for project site visitors.
|
511
|
+
# The first link will be highlighted as primary.
|
482
512
|
|
483
513
|
feature_with_priority: 1
|
484
514
|
# With this key, software or spec will be featured on home
|
@@ -497,16 +527,14 @@ YAML frontmatter required for software:
|
|
497
527
|
```yaml
|
498
528
|
repo_url: https://github.com/riboseinc/asciidoctor-rfc
|
499
529
|
# Required.
|
530
|
+
# Used for things like showing how long ago
|
531
|
+
# the was project updated last.
|
500
532
|
|
501
|
-
|
533
|
+
docs_source:
|
502
534
|
git_repo_url: git@example.com:path/to-repo.git
|
503
535
|
git_repo_subtree: docs
|
504
|
-
#
|
536
|
+
# Documentation, the contents of which will be made part of the project site.
|
505
537
|
# See the nearby section about documentation.
|
506
|
-
|
507
|
-
docs_url: https://docs.rs/proj/ver/…/
|
508
|
-
# External docs. For some links
|
509
|
-
# like docs.rs and rubydoc, special icon and/or label will be shown.
|
510
538
|
```
|
511
539
|
|
512
540
|
#### Displaying software docs
|
@@ -519,12 +547,11 @@ only frontmatter, following this sample:
|
|
519
547
|
---
|
520
548
|
items:
|
521
549
|
- title: Introduction
|
550
|
+
path: intro/
|
522
551
|
items:
|
523
|
-
- { title: Overview, path: overview/ }
|
524
|
-
- { title: Installation, path: installation/ }
|
525
|
-
- title: Usage
|
526
|
-
items:
|
527
|
-
- { title: Basic, path: basic-usage/ }
|
552
|
+
- { title: Overview, path: intro/overview/ }
|
553
|
+
- { title: Installation, path: intro/installation/ }
|
554
|
+
- { title: Usage, path: usage/ }
|
528
555
|
---
|
529
556
|
|
530
557
|
= Navigation
|
@@ -544,26 +571,13 @@ the navigation.
|
|
544
571
|
YAML frontmatter specific to specs:
|
545
572
|
|
546
573
|
```yaml
|
547
|
-
rfc_id: XXXX
|
548
|
-
# IETF RFC URL would be in the form
|
549
|
-
# http://ietf.org/html/rfc<id>
|
550
|
-
|
551
|
-
ietf_datatracker_id: some-string-identifier-here
|
552
|
-
ietf_datatracker_ver: "01"
|
553
|
-
# IETF datatracker URL would be in the form
|
554
|
-
# https://datatracker.ietf.org/doc/<id>[-<version>]
|
555
|
-
|
556
|
-
source_url: https://example.com/spec-source-markup
|
557
|
-
# Required.
|
558
|
-
|
559
|
-
|
560
|
-
# For displaying spec contents, see below:
|
561
|
-
|
562
574
|
spec_source:
|
563
575
|
git_repo_url: https://github.com/<user>/<repo>
|
564
576
|
git_repo_subtree: images
|
565
577
|
build:
|
566
578
|
engine: png_diagrams
|
579
|
+
# See below about building the spec from its source
|
580
|
+
# to be displayed on the site.
|
567
581
|
|
568
582
|
navigation:
|
569
583
|
sections:
|
@@ -727,33 +741,36 @@ The rule would look like this:
|
|
727
741
|
|
728
742
|
### SASS variables
|
729
743
|
|
730
|
-
Following are
|
744
|
+
Following are principal variables that define the appearance of a site
|
745
|
+
built with this theme, along with their defaults.
|
746
|
+
|
747
|
+
For a project site, wisely choosing primary and accent colors should be enough
|
748
|
+
as a minimum.
|
731
749
|
|
732
750
|
```scss
|
733
751
|
$font-family: Helvetica, Arial, sans-serif !default;
|
752
|
+
$main-font-color: black !default;
|
734
753
|
|
735
|
-
# Primary color
|
736
|
-
#
|
754
|
+
# Primary color & accent colors are used throughout site’s UI.
|
755
|
+
# Make sure to use shades dark enough that white text is readable on top,
|
756
|
+
# especially with the primary color.
|
757
|
+
# Make sure these colors go well with each other.
|
737
758
|
$primary-color: lightblue !default;
|
759
|
+
$accent-color: red !default;
|
738
760
|
|
739
|
-
#
|
740
|
-
|
741
|
-
$
|
761
|
+
# These colors are used for warning/info blocks within body text.
|
762
|
+
$important-color: orange !default;
|
763
|
+
$warning-color: red !default;
|
742
764
|
|
743
|
-
#
|
744
|
-
|
745
|
-
# should be dark enough:
|
746
|
-
$accent-color: red !default;
|
765
|
+
# Background used on home page body & other pages’ hero unit backgrounds.
|
766
|
+
$main-background: linear-gradient(315deg, $accent-color 0%, $primary-color 74%) !default;
|
747
767
|
|
748
|
-
#
|
749
|
-
|
750
|
-
$header-background: $primary-dark-color !default;
|
751
|
-
$hero-background: $primary-dark-color !default;
|
768
|
+
# This background defaults to $main-background value.
|
769
|
+
$header-background: $main-background !default;
|
752
770
|
|
753
|
-
# This is for the big big hero unit on home page.
|
754
|
-
$superhero-background: $primary-dark-color !default;
|
755
771
|
|
756
|
-
# Below
|
772
|
+
# Below does not apply to project sites (only the hub site):
|
773
|
+
|
757
774
|
$hub-software--primary-color: lightsalmon !default;
|
758
775
|
$hub-software--primary-dark-color: tomato !default;
|
759
776
|
$hub-software--hero-background: $hub-software--primary-dark-color !default;
|
@@ -763,6 +780,10 @@ $hub-specs--primary-dark-color: palevioletred !default;
|
|
763
780
|
$hub-specs--hero-background: $hub-specs--primary-dark-color !default;
|
764
781
|
```
|
765
782
|
|
783
|
+
TIP: A good way to find a good match for primary-color and accent-color
|
784
|
+
may be the eggradients.com website. Find a suitable, dark enough gradient and pick
|
785
|
+
one color as primary, and the other as accent.
|
786
|
+
|
766
787
|
|
767
788
|
## Extra .gitignore rules
|
768
789
|
|
data/_config.yml
CHANGED
@@ -17,6 +17,14 @@ exclude:
|
|
17
17
|
- /_projects/**/docs/*
|
18
18
|
- .sass-cache/
|
19
19
|
|
20
|
+
unmarked_external_link_selectors:
|
21
|
+
- .layout--home a
|
22
|
+
- a[href*=travis]
|
23
|
+
- a[href*=coverity]
|
24
|
+
- a[href*=codecov]
|
25
|
+
|
26
|
+
landing_priority: [software, specs, blog]
|
27
|
+
|
20
28
|
collections:
|
21
29
|
projects:
|
22
30
|
output: false
|
data/_includes/_nav-item.html
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
{% comment %} Otherwise in Liquid selected value falls through to next include instance {% endcomment %}
|
13
13
|
{% endif %}
|
14
14
|
|
15
|
-
<li class="
|
15
|
+
<li class="{% if selected %}selected{% endif %}">
|
16
16
|
<div class="item-title"
|
17
17
|
title="{{ include.item.title }}{% if include.item.description %} ({{ include.item.description }}){% endif %}">
|
18
18
|
{% if include.item.path == null or selected == true %}
|
@@ -26,11 +26,13 @@
|
|
26
26
|
{% endif %}
|
27
27
|
</div>
|
28
28
|
|
29
|
-
{% if include.
|
30
|
-
|
31
|
-
|
32
|
-
{%
|
33
|
-
|
34
|
-
|
29
|
+
{% if include.top_level_only != true %}
|
30
|
+
{% if include.item.items %}
|
31
|
+
<ul class="nav-items subitmes">
|
32
|
+
{% for item in include.item.items %}
|
33
|
+
{% include _nav-item.html item=item base_url=include.base_url selected_item=include.selected_item %}
|
34
|
+
{% endfor %}
|
35
|
+
</ul>
|
36
|
+
{% endif %}
|
35
37
|
{% endif %}
|
36
38
|
</li>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<a href="{{ include.url }}">
|
2
|
+
|
3
|
+
{% if include.url contains "github.com" %}
|
4
|
+
<span class="ico">
|
5
|
+
<i class="fab fa-github"></i>
|
6
|
+
</span>
|
7
|
+
<span class="lbl">
|
8
|
+
{{ include.title | default: "GitHub" }}
|
9
|
+
</span>
|
10
|
+
|
11
|
+
{% elsif include.url contains "rubygems.org" %}
|
12
|
+
<span class="ico">
|
13
|
+
<i class="far fa-gem"></i>
|
14
|
+
</span>
|
15
|
+
<span class="lbl">
|
16
|
+
{{ include.title | default: "Gem" }}
|
17
|
+
</span>
|
18
|
+
|
19
|
+
{% elsif include.url contains "crates.io/crates" %}
|
20
|
+
<span class="ico">
|
21
|
+
<i class="far fa-cubes"></i>
|
22
|
+
</span>
|
23
|
+
<span class="lbl">
|
24
|
+
{{ include.title | default: "Crate" }}
|
25
|
+
</span>
|
26
|
+
|
27
|
+
{% elsif include.url contains "rubydoc" %}
|
28
|
+
<span class="ico">
|
29
|
+
<i class="far fa-gem"></i>
|
30
|
+
</span>
|
31
|
+
<span class="lbl">
|
32
|
+
{{ include.title | default: "RubyDoc" }}
|
33
|
+
</span>
|
34
|
+
|
35
|
+
{% elsif include.url contains "docs.rs" %}
|
36
|
+
<span class="ico">
|
37
|
+
<i class="far fa-book"></i>
|
38
|
+
</span>
|
39
|
+
<span class="lbl">
|
40
|
+
{{ include.title | default: "Docs.rs" }}
|
41
|
+
</span>
|
42
|
+
|
43
|
+
{% elsif include.url contains "ietf.org/html/rfc" %}
|
44
|
+
<span class="lbl">
|
45
|
+
{{ include.title | default: "IETF RFC" }}
|
46
|
+
</span>
|
47
|
+
|
48
|
+
{% elsif include.url contains "datatracker.ietf.org" %}
|
49
|
+
<span class="lbl">
|
50
|
+
{{ include.title | default: "IETF document" }}
|
51
|
+
</span>
|
52
|
+
|
53
|
+
{% else %}
|
54
|
+
<span class="lbl">
|
55
|
+
{{ include.title }}
|
56
|
+
</span>
|
57
|
+
|
58
|
+
{% endif %}
|
59
|
+
</a>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
{% assign posts = site.posts_combined %}
|
2
|
+
|
3
|
+
<section class="featured-posts">
|
4
|
+
<h2 class="title">From the <a href="/blog/">Blog</a></h2>
|
5
|
+
|
6
|
+
<div class="items">
|
7
|
+
{% for item in posts | limit: site.max_featured_posts %}
|
8
|
+
{% include post-card.html post=item %}
|
9
|
+
{% endfor %}
|
10
|
+
</div>
|
11
|
+
</section>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<section class="software">
|
2
|
+
{% unless site.one_software %}
|
3
|
+
<h2 class="title">
|
4
|
+
Software
|
5
|
+
{% if site.num_all_software > site.num_featured_software %}
|
6
|
+
— <a href="/software/">see all</a>
|
7
|
+
{% endif %}
|
8
|
+
</h2>
|
9
|
+
{% endunless %}
|
10
|
+
|
11
|
+
<div class="items">
|
12
|
+
{% assign software = site.featured_software %}
|
13
|
+
{% for item in software | limit: site.max_featured_software %}
|
14
|
+
{% assign url = item.url %}
|
15
|
+
{% assign item_docs = site.software | where_exp: "item", "item.url contains url" %}
|
16
|
+
{% assign item_data = site.software | where_exp: "item", "item.url == url" | first %}
|
17
|
+
{% assign nav = item_docs | where_exp: "item", "item.path contains 'docs/navigation'" | first %}
|
18
|
+
|
19
|
+
<div class="item" role="article">
|
20
|
+
{% unless site.one_software %}
|
21
|
+
<header>
|
22
|
+
<div class="logo-container">
|
23
|
+
{% include software-symbol.html item_id=item.id %}
|
24
|
+
</div>
|
25
|
+
|
26
|
+
<h3 class="title"><a href="{{ item.url }}">{{ item.title }}</a></h3>
|
27
|
+
</header>
|
28
|
+
|
29
|
+
<p class="body">
|
30
|
+
{{ item.description }}
|
31
|
+
</p>
|
32
|
+
{% endunless %}
|
33
|
+
|
34
|
+
{% assign top_level_nav_item_with_path = nav.items | where_exp: "item", "item.path" | first %}
|
35
|
+
{% if nav and top_level_nav_item_with_path %}
|
36
|
+
<div class="docs-nav">
|
37
|
+
{% assign docs_base_url = item.url | append: "docs/" %}
|
38
|
+
{% assign nav_items = nav.items | slice: 0, 3 %}
|
39
|
+
<ul class="nav-items">
|
40
|
+
{% for nav_item in nav_items %}
|
41
|
+
{% include _nav-item.html item=nav_item base_url=docs_base_url top_level_only=true %}
|
42
|
+
{% endfor %}
|
43
|
+
</ul>
|
44
|
+
</div>
|
45
|
+
{% endif %}
|
46
|
+
|
47
|
+
<div class="external-links">
|
48
|
+
<ul class="nav-items">
|
49
|
+
{% include item-external-links.html item_data=item_data %}
|
50
|
+
</ul>
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
{% endfor %}
|
54
|
+
</div>
|
55
|
+
</section>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<section class="specs">
|
2
|
+
<h2 class="title">
|
3
|
+
Specification{% if site.num_all_specs > 1 %}s{% endif %}
|
4
|
+
{% if site.num_all_specs > site.num_featured_specs %}
|
5
|
+
— <a href="/specs/">see all</a>
|
6
|
+
{% endif %}
|
7
|
+
</h2>
|
8
|
+
<div class="items">
|
9
|
+
{% assign specs = site.featured_specs %}
|
10
|
+
{% for item in specs | limit: site.max_featured_specs %}
|
11
|
+
{% assign url = item.url %}
|
12
|
+
{% assign item_data = site.specs | where_exp: "item", "item.url == url" | first %}
|
13
|
+
|
14
|
+
<div class="item" role="article">
|
15
|
+
<header>
|
16
|
+
<h3 class="title"><a href="{{ item.url }}">{{ item.title }}</a></h3>
|
17
|
+
</header>
|
18
|
+
|
19
|
+
<p class="body">
|
20
|
+
{{ item.description }}
|
21
|
+
</p>
|
22
|
+
|
23
|
+
<div class="external-links">
|
24
|
+
<ul class="nav-items">
|
25
|
+
{% include item-external-links.html item_data=item_data %}
|
26
|
+
</ul>
|
27
|
+
</div>
|
28
|
+
</div>
|
29
|
+
{% endfor %}
|
30
|
+
</div>
|
31
|
+
</section>
|
data/_includes/home-hero.html
CHANGED
@@ -1,14 +1,20 @@
|
|
1
1
|
<div class="text">
|
2
2
|
<h1 class="title">{{ site.tagline }}</h1>
|
3
|
-
<p class="desc">{{ site.pitch | safe }}</p>
|
4
3
|
|
5
|
-
|
6
|
-
{
|
4
|
+
{% if site.pitch %}
|
5
|
+
<p class="desc">{{ site.pitch | safe }}</p>
|
6
|
+
{% endif %}
|
7
|
+
|
8
|
+
{% if site.is_hub %}
|
9
|
+
<div class="cta">
|
7
10
|
<a class="button" href="{{ "/projects/" | relative_url }}">
|
8
11
|
<i class="icon far fa-search"></i>
|
9
12
|
Explore Projects
|
10
13
|
</a>
|
11
|
-
|
14
|
+
</div>
|
15
|
+
{% else if site.one_software %}
|
16
|
+
{% else %}
|
17
|
+
<div class="cta">
|
12
18
|
{% assign ctas = site.home_calls_to_action | slice: 0, 2 %}
|
13
19
|
|
14
20
|
{% for link in ctas %}
|
@@ -16,11 +22,6 @@
|
|
16
22
|
{{ link.title }}
|
17
23
|
</a>
|
18
24
|
{% endfor %}
|
19
|
-
|
20
|
-
|
21
|
-
</div>
|
22
|
-
<div class="illustration">
|
23
|
-
<div role="presentation" class="logo">
|
24
|
-
{% include assets/symbol.svg %}
|
25
|
-
</div>
|
25
|
+
</div>
|
26
|
+
{% endif %}
|
26
27
|
</div>
|