Things here have gotten a bit behind. I could use some real help to keep pushing this guide forward. If you'd like to help with the content and the direction of Splitting Atoms, say the word and we can discuss how to move forward.
Splitting Atoms
a community-built guide to hacking on the Atom editor
A hackable text editor for the 21st Century
At GitHub, we're building the text editor we've always wanted. A tool you can customize to do anything, but also use productively on the first day without ever touching a config file. Atom is modern, approachable, and hackable to the core. We can't wait to see what you build with it.
It is still a work in progress, but you should check out the Splitting Atoms guide.
To find out more about Atom from the team itself, read Introducing Atom and The Nucleus of Atom.
Atom is now completely open-source. This includes Atom, APM (the Atom Package Manager), and Atom-Shell. Check out the blog post for more of the details.
Contributing to Splitting Atoms
There are a number of ways to contribute to this project:
-
What are the sections, topics, and guides that are missing? There should still be lots of them, so open up some issues and send pull requests!
-
If you are excited about Atom and have already started digging into it and hacking on it, then you are just the person we need to contribute to this community-built, community-driven guide. Write about your experience tinkering with part of Atom and help refine and clarify what is already written here. Send pull requests and open issues. Specific areas you can help
- Write a guide on building a package, especially if it involves an interesting
part of the Atom API or uses a 3rd party library in an innovative way. These
belong on the
PackageGuides
directory. - Write a guide on building a theme. These belong in the
ThemeGuides
directory. - Write a guide for defining killer configuration settings. These belong in the
ConfigurationGuides
directory. - Write a guide describing a particular workflow for development with a given
language or technology. These belong in the
WorkflowGuides
directory.
- Write a guide on building a package, especially if it involves an interesting
part of the Atom API or uses a 3rd party library in an innovative way. These
belong on the
-
If something about Atom completely perplexes you or you find parts of the official Atom documentation that are completely lacking, open an issue so that we can look into it and address it in the guide.
-
Create a badass Splitting Atoms logo that can eventually be displayed in our README, on our website, and in an eBook.
Further instructions can be found in contributing guide.
Setup
If you are interested in contributing to Splitting Atoms, make sure you have the following dependencies satisfied and then follow the instructions for getting this site going locally.
Dependencies
Splitting Atoms is a static site generated from Markdown and HTML files. The site is generated by some ruby gems. If you don't already have RubyGems on your machine, go ahead and download RubyGems. From there you will need to install jekyll (~1.4.3):
$ gem install jekyll
Front-End Dependencies
We also use Bower for managing front-end dependencies. This is an optional dependency for development because all front-end dependencies have been committed to the repository. However, if you plan to update or add bower packages, you will need NPM and Bower.
- If you don't already have them, install node and NPM.
- Then install bower,
npm install -g bower
.
Running Locally
Assuming you have satisfied the above dependencies, you should be ready to develop Splitting Atoms locally. If you haven't already, fork the repository and clone it onto your machine. Navigate to the Splitting Atoms directory and launch a Jekyll server:
$ cd path/to/splitting-atoms
$ jekyll serve --watch --baseurl=
This will tell Jekyll to launch a server at the default port of 4000
. Open up localhost:4000
in your favorite browser to see.
- The
--watch
flag tells Jekyll to keep an eye out for changes to the site and regenerate the site when changes do happen. - The
--baseurl=
flag sets the configuration'sbaseurl
to an empty string overriding that value in the_config.yml
file which is set to a different value for deployment as a GitHub page.
Splitting Atoms' Goals
- Develop supplementary guides, documentation, and tutorials for Atom
- Organize the guides, documentation, and tutorials into an Atom developers guide
- Publish the Atom developers guide as a website
- Publish the Atom developers guide as a PDF/eBook
License
Everything here is licensed under the MIT license.