Merge branch 'master' into master

This commit is contained in:
Henrique Dias 2019-04-30 17:46:47 +01:00 committed by GitHub
commit 41a668610a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 411 additions and 306 deletions

66
.circleci/config.yml Normal file
View File

@ -0,0 +1,66 @@
version: 2
jobs:
awesome:
docker:
- image: circleci/ruby:2.4.2-jessie-node
steps:
- checkout
- run: gem install awesome_bot
- run: awesome_bot --allow-redirect --allow-dupe --allow-ssl -w ipfs.io README.md
build:
docker:
- image: circleci/node:10.15.1-browsers
environment:
NO_SANDBOX: true
steps:
- checkout
- run: npm install
- run: npm run build
- persist_to_workspace:
root: .
paths:
- public
deploy:
docker:
- image: olizilla/ipfs-dns-deploy
environment:
DOMAIN: awesome.ipfs.io
BUILD_DIR: public
steps:
- attach_workspace:
at: /tmp/workspace
- run:
name: Deploy website to IPFS
command: |
pin_name="$DOMAIN build $CIRCLE_BUILD_NUMBER"
hash=$(pin-to-cluster.sh "$pin_name" /tmp/workspace/$BUILD_DIR)
echo "Website added to IPFS: https://ipfs.io/ipfs/$hash"
if [ "$CIRCLE_BRANCH" == "master" ] ; then
dnslink-dnsimple -d $DOMAIN -r _dnslink -l /ipfs/$hash
fi
workflows:
version: 2
check-links:
triggers:
- schedule:
cron: "0 0 * * *"
filters:
branches:
only:
- master
jobs:
- awesome
build-deploy:
jobs:
- awesome
- build
- deploy:
context: ipfs-dns-deploy
requires:
- build

2
.gitignore vendored
View File

@ -27,9 +27,7 @@ stroke*.svg
public public
dist dist
/src/resources /src/resources
/src/data
/src/content /src/content
/src/layouts/partials/indexes
/src/static/fonts /src/static/fonts
/src/static/app.css /src/static/app.css
/src/static/app.js /src/static/app.js

View File

@ -1,7 +0,0 @@
language: ruby
rvm:
- 2.2
before_script:
- gem install awesome_bot
script:
- awesome_bot --allow-redirect --allow-dupe --allow-ssl README.md

View File

@ -1,6 +0,0 @@
build:
npm --version
node --version
npm install
npm run lint
npm run build

View File

