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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +338 -101
  3. metadata +4 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 545aa2d3d98b1b7597ce2a4dff712df3016e4e9a0d0117b34873e35977f1425a
4
- data.tar.gz: a3fc839166d1ee2f3b7dd6ad4664b5a31a7a74cada3b0ab353a7ba04c2cc4079
3
+ metadata.gz: 727caf1528610157d086b8a66e77263a0a949a29e520251e4774a6e083da50aa
4
+ data.tar.gz: fa5cb19c66214932aab3df38ffbff6935f95b4f7476f2949d9925aa542574231
5
5
  SHA512:
6
- metadata.gz: 5398070664abe153d479954848bb7d2b83352f7706e63cc44dfa9b9aa88e511bc7f7e6e049eee1aab05c15fbc713a8599f416cf5952ba60b95d70e244b4cb312
7
- data.tar.gz: 0dbd53fd766f34fc2218f6e9c4f3f896e35b3a501cf237978e06f9171136df2a347813be24b0639eef86f8ae9759604ad607ea1679e94660d9cc90431f830348
6
+ metadata.gz: 2c7824c01f27f450af0a508ee9727978e21500ed0f3aa0ec274121d3def41cbc8a9ea5269807fdb74fb6f2d5c203b4dcde4f3fa4d0a1ac938ed362168128700b
7
+ data.tar.gz: b717df76e95e9d3d41ef6b883a87a9b00c8683f2d3d510402f62f325dd929caae30f673811a738971014b8749e4dc6cb2c4a68706d85c8213248b7cc1e98c278
data/README.md CHANGED
@@ -1,13 +1,36 @@
1
- # Open Project theme by Ribose
1
+ # Open Hub theme by Ribose
2
2
 
3
- Open Project is a theme for Jekyll oriented towards presenting open efforts
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 Project fits two types of sites:
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
- ## Starting a site based on gem-based theme
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
- (Default theme is “minima” at the time of this writing.)
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
- ### Setting up pages
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
- You may want to remove the default about.md page (theme does not account
47
- for its existence).
224
+ ### Software index page
48
225
 
49
- Create _pages directory and put in there pages for blog, software
50
- index, and specification index. Layouts to use are correspondingly
51
- `blog-index`, `software-index`, and `spec-index`.
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 page frontmatter:
230
+ Example:
54
231
 
55
232
  ```yaml
56
233
  ---
57
234
  title: Software
58
- description: Open-source software developed with our company’s cooperation.
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
- ### Configuring site
241
+ ### Specification index page
65
242
 
66
- Depending on the type of site, copy _config-hub.yml or _config-project.yml
67
- into main _config.yml of Jekyll installation. Edit that file to add necessary
68
- site-wide configuration options, and add necessary files and folders to site contents.
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
- Below sections explain core concepts of open project and hub, and go
71
- into detail about how to configure a project or hub site.
247
+ Example:
72
248
 
73
- ### Building site
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
- $ bundle exec jekyll serve --host mysite.local --port 4000
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
- Symbol should be in SVG format, have equal height and width,
147
- and look OK with height under 30px.
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
- ## Generic site
372
+ ## SVG guidelines
152
373
 
153
- ### Blog
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
- ### Logo
381
+ ## Content guidelines
159
382
 
160
- Logo consists of a symbol and site name.
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
- Symbol: should have equal height and width. Should look OK with height under 30px.
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
- Site name: 1-3 words displayed to the right of the symbol.
169
- By default, the title you define in site config is used.
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
- ### Legal small text
395
+ Commonly used layouts are:
174
396
 
175
- You may want to supply _includes/legal.html with content like this:
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
- ## Hub site
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
- The hub represents your company or department.
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
- ### Projects, software and specs
410
+ - product: Software product (project site only)
191
411
 
192
- See above section about project data structure.
412
+ - spec: Open specification (project site only)
193
413
 
194
- When used within hub site, each project is expected to contain directly inside
195
- project directory a file index.md with following frontmatter:
414
+ ### Page frontmatter
196
415
 
197
- ```yaml
198
- title: Sample Awesome Project
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
- description: >-
201
- A sentence or two go here.
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
- home_url: <URL to standalone project site>
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
- ## Project site
211
-
212
- When project is set up as a standalone site, _config.yml should include
213
- "title" and "description", corresponding to project’s information.
430
+ ```
431
+ ---
432
+ ---
214
433
 
215
- Otherwise file layout is the same as described in the section
216
- about shared project data structure.
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
- ## SVG format guidelines
440
+ ### Custom rules
220
441
 
221
- - Ensure SVG markup does not use IDs. It may appear multiple times
222
- on the page hence IDs would fail markup validation.
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
- - Ensure root <svg> element specifies its viewBox,
225
- but no width or height attributes.
445
+ The rule would look like this:
226
446
 
227
- - You can style SVG shapes using in site’s assets/css/style.scss.
447
+ ```scss
448
+ .site-logo svg path {
449
+ fill: white;
450
+ }
451
+ ```
228
452
 
453
+ ### SASS variables
229
454
 
230
- ## Content guidelines
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
- ## TODO: Note on shared data
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
- In the long run it is recommended to avoid maintaining two separate copies
242
- of data (e.g., same project data for project site, and one for parent hub site,
243
- or reposting posts from project site blogs into hub blog).
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
- Ideally, during static site build the automation would pull relevant data
246
- from a centralized or distributed source and place it as needed
247
- inside Jekyll site structure before executing `jekyll build`.
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/openproject-theme.
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
- This directory is setup just like a Jekyll site.
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
- This starts a Jekyll server using your theme at `http://localhost:4000`.
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 the files in `_layouts`, `_includes`,
281
- `_sass` and `assets` tracked with Git will be bundled.
282
- To add a custom directory to your theme-gem, please edit the regexp in
283
- `openhub.gemspec` accordingly.
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.2
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-25 00:00:00.000000000 Z
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
- - feedback@ribose.com
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: {}