Skip to content

Contributing

Kevin Workman edited this page Nov 2, 2016 · 7 revisions

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.

Submit Issues

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.

If you don't feel like going through GitHub, you can also post on forum.HappyCoding.io or contact me directly.

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.

At the bottom of every page on HappyCoding.io there is a link to that page's source on GitHub. For example, here is the source for the homepage, or you can find the source on GitHub manually.

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!

Submit Backgrounds

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!

Issues

If you want to get involved but aren't sure what to do, check out the issues page.

Help Wanted

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.

However, the layout of the page (the page the content sits inside) is specified in nested layout files that use a combination of HTML and Liquid to put together each page. So if you want to edit the layout of the page, you'll probably be editing HTML (or associated CSS or JavaScript) or Liquid.

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!