js.ipfs.io - The js-ipfs project Website.
Welcome to the js.ipfs.io Website repo. This website uses gatsbyjs. Most of the website content is data-driven, you can check the data directory to see the sections information bundled as js
files.
Lead Maintainer
Table of Contents
- Contribute to the Website Content
- Development and Release Cycle
- License
i18n
Internationalization Incorrect translation, help us fix it!
-
- Create a Transifex account
-
- Go to https://www.transifex.com/ipfs/js-ipfs-website/, select a language, find an invalid string and propose a new translation
Missing language? Help us translate!
Everyone can help by translating content at Transifex:
- Go to https://www.transifex.com/ipfs/js-ipfs-website and start translating.
- If your language is missing request it on Transifex.
Synchronizing translations (maintainer task)
Periodically, a maintainer of this repo will need to synchronize translations to ensure everything is up to date.
NOTE: The steps below are for admins and can be ignored if you're a translator; all translation work happens in Transifex only.
To download updates of all locales:
$ tx pull -a
Then check if any language is missing in the file intl/config, if so, add a line for missing one.
For example, if you were to add Portuguese, you would only have to add the new language to the availableLocales
array:
module.exports = {
defaultLocale: 'en',
availableLocales: [
{ acronym: 'en', fullForm: 'English' },
+ { acronym: 'pt', fullForm: 'Português' }
]
}
Then, to download updates of specific locale:
$ tx pull -l pt
Finally, commit changes to ./src/i18n.js
and public/locales/
.
Note: Newly added language(s) will be live at js.ipfs.io as soon as the production
branch is updated.
Learn more on how to use Transifex
- Installing the Transifex Client
- Understanding
.tx/config
file - Manual sync via Transifex Client
Listing a talk on the website
You can add your talk to the website by creating a PR. You just need to add an object to the publicationsAndTalks
array. Example, if you were to add a new entry, you would have to add the link
to your talk and its title
:
const publicationsAndTalks = [
{
link: 'https://www.youtube.com/watch?v=WK4PIGr3RB8',
active: true,
title: 'Progress Report on the Decentralized Web, David Dias'
},
{
link: 'https://www.youtube.com/watch?v=2cmbm6iABsI',
title: 'IPFS on the Brave Browser, Alan Shaw'
}
]
js-ipfs
?
Want to show what's possible to build with Sharing your app with us is very simple! You just need to host your code on codesandbox and edit apps
array. Example, if you want to add a new app, you only have to add a new entry to the apps
array by adding its title and the corresponding codesandbox
share link:
const apps = [
{
title: 'Example 1',
link: 'https://codesandbox.io/embed/qkj8z9l8kq'
},
{
title: 'Example 2',
link: 'https://codesandbox.io/embed/vv99onw18y'
}
]
Development
Dependencies
gatsbyjs v2
to build the websiteNode.js >= v10
andnpm
for build toolsTransifex Client
for localesipfs
to deploy changes
Install
> git clone https://github.com/ipfs/js.ipfs.io
> npm install
Usage
The following commands are available:
npm run develop
- Starts a hot-reloading development environment at localhost:8000.npm run build
- Generates the static HTML and JavaScript code bundles by performing a production build.npm run lint
- Runs aegir lint.
Supported Browsers Versions
We are currently targeting:
Browser | Versions |
---|---|
Chrome | >= 69 |
Firefox | >= 62 |
Safari | >= 11.1 |
Publish
When a branch gets merged
to master, it is deployed to dev.js.ipfs.
To deploy to js.ipfs.io the code should be merged into the production
branch.
- Build the project
> npm run build
- Init your
ipfs
daemon (if you haven't done it before)
> ipfs init
- Add the
public
folder to IPFS
> ipfs add -r public/
added <resulting-hash>
- Finally, go to the constants folder and paste the resulting hash on the
jsIpfsWebsite
property of the exported object.
Note: This process will be automated as soon as we tackle this issue.
License
MIT