jekyll-theme-open-hub 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- 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: {}
|