jekyll-theme-open-project 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +547 -0
- data/_includes/home-hero.html +2 -0
- data/_includes/home-hub.html +61 -0
- data/_includes/home-project.html +56 -0
- data/_includes/index-page-hero.html +2 -0
- data/_includes/legal.html +5 -0
- data/_includes/logo.html +1 -0
- data/_includes/nav-page-link.html +5 -0
- data/_includes/post-card.html +7 -0
- data/_includes/social-links.html +13 -0
- data/_includes/symbol.svg +19 -0
- data/_includes/title.html +1 -0
- data/_layouts/blog-index.html +9 -0
- data/_layouts/default.html +59 -0
- data/_layouts/home.html +9 -0
- data/_layouts/index-page.html +7 -0
- data/_layouts/page.html +5 -0
- data/_layouts/post.html +18 -0
- data/_layouts/product.html +30 -0
- data/_layouts/software-index.html +18 -0
- data/_layouts/spec-index.html +18 -0
- data/_layouts/spec.html +29 -0
- data/_pages/blog.html +8 -0
- data/_pages/software.html +6 -0
- data/_pages/specs.html +6 -0
- data/_sass/jekyll-theme-open-project.scss +249 -0
- data/_sass/normalize.scss +424 -0
- data/_sass/open-project-base.scss +181 -0
- data/_sass/open-project-header-footer.scss +136 -0
- data/assets/css/style.scss +16 -0
- data/assets/fa/fa-brands.js +456 -0
- data/assets/fa/fa-solid.js +915 -0
- data/assets/fa/fontawesome.js +1805 -0
- metadata +176 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 1455bc3d106d07589f676621e160bcc927f21723
|
4
|
+
data.tar.gz: 7ed324c9a0be2aecd73a1cfffd5e057ce76a5e32
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 951495b57e7b5a4b1b068258e2d7ff744dfa80d570b704696c33d2d10b3fbe464f67a31acc8bd628d95e6369837af06392c3fe422af9867c8a31a6a750ae6895
|
7
|
+
data.tar.gz: 2e0f09342c69b7b629d4991871acf1b8f7298ae3d524d89e30ad86510e5064d40d4e64d182e61b4c7917af5dbf994daeb763b62caa87bd920889d473db25c135
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2018 Anton Strogonoff
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,547 @@
|
|
1
|
+
# Open Project theme by Ribose
|
2
|
+
|
3
|
+
Open Project is a theme for Jekyll oriented towards presenting open efforts
|
4
|
+
such as open-source software and specifications in a navigable and elegant way.
|
5
|
+
|
6
|
+
Open Project fits two types of sites:
|
7
|
+
that describe one individual project, and that combine projects into sort of an open hub.
|
8
|
+
|
9
|
+
See also: CI_OPS for how to set up automated build and deployment of the site
|
10
|
+
to AWS S3.
|
11
|
+
|
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
|
34
|
+
|
35
|
+
### Getting started with Ruby
|
36
|
+
|
37
|
+
If you aren’t using Ruby often, the recommended way to install it is with RVM.
|
38
|
+
Refer to RVM docs and use it to install a reasonably fresh Ruby version,
|
39
|
+
let’s say 2.4.4.
|
40
|
+
|
41
|
+
### Start new Jekyll site
|
42
|
+
|
43
|
+
jekyll new my-open-site
|
44
|
+
|
45
|
+
### Installing theme
|
46
|
+
|
47
|
+
Add this line to your Jekyll site's `Gemfile`,
|
48
|
+
replacing default theme requirement:
|
49
|
+
|
50
|
+
```ruby
|
51
|
+
gem 'jekyll-theme-open-project'
|
52
|
+
```
|
53
|
+
|
54
|
+
Add this line to your Jekyll site's `_config.yml`,
|
55
|
+
replacing default theme requirement:
|
56
|
+
|
57
|
+
```yaml
|
58
|
+
theme: jekyll-theme-open-project
|
59
|
+
```
|
60
|
+
|
61
|
+
(Jekyll’s default theme was “minima” at the time of this writing.)
|
62
|
+
|
63
|
+
Execute to install dependencies:
|
64
|
+
|
65
|
+
$ bundle
|
66
|
+
|
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
|
+
_When used within hub site_ (only), 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
|
+
```
|
223
|
+
|
224
|
+
### Software index page
|
225
|
+
|
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.
|
229
|
+
|
230
|
+
Example:
|
231
|
+
|
232
|
+
```yaml
|
233
|
+
---
|
234
|
+
title: Software
|
235
|
+
description: Open-source software developed with MyCompany’s cooperation.
|
236
|
+
layout: software-index
|
237
|
+
hero_include: index-page-hero.html
|
238
|
+
---
|
239
|
+
```
|
240
|
+
|
241
|
+
### Specification index page
|
242
|
+
|
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.
|
246
|
+
|
247
|
+
Example:
|
248
|
+
|
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
|
+
```
|
257
|
+
|
258
|
+
|
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
|
+
# ... (other collections)
|
275
|
+
software:
|
276
|
+
output: true
|
277
|
+
permalink: /:name/
|
278
|
+
specs:
|
279
|
+
output: true
|
280
|
+
permalink: /:name/
|
281
|
+
|
282
|
+
defaults:
|
283
|
+
# ... (other defaults)
|
284
|
+
- scope:
|
285
|
+
path: _software
|
286
|
+
type: software
|
287
|
+
values:
|
288
|
+
layout: product
|
289
|
+
- scope:
|
290
|
+
path: _specs
|
291
|
+
type: specs
|
292
|
+
values:
|
293
|
+
layout: spec
|
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.
|
299
|
+
|
300
|
+
|
301
|
+
## Describing a project: shared data structure
|
302
|
+
|
303
|
+
Each project is expected to have a machine-readable and unique name, a title,
|
304
|
+
a description, a symbol, and one or more software products and/or specs.
|
305
|
+
|
306
|
+
Following data structure is shared and used to describe projects,
|
307
|
+
whether on hub home site or each individual project site:
|
308
|
+
|
309
|
+
- <project-name>/
|
310
|
+
- _includes/
|
311
|
+
- symbol.svg
|
312
|
+
- _software/
|
313
|
+
- <name>.md
|
314
|
+
- _specs/
|
315
|
+
- <name>.md
|
316
|
+
|
317
|
+
### Software and specs
|
318
|
+
|
319
|
+
An open project serves as an umbrella for related
|
320
|
+
software products and/or specifications.
|
321
|
+
|
322
|
+
Each product or spec is described by its own <name>.md file with frontmatter,
|
323
|
+
placed under _software/ or _specs/ subdirectory, respectively,
|
324
|
+
of your open project’s Jekyll site.
|
325
|
+
|
326
|
+
Note: even though they’re in different subdirectories, all software products and specs
|
327
|
+
within one project share URL namespace and hence must have unique names.
|
328
|
+
|
329
|
+
YAML frontmatter that can be used with both software and specs:
|
330
|
+
|
331
|
+
```yaml
|
332
|
+
title: A Few Words
|
333
|
+
# Shown to the user
|
334
|
+
# and used for HTML metadata if jekyll-seo-tag is enabled
|
335
|
+
|
336
|
+
description: A sentence.
|
337
|
+
# Not necessarily shown to the user,
|
338
|
+
# but used for HTML metadata if jekyll-seo-tag is enabled
|
339
|
+
```
|
340
|
+
|
341
|
+
### Software product
|
342
|
+
|
343
|
+
YAML frontmatter specific to software:
|
344
|
+
|
345
|
+
```yaml
|
346
|
+
version: v1.2.3
|
347
|
+
docs_url: https://foobar.readthedocs.io/en/latest
|
348
|
+
repo_url: https://github.com/…
|
349
|
+
stack: [Python, Django, AWS]
|
350
|
+
```
|
351
|
+
|
352
|
+
#### Documentation
|
353
|
+
|
354
|
+
**Recommended:** use a dedicated service supporting versioned and well-structured
|
355
|
+
multi-page docs, such as Read the Docs. You can link users to that documentation
|
356
|
+
using docs_url in software product’s frontmatter.
|
357
|
+
|
358
|
+
Otherwise, if this open project’s page will serve as the authoritative source
|
359
|
+
of documentation for the software product, documentation contents are expected
|
360
|
+
to follow frontmatter.
|
361
|
+
|
362
|
+
Keep in mind that project name and description from before
|
363
|
+
will be displayed by the theme first. Start with second-level header (##),
|
364
|
+
with installation instructions or quick-start guide.
|
365
|
+
|
366
|
+
### Specification
|
367
|
+
|
368
|
+
YAML frontmatter specific to specs:
|
369
|
+
|
370
|
+
```yaml
|
371
|
+
rfc_id: XXXX
|
372
|
+
# IETF RFC URL would be in the form
|
373
|
+
# http://ietf.org/html/rfc<id>
|
374
|
+
|
375
|
+
ietf_datatracker_id: some-string-identifier-here
|
376
|
+
ietf_datatracker_ver: "01"
|
377
|
+
# IETF datatracker URL would be in the form
|
378
|
+
# https://datatracker.ietf.org/doc/<id>[-<version>]
|
379
|
+
|
380
|
+
source_url: https://example.com/spec-source-markup
|
381
|
+
```
|
382
|
+
|
383
|
+
Specs that are not hosted elsewhere (such as ietf.org for RFCs)
|
384
|
+
are expected to contain the actual specification content after frontmatter.
|
385
|
+
Start with second-level header (##).
|
386
|
+
|
387
|
+
### Symbol
|
388
|
+
|
389
|
+
Should look OK in dimensions of 30x30px, and fit inside a square.
|
390
|
+
Should be in SVG format (see also the SVG guidelines section).
|
391
|
+
Place the symbol in _includes/symbol.svg within project directory.
|
392
|
+
|
393
|
+
|
394
|
+
## SVG guidelines
|
395
|
+
|
396
|
+
- Ensure SVG markup does not use IDs. It may appear multiple times
|
397
|
+
on the page hence IDs would fail markup validation.
|
398
|
+
- Ensure root <svg> element specifies its viewBox,
|
399
|
+
but no width or height attributes.
|
400
|
+
- You can style SVG shapes using in site’s assets/css/style.scss.
|
401
|
+
|
402
|
+
|
403
|
+
## Content guidelines
|
404
|
+
|
405
|
+
- Project, software, spec title: 1-3 words, capital case
|
406
|
+
- Project, software, spec description: about 12 words, no markup
|
407
|
+
- Project description (featured): about 20-24 words, no markup
|
408
|
+
- Blog post title: 3–7 words
|
409
|
+
- Blog post excerpt: about 20–24 words, no markup
|
410
|
+
|
411
|
+
|
412
|
+
## Select layout reference
|
413
|
+
|
414
|
+
Normally you don’t need to specify layouts manually, except where
|
415
|
+
instructed in site setup sections of this document.
|
416
|
+
|
417
|
+
Commonly used layouts are:
|
418
|
+
|
419
|
+
- blog-index: Blog index page. Pages using this layout are recommended
|
420
|
+
to supply hero_include.
|
421
|
+
|
422
|
+
- post: Blog post
|
423
|
+
|
424
|
+
- software-index: Software index page (hub site only).
|
425
|
+
Suggested to supply hero_include.
|
426
|
+
Will show a list of software across projects within the hub.
|
427
|
+
|
428
|
+
- spec-index: Specification index page (hub site only).
|
429
|
+
Suggested to supply hero_include.
|
430
|
+
Will show a list of specs across projects within the hub.
|
431
|
+
|
432
|
+
- product: Software product (project site only)
|
433
|
+
|
434
|
+
- spec: Open specification (project site only)
|
435
|
+
|
436
|
+
### Page frontmatter
|
437
|
+
|
438
|
+
Typical expected page frontmatter is `title` and `description`. Those are
|
439
|
+
also used by jekyll-seo-tag plugin to add the appropriate meta tags.
|
440
|
+
|
441
|
+
Commonly supported in page frontmatter is the hero_include option,
|
442
|
+
which would show hero unit underneath top header.
|
443
|
+
Currently, theme supports _includes/index-page-hero.html as the only value
|
444
|
+
you can pass for hero_include (or you can leave hero_include out altogether).
|
445
|
+
|
446
|
+
|
447
|
+
## Style customization
|
448
|
+
|
449
|
+
To customize site appearance, create a file in your Jekyll site
|
450
|
+
under assets/css/style.scss with following exact contents:
|
451
|
+
|
452
|
+
```
|
453
|
+
---
|
454
|
+
---
|
455
|
+
|
456
|
+
@import '{{ site.theme }}';
|
457
|
+
```
|
458
|
+
|
459
|
+
You can define custom style rules after the import, and customize variables
|
460
|
+
before the import.
|
461
|
+
|
462
|
+
### Custom rules
|
463
|
+
|
464
|
+
One suggested custom rule would be to change the fill color for SVG paths
|
465
|
+
used for your custom site symbol to white, unless it’s white by default.
|
466
|
+
|
467
|
+
The rule would look like this:
|
468
|
+
|
469
|
+
```scss
|
470
|
+
.site-logo svg path {
|
471
|
+
fill: white;
|
472
|
+
}
|
473
|
+
```
|
474
|
+
|
475
|
+
### SASS variables
|
476
|
+
|
477
|
+
Following are the variables along with their defaults:
|
478
|
+
|
479
|
+
```scss
|
480
|
+
# Primary color—should be bright but dark enough to be readable,
|
481
|
+
# since some text elements are set using this color:
|
482
|
+
$primary-color: lightblue !default;
|
483
|
+
|
484
|
+
# Darker variation of primary color used for background on elements where
|
485
|
+
# text is set in white:
|
486
|
+
$primary-dark-color: navy !default;
|
487
|
+
|
488
|
+
# Bright color for accent elements, such as buttons (not yet in use).
|
489
|
+
# Text on those elements is set in bold and white, so this color
|
490
|
+
# should be dark enough:
|
491
|
+
$accent-color: red !default;
|
492
|
+
|
493
|
+
# Below are used for `background` CSS rule for top header, and for
|
494
|
+
# hero unit respectively. Gradients can be supplied.
|
495
|
+
$header-background: $primary-dark-color !default;
|
496
|
+
$hero-background: $primary-dark-color !default;
|
497
|
+
```
|
498
|
+
|
499
|
+
|
500
|
+
## Contributing
|
501
|
+
|
502
|
+
Bug reports and pull requests are welcome on GitHub
|
503
|
+
at https://github.com/riboseinc/jekyll-theme-open-project.
|
504
|
+
|
505
|
+
This project is intended to be a safe, welcoming space for collaboration,
|
506
|
+
and contributors are expected to adhere
|
507
|
+
to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
508
|
+
|
509
|
+
|
510
|
+
## Theme development
|
511
|
+
|
512
|
+
Generally, this directory is setup like a Jekyll site. To set it up,
|
513
|
+
run `bundle install`.
|
514
|
+
|
515
|
+
To experiment with this code, add content (projects, software, specs)
|
516
|
+
and run `bundle exec jekyll serve`. This starts a Jekyll server
|
517
|
+
using this theme at `http://localhost:4000`.
|
518
|
+
|
519
|
+
Put your layouts in `_layouts`, your includes in `_includes`,
|
520
|
+
your sass files in `_sass` and any other assets in `assets`.
|
521
|
+
|
522
|
+
Add pages, documents, data, etc. like normal to test your theme's contents.
|
523
|
+
|
524
|
+
As you make modifications to your theme and to your content, your site will
|
525
|
+
regenerate and you should see the changes in the browser after a refresh,
|
526
|
+
like normal.
|
527
|
+
|
528
|
+
When your theme is released, only files specified with gemspec file
|
529
|
+
will be included. If you modify theme to add more directories that
|
530
|
+
need to be included in the gem, edit regexp in the gemspec.
|
531
|
+
|
532
|
+
### Building and releasing
|
533
|
+
|
534
|
+
To check your theme, run:
|
535
|
+
|
536
|
+
./develop/build
|
537
|
+
|
538
|
+
It’ll build Jekyll site and run some checks, like HTML markup validation.
|
539
|
+
|
540
|
+
To build new gem and push it to rubygems.org, run:
|
541
|
+
|
542
|
+
./develop/release
|
543
|
+
|
544
|
+
|
545
|
+
## License
|
546
|
+
|
547
|
+
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|