This repo is for our organization's website at codeforfoco.org.
Before you can run the website on your machine you need to ensure you have some prerequisites installed:
- Fork this repository and clone your fork.
cd
into the cloned directory.- Run
git submodule update --init --recursive
to install several third-party submodules. - Install Ruby V2 or greater, we recommend you use RVM.
- Install
bundler
by runninggem install bundler
. - Install any Ruby dependencies by running
bundle install
.
Once all the dependencies have been installed you run the development server with:
bundle exec jekyll serve
Open your browser up to localhost:8080 to view the development site.
We welcome new contributors. Be sure to check out guide on contributing, which includes instructions on how to fork, clone, branch, commit, pull request and sync your fork.
Not sure where to start? Look for open issues on GitHub, or message the team on our Slack site. If you aren't on our Slack, click here for an invite.
TL;DR Contribution Workflow:
- Fork this repository and Clone your fork locally.
- Checkout a new branch on which to make your changes.
- Make edits. Try to match existing coding style.
- Test your changes.
- Commit your changes. Push your changes to your fork on GitHub.
- Submit a new pull request and your changes will be reviewed and merged.
Development in a team environment can result in code inconsistency, which may have undesired impacts including a reduction in readability. Therefore we ask that you standardize and "beautify" your code before submitting a pull request. A few options to simplify this process are outlined below.
EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs.
This tool eliminates common inconsistencies such as tab style and line endings, and has plugins available for most modern IDEs and text editors. Find yours here.
Linters validate your code and provide errors and warnings when validation is not met. Here are some linters for common text editors:
- linter for Atom and these language-specific linters:
- SublimeLinter for Sublime Text and these language-specific linters:
The settings for beautifying this repo's code is found in .csscomb.json
and
.jsbeautifyrc
at the root of the project. Implementation of the settings is
carried out by various plugins specific to each text editor. Here are some of
the most common:
- atom-beautify is an all-in-one package for Atom that will handle beautification of most common languages (FYI it's a big package so it takes a little while for the installation to complete!).
- Sublime Text does not have an all-in-one beautifier, but Sublime-HTMLPrettify should suffice for this project.
The CFFC website will ultimately adhere to an organized, intuitive, and SEO-friendly navigation and content structure, currently based on this model:
We encourage you to open up an issue if you have any feedback, suggestions or bugs.
MIT, see LICENSE for full license.