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.
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: {}