Clone this wiki locally
The content on HappyCoding.io is released under a Creative Commons Attribution open source license. Read this page for more info on exactly what that means, but basically: you're free to use the content of HappyCoding.io however you want, as long as you provide a link to HappyCoding.io letting people know where to find more info about learning how to program.
And since HappyCoding.io is open-source, you can also submit your own changes to the content. This page outlines a number of ways you can get involved.
If you notice a bug or typo, or if you have a request for new features or content, the easiest way to get involved is by submitting an issue on GitHub. Go to the HappyCoding issues page and then click the green
New issue button. This requires a free GitHub account.
Submit Minor Changes
If the change you want to submit is relatively minor (like a typo or a formatting issue), then you can use GitHub's in-browser editor to submit the change without checking out the whole project first.
On a GitHub source page, you can click the edit button (it looks like a pencil in the upper-right corner of the source). This will open an in-browser editor that you can use to submit minor changes. More info here.
Submit Bigger Changes
If you want to contribute a bigger change, or if you want to preview your change before submitting it, you need to run your own copy of Happy Coding on a local server. This isn't as complicated as it sounds! To do this, you need to:
- Download a copy (called a fork) of Happy Coding. More info here.
- Follow the steps here to setup a Jekyll server.
- Go to http://localhost:4000/ to see Happy Coding running from your local machine.
- Make a change to any file you want, then refresh the page to see that change on your local version.
- Create a pull request to submit your changes!
This process is pretty easy once you're used to it, but it can be confusing if you've never done it before. So don't hesitate to post a question on forum.HappyCoding.io or contact me directly. I'll be happy to help!
HappyCoding.io uses a random background image whenever you load a page. Those images are generated using code, and I'd love other people to contribute their own images (and the source code that generated them)!
If you want to create and contribute your own images and code, see this wiki article. This is a pretty reasonable place for a novice to jump in: you don't have to worry about the site's code, just write some standalone code that makes a cool background!
If you want to get involved but aren't sure what to do, check out the issues page.
I'm going to add the
Help Wanted label to any issues I think could be pretty easily handled by somebody else. These will be more standalone type things and not require a ton of knowledge about the site, and might not even require much programming. You can search for the
Help Wanted label to see a list of these kinds of issues.
Of course, you don't have to limit yourself to
Help Wanted issues! If you feel like taking on something more difficult, go right ahead!
Stuff to Know
The above covers the basic process, but here are some things to keep in mind:
Happy Coding uses Jekyll
This site uses Jekyll to put everything together, which is a little different than just using HTML. With Jekyll, most of the content (stuff like tutorials) is written in Markdown. For example, here is the Markdown file for the Calling Functions tutorial. So if you want to edit the content of a page, you'll usually be editing Markdown.
Changes Go Through Me
After you submit your changes, I have to accept them before they go live on the site. This helps prevent people from (accidentally or purposely) making destructive changes to the live site. That also gives us an opportunity to go back and forth, talk about additional changes, etc.
Stuff You Submit is Open Source
Since Happy Coding is under a Creative Commons Attribution open source license, anything you submit to the site is also under that license. In other words, people (including me) will be allowed to do whatever they want with what you submit, as long as they credit you. Open source is very cool, but make sure you're okay with this!