@ -28,29 +28,31 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
## Apps ## Apps
- [2read](https://2read.net/) - Convert article in current tab to readable form and upload it to writable node(s). [Source](https://github.com/meehow/2read)
- [3Box](https://3box.io) - Create and manage your Ethereum Profile, and your personal data. Use the 3box-js library to integrate profiles into your dapp. [Source](https://github.com/uport-project/3box)
- [a js video player](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/play) - [Demo](https://ipfs.io/ipfs/QmVc6zuAneKJzicnJpfrqCH9gSy6bz54JhcypfJYhGUFQu/play#/ipfs/QmTKZgRNwDNZwHtJSjCp6r5FYefzpULfy37JvMt9DwvXs) - [a js video player](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/play) - [Demo](https://ipfs.io/ipfs/QmVc6zuAneKJzicnJpfrqCH9gSy6bz54JhcypfJYhGUFQu/play#/ipfs/QmTKZgRNwDNZwHtJSjCp6r5FYefzpULfy37JvMt9DwvXs)
- [a markdown renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/markdown-viewer) - [Demo](https://ipfs.io/ipfs/QmSrCRJmzE4zE1nAfWPbzVfanKQNBhp7ZWmMnEdbiLvYNh/mdown#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u) - [a markdown renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/markdown-viewer) - [Demo](https://ipfs.io/ipfs/QmSrCRJmzE4zE1nAfWPbzVfanKQNBhp7ZWmMnEdbiLvYNh/mdown#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u)
- [a qr-code renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/qr-render) - [Demo](https://ipfs.io/ipfs/QmccqhJg5wm5kNjAP4k4HrYxoqaXUGNuotDUqfvYBx8jrR/qr#enter%20text%20here) - [a qr-code renderer](https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/qr-render) - [Demo](https://ipfs.io/ipfs/QmccqhJg5wm5kNjAP4k4HrYxoqaXUGNuotDUqfvYBx8jrR/qr#enter%20text%20here)
- [akasha](http://akasha.world/) - A Next-Generation Social Media Network, powered by Ethereum and embedded into IPFS. - [akasha](http://akasha.world/) - A Next-Generation Social Media Network, powered by Ethereum and embedded into IPFS.
- [Alexandria](http://www.alexandria.io/learn/#integrated-technologies) - Decentralized content publishing / monetization platform. - [Alexandria](http://www.alexandria.io/learn/#integrated-technologies) - Decentralized content publishing / monetization platform.
- [Arbore](http://arbo.re) - A friend-to-friend file-sharing app build on top of IPFS. - [Arbore](http://arbo.re) - A friend-to-friend file-sharing app build on top of IPFS.
- [Arpadyne](https://arpadyne.computes.com) - The New Internet - DNS powered by OrbitDB. Content delivered via IPFS. - [Autonomica "IPFS Social Proof"](https://github.com/IBM/ipfs-social-proof) - Autonomica is a Keybase-like Dapp for creating an identity and proving this identity via published social media and web proofs.
- [beets](https://github.com/beetbox/beets) - Beets has a plugin which allows for easy sharing of music libraries using IPFS - [beets](https://github.com/beetbox/beets) - Beets has a plugin which allows for easy sharing of music libraries using IPFS
- [Blokaly](https://github.com/blokaly) - A badge issuing, sharing and display platform based on IPFS. - [Blokaly](https://github.com/blokaly) - A badge issuing, sharing and display platform based on IPFS.
- [Boards](https://ipfs.io/ipns/boards.ydns.eu) - Distributed social platform that runs in the browser. [Source](https://github.com/fazo96/ipfs-boards) - [Boards](https://ipfs.io/ipns/boards.ydns.eu) - Distributed social platform that runs in the browser. [Source](https://github.com/fazo96/ipfs-boards)
- [brig](https://brig.readthedocs.io/en/latest) - File synchronization with git like interface and FUSE filesystem. [Source](https://github.com/sahib/brig)
- [Cohort](https://github.com/zignig/cohort) - A golang app to preset a threejs interface and get all of its assets out of IPFS. - [Cohort](https://github.com/zignig/cohort) - A golang app to preset a threejs interface and get all of its assets out of IPFS.
- [Computes](https://computes.io) - Computes.io is a distributed supercomputer powered by IPFS. - [Computes](https://computes.io) - Computes.io is a distributed supercomputer powered by IPFS.
- [dapple](https://github.com/nexusdev/dapple) - Dapple is a Solidity developer multitool designed to manage the growing complexity of interconnected smart contract systems. - [dapple](https://github.com/nexusdev/dapple) - Dapple is a Solidity developer multitool designed to manage the growing complexity of interconnected smart contract systems.
- [digx](https://www.dgx.io/) - Digix is an asset-tokenisation platform built on Ethereum and IPFS. - [digx](https://www.dgx.io/) - Digix is an asset-tokenisation platform built on Ethereum and IPFS.
- [dtube](https://d.tube) - Distributed video sharing with steem.it intergrations, using ipfs for backend storage. - [dtube](https://d.tube) - Distributed video sharing with steem.it intergrations, using ipfs for backend storage.
- [enzypt.io](https://enzypt.io/) - A website to buy and sell files through Ethereum and IPFS. [Source](https://github.com/flex-dapps/enzypt) - [enzypt.io](https://enzypt.io/) - A website to buy and sell files through Ethereum and IPFS. [Source](https://github.com/flex-dapps/enzypt)
- [Eternum](https://www.eternum.io/) - Paid pinning service with an easy-to-use API.
- [Ethlance](http://ethlance.com) - First completely decentralised job market platform built on Ethereum and IPFS. [Source](https://github.com/madvas/ethlance) - [Ethlance](http://ethlance.com) - First completely decentralised job market platform built on Ethereum and IPFS. [Source](https://github.com/madvas/ethlance)
- [Filemap](https://filemap.xyz/) - Upload files to a geographic point and never memorize a link again.
- [FileNation](https://filenation.io/) - The simplest way to send your files around the world using IPFS.
- [git-ipfs-rehost](https://github.com/whyrusleeping/git-ipfs-rehost) - A script to rehost your git repos in ipfs. - [git-ipfs-rehost](https://github.com/whyrusleeping/git-ipfs-rehost) - A script to rehost your git repos in ipfs.
- [Global Upload](https://globalupload.io/) - File transportation service for IPFS, upload files to the future of distributed web. - [Global Upload](https://globalupload.io/) - File transportation service for IPFS, upload files to the future of distributed web.
- [gogo.tattoo](http://gogo.tattoo) - Gogo Tattoo Project uses IPFS, DLTs and other modern technologies to offer tattoo artists and wearers an unbreakable lifetime record of their portfolios. gogo.tattoo app already has a feature to share works directly to IPFS. - [gogo.tattoo](http://gogo.tattoo) - Gogo Tattoo Project uses IPFS, DLTs and other modern technologies to offer tattoo artists and wearers an unbreakable lifetime record of their portfolios. gogo.tattoo app already has a feature to share works directly to IPFS.
- [Gorilla REPL viewer](https://github.com/keorn/ipfs-gorilla-repl) - Gorilla is a rich REPL for Clojure in the notebook style. [Demo](https://ipfs.io/ipfs/QmRNUauWDvZFkAp1Bw3kAode3jT8aH2vx7LYzbS7H6R3Mg/view.html?path=/ipfs/QmbRdyLXiFWrKc5hW1NbvpUxF9tLovWCPgiz4BDhjD9k3j) - [Gorilla REPL viewer](https://github.com/keorn/ipfs-gorilla-repl) - Gorilla is a rich REPL for Clojure in the notebook style.
- [Hardbin](https://github.com/jes/hardbin) - Hardbin is an encrypted pastebin, with the decryption key passed in the URL fragment - [Hardbin](https://github.com/jes/hardbin) - Hardbin is an encrypted pastebin, with the decryption key passed in the URL fragment
- [hasteIPFS](https://ipfs.io/ipns/bin.ipfs.ovh/) - IPFS based code bin. (Read only for now) - [hasteIPFS](https://ipfs.io/ipns/bin.ipfs.ovh/) - IPFS based code bin. (Read only for now)
- [HydrusNetwork](https://github.com/hydrusnetwork/hydrus) - A booru-style media tagging application with a multitude of features, recently added basic ipfs support. - [HydrusNetwork](https://github.com/hydrusnetwork/hydrus) - A booru-style media tagging application with a multitude of features, recently added basic ipfs support.
@ -58,17 +60,17 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
- [InterPlanetary Wayback](https://github.com/oduwsdl/ipwb) - Web Archive (WARC) indexing and replay using IPFS. - [InterPlanetary Wayback](https://github.com/oduwsdl/ipwb) - Web Archive (WARC) indexing and replay using IPFS.
- [Interplanetary Wiki](https://github.com/jamescarlyle/ipfs-wiki) - Wiki built on top of IPFS - [Interplanetary Wiki](https://github.com/jamescarlyle/ipfs-wiki) - Wiki built on top of IPFS
- [IPFessay](https://gitlab.com/stavros/IPFessay) - A simple way to publish uncensorable essays on IPFS. - [IPFessay](https://gitlab.com/stavros/IPFessay) - A simple way to publish uncensorable essays on IPFS.
- [IPFS Desktop](https://github.com/ipfs/ipfs-desktop) - Run your IPFS node on your machine without having to bother with command line tools. Manage your node, add your files, easily change the settings... everything from just one interface. - [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) - Run your IPFS node on your machine without having to bother with command line tools. Manage your node, add your files, easily change the settings... everything from just one interface.
- [IPFS Drive](http://ipfs-drive.ydns.eu) - In browser file manager for IPFS. [Source](https://github.com/fazo96/ipfs-drive) - [IPFS Drive](http://ipfs-drive.ydns.eu) - In browser file manager for IPFS. [Source](https://github.com/fazo96/ipfs-drive)
- [IPFS Event Drop](https://github.com/travisperson/ipfs-event-drops) - An app that allows for improved visualization of ipfs events. - [IPFS Event Drop](https://github.com/travisperson/ipfs-event-drops) - An app that allows for improved visualization of ipfs events.
- [IPFS ID and Public Key QR Codes Demo](https://ipfs.io/ipfs/zdj7Whr8X3zah99TSuyPjENaERcBW9C7B36EaCb1DEZ5pbbL9/) - A demo app that uses windows.ipfs to show you a QR Code of your IPNS Link and of your Public Key. [Source](https://github.com/ipfs-shipyard/demo-ipfs-id-qr-codes) - [IPFS ID and Public Key QR Codes Demo](https://ipfs.io/ipfs/zdj7Whr8X3zah99TSuyPjENaERcBW9C7B36EaCb1DEZ5pbbL9/) - A demo app that uses windows.ipfs to show you a QR Code of your IPNS Link and of your Public Key. [Source](https://github.com/ipfs-shipyard/demo-ipfs-id-qr-codes)
- [ipfs-md-wiki](https://github.com/daijiale/ipfs-md-wiki) - Build your wiki system base on ipfs and markdown. - [ipfs-md-wiki](https://github.com/daijiale/ipfs-md-wiki) - Build your wiki system base on ipfs and markdown.
- [ipfs-search](http://ipfs-search.com) - Search engine for files and directories on IPFS. - [ipfs-search](https://ipfs-search.com) - Searching the universe since 2016.
Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search API's available. [Source](https://github.com/ipfs-search/ipfs-search)
- [ipfs-share](https://github.com/rameshvarun/ipfs-share) - Pastebin/Image host/File sharing application - [ipfs-share](https://github.com/rameshvarun/ipfs-share) - Pastebin/Image host/File sharing application
- [ipfs.ink](https://ipfs.ink) - Publish and render markdown essays to and from ipfs. [Source](https://github.com/kpcyrd/ipfs.ink) - [ipfs.ink](https://ipfs.ink) - Publish and render markdown essays to and from ipfs. [Source](https://github.com/kpcyrd/ipfs.ink)
- [ipfs.pics](https://github.com/ipfspics/ipfspics-server) - Upload and share pics. - [ipfs.pics](https://github.com/ipfspics/ipfspics-server) - Upload and share pics.
- [IPFSBin](https://github.com/victorbjelkholm/ipfsbin) - Pastebin clone build. - [IPFSBin](https://github.com/victorbjelkholm/ipfsbin) - Pastebin clone build.
- [IPFSStore](https://ipfsstore.it) - Pinning paid with Bitcoin
- [killcord](https://killcord.io/) - A censorship resistant deadman's switch [Source](https://github.com/nomasters/killcord) - [killcord](https://killcord.io/) - A censorship resistant deadman's switch [Source](https://github.com/nomasters/killcord)
- [markup.rocks](https://ipfs.io/ipfs/QmWPgJnUGLB1LPh9KMG9LEN4LVu5e17TwkEtcmTWdNn9V6/#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u) - Pandoc-based markup editor/previewer/converter, ported to IPFS. [Source](https://github.com/davidar/markup.rocks) - [markup.rocks](https://ipfs.io/ipfs/QmWPgJnUGLB1LPh9KMG9LEN4LVu5e17TwkEtcmTWdNn9V6/#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u) - Pandoc-based markup editor/previewer/converter, ported to IPFS. [Source](https://github.com/davidar/markup.rocks)
- [NodeFort.io](https://www.nodefort.io) - Web-based IPFS node hosting service. - [NodeFort.io](https://www.nodefort.io) - Web-based IPFS node hosting service.
@ -80,31 +82,36 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
- [Peer Bandwidth Demo](https://ipfs.io/ipfs/QmVaVXbLdw4R5NqAiiQoTWtitxo5g7FS31PQmCLbH9p8Fu/) - An demo app that uses window.ipfs, provided by the IPFS Companion web extension to get and graph bandwidth info for your IPFS node [Source](https://github.com/tableflip/ipfs-peer-bw-example) - [Peer Bandwidth Demo](https://ipfs.io/ipfs/QmVaVXbLdw4R5NqAiiQoTWtitxo5g7FS31PQmCLbH9p8Fu/) - An demo app that uses window.ipfs, provided by the IPFS Companion web extension to get and graph bandwidth info for your IPFS node [Source](https://github.com/tableflip/ipfs-peer-bw-example)
- [Peer Map Demo](https://ipfs.io/ipfs/QmRPGCmLKH2dQmNiPRsiuYS9EhhJL1Gmkz5F75gKY1K4Bm/) - A map of IPv4 IPFS peers that uses window.ipfs [Source](https://github.com/tableflip/ipfs-peer-map-example) - [Peer Map Demo](https://ipfs.io/ipfs/QmRPGCmLKH2dQmNiPRsiuYS9EhhJL1Gmkz5F75gKY1K4Bm/) - A map of IPv4 IPFS peers that uses window.ipfs [Source](https://github.com/tableflip/ipfs-peer-map-example)
- [Philes](https://philes.co) - A simple browser-based IPFS notepad app. [Source](https://github.com/chrismatthieu/philes) - [Philes](https://philes.co) - A simple browser-based IPFS notepad app. [Source](https://github.com/chrismatthieu/philes)
- [Pinata](https://pinata.cloud) - Build and manage your dapp through Pinatas REST API and IPFS toolkit.
- [Playback](https://mafintosh.github.io/playback/) - IPFS playback support. This allows casting a video in IPFS to a Chromecast. - [Playback](https://mafintosh.github.io/playback/) - IPFS playback support. This allows casting a video in IPFS to a Chromecast.
- [PubSub Chat Demo](https://ipfs.io/ipfs/QmWZ3u5S7RjFXKfW6dSZhj7CozcvpqJxm48RYMmKkWcmNQ/) - A ~76KB demo chat app that uses window.ipfs, provided by the IPFS Companion web extension [Source](https://github.com/tableflip/ipfs-pubsub-chat-example) - [PubSub Chat Demo](https://ipfs.io/ipfs/QmWZ3u5S7RjFXKfW6dSZhj7CozcvpqJxm48RYMmKkWcmNQ/) - A ~76KB demo chat app that uses window.ipfs, provided by the IPFS Companion web extension [Source](https://github.com/tableflip/ipfs-pubsub-chat-example)
- [PushToTalk](http://timothy.hobbs.cz/push-to-talk/index.html) - Push to Talk lets you edit audio essays and publish them with IPFS. - [PushToTalk](http://timothy.hobbs.cz/push-to-talk/index.html) - Push to Talk lets you edit audio essays and publish them with IPFS.
- [qri](https://qri.io) - Dataset creation, collaboration, and discovery on the distributed web. [Source](https://github.com/qri-io/qri) - [qri](https://qri.io) - Dataset verion control, discovery and collaboration tools (free, open-source). [Source](https://github.com/qri-io/qri)
- [Request Network](https://request.network/) - Decentralized network for financial transactions. [Source](https://github.com/RequestNetwork/requestNetwork)
- [TallyLab](https://tallylab.com/) - Local-first, end-to-end encrypted data diary app for capturing, analyzing, and sharing data about any and everything. - [TallyLab](https://tallylab.com/) - Local-first, end-to-end encrypted data diary app for capturing, analyzing, and sharing data about any and everything.
- [Temporal](https://github.com/RTradeLtd/Temporal) - Temporal is an easy to use API and platform for integrating IPFS and other distributed/decentralized storage technologies into enterprise applications - [Temporal](https://github.com/RTradeLtd/Temporal) - Temporal is an easy to use API and platform for integrating IPFS and other distributed/decentralized storage technologies into enterprise applications
- [Textile Photos](https://www.textile.photos) - Textile Photos is a secure, mobile digital wallet for your photos. [Source](https://github.com/textileio/textile-mobile) - [Textile Photos](https://www.textile.photos) - Textile Photos is a secure, mobile digital wallet for your photos. [Source](https://github.com/textileio/textile-mobile)
- [ToDo List Demo](https://ipfs.io/ipfs/QmfFaH6dGibQ5JwEdsujeHBzsmHUsFRB5kU9P8nzPyzMv2/) - A ToDo List demo app that uses windows.ipfs. [Source](https://github.com/ipfs-shipyard/demo-ipfs-todo) - [ToDo List Demo](https://ipfs.io/ipfs/QmfFaH6dGibQ5JwEdsujeHBzsmHUsFRB5kU9P8nzPyzMv2/) - A ToDo List demo app that uses windows.ipfs. [Source](https://github.com/ipfs-shipyard/demo-ipfs-todo)
- [ujo](http://ujomusic.com/) - A blockchain marketplace for musicians. - [ujo](http://ujomusic.com/) - A blockchain marketplace for musicians.
- [uport](https://uport.me/#home) - Uport is a mobile, self-sovereign identity and key management system, built on the Ethereum blockchain. - [uport](https://uport.me/#home) - Uport is a mobile, self-sovereign identity and key management system, built on the Ethereum blockchain.
- [xfce-screenshooter-ipfs-support](https://github.com/amar-laksh/xfce-screenshooter-ipfs-support) - A fork of xfce-screenshooter with IPFS support!
## Articles ## Articles
- 2018-08-06: [Content Identifiers in IPFS](https://pascalprecht.github.io/posts/content-identifiers-in-ipfs/)
- 2018-07-11: [On future-proof cryptographic hashes](https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/) - 2018-07-11: [On future-proof cryptographic hashes](https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/)
- 2017-08-21: [Understanding the IPFS White Paper part 2](https://decentralized.blog/understanding-the-ipfs-white-paper-part-2.html)
- 2017-08-10: [Understanding the IPFS White Paper part 1](https://decentralized.blog/understanding-the-ipfs-white-paper-part-1.html)
- 2017-06-13: [Decentralized & Distributed Edge Computing Comes to Computes.io](https://blog.computes.io/decentralized-distributed-edge-computing-comes-to-computes-io-396aa062bc85) - 2017-06-13: [Decentralized & Distributed Edge Computing Comes to Computes.io](https://blog.computes.io/decentralized-distributed-edge-computing-comes-to-computes-io-396aa062bc85)
- 2017-05-05: [Decentralized indexes for public genomic data](https://github.com/luizirber/2017-recomb) - 2017-05-05: [Decentralized indexes for public genomic data](https://github.com/luizirber/2017-recomb)
- [Downloading nodejs versions with nvm/n over IPFS](https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmUx363UFtgiQqkHHsPK3TSDmwoALDo2hrbMWbcxjH2vFc)
- 2017-03-31: [Using IPFS for IoT Communications](https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a) - 2017-03-31: [Using IPFS for IoT Communications](https://medium.com/@chrismatthieu/using-ipfs-for-iot-communications-b49c2139783a)
- 2016-09-12: [IPFS: The Internet Democratised](https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b) - 2016-09-12: [IPFS: The Internet Democratised](https://medium.com/@tonywillenberg/web-3-0-a-truly-democratised-internet-f4b06cb4077b)
- 2016-05-20: [Changelog Podcast](https://changelog.com/204/) - 2016-05-20: [Changelog Podcast](https://changelog.com/204/)
- 2015-11-01: [Eris + IPFS](https://monax.io/blog/2015/11/01/eris-and-ipfs/)
- 2015-09-18: [The InterPlanetary File System Wants to Create a Permanent Web](http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web) - 2015-09-18: [The InterPlanetary File System Wants to Create a Permanent Web](http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web)
- 2015-09-13: [Introduction to IPFS](http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example) - 2015-09-13: [Introduction to IPFS](http://whatdoesthequantsay.com/2015/09/13/ipfs-introduction-by-example)
- 2015-09-10: [First Steps Toward Implementing Distributed Permanent Web With IPFS](https://hacked.com/first-steps-toward-implementing-distributed-permanent-web-ipfs/) - 2015-09-10: [First Steps Toward Implementing Distributed Permanent Web With IPFS](https://hacked.com/first-steps-toward-implementing-distributed-permanent-web-ipfs/)
- 2015-09-08: [HTTP is obsolete. It's time for the distributed, permanent web](https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html) - 2015-09-08: [HTTP is obsolete. It's time for the distributed, permanent web](https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html)
- [Downloading nodejs versions with nvm/n over IPFS](https://ipfs.io/ipfs/QmTkzDwWqPbnAh5YiV5VwcTLnGdwSNsNTn2aDxdXBFca7D/example#/ipfs/QmUx363UFtgiQqkHHsPK3TSDmwoALDo2hrbMWbcxjH2vFc)
## Datasets ## Datasets
@ -112,15 +119,15 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
- [IETF RFC Archive](https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM) [Source](https://github.com/ipfs/archives/issues/18) - [IETF RFC Archive](https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM) [Source](https://github.com/ipfs/archives/issues/18)
- [MDSConnect](https://ipfs.io/ipfs/QmcvfB6pAqUfTnuAK8zFKVxbdhopnBPveJrDcy1JAA7HX5) [Source](https://github.com/ipfs/archives/issues/152) - [MDSConnect](https://ipfs.io/ipfs/QmcvfB6pAqUfTnuAK8zFKVxbdhopnBPveJrDcy1JAA7HX5) [Source](https://github.com/ipfs/archives/issues/152)
- [Old Internet Files](https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp) [Source](https://github.com/ipfs/archives/issues/176) - [Old Internet Files](https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp) [Source](https://github.com/ipfs/archives/issues/176)
- [Presidental Daily Briefs](https://ipfs.io/ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89) [Source](https://github.com/ipfs/archives/issues/23)
- [World Wide Web History Project](https://ipfs.io/ipfs/QmRTSA1UFHSx3z7taNRwUVM8AjB2EQwKvyZu3BfJg9QRtZ) [Source](https://github.com/ipfs/archives/issues/159) - [World Wide Web History Project](https://ipfs.io/ipfs/QmRTSA1UFHSx3z7taNRwUVM8AjB2EQwKvyZu3BfJg9QRtZ) [Source](https://github.com/ipfs/archives/issues/159)
- [XKCD](https://ipfs.io/ipfs/Qmb8wsGZNXt5VXZh1pEmYynjB6Euqpq3HYyeAdw2vScTkQ) [Source](https://github.com/ipfs/archives/issues/21) - [XKCD](https://ipfs.io/ipns/xkcd.hacdias.com) [Source](https://github.com/ipfs/archives/issues/21)
- [yarchive.net](https://ipfs.io/ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK) [Source](https://github.com/ipfs/archives/issues/76) - [yarchive.net](https://ipfs.io/ipfs/QmdA5WkDNALetBn4iFeSepHjdLGJdxPBwZyY47ir1bZGAK) [Source](https://github.com/ipfs/archives/issues/76)
## Tools ## Tools
- [Blockwatch](https://ipfs.io/ipfs/QmdikpwcyeBuGaVzWzSzPuqvBfTGD8jPAVydcCjYHsBUxo/index.html) - Monitor the current block number of the Ethereum blockchain, and set alerts (stored locally using PouchDB in your browser) for when certain block heights are passed. [Source](https://github.com/MidnightLightning/ethereum-blockwatch) - [Blockwatch](https://ipfs.io/ipfs/QmdikpwcyeBuGaVzWzSzPuqvBfTGD8jPAVydcCjYHsBUxo/index.html) - Monitor the current block number of the Ethereum blockchain, and set alerts (stored locally using PouchDB in your browser) for when certain block heights are passed. [Source](https://github.com/MidnightLightning/ethereum-blockwatch)
- [cachewarmer](https://github.com/BrendanBenshoof/cachewarmer) - Donate ipfs gateways to cache other people's content - [cachewarmer](https://github.com/BrendanBenshoof/cachewarmer) - Donate ipfs gateways to cache other people's content
- [dillo-ipfs](https://git.scuttlebot.io/%25C35b%2BMlZ%2Fy5TT1e7SG66eNKEIdX5DRl9PRUxbhvO89k%3D.sha256) - IPFS integration for the Dillo web browser.
- [gatsby-plugin-ipfs](https://github.com/moxystudio/gatsby-plugin-ipfs) - Adds support for deploying Gatsby websites to IPFS by ensuring that assets are relative. - [gatsby-plugin-ipfs](https://github.com/moxystudio/gatsby-plugin-ipfs) - Adds support for deploying Gatsby websites to IPFS by ensuring that assets are relative.
- [git-remote-ipfs](https://github.com/cryptix/git-remote-ipfs) - push/pull repositories from/to IPFS - [git-remote-ipfs](https://github.com/cryptix/git-remote-ipfs) - push/pull repositories from/to IPFS
- [http2ipfs](https://github.com/jbenet/http2ipfs-web) - This is a simple webtool to add URLs to an IPFS node. - [http2ipfs](https://github.com/jbenet/http2ipfs-web) - This is a simple webtool to add URLs to an IPFS node.
@ -129,10 +136,9 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
- [ipfs-add-from-url](https://github.com/maxlath/ipfs-add-from-url) - Add a file to IPFS from a URL instead of a file path - [ipfs-add-from-url](https://github.com/maxlath/ipfs-add-from-url) - Add a file to IPFS from a URL instead of a file path
- [ipfs-chrome-extension](https://github.com/dylanPowers/ipfs-chrome-extension) - Chrome extension to redirect ipfs.io traffic to local gateway - [ipfs-chrome-extension](https://github.com/dylanPowers/ipfs-chrome-extension) - Chrome extension to redirect ipfs.io traffic to local gateway
- [ipfs-chrome-station](https://github.com/fbaiodias/ipfs-chrome-station) - Chrome extension to redirect ipfs.io traffic to local gateway - [ipfs-chrome-station](https://github.com/fbaiodias/ipfs-chrome-station) - Chrome extension to redirect ipfs.io traffic to local gateway
- [ipfs-common](https://github.com/arsyun) - some common tools, 1.CID to human readable cid, 2.cid and block name convert, 3. read the leveldb tools. [Source](https://github.com/arsyun/ipfs-common)
- [ipfs-companion](https://github.com/ipfs/ipfs-companion) - Browser extension that simplifies access to IPFS resources. - [ipfs-companion](https://github.com/ipfs/ipfs-companion) - Browser extension that simplifies access to IPFS resources.
- [ipfs-gui](https://github.com/marcin212/ipfs-gui) - Windows UI integration and IPFS installer - [ipfs-gui](https://github.com/marcin212/ipfs-gui) - Windows UI integration and IPFS installer
- [ipfs-gui](https://github.com/marcin212/ipfs-gui) - Windows UI integration and IPFS installer
- [ipfs-linux-service](https://github.com/dylanPowers/ipfs-linux-service) - IPFS Linux Init Daemon
- [ipfs-linux-service](https://github.com/dylanPowers/ipfs-linux-service) - IPFS Linux Init Daemon - [ipfs-linux-service](https://github.com/dylanPowers/ipfs-linux-service) - IPFS Linux Init Daemon
- [ipfs-mount](https://github.com/richardschneider/net-ipfs-mount) - Mount IPFS as a mapped drive on Windows - [ipfs-mount](https://github.com/richardschneider/net-ipfs-mount) - Mount IPFS as a mapped drive on Windows
- [ipfs-paste](https://github.com/jbenet/ipfs-paste) - Paste stdin and clipboard to IPFS - [ipfs-paste](https://github.com/jbenet/ipfs-paste) - Paste stdin and clipboard to IPFS
@ -144,14 +150,16 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
- [IPRedirect](https://github.com/JayBrown/IPRedirect) - Browser userscript for redirecting IPFS/IPNS addresses to your local gateway. This should work on any browser that hasn't had an extension written for it yet and has support for userscripts. - [IPRedirect](https://github.com/JayBrown/IPRedirect) - Browser userscript for redirecting IPFS/IPNS addresses to your local gateway. This should work on any browser that hasn't had an extension written for it yet and has support for userscripts.
- [ipscend](https://github.com/diasdavid/ipscend) - Tool for hosting web apps and static websites in IPFS - [ipscend](https://github.com/diasdavid/ipscend) - Tool for hosting web apps and static websites in IPFS
- [pinbot](https://github.com/whyrusleeping/pinbot) - Pin content via IRC - [pinbot](https://github.com/whyrusleeping/pinbot) - Pin content via IRC
- [Public gateway status checker](https://ipfs.fooock.com/) - Web app to check public states of IPFS gateways, including latency and gateway writable state. [Source](https://github.com/fooock/ipfs-gateway-checker)
- [Siderus Orion](https://orion.siderus.io) - Easy to use IPFS desktop client for macOS, Windows and Linux [Source](https://github.com/Siderus/Orion) - [Siderus Orion](https://orion.siderus.io) - Easy to use IPFS desktop client for macOS, Windows and Linux [Source](https://github.com/Siderus/Orion)
## Videos ## Videos
- [Distributed Apps with IPFS - Juan Benet at Fullstack Fest 2016](https://www.youtube.com/watch?v=jONZtXMu03w) - This talk breaks down how to build a dynamic app on top of IPFS with CRDTs, pub/sub, and slick UIs. It also delves into new models for distributed computation, and the ethical importance of distributing the web.
- [IPFS Alpha - Why we must redistribute the web](https://www.youtube.com/watch?v=skMTdSEaCtA) - [IPFS Alpha - Why we must redistribute the web](https://www.youtube.com/watch?v=skMTdSEaCtA)
- [IPFS Simply Explained](https://www.youtube.com/watch?v=5Uj6uR3fp-U) - [IPFS Simply Explained](https://www.youtube.com/watch?v=5Uj6uR3fp-U) - Let's take a look at how IPFS works, how it can solve issue's like censorship and if it would really work across multiple planets!
- [Juan Benet at Fullstack Fest 2016](https://www.youtube.com/watch?v=jONZtXMu03w) - [Juan Benet at Stanford 2015](https://www.youtube.com/watch?v=HUVmypx9HGI) - The talk includes a broad look at The IPFS Project, and a discussion on evolving the network stack through open source protocols R & D.
- [Juan Benet at Stanford 2015](https://www.youtube.com/watch?v=HUVmypx9HGI) - [Textile Build Series - A Free Online Workshop](https://www.youtube.com/playlist?list=PLC8CEtJ9shDznO1tpvGe--BVEWmCKY9_Z) - A full Training Program to teach devs on how to build for the Decentralized Web. The series covers a ton of content, touch multiple parts of the IPFS stack and guides devs through building a simple DApp.
## Discussions ## Discussions
@ -159,7 +167,7 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
## Want to hack on IPFS? ## Want to hack on IPFS?
[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) [![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
## License ## License

4
ci/Jenkinsfile vendored
View File

@ -1,4 +0,0 @@
website([
website: 'awesome.ipfs.io',
record: '_dnslink'
])

View File

@ -3,6 +3,13 @@ color: aqua
icon: stroke_marketing icon: stroke_marketing
description: Applications built with IPFS or with functionality that uses IPFS. description: Applications built with IPFS or with functionality that uses IPFS.
content: content:
- title: 2read
website: https://2read.net/
source: https://github.com/meehow/2read
picture: /images/2read.svg
description: >
Convert article in current tab to readable form and upload it
to writable node(s).
- title: killcord - title: killcord
website: https://killcord.io/ website: https://killcord.io/
source: https://github.com/nomasters/killcord source: https://github.com/nomasters/killcord
@ -36,6 +43,11 @@ content:
source: https://github.com/fazo96/ipfs-boards source: https://github.com/fazo96/ipfs-boards
description: > description: >
Distributed social platform that runs in the browser. Distributed social platform that runs in the browser.
- title: brig
website: https://brig.readthedocs.io/en/latest
source: https://github.com/sahib/brig
description: >
File synchronization with git like interface and FUSE filesystem.
- title: Cohort - title: Cohort
source: https://github.com/zignig/cohort source: https://github.com/zignig/cohort
description: > description: >
@ -61,6 +73,11 @@ content:
description: > description: >
Distributed video sharing with steem.it intergrations, using ipfs for Distributed video sharing with steem.it intergrations, using ipfs for
backend storage. backend storage.
- title: Eternum
website: https://www.eternum.io/
picture: /images/eternum.png
description: >
Paid pinning service with an easy-to-use API.
- title: Ethlance - title: Ethlance
website: http://ethlance.com website: http://ethlance.com
source: https://github.com/madvas/ethlance source: https://github.com/madvas/ethlance
@ -111,9 +128,12 @@ content:
description: > description: >
Publish and render markdown essays to and from ipfs. Publish and render markdown essays to and from ipfs.
- title: ipfs-search - title: ipfs-search
website: http://ipfs-search.com website: https://ipfs-search.com
source: https://github.com/ipfs-search/ipfs-search
description: > description: >
Search engine for files and directories on IPFS. Searching the universe since 2016.
Sniffs the DHT gossip and indexes file and directory hashes. Metadata and search API's available.
- title: ipfs-share - title: ipfs-share
source: https://github.com/rameshvarun/ipfs-share source: https://github.com/rameshvarun/ipfs-share
description: > description: >
@ -126,10 +146,6 @@ content:
source: https://github.com/victorbjelkholm/ipfsbin source: https://github.com/victorbjelkholm/ipfsbin
description: > description: >
Pastebin clone build. Pastebin clone build.
- title: IPFSStore
website: https://ipfsstore.it
description: >
Pinning paid with Bitcoin
- title: markup.rocks - title: markup.rocks
website: https://ipfs.io/ipfs/QmWPgJnUGLB1LPh9KMG9LEN4LVu5e17TwkEtcmTWdNn9V6/#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u website: https://ipfs.io/ipfs/QmWPgJnUGLB1LPh9KMG9LEN4LVu5e17TwkEtcmTWdNn9V6/#/ipfs/QmfQ75DjAxYzxMP2hdm6o4wFwZS5t7uorEZ2pX9AKXEg2u
source: https://github.com/davidar/markup.rocks source: https://github.com/davidar/markup.rocks
@ -145,14 +161,6 @@ content:
website: https://partysha.re website: https://partysha.re
description: > description: >
A simple file sharing app. A simple file sharing app.
- title: Filemap
website: https://filemap.xyz/
description: >
Upload files to a geographic point and never memorize a link again.
- title: FileNation
website: https://filenation.io/
description: >
The simplest way to send your files around the world using IPFS.
- title: Playback - title: Playback
source: https://mafintosh.github.io/playback/ source: https://mafintosh.github.io/playback/
description: > description: >
@ -165,7 +173,7 @@ content:
website: https://qri.io website: https://qri.io
source: https://github.com/qri-io/qri source: https://github.com/qri-io/qri
description: > description: >
Dataset creation, collaboration, and discovery on the distributed web. Dataset verion control, discovery and collaboration tools (free, open-source).
- title: ujo - title: ujo
website: http://ujomusic.com/ website: http://ujomusic.com/
description: > description: >
@ -196,7 +204,6 @@ content:
IPFS based code bin. (Read only for now) IPFS based code bin. (Read only for now)
- title: Gorilla REPL viewer - title: Gorilla REPL viewer
source: https://github.com/keorn/ipfs-gorilla-repl source: https://github.com/keorn/ipfs-gorilla-repl
demo: https://ipfs.io/ipfs/QmRNUauWDvZFkAp1Bw3kAode3jT8aH2vx7LYzbS7H6R3Mg/view.html?path=/ipfs/QmbRdyLXiFWrKc5hW1NbvpUxF9tLovWCPgiz4BDhjD9k3j
description: > description: >
Gorilla is a rich REPL for Clojure in the notebook style. Gorilla is a rich REPL for Clojure in the notebook style.
- title: a markdown renderer - title: a markdown renderer
@ -208,10 +215,6 @@ content:
- title: a qr-code renderer - title: a qr-code renderer
source: https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/qr-render source: https://github.com/ipfs/website/tree/master/content/docs/examples/webapps/qr-render
demo: https://ipfs.io/ipfs/QmccqhJg5wm5kNjAP4k4HrYxoqaXUGNuotDUqfvYBx8jrR/qr#enter%20text%20here demo: https://ipfs.io/ipfs/QmccqhJg5wm5kNjAP4k4HrYxoqaXUGNuotDUqfvYBx8jrR/qr#enter%20text%20here
- title: Arpadyne
website: https://arpadyne.computes.com
description: >
The New Internet - DNS powered by OrbitDB. Content delivered via IPFS.
- title: TallyLab - title: TallyLab
website: https://tallylab.com/ website: https://tallylab.com/
picture: /images/tallylab.jpg picture: /images/tallylab.jpg
@ -264,6 +267,11 @@ content:
picture: /images/peer-bandwidth-demo.jpg picture: /images/peer-bandwidth-demo.jpg
description: > description: >
An demo app that uses window.ipfs, provided by the IPFS Companion web extension to get and graph bandwidth info for your IPFS node An demo app that uses window.ipfs, provided by the IPFS Companion web extension to get and graph bandwidth info for your IPFS node
- title: Pinata
website: https://pinata.cloud
picture: /images/pinata.png
description: >
Build and manage your dapp through Pinatas REST API and IPFS toolkit.
- title: PubSub Chat Demo - title: PubSub Chat Demo
website: https://ipfs.io/ipfs/QmWZ3u5S7RjFXKfW6dSZhj7CozcvpqJxm48RYMmKkWcmNQ/ website: https://ipfs.io/ipfs/QmWZ3u5S7RjFXKfW6dSZhj7CozcvpqJxm48RYMmKkWcmNQ/
source: https://github.com/tableflip/ipfs-pubsub-chat-example source: https://github.com/tableflip/ipfs-pubsub-chat-example
@ -289,9 +297,30 @@ content:
description: > description: >
A ToDo List demo app that uses windows.ipfs. A ToDo List demo app that uses windows.ipfs.
- title: IPFS Desktop - title: IPFS Desktop
source: https://github.com/ipfs/ipfs-desktop source: https://github.com/ipfs-shipyard/ipfs-desktop
picture: /images/ipfs-desktop.png picture: /images/ipfs-desktop.png
description: > description: >
Run your IPFS node on your machine without having to bother with command line tools. Run your IPFS node on your machine without having to bother with command line tools.
Manage your node, add your files, easily change the settings... everything from Manage your node, add your files, easily change the settings... everything from
just one interface. just one interface.
- title: 3Box
website: https://3box.io
source: https://github.com/uport-project/3box
picture: /images/3box.png
description: >
Create and manage your Ethereum Profile, and your personal data. Use the 3box-js
library to integrate profiles into your dapp.
- title: Autonomica "IPFS Social Proof"
source: https://github.com/IBM/ipfs-social-proof
description: >
Autonomica is a Keybase-like Dapp for creating an identity and proving this identity via published social media and web proofs.
- title: xfce-screenshooter-ipfs-support
source: https://github.com/amar-laksh/xfce-screenshooter-ipfs-support
description: >
A fork of xfce-screenshooter with IPFS support!
- title: Request Network
website: https://request.network/
source: https://github.com/RequestNetwork/requestNetwork
picture: /images/request-network.png
description: >
Decentralized network for financial transactions.

View File

@ -24,9 +24,6 @@ content:
- title: The InterPlanetary File System Wants to Create a Permanent Web - title: The InterPlanetary File System Wants to Create a Permanent Web
date: '2015-09-18' date: '2015-09-18'
website: http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web website: http://motherboard.vice.com/read/the-interplanetary-file-system-wants-to-create-a-permanent-web
- title: Eris + IPFS
date: '2015-11-01'
website: https://monax.io/blog/2015/11/01/eris-and-ipfs/
- title: HTTP is obsolete. It's time for the distributed, permanent web - title: HTTP is obsolete. It's time for the distributed, permanent web
date: '2015-09-08' date: '2015-09-08'
website: https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html website: https://ipfs.io/ipfs/QmNhFJjGcMPqpuYfxL62VVB9528NXqDNMFXiqN5bgFYiZ1/its-time-for-the-permanent-web.html
@ -35,6 +32,15 @@ content:
- title: On future-proof cryptographic hashes - title: On future-proof cryptographic hashes
date: '2018-07-11' date: '2018-07-11'
website: https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/ website: https://pascalprecht.github.io/posts/future-proofed-hashes-with-multihash/
- title: Content Identifiers in IPFS
date: '2018-08-06'
website: https://pascalprecht.github.io/posts/content-identifiers-in-ipfs/
- title: Decentralized indexes for public genomic data - title: Decentralized indexes for public genomic data
date: '2017-05-05' date: '2017-05-05'
website: https://github.com/luizirber/2017-recomb website: https://github.com/luizirber/2017-recomb
- title: Understanding the IPFS White Paper part 1
date: '2017-08-10'
website: https://decentralized.blog/understanding-the-ipfs-white-paper-part-1.html
- title: Understanding the IPFS White Paper part 2
date: '2017-08-21'
website: https://decentralized.blog/understanding-the-ipfs-white-paper-part-2.html

View File

@ -8,18 +8,12 @@ content:
website: https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM website: https://ipfs.io/ipfs/QmNvTjdqEPjZVWCvRWsFJA1vK7TTw1g9JP6we1WBJTRADM
source: https://github.com/ipfs/archives/issues/18 source: https://github.com/ipfs/archives/issues/18
size: 500MB size: 500MB
- title: Presidental Daily Briefs
hash: /ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89
website: https://ipfs.io/ipfs/Qme6epvZDj3vzHcFKdF1nZhbixjw8Bn4imGcKnbUyBJL89
source: https://github.com/ipfs/archives/issues/23
description:
size: 480MB
- title: XKCD - title: XKCD
hash: /ipfs/Qmb8wsGZNXt5VXZh1pEmYynjB6Euqpq3HYyeAdw2vScTkQ hash: /ipns/xkcd.hacdias.com
website: https://ipfs.io/ipfs/Qmb8wsGZNXt5VXZh1pEmYynjB6Euqpq3HYyeAdw2vScTkQ website: https://ipfs.io/ipns/xkcd.hacdias.com
source: https://github.com/ipfs/archives/issues/21 source: https://github.com/ipfs/archives/issues/21
description: description:
size: 122MB size: 241MB
- title: Old Internet Files - title: Old Internet Files
hash: /ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp hash: /ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp
website: https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp website: https://ipfs.io/ipfs/QmbsZEvJE8EU51HCUHQg2aem9JNFmFHdva3tGVYutdCXHp

View File

@ -9,6 +9,11 @@ content:
- title: gatsby-plugin-ipfs - title: gatsby-plugin-ipfs
source: https://github.com/moxystudio/gatsby-plugin-ipfs source: https://github.com/moxystudio/gatsby-plugin-ipfs
description: Adds support for deploying Gatsby websites to IPFS by ensuring that assets are relative. description: Adds support for deploying Gatsby websites to IPFS by ensuring that assets are relative.
- title: dillo-ipfs
source: https://git.scuttlebot.io/%25C35b%2BMlZ%2Fy5TT1e7SG66eNKEIdX5DRl9PRUxbhvO89k%3D.sha256
website: https://git.scuttlebot.io/%25C35b%2BMlZ%2Fy5TT1e7SG66eNKEIdX5DRl9PRUxbhvO89k%3D.sha256
description: IPFS integration for the Dillo web browser.
picture: /images/dillo-ipfs.png
- title: git-remote-ipfs - title: git-remote-ipfs
source: https://github.com/cryptix/git-remote-ipfs source: https://github.com/cryptix/git-remote-ipfs
description: push/pull repositories from/to IPFS description: push/pull repositories from/to IPFS
@ -37,9 +42,6 @@ content:
- title: ipfs-gui - title: ipfs-gui
source: https://github.com/marcin212/ipfs-gui source: https://github.com/marcin212/ipfs-gui
description: Windows UI integration and IPFS installer description: Windows UI integration and IPFS installer
- title: ipfs-linux-service
source: https://github.com/dylanPowers/ipfs-linux-service
description: IPFS Linux Init Daemon
- title: ipfs-paste - title: ipfs-paste
source: https://github.com/jbenet/ipfs-paste source: https://github.com/jbenet/ipfs-paste
description: Paste stdin and clipboard to IPFS description: Paste stdin and clipboard to IPFS
@ -71,9 +73,6 @@ content:
- title: ipfs-add-from-url - title: ipfs-add-from-url
source: https://github.com/maxlath/ipfs-add-from-url source: https://github.com/maxlath/ipfs-add-from-url
description: Add a file to IPFS from a URL instead of a file path description: Add a file to IPFS from a URL instead of a file path
- title: ipfs-gui
source: https://github.com/marcin212/ipfs-gui
description: Windows UI integration and IPFS installer
- title: ipfs-linux-service - title: ipfs-linux-service
source: https://github.com/dylanPowers/ipfs-linux-service source: https://github.com/dylanPowers/ipfs-linux-service
description: IPFS Linux Init Daemon description: IPFS Linux Init Daemon
@ -94,3 +93,12 @@ content:
description: > description: >
Monitor the current block number of the Ethereum blockchain, and set alerts (stored locally using Monitor the current block number of the Ethereum blockchain, and set alerts (stored locally using
PouchDB in your browser) for when certain block heights are passed. PouchDB in your browser) for when certain block heights are passed.
- title: ipfs-common
website: https://github.com/arsyun
source: https://github.com/arsyun/ipfs-common
description: >
some common tools, 1.CID to human readable cid, 2.cid and block name convert, 3. read the leveldb tools.
- title: Public gateway status checker
website: https://ipfs.fooock.com/
source: https://github.com/fooock/ipfs-gateway-checker
description: Web app to check public states of IPFS gateways, including latency and gateway writable state.

View File

@ -9,9 +9,26 @@ content:
- title: IPFS Simply Explained - title: IPFS Simply Explained
website: https://www.youtube.com/watch?v=5Uj6uR3fp-U website: https://www.youtube.com/watch?v=5Uj6uR3fp-U
picture: /images/ipfs_simply_explained_video.jpg picture: /images/ipfs_simply_explained_video.jpg
description: >
Let's take a look at how IPFS works, how it can solve issue's like
censorship and if it would really work across multiple planets!
- title: Juan Benet at Stanford 2015 - title: Juan Benet at Stanford 2015
website: https://www.youtube.com/watch?v=HUVmypx9HGI website: https://www.youtube.com/watch?v=HUVmypx9HGI
picture: /images/stanford-2015.jpg picture: /images/stanford-2015.jpg
- title: Juan Benet at Fullstack Fest 2016 description: >
The talk includes a broad look at The IPFS Project, and a discussion on evolving the network stack through open source protocols R & D.
- title: Distributed Apps with IPFS - Juan Benet at Fullstack Fest 2016
website: https://www.youtube.com/watch?v=jONZtXMu03w website: https://www.youtube.com/watch?v=jONZtXMu03w
picture: /images/fullstack-fest-2016.jpg picture: /images/fullstack-fest-2016.jpg
description: >
This talk breaks down how to build a dynamic app on top of IPFS with
CRDTs, pub/sub, and slick UIs. It also delves into new models for
distributed computation, and the ethical importance of distributing the
web.
- title: Textile Build Series - A Free Online Workshop
website: https://www.youtube.com/playlist?list=PLC8CEtJ9shDznO1tpvGe--BVEWmCKY9_Z
picture: /images/textile-build-series.jpg
description: >
A full Training Program to teach devs on how to build for the
Decentralized Web. The series covers a ton of content, touch multiple
parts of the IPFS stack and guides devs through building a simple DApp.

View File

@ -3,9 +3,9 @@
"version": "1.0.0", "version": "1.0.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"ipfs-css": "^0.5.2", "ipfs-css": "^0.12.0",
"lunr": "^2.3.0", "lunr": "^2.3.6",
"tachyons": "^4.10.0" "tachyons": "^4.11.1"
}, },
"scripts": { "scripts": {
"start": "node ./scripts/dev.js", "start": "node ./scripts/dev.js",
@ -18,24 +18,22 @@
"build:css": "postcss --no-map --use postcss-import cssnano -o src/static/app.css src/css/*.css", "build:css": "postcss --no-map --use postcss-import cssnano -o src/static/app.css src/css/*.css",
"build:js": "browserify -g uglifyify src/js/app.js -o src/static/app.js", "build:js": "browserify -g uglifyify src/js/app.js -o src/static/app.js",
"build:data": "node ./scripts/make-data.js", "build:data": "node ./scripts/make-data.js",
"build:hugo": "hugo -s src -d ../public --cleanDestinationDir", "build:hugo": "hugo -s src -d ../public --cleanDestinationDir --minify --gc"
"build:minify": "html-minifier --input-dir=./public --output-dir=./public --file-ext=html --collapse-whitespace --remove-comments"
}, },
"devDependencies": { "devDependencies": {
"babel-eslint": "^8.2.6", "babel-eslint": "^10.0.1",
"browserify": "^16.2.2", "browserify": "^16.2.3",
"chokidar": "^2.0.4", "chokidar": "^2.1.5",
"cssnano": "^4.0.1", "cssnano": "^4.1.10",
"ecstatic": "^3.2.1", "ecstatic": "^4.1.2",
"fs-extra": "^6.0.1", "fs-extra": "^7.0.1",
"html-minifier": "^3.5.19", "hugo-bin": "^0.43.4",
"hugo-bin": "^0.29.0", "node-yaml": "^3.2.0",
"node-yaml": "^3.1.1", "npm-run-all": "^4.1.5",
"npm-run-all": "^4.1.3", "postcss-cli": "^6.1.2",
"postcss-cli": "^5.0.1", "postcss-import": "^12.0.1",
"postcss-import": "^11.1.0",
"shx": "^0.3.2", "shx": "^0.3.2",
"standard": "^11.0.1", "standard": "^12.0.1",
"uglifyify": "^5.0.1", "uglifyify": "^5.0.1",
"watch": "^1.0.2" "watch": "^1.0.2"
}, },

View File

@ -1,23 +1,34 @@
const fs = require('fs') const fs = require('fs')
const path = require('path') const { join } = require('path')
const yaml = require('node-yaml') const yaml = require('node-yaml')
const { sortAbc } = require('./utils') const { sortAbc, sortInv, slugify } = require('./utils')
const dataDir = path.join(__dirname, '../data')
const dir = join(__dirname, '../data')
const trimIfExists = (str) => str ? str.trim() : undefined const trimIfExists = (str) => str ? str.trim() : undefined
const files = fs.readdirSync(dataDir) module.exports = fs.readdirSync(dir)
.map(file => path.join(dataDir, file)) .map(file => join(dir, file))
.map(file => yaml.readSync(file)) .map(file => yaml.readSync(file))
.map(file => { .map(file => {
file.content = file.content.map(({ title, description, ...file }) => ({ file.slug = slugify(file.title)
file.type = 'category'
file.content = file.content.map(({ title, description, ...meta }, i) => ({
...meta,
title: trimIfExists(title), title: trimIfExists(title),
description: trimIfExists(description), description: trimIfExists(description),
...file category: file.slug,
color: file.color,
index: i
})) }))
let sort = (a, b) => sortAbc(a.title, b.title)
if (file.slug === 'articles') {
sort = (a, b) => sortInv(a.date, b.date)
}
file.content = file.content.sort(sort)
return file return file
}) })
.sort((a, b) => sortAbc(a.title, b.title)) .sort((a, b) => sortAbc(a.title, b.title))
module.exports = files

View File

@ -1,126 +1,50 @@
const lunr = require('lunr') const lunr = require('lunr')
const fs = require('fs-extra') const fs = require('fs-extra')
const path = require('path') const { join } = require('path')
const { slugify, capitalize, sortAbc } = require('./utils')
const dataDir = path.join(__dirname, '../src/data') function getData () {
const contentDir = path.join(__dirname, '../src/content') let data = require('./data')
const indexesDir = path.join(__dirname, '../src/layouts/partials/indexes')
const processDataType = (data) => { data.push({
const content = data.content.map(info => { title: 'Awesome IPFS',
const { website, ...more } = info slug: '_index',
content: data
return { .reduce((arr, cat) => arr.concat(cat.content), [])
website: website, .map((el, i) => ({
categories: [data.title.toLowerCase()], ...el,
...more index: i
} }))
}) })
delete data.content data.forEach(makeIndex)
return data
return {
info: { ...data },
content: content
}
} }
const writeContentFile = (data) => { function makeIndex (category) {
const basename = slugify(data.title) const data = category.content.map(({ index, title, description = '', tags = [], category = '' }) => ({
const filename = path.join(contentDir, `${basename}.md`)
fs.writeFileSync(filename, JSON.stringify(data))
}
const makeIndex = (data) => {
const indexes = { 'index': [] }
const checkField = (field, el) => {
if (Array.isArray(el[field])) {
el[field].forEach(t => {
const key = `${field}_${t}`
if (indexes[key]) {
indexes[key].push(el.index)
} else {
indexes[key] = [el.index]
}
})
}
}
data.forEach(el => {
indexes.index.push(el.index)
checkField('tags', el)
checkField('categories', el)
})
data = data.map(({index, title, description = '', tags = [], categories = []}) => ({
ref: index, ref: index,
data: `${title} ${description} ${tags.join(' ')} ${categories.join(' ')}` data: `${title} ${description} ${tags.join(' ')} ${category}`
})) }))
for (const index in indexes) { category.index = lunr(function () {
const idx = lunr(function () { this.ref('ref')
this.ref('ref') this.field('data')
this.field('data') data.forEach(this.add.bind(this))
})
indexes[index].map(i => data[i]).forEach(this.add.bind(this))
})
const file = path.join(indexesDir, index + '.html')
const json = JSON.stringify(idx).replace(`'`, `\\'`)
fs.writeFileSync(file, `<script>var idx = JSON.parse(\`${json}\`);</script>`)
}
} }
const process = () => { const process = () => {
fs.ensureDirSync(dataDir) const dir = join(__dirname, '../src/content')
fs.ensureDirSync(contentDir) fs.ensureDirSync(dir)
fs.ensureDirSync(indexesDir) fs.emptyDirSync(dir)
fs.emptyDirSync(dataDir)
fs.emptyDirSync(contentDir)
fs.emptyDirSync(indexesDir)
let data = [] const data = getData()
let types = []
let typesObj = {}
require('./data') for (const { index, slug, ...meta } of data) {
.map(processDataType) const filename = join(dir, slug + '.md')
.forEach(({info, content}) => { fs.writeFileSync(filename, `${JSON.stringify(meta)}
types.push(info) <script>var idx = JSON.parse(\`${JSON.stringify(index).replace(`'`, `\\'`)}\`);</script>`)
data.push(content) }
})
data = data.reduce((a, v) => a.concat(v), [])
.sort((a, b) => sortAbc(a.title, b.title))
.map((v, i) => { v.index = i; return v })
data.forEach(writeContentFile)
makeIndex(data)
types = types.map(t => {
t.title = capitalize(t.title)
return t
}).sort((a, b) => {
if (a.weight < b.weight) {
return -1
}
if (a.weight > b.weight) {
return 1
}
return 0
}).forEach(type => {
typesObj[type.title.toLowerCase()] = type
})
const pt = path.join(dataDir, 'categories.json')
fs.writeFileSync(pt, JSON.stringify(typesObj))
} }
process() process()

View File

@ -3,18 +3,12 @@ const path = require('path')
const files = require('./data') const files = require('./data')
const readme = path.join(__dirname, '../README.md') const readme = path.join(__dirname, '../README.md')
const template = path.join(__dirname, 'readme-template.md') const template = path.join(__dirname, 'readme-template.md')
const { slugify, sortInv, sortAbc } = require('./utils') const { slugify } = require('./utils')
const toc = files.map(cat => `- [${cat.title}](#${slugify(cat.title)})`).join('\n') const toc = files.map(cat => `- [${cat.title}](#${slugify(cat.title)})`).join('\n')
const sections = files.map(category => { const sections = files.map(category => {
let sort = (a, b) => sortAbc(a.title, b.title) const content = category.content.map(item => {
if (category.title === 'Articles') {
sort = (a, b) => sortInv(a.date, b.date)
}
const content = category.content.sort(sort).map(item => {
let block = '- ' let block = '- '
let mainUrl = '' let mainUrl = ''

View File

@ -30,7 +30,7 @@ Everyone is welcome to submit their new awesome-ipfs item. In order to add an el
## Want to hack on IPFS? ## Want to hack on IPFS?
[![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/contributing.md) [![](https://cdn.rawgit.com/jbenet/contribute-ipfs-gif/master/img/contribute.gif)](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md)
## License ## License

View File

@ -20,12 +20,9 @@ const slugify = (text) => text.toString()
.replace(/^-+/, '') .replace(/^-+/, '')
.replace(/-+$/, '') .replace(/-+$/, '')
const capitalize = (text) => `${text.charAt(0).toUpperCase()}${text.slice(1).toLowerCase()}`
module.exports = { module.exports = {
sort, sort,
sortInv, sortInv,
sortAbc, sortAbc,
slugify, slugify
capitalize
} }

View File

@ -11,15 +11,12 @@
<img alt="IPFS" src="{{ .Site.BaseURL }}/images/logo.png" class="w3 h3 mr3"> <img alt="IPFS" src="{{ .Site.BaseURL }}/images/logo.png" class="w3 h3 mr3">
<h1 class="f3 white">Awesome IPFS</h1> <h1 class="f3 white">Awesome IPFS</h1>
</a> </a>
{{ $site := .Site }} {{ range (where .Site.Pages "Type" "category") }}
{{ range $name, $taxonomy := .Site.Taxonomies.categories }} <a href="{{ .RelPermalink }}"
{{ $color := (index $site.Data.categories $name).color }} class="flex-grow-1 flex items-center justify-center white no-underline pa2 bg-animate dib bg-{{ .Params.color }}-muted hover-bg-{{ .Params.color }}">
{{ $icon := print (index $site.Data.categories $name).icon ".svg" }} <span class="w2 h2 fill-white mr2">{{ partial (print "icons/" .Params.icon ".svg" ) }}</span>
<a href="/categories/{{ $name | urlize }}" {{ .Title }}
class="flex-grow-1 flex items-center justify-center white no-underline pa2 bg-animate dib bg-{{ $color }}-muted hover-bg-{{ $color }}">
<span class="w2 h2 fill-white mr2">{{ partial (print "icons/" $icon ) }}</span>
{{ $name }}
</a> </a>
{{ end }} {{ end }}
</nav> </nav>

View File

@ -1,9 +0,0 @@
{{ define "main" }}
{{- $p1 := (print .Data.Plural "_") -}}
{{- $p2 := lower .Title -}}
{{- $partial := print $p1 $p2 -}}
{{- partial "list" .Data.Pages -}}
{{- partial (print "indexes/" $partial) -}}
{{ end }}

View File

@ -0,0 +1,3 @@
{{ define "main" }}
{{ partial "list" . }}
{{ end }}

View File

@ -1,7 +1,3 @@
{{ define "main" }} {{ define "main" }}
{{ partial "list" . }}
{{ partial "list" .Pages }}
{{ partial "indexes/index" }}
{{ end }} {{ end }}

View File

@ -12,73 +12,75 @@
</div> </div>
<main class="CardContainer mv4 flex flex-wrap justify-between" > <main class="CardContainer mv4 flex flex-wrap justify-between" >
{{ range (sort . "Params.index") -}} {{ range (sort .Params.content "index") -}}
<article data-ref="{{ .Params.index }}" class="Card flex flex-column bg-white shadow-4 grow2 br1 dark-gray b--black-10 flex-grow-1 ma2"> <article data-ref="{{ .index }}" class="Card flex flex-column bg-white shadow-4 grow2 br1 dark-gray b--black-10 flex-grow-1 ma2">
{{ $cat := index .Params.categories 0 }} <div class="bg-navy ttu fw6 tracked montserrat bg-{{ .color }}-muted br1 br--top white pv1 ph2 ph3-ns f7 b w-100">
{{ $color := (index .Site.Data.categories $cat).color }} {{ humanize .category }}
<div class="bg-navy ttu fw6 tracked montserrat bg-{{ $color }}-muted br1 br--top white pv1 ph2 ph3-ns f7 b w-100"> </div>
{{ humanize $cat }}
<div class="pa2 ph3-ns pb3-ns flex flex-column flex-grow-1">
<div class="dt w-100 mt1">
<div class="dtc">
<a target="_blank" class="no-underline charcoal" href="{{ if .website }}{{ .website }}{{ else if .source }}{{ .source }}{{ else if .demo }}{{ .demo }}{{ end }}">
<h1 class="f5 mw5 f4-ns mv0">{{- .title -}}</h1>
</a>
</div>
</div> </div>
<div class="pa2 ph3-ns pb3-ns flex flex-column flex-grow-1"> {{- if isset . "date" -}}
<div class="dt w-100 mt1"> {{ template "text" dateFormat "January 2, 2006" .date }}
<div class="dtc"> {{- end -}}
<a target="_blank" class="no-underline charcoal" href="{{ if .Params.website }}{{ .Params.website }}{{ else if .Params.source }}{{ .Params.source }}{{ else if .Params.demo }}{{ .Params.demo }}{{ end }}">
<h1 class="f5 mw5 f4-ns mv0">{{- .Title -}}</h1>
</a>
</div>
</div>
{{- if isset .Params "date" -}} {{- if isset . "description" -}}
{{ template "text" .Date.Format "January 2, 2006" }} {{ template "text" .description }}
{{- end -}} {{- end -}}
{{- if isset .Params "description" -}} {{- if isset . "size" -}}
{{ template "text" .Params.description }} {{ template "text" (print "Size: " .size) }}
{{- end -}} {{- end -}}
{{- if isset .Params "size" -}} {{- if isset . "hash" -}}
{{ template "text" (print "Size: " .Params.size) }}
{{- end -}}
{{- if isset .Params "hash" -}}
<div class="mt2 mw5">
<a href="https://ipfs.io{{ .Params.hash }}" target="_blank" alt="Website" title="Website" class="aqua hover-teal">
<abbr title="{{ .Params.hash }}">
<code>{{ substr .Params.hash 0 10 }}...{{ substr .Params.hash 47 5 }}</code>
</abbr>
</a>
</div>
{{- end -}}
{{- if isset .Params "picture" -}}
<div class="mt2 mw5"> <div class="mt2 mw5">
<a target="_blank" class="no-underline charcoal" href="{{ if .Params.website }}{{ .Params.website }}{{ else if .Params.source }}{{ .Params.source }}{{ else if .Params.demo }}{{ .Params.demo }}{{ end }}"> <a href="https://ipfs.io{{ .hash }}" target="_blank" alt="Website" title="Website" class="aqua hover-teal">
<img class="br2" src="{{ .Site.BaseURL }}{{ .Params.picture }}" > <abbr title="{{ .hash }}">
{{ $length := sub (len .hash) 5 }}
<code>{{ substr .hash 0 10 }}...{{ substr .hash $length 5 }}</code>
</abbr>
</a> </a>
</div> </div>
{{ end }} {{- end -}}
<div class="flex pt2 mt-auto align-center justify-begin"> {{- if isset . "picture" -}}
{{- if isset .Params "website" -}} <div class="mt2 mw5">
<a href="{{ .Params.website }}" target="_blank" alt="Website" title="Website"> <a target="_blank" class="no-underline charcoal" href="{{ if .website }}{{ .website }}{{ else if .source }}{{ .source }}{{ else if .demo }}{{ .demo }}{{ end }}">
{{ partial "icons/globe.svg" }} <img class="br2" src="{{ .picture | relURL }}" >
</a> </a>
{{- end -}}
{{- if isset .Params "source" -}}
<a href="{{ .Params.source }}" target="_blank" alt="Source Code" title="Source Code">
{{ partial "icons/code.svg" }}
</a>
{{- end -}}
{{- if isset .Params "demo" -}}
<a href="{{ .Params.demo }}" target="_blank" alt="Demo" title="Demo">
{{ partial "icons/flask.svg" }}
</a>
{{- end -}}
</div>
</div> </div>
</article> {{ end }}
<div class="flex pt2 mt-auto align-center justify-begin">
{{- if isset . "website" -}}
<a href="{{ .website }}" target="_blank" alt="Website" title="Website">
{{ partial "icons/globe.svg" }}
</a>
{{- end -}}
{{- if isset . "source" -}}
<a href="{{ .source }}" target="_blank" alt="Source Code" title="Source Code">
{{ partial "icons/code.svg" }}
</a>
{{- end -}}
{{- if isset . "demo" -}}
<a href="{{ .demo }}" target="_blank" alt="Demo" title="Demo">
{{ partial "icons/flask.svg" }}
</a>
{{- end -}}
</div>
</div>
</article>
{{ end }} {{ end }}
</main> </main>
{{ .Content }}

View File

@ -0,0 +1,83 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="13.520844mm" height="13.520844mm" viewBox="0 0 47.908501 47.908501" id="svg2" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="Button - Share.svg" inkscape:export-filename="/Users/jgillanders/Development/Games/Colibrium/Pictures/Button - Share.png" inkscape:export-xdpi="961.83002" inkscape:export-ydpi="961.83002">
<defs id="defs4">
<marker inkscape:isstock="true" inkscape:stockid="DistanceStart" orient="auto" refY="0" refX="0" id="DistanceStart" style="overflow:visible">
<g id="g2300">
<path id="path2306" d="M 0,0 2,0" style="fill:none;stroke:#ffffff;stroke-width:1.14999998;stroke-linecap:square" inkscape:connector-curvature="0"/>
<path id="path2302" d="M 0,0 13,4 9,0 13,-4 0,0 Z" style="fill:#000000;fill-rule:evenodd;stroke:none" inkscape:connector-curvature="0"/>
<path id="path2304" d="M 0,-4 0,40" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square" inkscape:connector-curvature="0"/>
</g>
</marker>
<linearGradient x1="14.66" y1="7.0243001" x2="24.031" gradientUnits="userSpaceOnUse" y2="34.826" id="G3">
<stop offset="0" stop-color="#fcf9fb" id="s3"/>
<stop offset="1" stop-opacity="0" stop-color="#fcf9fb" id="s4"/>
</linearGradient>
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0">
<stop offset="0" stop-color="#e6cf00" id="s1"/>
<stop offset="1" stop-color="#fde94a" id="s2"/>
</radialGradient>
<radialGradient r="9.6875" gradientTransform="matrix(2.4,0,0,0.67,-17.1,22.4)" cx="17.312" cy="25.531" gradientUnits="userSpaceOnUse" id="R1">
<stop offset="0" stop-opacity=".63" id="s5"/>
<stop offset="1" stop-opacity="0" id="s6"/>
</radialGradient>
<linearGradient gradientTransform="matrix(0.31170768,-0.14537193,0.14537193,0.31170768,-216.07743,565.35148)" y2="34.826" x2="24.031" y1="7.0243001" x1="14.66" gradientUnits="userSpaceOnUse" id="linearGradient2995" xlink:href="#G3" inkscape:collect="always"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3011" xlink:href="#R0" inkscape:collect="always"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3018-9" xlink:href="#R0-4" inkscape:collect="always"/>
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-4">
<stop offset="0" stop-color="#e6cf00" id="s1-8"/>
<stop offset="1" stop-color="#fde94a" id="s2-8"/>
</radialGradient>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3028-2" xlink:href="#R0-45" inkscape:collect="always"/>
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45">
<stop offset="0" stop-color="#e6cf00" id="s1-5"/>
<stop offset="1" stop-color="#fde94a" id="s2-1"/>
</radialGradient>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3986" xlink:href="#R0-45" inkscape:collect="always"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3986-5" xlink:href="#R0-45-7" inkscape:collect="always"/>
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45-7">
<stop offset="0" stop-color="#e6cf00" id="s1-5-6"/>
<stop offset="1" stop-color="#fde94a" id="s2-1-1"/>
</radialGradient>
<radialGradient inkscape:collect="always" xlink:href="#R0-45-7" id="radialGradient4007" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" cx="28.935429" cy="32.797306" fx="28.935429" fy="32.797306" r="22"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient3986-5-2" xlink:href="#R0-45-7-7" inkscape:collect="always"/>
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45-7-7">
<stop offset="0" stop-color="#e6cf00" id="s1-5-6-9"/>
<stop offset="1" stop-color="#fde94a" id="s2-1-1-5"/>
</radialGradient>
<radialGradient inkscape:collect="always" xlink:href="#R0-45-7-7" id="radialGradient4041" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" cx="28.935429" cy="32.797306" fx="28.935429" fy="32.797306" r="22"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient4065" xlink:href="#R0-45" inkscape:collect="always"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient4065-4" xlink:href="#R0-45-3" inkscape:collect="always"/>
<radialGradient fy="32.797306" fx="28.935429" r="22" gradientTransform="matrix(1,-0.2,0.2,1,-3.8,6.8)" cx="28.935429" cy="32.797306" gradientUnits="userSpaceOnUse" id="R0-45-3">
<stop offset="0" stop-color="#e6cf00" id="s1-5-1"/>
<stop offset="1" stop-color="#fde94a" id="s2-1-2"/>
</radialGradient>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1.0439725,-0.20879451,0.20879451,1.0439725,-147.8058,553.72738)" gradientUnits="userSpaceOnUse" id="radialGradient4113" xlink:href="#R0-45-7-7" inkscape:collect="always"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(1,-0.2,0.2,1,78.2,6.8)" gradientUnits="userSpaceOnUse" id="radialGradient4117" xlink:href="#R0-45" inkscape:collect="always"/>
<radialGradient r="22" fy="32.797306" fx="28.935429" cy="32.797306" cx="28.935429" gradientTransform="matrix(0.61925922,-1.4303233,1.4303233,0.61925922,-39.346374,44.502008)" gradientUnits="userSpaceOnUse" id="radialGradient4120" xlink:href="#R0-45" inkscape:collect="always"/>
</defs>
<sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="3.959798" inkscape:cx="21.898881" inkscape:cy="30.152565" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0" inkscape:window-width="1440" inkscape:window-height="815" inkscape:window-x="0" inkscape:window-y="1" inkscape:window-maximized="1"/>
<metadata id="metadata7">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(229.66854,-548.40793)">
<path id="hl" d="m -206.82877,565.402 2.03199,0.91795 c 1.54237,0.71307 0.75483,0.33719 2.36782,1.12659 -4.12683,1.94063 -0.28812,2.61772 -4.43562,5.1369 l 0.0102,-0.70185 c 0.0502,-4.01163 -0.32955,1.92558 0.0256,-6.47959 z" style="opacity:0.8;fill:url(#linearGradient2995)" inkscape:connector-curvature="0" sodipodi:nodetypes="cccccc"/>
<circle r="22.95425" cy="572.36218" cx="-205.71429" id="path3932" style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:url(#radialGradient4113);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"/>
<circle r="20.743464" cy="572.36218" cx="-205.71429" style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.68999999;fill:none;stroke:#ffffff;stroke-width:2.53080082;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" id="path4067"/>
<flowRoot style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:22.5px;line-height:125%;font-family:Arial;-inkscape-font-specification:Arial;text-align:center;letter-spacing:2.72000003px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="flowRoot3379" xml:space="preserve" transform="translate(-229.71429,548.3622)"><flowRegion id="flowRegion3381"><rect style="font-size:22.5px" y="12.076912" x="10.03369" height="29.110088" width="28.986216" id="rect3383"/></flowRegion><flowPara id="flowPara3385"/></flowRoot> <g transform="matrix(0.03231979,0,0,0.03231979,-180.85582,575.47438)" id="layer1-2">
<g transform="matrix(0,-17.254,17.254,0,10443,-2252.9)" id="g11676">
<path transform="translate(1.1045,-949.48)" style="color:#000000" d="m -134.38,309.5 c 0,4.1683 -3.3791,7.5474 -7.5474,7.5474 -4.1683,0 -7.5474,-3.3791 -7.5474,-7.5474 0,-4.1683 3.3791,-7.5474 7.5474,-7.5474 4.1683,0 7.5474,3.3791 7.5474,7.5474 z" id="path11666" inkscape:connector-curvature="0"/>
<path transform="translate(32.767,-949.48)" style="color:#000000" d="m -134.38,309.5 c 0,4.1683 -3.3791,7.5474 -7.5474,7.5474 -4.1683,0 -7.5474,-3.3791 -7.5474,-7.5474 0,-4.1683 3.3791,-7.5474 7.5474,-7.5474 4.1683,0 7.5474,3.3791 7.5474,7.5474 z" id="path11668" inkscape:connector-curvature="0"/>
<path transform="translate(16.936,-976.35)" style="color:#000000" d="m -134.38,309.5 c 0,4.1683 -3.3791,7.5474 -7.5474,7.5474 -4.1683,0 -7.5474,-3.3791 -7.5474,-7.5474 0,-4.1683 3.3791,-7.5474 7.5474,-7.5474 4.1683,0 7.5474,3.3791 7.5474,7.5474 z" id="path11670" inkscape:connector-curvature="0"/>
<rect x="488.22" y="-443.73001" width="27.691999" height="3" transform="matrix(0.49998488,-0.86603413,0.86603413,0.49998488,0,0)" style="color:#000000" id="rect11672"/>
<rect x="613.15997" y="-226.89999" width="27.691999" height="3" transform="matrix(-0.5,-0.86603,-0.86603,0.5,0,0)" style="color:#000000" id="rect11674"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

BIN
src/static/images/3box.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB