]> jfr.im git - irc/freenode/web-7.0.git/blame - CONTRIBUTING.md
2021-06-05: update people
[irc/freenode/web-7.0.git] / CONTRIBUTING.md
CommitLineData
457df43b 1# Contributing
d0bfb193 2
457df43b 3## Branches and issues
d0bfb193
EK
4- Whenever possible, one commit per feature.
5- If feature/pull-request branches have only one developer, please regularly
860d8794 6 rebase them onto main until they are merged in.
d0bfb193
EK
7- Don't merge branches with meaningless commit messages; always squash them
8 instead.
9- Wait for discussion of big changes. Your branches will still be here
10 tomorrow.
457df43b
SB
11
12## Coding Style
13- Use lowercase filenames
14- Do not use underscores in filenames
093dd5a2 15- File extensions:
457df43b 16
093dd5a2
EK
17 Type | Extension
18 -------- | ---------
19 Markdown | .md
20 HTML | .html
21 JPEG | .jpg
457df43b 22
093dd5a2
EK
23Take note about the following fileextensions is preferred over their
24alternatives: `.md`, `.html`, `.jpg`
25
26### Editorial content
27- Use British English
28- Abbreviate with caution
29- Avoid contractions
30- Do not use hyphens as em dashes. Em dashes do not have space around them.
31- Avoid jargon
32- Content changes require approval
33 - If you are on freenode staff, you should know where to ask
34 - If not, any staff can relay to the right people as appropriate
457df43b
SB
35
36### CSS
37- Four spaces as indentation
38- Opening curly bracket on the same line as the selector
093dd5a2
EK
39- One selector per line, if multiple selectors are grouped then commas +
40 newline is used
457df43b 41- One space between selector and opening curly brackets
093dd5a2
EK
42- Closing curly bracket should be placed on its own line with one empty line
43 after
44- Rules containing only one Declaration can be put on one single line, a space
45 is required after `{` and before `}`
457df43b 46- Comments
093dd5a2
EK
47 - One line comments (`/* ... */`) should have a space after the opening `/*`
48 and a space before the closing `*/`
49 - Multi line comments should have the closing `*/` on an own line, text are
50 allowed on the same row as the opening `/*`. Note that there must be a
51 space after the opening `/*`. One asterix per line, aligned with the ones
52 in the opening and closing `/*` and `*/`, with one space after the asterix
53- Abbrevations are allowed if they are explained in a comment just before their
54 first appearance. Format: `/* <abbrevation> = <expanded abbrevation>
55 [(optional comment)] */`
457df43b
SB
56- All variables should be declared in `:root {}`
57- All custom media should be declared directly after `:root {}`
093dd5a2
EK
58- Reuse variables rather than creating new ones, if possible. (this is to keep
59 a condensed palette)
457df43b
SB
60- All colors must be variables, no colors are declared after `:root { }`
61
62This does not apply to third party css such as open sans, font awesome and freenode.css
63
64### HTML
65- Templates are [Jinja2](http://jinja.pocoo.org) based
66- Four spaces as indentation
67- No direct internal links, use `{{ url_for("") }}`
68- External links should include protocol, https is a must if the site linked to supports it, `target="_blank"` is preferred
69- Comments should only be template comments, `{#- ... #}` instead of `<!-- ... -->`
70- If there are a newline in an element the opening and closing tags should be on it's own lines (expanded elements)
71- One line elements (collapsed elements) preferably shouldn't be any longer than 80 characters.
72- Use lowercase element names and attributes
73- All elements should be closed, including empty elements such as `<meta content="" />` and `<br />`
74- Quote attribute values with double quotes. (use single quotes if the attribute value contains a double quote)
75- No inline styles are allowed
76- No spaces around `=`
77
78A *.footerchild* should contain at least 3 items, it just look silly otherwise.
424f8b13
S
79
80### JS
81JavaScript should be used sparsely and should not break the usability of the site for browsers without JavaScript
82- For style, follow [JavaScript Standard Style](https://standardjs.com/)
96af768f 83- Document with [jsdoc](http://usejsdoc.org/) at least to describe what every function does