jekyll-theme-open-hub 0.1.2 → 0.1.3
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 +338 -101
- metadata +4 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 727caf1528610157d086b8a66e77263a0a949a29e520251e4774a6e083da50aa
|
4
|
+
data.tar.gz: fa5cb19c66214932aab3df38ffbff6935f95b4f7476f2949d9925aa542574231
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c7824c01f27f450af0a508ee9727978e21500ed0f3aa0ec274121d3def41cbc8a9ea5269807fdb74fb6f2d5c203b4dcde4f3fa4d0a1ac938ed362168128700b
|
7
|
+
data.tar.gz: b717df76e95e9d3d41ef6b883a87a9b00c8683f2d3d510402f62f325dd929caae30f673811a738971014b8749e4dc6cb2c4a68706d85c8213248b7cc1e98c278
|
data/README.md
CHANGED
@@ -1,13 +1,36 @@
|
|
1
|
-
# Open
|
1
|
+
# Open Hub theme by Ribose
|
2
2
|
|
3
|
-
Open
|
3
|
+
Open Hub is a theme for Jekyll oriented towards presenting open efforts
|
4
4
|
such as open-source software and specifications in a navigable and elegant way.
|
5
5
|
|
6
|
-
Open
|
6
|
+
Open Hub fits two types of sites:
|
7
7
|
that describe one individual project, and that combine projects into a hub.
|
8
8
|
|
9
|
+
See also: CI_OPS for how to set up automated build and deployment of the site
|
10
|
+
to AWS S3.
|
9
11
|
|
10
|
-
|
12
|
+
|
13
|
+
## Contents
|
14
|
+
|
15
|
+
* Creating a site: [quick-start](#starting-a-site-with-this-theme)
|
16
|
+
|
17
|
+
* [Universal site setup](#universal-setup)
|
18
|
+
* [Hub site setup](#hub-site)
|
19
|
+
* [Project site setup](#project-site)
|
20
|
+
|
21
|
+
* Describing open projects:
|
22
|
+
[Project data structure](#describing-a-project-shared-data-structure)
|
23
|
+
|
24
|
+
* Customizing site looks without violating theme design constraints:
|
25
|
+
|
26
|
+
* [Style customization](#style-customization)
|
27
|
+
* [SVG guidelines](#svg-guidelines)
|
28
|
+
* [Content guidelines](#content-guidelines)
|
29
|
+
|
30
|
+
* [Select layout reference](#select-layout-reference)
|
31
|
+
|
32
|
+
|
33
|
+
## Starting a site with this theme
|
11
34
|
|
12
35
|
### Getting started with Ruby
|
13
36
|
|
@@ -17,7 +40,7 @@ let’s say 2.4.4.
|
|
17
40
|
|
18
41
|
### Start new Jekyll site
|
19
42
|
|
20
|
-
jekyll new my-open-hub
|
43
|
+
jekyll new my-open-hub
|
21
44
|
|
22
45
|
### Installing theme
|
23
46
|
|
@@ -35,46 +58,244 @@ replacing default theme requirement:
|
|
35
58
|
theme: jekyll-theme-open-hub
|
36
59
|
```
|
37
60
|
|
38
|
-
(
|
61
|
+
(Jekyll’s default theme was “minima” at the time of this writing.)
|
39
62
|
|
40
63
|
Execute to install dependencies:
|
41
64
|
|
42
65
|
$ bundle
|
43
66
|
|
44
|
-
###
|
67
|
+
### Configuring site
|
68
|
+
|
69
|
+
Edit _config.yml to add necessary site-wide configuration options,
|
70
|
+
and add necessary files and folders to site contents. This step depends
|
71
|
+
on the type of site you’re creating: open hub or individual open project site.
|
72
|
+
|
73
|
+
Below sections explain core concepts of open project and hub, and go
|
74
|
+
into detail about how to configure a project or hub site.
|
75
|
+
|
76
|
+
### Building site
|
77
|
+
|
78
|
+
Execute to build the site locally and watch for changes:
|
79
|
+
|
80
|
+
$ bundle exec jekyll serve --host mysite.local --port 4000
|
81
|
+
|
82
|
+
This assumes you have mysite.local mapped, otherwise omit --host
|
83
|
+
and it’ll use localhost.
|
84
|
+
|
85
|
+
|
86
|
+
## Universal setup
|
87
|
+
|
88
|
+
These are applicable to both site types (hub and project).
|
89
|
+
|
90
|
+
- You may want to remove the default about.md page added by Jekyll,
|
91
|
+
as this theme does not account for its existence.
|
92
|
+
- Add following items to _config.yml:
|
93
|
+
|
94
|
+
```yaml
|
95
|
+
title: Site title
|
96
|
+
description: Site description
|
97
|
+
# The above two are used by jekyll-seo-tag for things such as
|
98
|
+
# `<title>` and `<meta>` tags, as well as elsewhere by the theme.
|
99
|
+
|
100
|
+
collections:
|
101
|
+
posts:
|
102
|
+
output: true
|
103
|
+
permalink: /blog/:month-:day-:year/:title/
|
104
|
+
pages:
|
105
|
+
output: true
|
106
|
+
permalink: /:name/
|
107
|
+
|
108
|
+
defaults:
|
109
|
+
- scope:
|
110
|
+
path: ""
|
111
|
+
values:
|
112
|
+
layout: default
|
113
|
+
- scope:
|
114
|
+
path: _posts
|
115
|
+
type: posts
|
116
|
+
values:
|
117
|
+
layout: post
|
118
|
+
|
119
|
+
plugins:
|
120
|
+
- jekyll-seo-tag
|
121
|
+
```
|
122
|
+
|
123
|
+
### Logo
|
124
|
+
|
125
|
+
Logo consists of a symbol and site name.
|
126
|
+
|
127
|
+
**Symbol** is basically an icon for the site.
|
128
|
+
Should look OK in dimensions of 30x30px, and fit inside a square.
|
129
|
+
Should be in SVG format (see also the SVG guidelines section).
|
130
|
+
Place the symbol in _includes/symbol.svg.
|
131
|
+
|
132
|
+
**Site name** displayed to the right of the symbol.
|
133
|
+
Limit the name to 1-3 words.
|
134
|
+
By default, the title you define in site config is used (for project site,
|
135
|
+
it is the name of the project).
|
136
|
+
Alternatively, you can place site name in _includes/title.html with custom HTML
|
137
|
+
or SVG. (In that case it must look good when placed in a 30px tall container,
|
138
|
+
and in case of SVG same SVG guidelines apply).
|
139
|
+
|
140
|
+
### Legal small text
|
141
|
+
|
142
|
+
You may want to supply _includes/legal.html with content like this:
|
143
|
+
|
144
|
+
```html
|
145
|
+
<span class="copyright">Copyright © 2018 MyCompany. All rights reserved.</span>
|
146
|
+
<nav>
|
147
|
+
<a href="https://www.example.com/tos">Terms</a>
|
148
|
+
<a href="https://www.example.com/privacy">Privacy</a>
|
149
|
+
</nav>
|
150
|
+
```
|
151
|
+
|
152
|
+
### Blog
|
153
|
+
|
154
|
+
Project sites and hub site can have a blog.
|
155
|
+
|
156
|
+
#### Index
|
157
|
+
|
158
|
+
Create blog index page as _pages/blog.html, with nothing but frontmatter.
|
159
|
+
Use layout called "blog-index", pass `hero_include: index-page-hero.html`,
|
160
|
+
and set `title` and `description` as appropriate for blog index page.
|
161
|
+
|
162
|
+
Example:
|
163
|
+
|
164
|
+
```yaml
|
165
|
+
---
|
166
|
+
title: Blog
|
167
|
+
description: >-
|
168
|
+
Get the latest announcements and technical how-to’s
|
169
|
+
about our software and projects.
|
170
|
+
layout: blog-index
|
171
|
+
hero_include: index-page-hero.html
|
172
|
+
---
|
173
|
+
```
|
174
|
+
|
175
|
+
#### Posts
|
176
|
+
|
177
|
+
Place posts under _posts and name files e.g.
|
178
|
+
`2018-04-20-welcome-to-jekyll.markdown`. This is typical Jekyll setup.
|
179
|
+
|
180
|
+
|
181
|
+
## Hub site
|
182
|
+
|
183
|
+
The hub represents your company or department, links to all projects
|
184
|
+
and offers a software and specification index.
|
185
|
+
|
186
|
+
Additional items allowed/expected in _config.yml:
|
187
|
+
|
188
|
+
```yaml
|
189
|
+
social:
|
190
|
+
links:
|
191
|
+
- https://twitter.com/RiboseUS
|
192
|
+
- https://github.com/riboseinc
|
193
|
+
|
194
|
+
# Since a hub would typically represent an organization as opposed
|
195
|
+
# to individual, this would make sense:
|
196
|
+
seo:
|
197
|
+
type: Organization
|
198
|
+
|
199
|
+
collections:
|
200
|
+
projects:
|
201
|
+
output: false
|
202
|
+
# ... (other collections)
|
203
|
+
```
|
204
|
+
|
205
|
+
### Project, spec and software data
|
206
|
+
|
207
|
+
See the section about project data structure.
|
208
|
+
|
209
|
+
In addition to that, _when used within hub site_ each project subdirectory
|
210
|
+
must contain a file "index.md" with frontmatter like this:
|
211
|
+
|
212
|
+
```yaml
|
213
|
+
title: Sample Awesome Project
|
214
|
+
|
215
|
+
description: >-
|
216
|
+
A sentence or two go here.
|
217
|
+
|
218
|
+
# Whether the project is included in featured three projects on hub home page
|
219
|
+
featured: true | false
|
220
|
+
|
221
|
+
home_url: <URL to standalone project site>
|
222
|
+
```
|
45
223
|
|
46
|
-
|
47
|
-
for its existence).
|
224
|
+
### Software index page
|
48
225
|
|
49
|
-
Create
|
50
|
-
index,
|
51
|
-
|
226
|
+
Create software index in _pages/software.html, with nothing but frontmatter.
|
227
|
+
Use layout called "software-index", pass `hero_include: index-page-hero.html`,
|
228
|
+
and set `title` and `description` as appropriate.
|
52
229
|
|
53
|
-
Example
|
230
|
+
Example:
|
54
231
|
|
55
232
|
```yaml
|
56
233
|
---
|
57
234
|
title: Software
|
58
|
-
description: Open-source software developed with
|
235
|
+
description: Open-source software developed with MyCompany’s cooperation.
|
59
236
|
layout: software-index
|
60
237
|
hero_include: index-page-hero.html
|
61
238
|
---
|
62
239
|
```
|
63
240
|
|
64
|
-
###
|
241
|
+
### Specification index page
|
65
242
|
|
66
|
-
|
67
|
-
|
68
|
-
|
243
|
+
Create spec index in _pages/specs.html, with nothing but frontmatter.
|
244
|
+
Use layout called "spec-index", pass `hero_include: index-page-hero.html`,
|
245
|
+
and set `title` and `description` as appropriate.
|
69
246
|
|
70
|
-
|
71
|
-
into detail about how to configure a project or hub site.
|
247
|
+
Example:
|
72
248
|
|
73
|
-
|
249
|
+
```yaml
|
250
|
+
---
|
251
|
+
title: Specifications
|
252
|
+
description: Because specifications are cool!
|
253
|
+
layout: spec-index
|
254
|
+
hero_include: index-page-hero.html
|
255
|
+
---
|
256
|
+
```
|
74
257
|
|
75
|
-
Execute to build the site:
|
76
258
|
|
77
|
-
|
259
|
+
## Project site
|
260
|
+
|
261
|
+
When project is set up as a standalone site, _config.yml should include
|
262
|
+
site-wide `title` that is the same as project name.
|
263
|
+
|
264
|
+
Additional items allowed/expected in _config.yml:
|
265
|
+
|
266
|
+
```yaml
|
267
|
+
authors:
|
268
|
+
- name: Your Name
|
269
|
+
email: your-email@example.com
|
270
|
+
|
271
|
+
author: "Company or Individual Name Goes Here"
|
272
|
+
|
273
|
+
collections:
|
274
|
+
software:
|
275
|
+
output: true
|
276
|
+
permalink: /:name/
|
277
|
+
specs:
|
278
|
+
output: true
|
279
|
+
permalink: /:name/
|
280
|
+
# ... (other collections)
|
281
|
+
|
282
|
+
defaults:
|
283
|
+
- scope:
|
284
|
+
path: _software
|
285
|
+
type: software
|
286
|
+
values:
|
287
|
+
layout: product
|
288
|
+
- scope:
|
289
|
+
path: _specs
|
290
|
+
type: specs
|
291
|
+
values:
|
292
|
+
layout: spec
|
293
|
+
# ... (other defaults)
|
294
|
+
```
|
295
|
+
|
296
|
+
File layout is the same as described in the section
|
297
|
+
about shared project data structure, with _software and _specs directories
|
298
|
+
found in the root of your Jekyll site.
|
78
299
|
|
79
300
|
|
80
301
|
## Describing a project: shared data structure
|
@@ -143,114 +364,121 @@ Start with second-level header (##).
|
|
143
364
|
|
144
365
|
### Symbol
|
145
366
|
|
146
|
-
|
147
|
-
|
367
|
+
Should look OK in dimensions of 30x30px, and fit inside a square.
|
368
|
+
Should be in SVG format (see also the SVG guidelines section).
|
148
369
|
Place the symbol in _includes/symbol.svg within project directory.
|
149
370
|
|
150
371
|
|
151
|
-
##
|
372
|
+
## SVG guidelines
|
152
373
|
|
153
|
-
|
374
|
+
- Ensure SVG markup does not use IDs. It may appear multiple times
|
375
|
+
on the page hence IDs would fail markup validation.
|
376
|
+
- Ensure root <svg> element specifies its viewBox,
|
377
|
+
but no width or height attributes.
|
378
|
+
- You can style SVG shapes using in site’s assets/css/style.scss.
|
154
379
|
|
155
|
-
Both project site and hub site have blogs. Place posts under _posts
|
156
|
-
and named files e.g. `2018-04-20-welcome-to-jekyll.markdown`.
|
157
380
|
|
158
|
-
|
381
|
+
## Content guidelines
|
159
382
|
|
160
|
-
|
383
|
+
- Project title: 1-3 words, capital case
|
384
|
+
- Project feature description: about 20-24 words, no markup
|
385
|
+
- Project, software, spec regular description: about 12 words, no markup
|
386
|
+
- Post title: 3–7 words
|
387
|
+
- Post excerpt: about 20–24 words, no markup
|
161
388
|
|
162
|
-
Both should look OK when placed in a 30px container.
|
163
389
|
|
164
|
-
|
165
|
-
Should be in SVG format. Place the symbol in _includes/symbol.svg.
|
166
|
-
See also SVG guidelines.
|
390
|
+
## Select layout reference
|
167
391
|
|
168
|
-
|
169
|
-
|
170
|
-
Alternatively, you can place site name in _includes/title.html with custom HTML
|
171
|
-
or even SVG (same SVG guidelines apply).
|
392
|
+
Normally you don’t need to specify layouts manually, except where
|
393
|
+
instructed in site setup sections of this document.
|
172
394
|
|
173
|
-
|
395
|
+
Commonly used layouts are:
|
174
396
|
|
175
|
-
|
176
|
-
|
177
|
-
```html
|
178
|
-
<span class="copyright">Copyright © 2018 Example. All rights reserved.</span>
|
179
|
-
<nav>
|
180
|
-
<a href="https://www.example.com/tos">Terms</a>
|
181
|
-
<a href="https://www.example.com/privacy">Privacy</a>
|
182
|
-
</nav>
|
183
|
-
```
|
397
|
+
- blog-index: Blog index page. Pages using this layout are recommended
|
398
|
+
to supply hero_include.
|
184
399
|
|
400
|
+
- post: Blog post
|
185
401
|
|
186
|
-
|
402
|
+
- software-index: Software index page (hub site only).
|
403
|
+
Suggested to supply hero_include.
|
404
|
+
Will show a list of software across projects within the hub.
|
187
405
|
|
188
|
-
|
406
|
+
- spec-index: Specification index page (hub site only).
|
407
|
+
Suggested to supply hero_include.
|
408
|
+
Will show a list of specs across projects within the hub.
|
189
409
|
|
190
|
-
|
410
|
+
- product: Software product (project site only)
|
191
411
|
|
192
|
-
|
412
|
+
- spec: Open specification (project site only)
|
193
413
|
|
194
|
-
|
195
|
-
project directory a file index.md with following frontmatter:
|
414
|
+
### Page frontmatter
|
196
415
|
|
197
|
-
|
198
|
-
|
416
|
+
Typical expected page frontmatter is `title` and `description`. Those are
|
417
|
+
also used by jekyll-seo-tag plugin to add the appropriate meta tags.
|
199
418
|
|
200
|
-
|
201
|
-
|
419
|
+
Commonly supported in page frontmatter is the hero_include option,
|
420
|
+
which would show hero unit underneath top header.
|
421
|
+
Currently, theme supports _includes/index-page-hero.html as the only value
|
422
|
+
you can pass for hero_include (or you can leave hero_include out altogether).
|
202
423
|
|
203
|
-
# Whether the project is included in the three projects on hub home page
|
204
|
-
featured: true | false
|
205
424
|
|
206
|
-
|
207
|
-
```
|
425
|
+
## Style customization
|
208
426
|
|
427
|
+
To customize site appearance, create a file in your Jekyll site
|
428
|
+
under assets/css/style.scss with following exact contents:
|
209
429
|
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
"title" and "description", corresponding to project’s information.
|
430
|
+
```
|
431
|
+
---
|
432
|
+
---
|
214
433
|
|
215
|
-
|
216
|
-
|
434
|
+
@import '{{ site.theme }}';
|
435
|
+
```
|
217
436
|
|
437
|
+
You can define custom style rules after the import, and customize variables
|
438
|
+
before the import.
|
218
439
|
|
219
|
-
|
440
|
+
### Custom rules
|
220
441
|
|
221
|
-
|
222
|
-
|
442
|
+
One suggested custom rule would be to change the fill color for SVG paths
|
443
|
+
used for your custom site symbol to white, unless it’s white by default.
|
223
444
|
|
224
|
-
|
225
|
-
but no width or height attributes.
|
445
|
+
The rule would look like this:
|
226
446
|
|
227
|
-
|
447
|
+
```scss
|
448
|
+
.site-logo svg path {
|
449
|
+
fill: white;
|
450
|
+
}
|
451
|
+
```
|
228
452
|
|
453
|
+
### SASS variables
|
229
454
|
|
230
|
-
|
231
|
-
|
232
|
-
- Project title: 1-3 words, capital case
|
233
|
-
- Project feature description: about 20-24 words, no markup
|
234
|
-
- Project, software, spec regular description: about 12 words, no markup
|
235
|
-
- Post title: 3–7 words
|
236
|
-
- Post excerpt: about 20–24 words, no markup
|
455
|
+
Following are the variables along with their defaults:
|
237
456
|
|
457
|
+
```scss
|
458
|
+
# Primary color—should be bright but dark enough to be readable,
|
459
|
+
# since some text elements are set using this color:
|
460
|
+
$primary-color: lightblue !default;
|
238
461
|
|
239
|
-
|
462
|
+
# Darker variation of primary color used for background on elements where
|
463
|
+
# text is set in white:
|
464
|
+
$primary-dark-color: navy !default;
|
240
465
|
|
241
|
-
|
242
|
-
|
243
|
-
|
466
|
+
# Bright color for accent elements, such as buttons (not yet in use).
|
467
|
+
# Text on those elements is set in bold and white, so this color
|
468
|
+
# should be dark enough:
|
469
|
+
$accent-color: red !default;
|
244
470
|
|
245
|
-
|
246
|
-
|
247
|
-
|
471
|
+
# Below are used for `background` CSS rule for top header, and for
|
472
|
+
# hero unit respectively. Gradients can be supplied.
|
473
|
+
$header-background: $primary-dark-color !default;
|
474
|
+
$hero-background: $primary-dark-color !default;
|
475
|
+
```
|
248
476
|
|
249
477
|
|
250
478
|
## Contributing
|
251
479
|
|
252
480
|
Bug reports and pull requests are welcome on GitHub
|
253
|
-
at https://github.com/riboseinc/
|
481
|
+
at https://github.com/riboseinc/jekyll-theme-open-hub.
|
254
482
|
|
255
483
|
This project is intended to be a safe, welcoming space for collaboration,
|
256
484
|
and contributors are expected to adhere
|
@@ -259,14 +487,12 @@ to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
|
259
487
|
|
260
488
|
## Theme development
|
261
489
|
|
262
|
-
|
263
|
-
|
264
|
-
To set up your environment to develop this theme, run `bundle install`.
|
265
|
-
|
266
|
-
To experiment with this code, add some sample content
|
267
|
-
and run `bundle exec jekyll serve`.
|
490
|
+
Generally, this directory is setup like a Jekyll site. To set it up,
|
491
|
+
run `bundle install`.
|
268
492
|
|
269
|
-
|
493
|
+
To experiment with this code, add content (projects, software, specs)
|
494
|
+
and run `bundle exec jekyll serve`. This starts a Jekyll server
|
495
|
+
using this theme at `http://localhost:4000`.
|
270
496
|
|
271
497
|
Put your layouts in `_layouts`, your includes in `_includes`,
|
272
498
|
your sass files in `_sass` and any other assets in `assets`.
|
@@ -277,10 +503,21 @@ As you make modifications to your theme and to your content, your site will
|
|
277
503
|
regenerate and you should see the changes in the browser after a refresh,
|
278
504
|
like normal.
|
279
505
|
|
280
|
-
When your theme is released, only
|
281
|
-
|
282
|
-
|
283
|
-
|
506
|
+
When your theme is released, only files specified with gemspec file
|
507
|
+
will be included. If you modify theme to add more directories that
|
508
|
+
need to be included in the gem, edit regexp in the gemspec.
|
509
|
+
|
510
|
+
### Building and releasing
|
511
|
+
|
512
|
+
To check your theme, run:
|
513
|
+
|
514
|
+
./develop/build
|
515
|
+
|
516
|
+
It’ll build Jekyll site and run some checks, like HTML markup validation.
|
517
|
+
|
518
|
+
To build new gem and push it to rubygems.org, run:
|
519
|
+
|
520
|
+
./develop/release
|
284
521
|
|
285
522
|
|
286
523
|
## License
|
metadata
CHANGED
@@ -1,16 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-open-hub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
- Anton Strogonoff
|
9
|
-
- Ricardo Salazar
|
10
8
|
autorequire:
|
11
9
|
bindir: bin
|
12
10
|
cert_chain: []
|
13
|
-
date: 2018-04
|
11
|
+
date: 2018-05-04 00:00:00.000000000 Z
|
14
12
|
dependencies:
|
15
13
|
- !ruby/object:Gem::Dependency
|
16
14
|
name: jekyll
|
@@ -112,7 +110,7 @@ dependencies:
|
|
112
110
|
version: '1.3'
|
113
111
|
description:
|
114
112
|
email:
|
115
|
-
-
|
113
|
+
- open.source@ribose.com
|
116
114
|
executables: []
|
117
115
|
extensions: []
|
118
116
|
extra_rdoc_files: []
|
@@ -151,7 +149,7 @@ files:
|
|
151
149
|
- assets/fa/fa-brands.js
|
152
150
|
- assets/fa/fa-solid.js
|
153
151
|
- assets/fa/fontawesome.js
|
154
|
-
homepage:
|
152
|
+
homepage: https://github.com/riboseinc/jekyll-theme-open-hub/
|
155
153
|
licenses:
|
156
154
|
- MIT
|
157
155
|
metadata: {}
|