You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
		
		
			
		
	
	
			66 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Markdown
		
	
| 
								 
											3 years ago
										 
									 | 
							
								# Contribution guidelines
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Development environment
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Prerequisites
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- PHP (version TBD)
							 | 
						||
| 
								 | 
							
								- `make`
							 | 
						||
| 
								 | 
							
								- `entr` to watch for file changes
							 | 
						||
| 
								 | 
							
								- `xdg-open` link handler to invoke browser
							 | 
						||
| 
								 | 
							
								- patience
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Cloning or updating the repository
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Ensure the consistency of the `languages` submodule by using the following options:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- `git clone --recurse-submodules <repository-url>`
							 | 
						||
| 
								 | 
							
								- `git pull --recurse-submodules`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Development
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Run at least once: `make fetch` to query servers. This can take around 5 minutes.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Run when developing: `make dev` to watch for changes & serve HTML locally in browser.
							 | 
						||
| 
								 | 
							
								Does not respond to new files.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								See [`Makefile`](Makefile) for more details.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Running your own copy
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- point your webserver at the `output` folder
							 | 
						||
| 
								 | 
							
								- install systemd services from the `systemd` folder or an equivalent timer
							 | 
						||
| 
								 | 
							
								- `session_sudoers`: TBD
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Code style guidelines
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### General
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Indentation**: Tabs (4-wide)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Filename seperator**: Hyphen (`-`)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### PHP
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Identifier casing**: `snake_case` and `CONSTANT_CASE`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Comments and documentation**: TBD
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### HTML & CSS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Identifier casing**: `kebab-case`, occasional `snake_case`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Comments and documentation**: TBD
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### JavaScript
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Identifier casing**: `camelCase` and `CONSTANT_CASE`, occasional `snake_case`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Comments and documentation**: [JSDoc](https://jsdoc.app/)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Contact
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- Web Development Session Community on [caliban.org](https://sog.caliban.org/)
							 | 
						||
| 
								 | 
							
								- Project lead, querying logic, deployment, community filtering: `someguy` on Session
							 | 
						||
| 
								 | 
							
								- Documentation, code quality, HTML generation, CSS, JS: `gravel` on Session
							 |