OpenTabletDriver / OpenTabletDriver/opentabletdriver.github.io

Make a contribution guide

Open
#34 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement meta
Dominant language
HTML
Stars
36
Forks
10
Avg merge
12h 32m
Merged PRs (30d)
9

Description

Should cover things like:

  • Image optimization BEFORE commit
    • https://imageoptim.com/versions.html or similar
    • This is to avoid making a git clone be needlessly large. Committing one version and then later committing an optimized version still ends up with both versions in the git repo. Rewrite your commits to fix this (git rebase -i origin/main and follow instructions)
  • Image usage
    • <picture> preferring webp with png fallback?
  • Suggest the contributor to read the Jekyll docs: https://jekyllrb.com/docs/ but also write the guide assuming contributors have not read this thoroughly, for now.
  • Referencing other files (using {% link %} etc)
    • It's a compile-time file check, basically
  • Site structure
    • What goes where and what's what
      • /assets/: generic site assets
      • /_sections/: pages that get their title assigned to the website root, e.g. /_sections/blarg.md with title: Test in front matter gets http://site/Test as permalink, but try to keep file name (and casing) consistent with the title used.
      • /_wiki/: uses the path of the file as permalink and defaults to the wikipage layout, e.g. _wiki/Install/Linux.md becomes https://site/Install/Linux
      • Generic Jekyll files:
        • /_config.yml: main Jekyll config, see Configuration | Jekyll
        • /index.md: frontpage content, see front matter for which layout is used
        • /404.html: the 404 (page not found) page used
        • /Gemfile (and Gemfile.lock): ruby files used by rubygems and bundler, see Ruby(?) docs.
      • Generic folders:
        • /_data/: data accessible via {{ site.data }}, see Data Files | Jekyll
        • /_includes/: files used in {% include <file> %} statements, see Includes | Jekyll
        • /_layouts/: files used for layouts, inheritance is heavily used here, see Layouts | Jekyll
        • /_site/: Contains the processed/built site. Should never be in VCS/git.
        • vendor: Your local ruby files. Should never be in VCS/git.
    • What happens in different folders (collections array in /_config.yml tells us most of that)
    • Detail usage of /_layouts
      • also mention that wiki collections (/_wiki files) always use the wikipage layout, anything else uses the default layout, and inheritance is used (e.g. layout wikipage defining default as its layout, which replaces {{ content }} in default with wikipage contents) (link to Jekyll docs for layouts)
  • Target browsers (Chrome and Firefox, both on Mobile and Desktop - if Chrome works most things should work)
  • Usage of JavaScript
    • Keep to a minimum, but if you have to use it, always consider noscript/no-JS users - at the very least, have a scriptless fallback.

Additions welcome

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing _config.yml, the _layouts, _sections, and _wiki directories, then consult the linked Jekyll documentation. The contribution guide should explain repository structure, image handling, file references, layouts, supported browsers, and JavaScript fallbacks as described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
html, javascript, jekyll, ruby
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.