Skip to content

Make a contribution guide #34

Open
@gonX

Description

@gonX

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmetaDotfiles, Scripts, Github files, Repository management

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions