Source for the IPFS Blog
- Usage
- Publishing Post
- Editing
- Publishing
- Translating (optional)
- Contribute
- License
The IPFS blog is a static website, built with hugo. We use node, npm, less and a few other helpful modules to optimize the site for deployment.
With make, node and npm installed on your system, you can:
Run the site in dev mode
$ make dev
# lots of output...
Web Server is available at http://localhost:1313/The first time you run it, it will install all the dependencies ✨, Then it will watch for changes in the source code and rebuild the site when you save your changes.
Run it and open http://localhost:1313/ in your browser, and start editing your new blog post.
Build the production site
$ make
# lots of output...
Site built out to ./public dirThis will build out the static site, optimized and ready for deployment, to the ./public directory.
Each blog post is a markdown file, with a little meta data at the top (known as YAML front matter) to help us create the post index page.
A blog post looks like this:
---
date: 2019-01-24
title: 2018 Q4 London Hack Week Summary
author: David Dias
---
Back in October last year, the Go Core Dev Team for the IPFS, IPLD and libp2p projects spent some quality time together
and so on... your _markdown_ goes **here**To create your new post find the last post in content/post, create a copy, and change the file name by incrementing the number in the title, and change the name to be a useful url slug for your post. e.g.
$ cd content/post
$ cp 66-london-hack-week-report.md 67-incredible-adventures.mdNow edit the metadata at the top of the file
date- the "published at" date, shown on the blog index page please update at posting time to reflect current date - requiredauthor- used to give you credit for your words - requiredtitle- used as theh1on the post page, and the name of the post on the index page. requiredtags- don't appear to be used right now, but set them anyone, as we'll want to add a "see more posts like this one" feature one day.url- can be used to override the post url if needed.
We have a process for creating and reviewing content before it gets published. Please review PIPELINE.md for the details.
Submit a Github PR with your changes, and request a review.
- Make a change to a file
- Add and commit.
- Push to a remote branch.
- Make a pull request to
master. - Request a review from another member of the IPFS org.
CircleCI builds the static site, Pins it to our IPFS Cluster, and provides a preview link for review on the Gateway. Merges to to master does the same steps plus an update the DNSLink for the domain.
It will take a few minutes for the DNS update to propagate.
Every post can be optionally translated by:
-
Ensuring
config.tomlincludes relevant language code in[languages]section -
Adding a translation file with correct locale suffix, for example:
- English:
content/post/45-ipfs-weekly-11.md→ //blog.ipfs.io/45-ipfs-weekly-11/ - Chinese (Simplified):
content-i18n/<lang_code>/post/45-ipfs-weekly-11.md→ //blog.ipfs.io/zh-cn/45-ipfs-weekly-11/
Note: To ensure translation is grouped with source post the
translationKeyheader needs to be the same in both files, andurlof translation needs to be prefixed with locale code (zh-cnfor Chinese Simplified), for example:--- date: 2018-09-25 title: IPFS 周报-11 url: zh-cn/45-ipfs-weekly-11 translationKey: 45-ipfs-weekly-11 ---
- English:
Having that, non-english version will have unique URL, as seen on the example below:
| Chinese (Simplified) | English |
|---|---|
![]() |
![]() |
Feel free to join in! PRs and issues are welcome.
This repository falls under the IPFS Code of Conduct.
© Protocol Labs | Code is licensed with the MIT License. Except as noted, other content licensed CC-BY 3.0.



