This repo is used to:
- Organize documentation work across the IPFS project.
- Host the documentation website for IPFS. It gets published to https://docs.ipfs.io/.
IPFS documentation currently has several acute problems:
- There is no clear introduction to the overall idea of exactly how IPFS works and what it’s doing.
- IPFS has lots of new concepts (whether you are knowledgeable about things like graphs or not) that are just very different from the web technologies people know today.
- Docs are inconsistently located and spread across a number of repos people have to hunt through.
- Clear, standard API docs are not always available.
- Hunting through GitHub is hard. (Which repos have docs? Where in the repo are they? Which projects are important and how do they relate to the others? Which repos and docs are up-to-date?)
We aim to solve some of these problems through a documentation site (the source of which is in this repo) and others through organizing work, conventions, and practices across project repos (managed in the issues here).
Check the near-term roadmap for this work in issue #58.
Read a more detailed summary of our research on documentation problems in issue #52 or at /ipfs/QmNj68gTzAs9QbfMKzMGurXP2WCmA6GTcKuUkWm4kBV1Qn/html.
The documentation site contains several different kinds of content. We’d love
Introductory overviews. This lives in
content/introduction. If you spot a problem or have improvements, please post an issue or PR. Please also take a look at #60 for planning and ongoing work in this area.
Guides, examples, and tutorials. Most examples currently live in other repos, like js-ipfs examples. If you have thoughts on how to better integrate them, please file an issue here. If you have feedback on individual examples or want to add a new one, please file an issue or PR on the relevant repo. If you have ideas for guides or tutorials, they belong here! Please propose them in an issue here before creating a PR.
Concept guides. These are a special category in the guides section listed above. Concept guides are intended to present a brief overview IPFS-related concepts that might be new to people. They live in the
content/guides/conceptsfolder and should strive to answer:
- What is this?
- How does it relate to the rest of IPFS?
- How can (or should?) you use it? (Note: sometimes the answer is that you should understand it, but not use it. Bitswap is probably a good example.)
- Where do you go to learn more?
- What is the current state of affairs?
Reference Documentation. Please see the issues in this repo for current activity around reference/API documentation.
Community. If there are important missing community links, file an issue or PR here!
This repo is also a website, which means we could also use your help with design and technical features (interactive examples, better syntax highlighting, scripts to pull in content from other repos, etc.) in addition to writing. To get a sense of what we could use help on, check the the issues. If you decide to work on one, please post to the issue to let us know!
Finally, let’s work together to keep this a respectful and friendly space. Please make sure to follow our code of conduct.
Building the Docs Site
npm install -g aegir
Download dependencies and IPFS libraries (e.g. go-ipfs, js-ipfs) and generate their documentation:
This installs dependencies and generates source files from other projects (e.g. API documentation; theme resources from the
When dependencies or external packages (like
go-ipfs) have new releases, you should regenerate files based on them by running
Build and Run the Site
- In the root directory, run
- Load http://localhost:1313 in your web browser
- Edit and add things!
To create a production build, run
make build instead. You’ll find the final static site in the
Why is this is a static site?
We believe in hosting IPFS’s documentation on IPFS, and that’s much easier when the content is static.
All software code is copyright (c) Protocol Labs, Inc. under the MIT license.
Other written documentation and content is copyright (c) Protocol Labs, Inc. under the Creative Commons Attribution-Share-Alike License.
See LICENSE file for details.