diff --git a/.gitignore b/.gitignore index 459d4e83..8a5f04f6 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,5 @@ yarn-debug.log* yarn-error.log* # editor -.vscode \ No newline at end of file +.vscode +.history \ No newline at end of file diff --git a/README.md b/README.md index fe7aae77..606dea93 100644 --- a/README.md +++ b/README.md @@ -161,7 +161,7 @@ Every post can be optionally translated by: --- date: 2018-09-25 title: IPFS 周报-11 - url: /zh-cn/45-ipfs-weekly-11/ + permalink: /zh-cn/45-ipfs-weekly-11/ translationKey: 45-ipfs-weekly-11 --- ``` diff --git a/src/.vuepress/config.js b/src/.vuepress/config.js index 1a7812b0..875b1f06 100644 --- a/src/.vuepress/config.js +++ b/src/.vuepress/config.js @@ -198,8 +198,8 @@ module.exports = { { id: 'blog_zh', dirname: '_blog_zh', - path: '/zh/', - itemPermalink: '/zh/:slug', + path: '/zh-cn/', + itemPermalink: '/zh-cn/:slug', layout: 'Blog', itemLayout: 'BlogPost', frontmatter: { diff --git a/src/.vuepress/config/authors.js b/src/.vuepress/config/authors.js index d8f02283..3132ce12 100644 --- a/src/.vuepress/config/authors.js +++ b/src/.vuepress/config/authors.js @@ -5,9 +5,6 @@ * at runtime from the original $page.frontmatter.author * key. * - * Avatar images should be stored in the site root: - * _assets/avatars/firstname-surname.jpg - * */ module.exports = new Map([ [ diff --git a/src/.vuepress/public/000-hello-worlds-earthrise.png b/src/.vuepress/public/000-hello-worlds-earthrise.png new file mode 100644 index 00000000..d8de7b46 Binary files /dev/null and b/src/.vuepress/public/000-hello-worlds-earthrise.png differ diff --git a/src/.vuepress/public/002-ipscend-screenshot.gif b/src/.vuepress/public/002-ipscend-screenshot.gif new file mode 100644 index 00000000..c118f169 Binary files /dev/null and b/src/.vuepress/public/002-ipscend-screenshot.gif differ diff --git a/src/.vuepress/public/002-ipscend.png b/src/.vuepress/public/002-ipscend.png new file mode 100644 index 00000000..da52b774 Binary files /dev/null and b/src/.vuepress/public/002-ipscend.png differ diff --git a/src/.vuepress/public/003-registry-mirror-interactive-logo.png b/src/.vuepress/public/003-registry-mirror-interactive-logo.png new file mode 100644 index 00000000..30262a39 Binary files /dev/null and b/src/.vuepress/public/003-registry-mirror-interactive-logo.png differ diff --git a/src/.vuepress/public/003-registry-mirror.png b/src/.vuepress/public/003-registry-mirror.png new file mode 100644 index 00000000..6a4b5cf3 Binary files /dev/null and b/src/.vuepress/public/003-registry-mirror.png differ diff --git a/src/.vuepress/public/005-ipfs-0-4-0-released-fireworks.jpg b/src/.vuepress/public/005-ipfs-0-4-0-released-fireworks.jpg new file mode 100644 index 00000000..3e547ec9 Binary files /dev/null and b/src/.vuepress/public/005-ipfs-0-4-0-released-fireworks.jpg differ diff --git a/src/.vuepress/public/006-distributions-screenshot.png b/src/.vuepress/public/006-distributions-screenshot.png new file mode 100644 index 00000000..9f74ccd0 Binary files /dev/null and b/src/.vuepress/public/006-distributions-screenshot.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-build.gif b/src/.vuepress/public/025-a-look-at-windows-build.gif new file mode 100644 index 00000000..b36ee691 Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-build.gif differ diff --git a/src/.vuepress/public/025-a-look-at-windows-empty.png b/src/.vuepress/public/025-a-look-at-windows-empty.png new file mode 100644 index 00000000..e97dbb74 Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-empty.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-filenames.png b/src/.vuepress/public/025-a-look-at-windows-filenames.png new file mode 100644 index 00000000..9dc3da99 Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-filenames.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-garbage.png b/src/.vuepress/public/025-a-look-at-windows-garbage.png new file mode 100644 index 00000000..79709ba9 Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-garbage.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-log-after.png b/src/.vuepress/public/025-a-look-at-windows-log-after.png new file mode 100644 index 00000000..8cb3b078 Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-log-after.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-log-before.png b/src/.vuepress/public/025-a-look-at-windows-log-before.png new file mode 100644 index 00000000..273f4110 Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-log-before.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-overwrite 1.png b/src/.vuepress/public/025-a-look-at-windows-overwrite 1.png new file mode 100644 index 00000000..307d6535 Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-overwrite 1.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-overwrite 2.png b/src/.vuepress/public/025-a-look-at-windows-overwrite 2.png new file mode 100644 index 00000000..b1be26bb Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-overwrite 2.png differ diff --git a/src/.vuepress/public/025-a-look-at-windows-pipe.png b/src/.vuepress/public/025-a-look-at-windows-pipe.png new file mode 100644 index 00000000..f7fdccfd Binary files /dev/null and b/src/.vuepress/public/025-a-look-at-windows-pipe.png differ diff --git a/src/.vuepress/public/035-go-ipfs-0-4-18-cpu-load.png b/src/.vuepress/public/035-go-ipfs-0-4-18-cpu-load.png new file mode 100644 index 00000000..06a52a9f Binary files /dev/null and b/src/.vuepress/public/035-go-ipfs-0-4-18-cpu-load.png differ diff --git a/src/.vuepress/public/035-go-ipfs-0-4-18-gc-latency.png b/src/.vuepress/public/035-go-ipfs-0-4-18-gc-latency.png new file mode 100644 index 00000000..76bc8fcd Binary files /dev/null and b/src/.vuepress/public/035-go-ipfs-0-4-18-gc-latency.png differ diff --git a/src/.vuepress/public/040-crdt-research-meetup-video1.png b/src/.vuepress/public/040-crdt-research-meetup-video1.png new file mode 100644 index 00000000..bff9f21c Binary files /dev/null and b/src/.vuepress/public/040-crdt-research-meetup-video1.png differ diff --git a/src/.vuepress/public/040-crdt-research-meetup-video2.png b/src/.vuepress/public/040-crdt-research-meetup-video2.png new file mode 100644 index 00000000..bcab0584 Binary files /dev/null and b/src/.vuepress/public/040-crdt-research-meetup-video2.png differ diff --git a/src/.vuepress/public/040-crdt-research-meetup-video3.png b/src/.vuepress/public/040-crdt-research-meetup-video3.png new file mode 100644 index 00000000..3dac1a82 Binary files /dev/null and b/src/.vuepress/public/040-crdt-research-meetup-video3.png differ diff --git a/src/.vuepress/public/040-crdt-research-meetup-video4.png b/src/.vuepress/public/040-crdt-research-meetup-video4.png new file mode 100644 index 00000000..340ea23a Binary files /dev/null and b/src/.vuepress/public/040-crdt-research-meetup-video4.png differ diff --git a/src/.vuepress/public/043-ipfs-2019-roadmap-2019-epics.png b/src/.vuepress/public/043-ipfs-2019-roadmap-2019-epics.png new file mode 100644 index 00000000..4681a60c Binary files /dev/null and b/src/.vuepress/public/043-ipfs-2019-roadmap-2019-epics.png differ diff --git a/src/.vuepress/public/043-ipfs-2019-roadmap-goals.png b/src/.vuepress/public/043-ipfs-2019-roadmap-goals.png new file mode 100644 index 00000000..9a2726a5 Binary files /dev/null and b/src/.vuepress/public/043-ipfs-2019-roadmap-goals.png differ diff --git a/src/.vuepress/public/043-ipfs-2019-roadmap-mission-statement.png b/src/.vuepress/public/043-ipfs-2019-roadmap-mission-statement.png new file mode 100644 index 00000000..a95aa954 Binary files /dev/null and b/src/.vuepress/public/043-ipfs-2019-roadmap-mission-statement.png differ diff --git a/src/.vuepress/public/043-ipfs-2019-roadmap-q2-okrs.png b/src/.vuepress/public/043-ipfs-2019-roadmap-q2-okrs.png new file mode 100644 index 00000000..1ffc72dc Binary files /dev/null and b/src/.vuepress/public/043-ipfs-2019-roadmap-q2-okrs.png differ diff --git a/src/.vuepress/public/header_images/045-js-libp2p-0.25.png b/src/.vuepress/public/045-js-libp2p-0.25-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/045-js-libp2p-0.25.png rename to src/.vuepress/public/045-js-libp2p-0.25-header-image.png diff --git a/src/_blog/050-ipfs-camp-recap/camp-gif.gif b/src/.vuepress/public/050-ipfs-camp-recap-gif.gif similarity index 100% rename from src/_blog/050-ipfs-camp-recap/camp-gif.gif rename to src/.vuepress/public/050-ipfs-camp-recap-gif.gif diff --git a/src/_blog/050-ipfs-camp-recap/ipfs-camp-youtube-preview.jpg b/src/.vuepress/public/050-ipfs-camp-recap-youtube-preview.jpg similarity index 100% rename from src/_blog/050-ipfs-camp-recap/ipfs-camp-youtube-preview.jpg rename to src/.vuepress/public/050-ipfs-camp-recap-youtube-preview.jpg diff --git a/src/.vuepress/public/header_images/055-js-libp2p-0.26.png b/src/.vuepress/public/055-js-libp2p-0.26-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/055-js-libp2p-0.26.png rename to src/.vuepress/public/055-js-libp2p-0.26-header-image.png diff --git a/src/.vuepress/public/056-pubsub-in-the-browser-demo-screenshot.png b/src/.vuepress/public/056-pubsub-in-the-browser-demo-screenshot.png new file mode 100644 index 00000000..871442b2 Binary files /dev/null and b/src/.vuepress/public/056-pubsub-in-the-browser-demo-screenshot.png differ diff --git a/src/.vuepress/public/056-pubsub-in-the-browser-video.jpg b/src/.vuepress/public/056-pubsub-in-the-browser-video.jpg new file mode 100644 index 00000000..548de925 Binary files /dev/null and b/src/.vuepress/public/056-pubsub-in-the-browser-video.jpg differ diff --git a/src/_blog/057-ipfs-camp-course-videos/core-a-thumbnail.png b/src/.vuepress/public/057-ipfs-camp-course-videos-core-a-thumbnail.png similarity index 100% rename from src/_blog/057-ipfs-camp-course-videos/core-a-thumbnail.png rename to src/.vuepress/public/057-ipfs-camp-course-videos-core-a-thumbnail.png diff --git a/src/_blog/057-ipfs-camp-course-videos/core-d-thumbnail.png b/src/.vuepress/public/057-ipfs-camp-course-videos-core-d-thumbnail.png similarity index 100% rename from src/_blog/057-ipfs-camp-course-videos/core-d-thumbnail.png rename to src/.vuepress/public/057-ipfs-camp-course-videos-core-d-thumbnail.png diff --git a/src/.vuepress/public/058-ipfs-desktop-0-9-browse-wild.jpg b/src/.vuepress/public/058-ipfs-desktop-0-9-browse-wild.jpg new file mode 100644 index 00000000..4531f195 Binary files /dev/null and b/src/.vuepress/public/058-ipfs-desktop-0-9-browse-wild.jpg differ diff --git a/src/.vuepress/public/058-ipfs-desktop-0-9-evolution.jpg b/src/.vuepress/public/058-ipfs-desktop-0-9-evolution.jpg new file mode 100644 index 00000000..dc8dbaa8 Binary files /dev/null and b/src/.vuepress/public/058-ipfs-desktop-0-9-evolution.jpg differ diff --git a/src/.vuepress/public/058-ipfs-desktop-0-9-ipfs-cmd.jpg b/src/.vuepress/public/058-ipfs-desktop-0-9-ipfs-cmd.jpg new file mode 100644 index 00000000..b4700eb7 Binary files /dev/null and b/src/.vuepress/public/058-ipfs-desktop-0-9-ipfs-cmd.jpg differ diff --git a/src/.vuepress/public/058-ipfs-desktop-0-9-npm-ipfs.jpg b/src/.vuepress/public/058-ipfs-desktop-0-9-npm-ipfs.jpg new file mode 100644 index 00000000..7659f97a Binary files /dev/null and b/src/.vuepress/public/058-ipfs-desktop-0-9-npm-ipfs.jpg differ diff --git a/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-actyx.jpg b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-actyx.jpg new file mode 100644 index 00000000..3c111d24 Binary files /dev/null and b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-actyx.jpg differ diff --git a/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-catbot.jpg b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-catbot.jpg new file mode 100644 index 00000000..ba336d8f Binary files /dev/null and b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-catbot.jpg differ diff --git a/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-ipns.jpg b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-ipns.jpg new file mode 100644 index 00000000..bf38de56 Binary files /dev/null and b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-ipns.jpg differ diff --git a/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-marnee-minitel.jpg b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-marnee-minitel.jpg new file mode 100644 index 00000000..20dc7bbf Binary files /dev/null and b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-marnee-minitel.jpg differ diff --git a/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-npm-in-box.jpg b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-npm-in-box.jpg new file mode 100644 index 00000000..2d909b1a Binary files /dev/null and b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-npm-in-box.jpg differ diff --git a/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-vasa.jpg b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-vasa.jpg new file mode 100644 index 00000000..cec4786a Binary files /dev/null and b/src/.vuepress/public/059-ipfs-camp-sci-fi-fair-videos-vasa.jpg differ diff --git a/src/.vuepress/public/header_images/060-ipfs-camp-keynotes-interviews.png b/src/.vuepress/public/060-ipfs-camp-keynotes-interviews-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/060-ipfs-camp-keynotes-interviews.png rename to src/.vuepress/public/060-ipfs-camp-keynotes-interviews-header-image.png diff --git a/src/_blog/071-ipfs-in-web-browsers/enable-embedded-node-in-brave.png b/src/.vuepress/public/071-ipfs-in-web-browsers-enable-embedded-node-in-brave.png similarity index 100% rename from src/_blog/071-ipfs-in-web-browsers/enable-embedded-node-in-brave.png rename to src/.vuepress/public/071-ipfs-in-web-browsers-enable-embedded-node-in-brave.png diff --git a/src/_blog/071-ipfs-in-web-browsers/enabling-ipfs-companion-in-brave.gif b/src/.vuepress/public/071-ipfs-in-web-browsers-enabling-ipfs-companion-in-brave.gif similarity index 100% rename from src/_blog/071-ipfs-in-web-browsers/enabling-ipfs-companion-in-brave.gif rename to src/.vuepress/public/071-ipfs-in-web-browsers-enabling-ipfs-companion-in-brave.gif diff --git a/src/.vuepress/public/header_images/071-ipfs-in-web-browsers.png b/src/.vuepress/public/071-ipfs-in-web-browsers-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/071-ipfs-in-web-browsers.png rename to src/.vuepress/public/071-ipfs-in-web-browsers-header-image.png diff --git a/src/_blog/071-ipfs-in-web-browsers/opera-announcement.png b/src/.vuepress/public/071-ipfs-in-web-browsers-opera-announcement.png similarity index 100% rename from src/_blog/071-ipfs-in-web-browsers/opera-announcement.png rename to src/.vuepress/public/071-ipfs-in-web-browsers-opera-announcement.png diff --git a/src/_blog/071-ipfs-in-web-browsers/stages-of-browser-integration.png b/src/.vuepress/public/071-ipfs-in-web-browsers-stages-of-browser-integration.png similarity index 100% rename from src/_blog/071-ipfs-in-web-browsers/stages-of-browser-integration.png rename to src/.vuepress/public/071-ipfs-in-web-browsers-stages-of-browser-integration.png diff --git a/src/_blog/074-explore-the-files-api-on-protoschool/challenge_screenshot.png b/src/.vuepress/public/074-explore-the-files-api-on-protoschool-challenge_screenshot.png similarity index 100% rename from src/_blog/074-explore-the-files-api-on-protoschool/challenge_screenshot.png rename to src/.vuepress/public/074-explore-the-files-api-on-protoschool-challenge_screenshot.png diff --git a/src/.vuepress/public/header_images/074-explore-the-files-api-on-protoschool.png b/src/.vuepress/public/074-explore-the-files-api-on-protoschool-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/074-explore-the-files-api-on-protoschool.png rename to src/.vuepress/public/074-explore-the-files-api-on-protoschool-header-image.png diff --git a/src/_blog/074-explore-the-files-api-on-protoschool/toc_screenshot.png b/src/.vuepress/public/074-explore-the-files-api-on-protoschool-toc_screenshot.png similarity index 100% rename from src/_blog/074-explore-the-files-api-on-protoschool/toc_screenshot.png rename to src/.vuepress/public/074-explore-the-files-api-on-protoschool-toc_screenshot.png diff --git a/src/.vuepress/public/header_images/076-ipfs-docs-beta.png b/src/.vuepress/public/076-ipfs-docs-beta-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/076-ipfs-docs-beta.png rename to src/.vuepress/public/076-ipfs-docs-beta-header-image.png diff --git a/src/.vuepress/public/076-ipfs-docs-beta-screenshot.png b/src/.vuepress/public/076-ipfs-docs-beta-screenshot.png new file mode 100644 index 00000000..38687ecf Binary files /dev/null and b/src/.vuepress/public/076-ipfs-docs-beta-screenshot.png differ diff --git a/src/.vuepress/public/076-ipfs-docs-beta-site-mindmap.png b/src/.vuepress/public/076-ipfs-docs-beta-site-mindmap.png new file mode 100644 index 00000000..ca5c35fd Binary files /dev/null and b/src/.vuepress/public/076-ipfs-docs-beta-site-mindmap.png differ diff --git a/src/.vuepress/public/header_images/077-collaborative-clusters.png b/src/.vuepress/public/077-collaborative-clusters-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/077-collaborative-clusters.png rename to src/.vuepress/public/077-collaborative-clusters-header-image.png diff --git a/src/.vuepress/public/header_images/081-js-libp2p-0.27.png b/src/.vuepress/public/081-js-libp2p-0.27-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/081-js-libp2p-0.27.png rename to src/.vuepress/public/081-js-libp2p-0.27-header-image.png diff --git a/src/.vuepress/public/header_images/082-ethdenver-2020.png b/src/.vuepress/public/082-ethdenver-2020-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/082-ethdenver-2020.png rename to src/.vuepress/public/082-ethdenver-2020-header-image.png diff --git a/src/.vuepress/public/header_images/082-our-focus-for-2020.png b/src/.vuepress/public/082-our-focus-for-2020-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/082-our-focus-for-2020.png rename to src/.vuepress/public/082-our-focus-for-2020-header-image.png diff --git a/src/.vuepress/public/header_images/083-improved-bitswap-with-netflix.png b/src/.vuepress/public/083-improved-bitswap-with-netflix-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/083-improved-bitswap-with-netflix.png rename to src/.vuepress/public/083-improved-bitswap-with-netflix-header-image.png diff --git a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/cid-inspector.png b/src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-cid-inspector.png similarity index 100% rename from src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/cid-inspector.png rename to src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-cid-inspector.png diff --git a/src/.vuepress/public/header_images/084-explore-the-anatomy-of-a-cid-on-protoschool.png b/src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/084-explore-the-anatomy-of-a-cid-on-protoschool.png rename to src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-header-image.png diff --git a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/quiz.png b/src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-quiz.png similarity index 100% rename from src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/quiz.png rename to src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-quiz.png diff --git a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/sample-lesson.png b/src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-sample-lesson.png similarity index 100% rename from src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/sample-lesson.png rename to src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-sample-lesson.png diff --git a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/table-of-contents.png b/src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-table-of-contents.png similarity index 100% rename from src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/table-of-contents.png rename to src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-table-of-contents.png diff --git a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/toggle-coding-challenges.png b/src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-toggle-coding-challenges.png similarity index 100% rename from src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/toggle-coding-challenges.png rename to src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-toggle-coding-challenges.png diff --git a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/type-icons.png b/src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-type-icons.png similarity index 100% rename from src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/type-icons.png rename to src/.vuepress/public/084-explore-the-anatomy-of-a-cid-on-protoschool-type-icons.png diff --git a/src/.vuepress/public/header_images/085-announcing-rust-ipfs.png b/src/.vuepress/public/085-announcing-rust-ipfs-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/085-announcing-rust-ipfs.png rename to src/.vuepress/public/085-announcing-rust-ipfs-header-image.png diff --git a/src/_blog/086-ipfs-in-opera-for-android/opera-android-banner.png b/src/.vuepress/public/086-ipfs-in-opera-for-android-banner.png similarity index 100% rename from src/_blog/086-ipfs-in-opera-for-android/opera-android-banner.png rename to src/.vuepress/public/086-ipfs-in-opera-for-android-banner.png diff --git a/src/.vuepress/public/header_images/086-ipfs-in-opera-for-android.png b/src/.vuepress/public/086-ipfs-in-opera-for-android-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/086-ipfs-in-opera-for-android.png rename to src/.vuepress/public/086-ipfs-in-opera-for-android-header-image.png diff --git a/src/_blog/086-ipfs-in-opera-for-android/opera-android-play-store.png b/src/.vuepress/public/086-ipfs-in-opera-for-android-play-store.png similarity index 100% rename from src/_blog/086-ipfs-in-opera-for-android/opera-android-play-store.png rename to src/.vuepress/public/086-ipfs-in-opera-for-android-play-store.png diff --git a/src/_blog/086-ipfs-in-opera-for-android/opera-android-protocol-demo.png b/src/.vuepress/public/086-ipfs-in-opera-for-android-protocol-demo.png similarity index 100% rename from src/_blog/086-ipfs-in-opera-for-android/opera-android-protocol-demo.png rename to src/.vuepress/public/086-ipfs-in-opera-for-android-protocol-demo.png diff --git a/src/_blog/086-ipfs-in-opera-for-android/opera-android-settings.gif b/src/.vuepress/public/086-ipfs-in-opera-for-android-settings.gif similarity index 100% rename from src/_blog/086-ipfs-in-opera-for-android/opera-android-settings.gif rename to src/.vuepress/public/086-ipfs-in-opera-for-android-settings.gif diff --git a/src/_blog/086-ipfs-in-opera-for-android/opera-android-test-page.png b/src/.vuepress/public/086-ipfs-in-opera-for-android-test-page.png similarity index 100% rename from src/_blog/086-ipfs-in-opera-for-android/opera-android-test-page.png rename to src/.vuepress/public/086-ipfs-in-opera-for-android-test-page.png diff --git a/src/_blog/087-ipfs-mobile-design-research/device-sales-2005-2016.jpg b/src/.vuepress/public/087-ipfs-mobile-design-research-device-sales-2005-2016.jpg similarity index 100% rename from src/_blog/087-ipfs-mobile-design-research/device-sales-2005-2016.jpg rename to src/.vuepress/public/087-ipfs-mobile-design-research-device-sales-2005-2016.jpg diff --git a/src/.vuepress/public/header_images/088-ipfs-grants-platform.png b/src/.vuepress/public/088-ipfs-grants-platform-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/088-ipfs-grants-platform.png rename to src/.vuepress/public/088-ipfs-grants-platform-header-image.png diff --git a/src/.vuepress/public/090-go-ipfs-0-5-0-Infographic.png b/src/.vuepress/public/090-go-ipfs-0-5-0-Infographic.png new file mode 100644 index 00000000..a9dfcdc9 Binary files /dev/null and b/src/.vuepress/public/090-go-ipfs-0-5-0-Infographic.png differ diff --git a/src/.vuepress/public/090-go-ipfs-0-5-0-container-image.png b/src/.vuepress/public/090-go-ipfs-0-5-0-container-image.png new file mode 100644 index 00000000..2e0232cb Binary files /dev/null and b/src/.vuepress/public/090-go-ipfs-0-5-0-container-image.png differ diff --git a/src/.vuepress/public/header_images/090-go-ipfs-0-5-0.png b/src/.vuepress/public/090-go-ipfs-0-5-0-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/090-go-ipfs-0-5-0.png rename to src/.vuepress/public/090-go-ipfs-0-5-0-header-image.png diff --git a/src/.vuepress/public/090-go-ipfs-0-5-0-ipfs-contributors.png b/src/.vuepress/public/090-go-ipfs-0-5-0-ipfs-contributors.png new file mode 100644 index 00000000..5422db2c Binary files /dev/null and b/src/.vuepress/public/090-go-ipfs-0-5-0-ipfs-contributors.png differ diff --git a/src/.vuepress/public/090-go-ipfs-0-5-0-launch-meetup.png b/src/.vuepress/public/090-go-ipfs-0-5-0-launch-meetup.png new file mode 100644 index 00000000..c7f9ee27 Binary files /dev/null and b/src/.vuepress/public/090-go-ipfs-0-5-0-launch-meetup.png differ diff --git a/src/.vuepress/public/091-dev-exp-labels-autoresponder.png b/src/.vuepress/public/091-dev-exp-labels-autoresponder.png new file mode 100644 index 00000000..97ad58da Binary files /dev/null and b/src/.vuepress/public/091-dev-exp-labels-autoresponder.png differ diff --git a/src/.vuepress/public/092-launching-testground-architecture.png b/src/.vuepress/public/092-launching-testground-architecture.png new file mode 100644 index 00000000..68942321 Binary files /dev/null and b/src/.vuepress/public/092-launching-testground-architecture.png differ diff --git a/src/.vuepress/public/092-launching-testground-flowchart.png b/src/.vuepress/public/092-launching-testground-flowchart.png new file mode 100644 index 00000000..0dde8479 Binary files /dev/null and b/src/.vuepress/public/092-launching-testground-flowchart.png differ diff --git a/src/.vuepress/public/header_images/092-launching-testground.png b/src/.vuepress/public/092-launching-testground-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/092-launching-testground.png rename to src/.vuepress/public/092-launching-testground-header-image.png diff --git a/src/.vuepress/public/header_images/093-ipfs-pinning-summit-recap.png b/src/.vuepress/public/093-ipfs-pinning-summit-recap-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/093-ipfs-pinning-summit-recap.png rename to src/.vuepress/public/093-ipfs-pinning-summit-recap-header-image.png diff --git a/src/.vuepress/public/header_images/094-gossipsub-v1.1-headerimage+grid.jpeg b/src/.vuepress/public/094-gossipsub-v1.1-header-image+grid.jpeg similarity index 100% rename from src/.vuepress/public/header_images/094-gossipsub-v1.1-headerimage+grid.jpeg rename to src/.vuepress/public/094-gossipsub-v1.1-header-image+grid.jpeg diff --git a/src/.vuepress/public/header_images/094-gossipsub-v1.1-headerimage.jpeg b/src/.vuepress/public/094-gossipsub-v1.1-header-image.jpeg similarity index 100% rename from src/.vuepress/public/header_images/094-gossipsub-v1.1-headerimage.jpeg rename to src/.vuepress/public/094-gossipsub-v1.1-header-image.jpeg diff --git a/src/.vuepress/public/095-road-to-dht-brendan-quote.png b/src/.vuepress/public/095-road-to-dht-brendan-quote.png new file mode 100644 index 00000000..9fbfae7c Binary files /dev/null and b/src/.vuepress/public/095-road-to-dht-brendan-quote.png differ diff --git a/src/.vuepress/public/header_images/095-road-to-dht.png b/src/.vuepress/public/095-road-to-dht-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/095-road-to-dht.png rename to src/.vuepress/public/095-road-to-dht-header-image.png diff --git a/src/.vuepress/public/097-js-ipfs-0.46-bitswap-speedup.png b/src/.vuepress/public/097-js-ipfs-0.46-bitswap-speedup.png new file mode 100644 index 00000000..60ae9449 Binary files /dev/null and b/src/.vuepress/public/097-js-ipfs-0.46-bitswap-speedup.png differ diff --git a/src/.vuepress/public/098-libp2p-in-2020-find-perf.png b/src/.vuepress/public/098-libp2p-in-2020-find-perf.png new file mode 100644 index 00000000..0ed63ff9 Binary files /dev/null and b/src/.vuepress/public/098-libp2p-in-2020-find-perf.png differ diff --git a/src/_blog/099-identity-ipfs-ion/ion-architecture.png b/src/.vuepress/public/099-identity-ipfs-ion-architecture.png similarity index 100% rename from src/_blog/099-identity-ipfs-ion/ion-architecture.png rename to src/.vuepress/public/099-identity-ipfs-ion-architecture.png diff --git a/src/_blog/099-identity-ipfs-ion/ipfs-ion-header.png b/src/.vuepress/public/099-identity-ipfs-ion-header.png similarity index 100% rename from src/_blog/099-identity-ipfs-ion/ipfs-ion-header.png rename to src/.vuepress/public/099-identity-ipfs-ion-header.png diff --git a/src/_blog/099-identity-ipfs-ion/ion-logo.png b/src/.vuepress/public/099-identity-ipfs-ion-logo.png similarity index 100% rename from src/_blog/099-identity-ipfs-ion/ion-logo.png rename to src/.vuepress/public/099-identity-ipfs-ion-logo.png diff --git a/src/_blog/100-IPFS-mobile-design-guidelines/cheat-sheet-preview.png b/src/.vuepress/public/100-IPFS-mobile-design-guidelines-cheat-sheet-preview.png similarity index 100% rename from src/_blog/100-IPFS-mobile-design-guidelines/cheat-sheet-preview.png rename to src/.vuepress/public/100-IPFS-mobile-design-guidelines-cheat-sheet-preview.png diff --git a/src/_blog/100-IPFS-mobile-design-guidelines/cheat-sheet.pdf b/src/.vuepress/public/100-IPFS-mobile-design-guidelines-cheat-sheet.pdf similarity index 100% rename from src/_blog/100-IPFS-mobile-design-guidelines/cheat-sheet.pdf rename to src/.vuepress/public/100-IPFS-mobile-design-guidelines-cheat-sheet.pdf diff --git a/src/_blog/100-IPFS-mobile-design-guidelines/cheat-sheet.png b/src/.vuepress/public/100-IPFS-mobile-design-guidelines-cheat-sheet.png similarity index 100% rename from src/_blog/100-IPFS-mobile-design-guidelines/cheat-sheet.png rename to src/.vuepress/public/100-IPFS-mobile-design-guidelines-cheat-sheet.png diff --git a/src/_blog/100-IPFS-mobile-design-guidelines/principles.png b/src/.vuepress/public/100-IPFS-mobile-design-guidelines-principles.png similarity index 100% rename from src/_blog/100-IPFS-mobile-design-guidelines/principles.png rename to src/.vuepress/public/100-IPFS-mobile-design-guidelines-principles.png diff --git a/src/_blog/100-IPFS-mobile-design-guidelines/scenarios.png b/src/.vuepress/public/100-IPFS-mobile-design-guidelines-scenarios.png similarity index 100% rename from src/_blog/100-IPFS-mobile-design-guidelines/scenarios.png rename to src/.vuepress/public/100-IPFS-mobile-design-guidelines-scenarios.png diff --git a/src/.vuepress/public/header_images/100-mobile-design-guidelines-header.png b/src/.vuepress/public/100-mobile-design-guidelines-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/100-mobile-design-guidelines-header.png rename to src/.vuepress/public/100-mobile-design-guidelines-header-image.png diff --git a/src/.vuepress/public/header_images/102-case-study-audius.png b/src/.vuepress/public/102-case-study-audius-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/102-case-study-audius.png rename to src/.vuepress/public/102-case-study-audius-header-image.png diff --git a/src/.vuepress/public/header_images/102-header-image-gossipsub-reports.png b/src/.vuepress/public/102-gossipsub-reports-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/102-header-image-gossipsub-reports.png rename to src/.vuepress/public/102-gossipsub-reports-header-image.png diff --git a/src/.vuepress/public/104-dht-deep-dive-find-time-dht.png b/src/.vuepress/public/104-dht-deep-dive-find-time-dht.png new file mode 100644 index 00000000..cc20fe55 Binary files /dev/null and b/src/.vuepress/public/104-dht-deep-dive-find-time-dht.png differ diff --git a/src/.vuepress/public/header_images/104-dht-deep-dive.png b/src/.vuepress/public/104-dht-deep-dive-header-image.png similarity index 100% rename from src/.vuepress/public/header_images/104-dht-deep-dive.png rename to src/.vuepress/public/104-dht-deep-dive-header-image.png diff --git a/src/.vuepress/public/104-dht-deep-dive-ipns-time-dht.png b/src/.vuepress/public/104-dht-deep-dive-ipns-time-dht.png new file mode 100644 index 00000000..1d4ae755 Binary files /dev/null and b/src/.vuepress/public/104-dht-deep-dive-ipns-time-dht.png differ diff --git a/src/.vuepress/public/header_images/107-nix-ipfs.jpg b/src/.vuepress/public/107-nix-ipfs-header-image.jpg similarity index 100% rename from src/.vuepress/public/header_images/107-nix-ipfs.jpg rename to src/.vuepress/public/107-nix-ipfs-header-image.jpg diff --git a/src/.vuepress/public/108-js-ipfs-0.50.0-pinning-performance.png b/src/.vuepress/public/108-js-ipfs-0.50.0-pinning-performance.png new file mode 100644 index 00000000..08a4d00a Binary files /dev/null and b/src/.vuepress/public/108-js-ipfs-0.50.0-pinning-performance.png differ diff --git a/src/_blog/meet-the-community--Alan-Shaw-IPFS/alan-shaw.jpg b/src/.vuepress/public/alan-shaw.jpg similarity index 100% rename from src/_blog/meet-the-community--Alan-Shaw-IPFS/alan-shaw.jpg rename to src/.vuepress/public/alan-shaw.jpg diff --git a/src/.vuepress/public/blog/077-collaborative-clusters/ascii/ascii.css b/src/.vuepress/public/blog/077-collaborative-clusters/ascii/ascii.css deleted file mode 100644 index 133b4903..00000000 --- a/src/.vuepress/public/blog/077-collaborative-clusters/ascii/ascii.css +++ /dev/null @@ -1,2194 +0,0 @@ -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 300; - src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), - url('/assets/SourceSansPro-Light-cb5f24b874dd29bfdab1cc7ba590050b.ttf') - format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 400; - src: local('Source Sans Pro'), local('SourceSansPro-Regular'), - url('/assets/SourceSansPro-Regular-380e3442e962e8df8400b12103dcfe4b.ttf') - format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 600; - src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), - url('/assets/SourceSansPro-Semibold-09cd57424bbe12628f6a7d053a5ca005.ttf') - format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: normal; - font-weight: 700; - src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), - url('/assets/SourceSansPro-Bold-cd97ece0b41eec05e41405136e685aeb.ttf') - format('truetype'); -} -@font-face { - font-family: 'Source Sans Pro'; - font-style: italic; - font-weight: 400; - src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), - url('/assets/SourceSansPro-Italic-a7495cd987fd1606036916e964995177.ttf') - format('truetype'); -} -.asciinema-player-wrapper { - text-align: center; - outline: none; -} -.asciinema-player-wrapper:fullscreen { - background-color: #000; - width: 100%; - height: 100%; -} -.asciinema-player-wrapper:-webkit-full-screen { - background-color: #000; - width: 100%; - height: 100%; -} -.asciinema-player-wrapper:-moz-full-screen { - background-color: #000; - width: 100%; - height: 100%; -} -.asciinema-player-wrapper .asciinema-player { - text-align: left; - display: inline-block; - padding: 0px; - position: relative; - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - overflow: hidden; - max-width: 100%; -} -.asciinema-terminal { - box-sizing: content-box; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - overflow: hidden; - padding: 0; - margin: 0px; - display: block; - white-space: pre; - border: 0; - word-wrap: normal; - word-break: normal; - border-radius: 0; - border-style: solid; - cursor: text; - font-family: Consolas, Menlo, 'Bitstream Vera Sans Mono', monospace, - 'Powerline Symbols'; -} -.asciinema-terminal .line { - letter-spacing: normal; - overflow: hidden; -} -.asciinema-terminal .line span { - padding: 0; - display: inline-block; -} -.asciinema-terminal .line { - display: block; - width: 200%; -} -.asciinema-terminal .bright { - font-weight: bold; -} -.asciinema-terminal .underline { - text-decoration: underline; -} -.asciinema-terminal .italic { - font-style: italic; -} -.asciinema-terminal.font-small { - font-size: 12px; - line-height: 16px; - border-width: 6px; -} -.asciinema-terminal.font-small .line { - height: 16px; -} -.asciinema-terminal.font-small .line span { - height: 16px; -} -.asciinema-terminal.font-medium { - font-size: 18px; - line-height: 24px; - border-width: 9px; -} -.asciinema-terminal.font-medium .line { - height: 24px; -} -.asciinema-terminal.font-medium .line span { - height: 24px; -} -.asciinema-terminal.font-big { - font-size: 24px; - line-height: 32px; - border-width: 12px; -} -.asciinema-terminal.font-big .line { - height: 32px; -} -.asciinema-terminal.font-big .line span { - height: 32px; -} -.asciinema-terminal .font-sample { - display: block; -} -.asciinema-terminal .font-sample.font-small { - font-size: 12px; - line-height: 16px; -} -.asciinema-terminal .font-sample.font-small .line { - height: 16px; -} -.asciinema-terminal .font-sample.font-small .line span { - height: 16px; -} -.asciinema-terminal .font-sample.font-medium { - font-size: 18px; - line-height: 24px; -} -.asciinema-terminal .font-sample.font-medium .line { - height: 24px; -} -.asciinema-terminal .font-sample.font-medium .line span { - height: 24px; -} -.asciinema-terminal .font-sample.font-big { - font-size: 24px; - line-height: 32px; -} -.asciinema-terminal .font-sample.font-big .line { - height: 32px; -} -.asciinema-terminal .font-sample.font-big .line span { - height: 32px; -} -.asciinema-player:hover .control-bar { - color: #fff; -} -.asciinema-player:hover .control-bar .progressbar .bar .gutter span { - background-color: #fff; -} -.asciinema-player:hover .control-bar svg.icon path { - fill: #fff; -} -.asciinema-player .control-bar { - width: 100%; - height: 32px; - background-color: #000; - color: #bbb; - border-top: 1px solid #222; - box-sizing: content-box; - line-height: 1; -} -.asciinema-player .control-bar * { - box-sizing: inherit; - font-size: 0; -} -.asciinema-player .control-bar svg.icon path { - fill: #bbb; -} -.asciinema-player .control-bar .playback-button { - display: block; - float: left; - cursor: pointer; - height: 12px; - width: 12px; - padding: 10px; -} -.asciinema-player .control-bar .playback-button svg { - height: 12px; - width: 12px; -} -.asciinema-player .control-bar .timer { - display: block; - float: left; - width: 50px; - height: 100%; - text-align: center; - font-family: Helvetica, Arial, sans-serif; - font-size: 11px; - font-weight: bold; - line-height: 32px; -} -.asciinema-player .control-bar .timer span { - cursor: default; - display: inline-block; - font-size: inherit; -} -.asciinema-player .control-bar .timer .time-remaining { - display: none; -} -.asciinema-player .control-bar .timer:hover .time-elapsed { - display: none; -} -.asciinema-player .control-bar .timer:hover .time-remaining { - display: inline; -} -.asciinema-player .control-bar .progressbar { - display: block; - overflow: hidden; - height: 100%; - padding: 0 10px; -} -.asciinema-player .control-bar .progressbar .bar { - display: block; - cursor: pointer; - height: 100%; - padding-top: 15px; - font-size: 0; -} -.asciinema-player .control-bar .progressbar .bar .gutter { - display: block; - height: 3px; - background-color: #333; -} -.asciinema-player .control-bar .progressbar .bar .gutter span { - display: inline-block; - height: 100%; - background-color: #bbb; - border-radius: 3px; -} -.asciinema-player .control-bar .fullscreen-button { - display: block; - float: right; - width: 14px; - height: 14px; - padding: 9px; - cursor: pointer; -} -.asciinema-player .control-bar .fullscreen-button svg { - width: 14px; - height: 14px; -} -.asciinema-player .loading { - z-index: 10; - background-repeat: no-repeat; - background-position: center; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.5); -} -.asciinema-player .start-prompt { - z-index: 10; - background-repeat: no-repeat; - background-position: center; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: 20; - cursor: pointer; -} -.asciinema-player .start-prompt .play-button { - font-size: 0px; -} -.asciinema-player .start-prompt .play-button { - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - text-align: center; - color: white; - display: table; - width: 100%; - height: 100%; -} -.asciinema-player .start-prompt .play-button div { - vertical-align: middle; - display: table-cell; -} -.asciinema-player .start-prompt .play-button div span { - width: 96px; - height: 96px; - display: inline-block; -} -@-webkit-keyframes expand { - 0% { - -webkit-transform: scale(0); - } - 50% { - -webkit-transform: scale(1); - } - 100% { - z-index: 1; - } -} -@-moz-keyframes expand { - 0% { - -moz-transform: scale(0); - } - 50% { - -moz-transform: scale(1); - } - 100% { - z-index: 1; - } -} -@-o-keyframes expand { - 0% { - -o-transform: scale(0); - } - 50% { - -o-transform: scale(1); - } - 100% { - z-index: 1; - } -} -@keyframes expand { - 0% { - transform: scale(0); - } - 50% { - transform: scale(1); - } - 100% { - z-index: 1; - } -} -.loader { - position: absolute; - left: 50%; - top: 50%; - margin: -20px 0 0 -20px; - background-color: white; - border-radius: 50%; - box-shadow: 0 0 0 6.66667px #141414; - width: 40px; - height: 40px; -} -.loader:before, -.loader:after { - content: ''; - position: absolute; - left: 50%; - top: 50%; - display: block; - margin: -21px 0 0 -21px; - border-radius: 50%; - z-index: 2; - width: 42px; - height: 42px; -} -.loader:before { - background-color: #141414; - -webkit-animation: expand 1.6s linear infinite both; - -moz-animation: expand 1.6s linear infinite both; - animation: expand 1.6s linear infinite both; -} -.loader:after { - background-color: white; - -webkit-animation: expand 1.6s linear 0.8s infinite both; - -moz-animation: expand 1.6s linear 0.8s infinite both; - animation: expand 1.6s linear 0.8s infinite both; -} -.asciinema-terminal .fg-16 { - color: #000000; -} -.asciinema-terminal .bg-16 { - background-color: #000000; -} -.asciinema-terminal .fg-17 { - color: #00005f; -} -.asciinema-terminal .bg-17 { - background-color: #00005f; -} -.asciinema-terminal .fg-18 { - color: #000087; -} -.asciinema-terminal .bg-18 { - background-color: #000087; -} -.asciinema-terminal .fg-19 { - color: #0000af; -} -.asciinema-terminal .bg-19 { - background-color: #0000af; -} -.asciinema-terminal .fg-20 { - color: #0000d7; -} -.asciinema-terminal .bg-20 { - background-color: #0000d7; -} -.asciinema-terminal .fg-21 { - color: #0000ff; -} -.asciinema-terminal .bg-21 { - background-color: #0000ff; -} -.asciinema-terminal .fg-22 { - color: #005f00; -} -.asciinema-terminal .bg-22 { - background-color: #005f00; -} -.asciinema-terminal .fg-23 { - color: #005f5f; -} -.asciinema-terminal .bg-23 { - background-color: #005f5f; -} -.asciinema-terminal .fg-24 { - color: #005f87; -} -.asciinema-terminal .bg-24 { - background-color: #005f87; -} -.asciinema-terminal .fg-25 { - color: #005faf; -} -.asciinema-terminal .bg-25 { - background-color: #005faf; -} -.asciinema-terminal .fg-26 { - color: #005fd7; -} -.asciinema-terminal .bg-26 { - background-color: #005fd7; -} -.asciinema-terminal .fg-27 { - color: #005fff; -} -.asciinema-terminal .bg-27 { - background-color: #005fff; -} -.asciinema-terminal .fg-28 { - color: #008700; -} -.asciinema-terminal .bg-28 { - background-color: #008700; -} -.asciinema-terminal .fg-29 { - color: #00875f; -} -.asciinema-terminal .bg-29 { - background-color: #00875f; -} -.asciinema-terminal .fg-30 { - color: #008787; -} -.asciinema-terminal .bg-30 { - background-color: #008787; -} -.asciinema-terminal .fg-31 { - color: #0087af; -} -.asciinema-terminal .bg-31 { - background-color: #0087af; -} -.asciinema-terminal .fg-32 { - color: #0087d7; -} -.asciinema-terminal .bg-32 { - background-color: #0087d7; -} -.asciinema-terminal .fg-33 { - color: #0087ff; -} -.asciinema-terminal .bg-33 { - background-color: #0087ff; -} -.asciinema-terminal .fg-34 { - color: #00af00; -} -.asciinema-terminal .bg-34 { - background-color: #00af00; -} -.asciinema-terminal .fg-35 { - color: #00af5f; -} -.asciinema-terminal .bg-35 { - background-color: #00af5f; -} -.asciinema-terminal .fg-36 { - color: #00af87; -} -.asciinema-terminal .bg-36 { - background-color: #00af87; -} -.asciinema-terminal .fg-37 { - color: #00afaf; -} -.asciinema-terminal .bg-37 { - background-color: #00afaf; -} -.asciinema-terminal .fg-38 { - color: #00afd7; -} -.asciinema-terminal .bg-38 { - background-color: #00afd7; -} -.asciinema-terminal .fg-39 { - color: #00afff; -} -.asciinema-terminal .bg-39 { - background-color: #00afff; -} -.asciinema-terminal .fg-40 { - color: #00d700; -} -.asciinema-terminal .bg-40 { - background-color: #00d700; -} -.asciinema-terminal .fg-41 { - color: #00d75f; -} -.asciinema-terminal .bg-41 { - background-color: #00d75f; -} -.asciinema-terminal .fg-42 { - color: #00d787; -} -.asciinema-terminal .bg-42 { - background-color: #00d787; -} -.asciinema-terminal .fg-43 { - color: #00d7af; -} -.asciinema-terminal .bg-43 { - background-color: #00d7af; -} -.asciinema-terminal .fg-44 { - color: #00d7d7; -} -.asciinema-terminal .bg-44 { - background-color: #00d7d7; -} -.asciinema-terminal .fg-45 { - color: #00d7ff; -} -.asciinema-terminal .bg-45 { - background-color: #00d7ff; -} -.asciinema-terminal .fg-46 { - color: #00ff00; -} -.asciinema-terminal .bg-46 { - background-color: #00ff00; -} -.asciinema-terminal .fg-47 { - color: #00ff5f; -} -.asciinema-terminal .bg-47 { - background-color: #00ff5f; -} -.asciinema-terminal .fg-48 { - color: #00ff87; -} -.asciinema-terminal .bg-48 { - background-color: #00ff87; -} -.asciinema-terminal .fg-49 { - color: #00ffaf; -} -.asciinema-terminal .bg-49 { - background-color: #00ffaf; -} -.asciinema-terminal .fg-50 { - color: #00ffd7; -} -.asciinema-terminal .bg-50 { - background-color: #00ffd7; -} -.asciinema-terminal .fg-51 { - color: #00ffff; -} -.asciinema-terminal .bg-51 { - background-color: #00ffff; -} -.asciinema-terminal .fg-52 { - color: #5f0000; -} -.asciinema-terminal .bg-52 { - background-color: #5f0000; -} -.asciinema-terminal .fg-53 { - color: #5f005f; -} -.asciinema-terminal .bg-53 { - background-color: #5f005f; -} -.asciinema-terminal .fg-54 { - color: #5f0087; -} -.asciinema-terminal .bg-54 { - background-color: #5f0087; -} -.asciinema-terminal .fg-55 { - color: #5f00af; -} -.asciinema-terminal .bg-55 { - background-color: #5f00af; -} -.asciinema-terminal .fg-56 { - color: #5f00d7; -} -.asciinema-terminal .bg-56 { - background-color: #5f00d7; -} -.asciinema-terminal .fg-57 { - color: #5f00ff; -} -.asciinema-terminal .bg-57 { - background-color: #5f00ff; -} -.asciinema-terminal .fg-58 { - color: #5f5f00; -} -.asciinema-terminal .bg-58 { - background-color: #5f5f00; -} -.asciinema-terminal .fg-59 { - color: #5f5f5f; -} -.asciinema-terminal .bg-59 { - background-color: #5f5f5f; -} -.asciinema-terminal .fg-60 { - color: #5f5f87; -} -.asciinema-terminal .bg-60 { - background-color: #5f5f87; -} -.asciinema-terminal .fg-61 { - color: #5f5faf; -} -.asciinema-terminal .bg-61 { - background-color: #5f5faf; -} -.asciinema-terminal .fg-62 { - color: #5f5fd7; -} -.asciinema-terminal .bg-62 { - background-color: #5f5fd7; -} -.asciinema-terminal .fg-63 { - color: #5f5fff; -} -.asciinema-terminal .bg-63 { - background-color: #5f5fff; -} -.asciinema-terminal .fg-64 { - color: #5f8700; -} -.asciinema-terminal .bg-64 { - background-color: #5f8700; -} -.asciinema-terminal .fg-65 { - color: #5f875f; -} -.asciinema-terminal .bg-65 { - background-color: #5f875f; -} -.asciinema-terminal .fg-66 { - color: #5f8787; -} -.asciinema-terminal .bg-66 { - background-color: #5f8787; -} -.asciinema-terminal .fg-67 { - color: #5f87af; -} -.asciinema-terminal .bg-67 { - background-color: #5f87af; -} -.asciinema-terminal .fg-68 { - color: #5f87d7; -} -.asciinema-terminal .bg-68 { - background-color: #5f87d7; -} -.asciinema-terminal .fg-69 { - color: #5f87ff; -} -.asciinema-terminal .bg-69 { - background-color: #5f87ff; -} -.asciinema-terminal .fg-70 { - color: #5faf00; -} -.asciinema-terminal .bg-70 { - background-color: #5faf00; -} -.asciinema-terminal .fg-71 { - color: #5faf5f; -} -.asciinema-terminal .bg-71 { - background-color: #5faf5f; -} -.asciinema-terminal .fg-72 { - color: #5faf87; -} -.asciinema-terminal .bg-72 { - background-color: #5faf87; -} -.asciinema-terminal .fg-73 { - color: #5fafaf; -} -.asciinema-terminal .bg-73 { - background-color: #5fafaf; -} -.asciinema-terminal .fg-74 { - color: #5fafd7; -} -.asciinema-terminal .bg-74 { - background-color: #5fafd7; -} -.asciinema-terminal .fg-75 { - color: #5fafff; -} -.asciinema-terminal .bg-75 { - background-color: #5fafff; -} -.asciinema-terminal .fg-76 { - color: #5fd700; -} -.asciinema-terminal .bg-76 { - background-color: #5fd700; -} -.asciinema-terminal .fg-77 { - color: #5fd75f; -} -.asciinema-terminal .bg-77 { - background-color: #5fd75f; -} -.asciinema-terminal .fg-78 { - color: #5fd787; -} -.asciinema-terminal .bg-78 { - background-color: #5fd787; -} -.asciinema-terminal .fg-79 { - color: #5fd7af; -} -.asciinema-terminal .bg-79 { - background-color: #5fd7af; -} -.asciinema-terminal .fg-80 { - color: #5fd7d7; -} -.asciinema-terminal .bg-80 { - background-color: #5fd7d7; -} -.asciinema-terminal .fg-81 { - color: #5fd7ff; -} -.asciinema-terminal .bg-81 { - background-color: #5fd7ff; -} -.asciinema-terminal .fg-82 { - color: #5fff00; -} -.asciinema-terminal .bg-82 { - background-color: #5fff00; -} -.asciinema-terminal .fg-83 { - color: #5fff5f; -} -.asciinema-terminal .bg-83 { - background-color: #5fff5f; -} -.asciinema-terminal .fg-84 { - color: #5fff87; -} -.asciinema-terminal .bg-84 { - background-color: #5fff87; -} -.asciinema-terminal .fg-85 { - color: #5fffaf; -} -.asciinema-terminal .bg-85 { - background-color: #5fffaf; -} -.asciinema-terminal .fg-86 { - color: #5fffd7; -} -.asciinema-terminal .bg-86 { - background-color: #5fffd7; -} -.asciinema-terminal .fg-87 { - color: #5fffff; -} -.asciinema-terminal .bg-87 { - background-color: #5fffff; -} -.asciinema-terminal .fg-88 { - color: #870000; -} -.asciinema-terminal .bg-88 { - background-color: #870000; -} -.asciinema-terminal .fg-89 { - color: #87005f; -} -.asciinema-terminal .bg-89 { - background-color: #87005f; -} -.asciinema-terminal .fg-90 { - color: #870087; -} -.asciinema-terminal .bg-90 { - background-color: #870087; -} -.asciinema-terminal .fg-91 { - color: #8700af; -} -.asciinema-terminal .bg-91 { - background-color: #8700af; -} -.asciinema-terminal .fg-92 { - color: #8700d7; -} -.asciinema-terminal .bg-92 { - background-color: #8700d7; -} -.asciinema-terminal .fg-93 { - color: #8700ff; -} -.asciinema-terminal .bg-93 { - background-color: #8700ff; -} -.asciinema-terminal .fg-94 { - color: #875f00; -} -.asciinema-terminal .bg-94 { - background-color: #875f00; -} -.asciinema-terminal .fg-95 { - color: #875f5f; -} -.asciinema-terminal .bg-95 { - background-color: #875f5f; -} -.asciinema-terminal .fg-96 { - color: #875f87; -} -.asciinema-terminal .bg-96 { - background-color: #875f87; -} -.asciinema-terminal .fg-97 { - color: #875faf; -} -.asciinema-terminal .bg-97 { - background-color: #875faf; -} -.asciinema-terminal .fg-98 { - color: #875fd7; -} -.asciinema-terminal .bg-98 { - background-color: #875fd7; -} -.asciinema-terminal .fg-99 { - color: #875fff; -} -.asciinema-terminal .bg-99 { - background-color: #875fff; -} -.asciinema-terminal .fg-100 { - color: #878700; -} -.asciinema-terminal .bg-100 { - background-color: #878700; -} -.asciinema-terminal .fg-101 { - color: #87875f; -} -.asciinema-terminal .bg-101 { - background-color: #87875f; -} -.asciinema-terminal .fg-102 { - color: #878787; -} -.asciinema-terminal .bg-102 { - background-color: #878787; -} -.asciinema-terminal .fg-103 { - color: #8787af; -} -.asciinema-terminal .bg-103 { - background-color: #8787af; -} -.asciinema-terminal .fg-104 { - color: #8787d7; -} -.asciinema-terminal .bg-104 { - background-color: #8787d7; -} -.asciinema-terminal .fg-105 { - color: #8787ff; -} -.asciinema-terminal .bg-105 { - background-color: #8787ff; -} -.asciinema-terminal .fg-106 { - color: #87af00; -} -.asciinema-terminal .bg-106 { - background-color: #87af00; -} -.asciinema-terminal .fg-107 { - color: #87af5f; -} -.asciinema-terminal .bg-107 { - background-color: #87af5f; -} -.asciinema-terminal .fg-108 { - color: #87af87; -} -.asciinema-terminal .bg-108 { - background-color: #87af87; -} -.asciinema-terminal .fg-109 { - color: #87afaf; -} -.asciinema-terminal .bg-109 { - background-color: #87afaf; -} -.asciinema-terminal .fg-110 { - color: #87afd7; -} -.asciinema-terminal .bg-110 { - background-color: #87afd7; -} -.asciinema-terminal .fg-111 { - color: #87afff; -} -.asciinema-terminal .bg-111 { - background-color: #87afff; -} -.asciinema-terminal .fg-112 { - color: #87d700; -} -.asciinema-terminal .bg-112 { - background-color: #87d700; -} -.asciinema-terminal .fg-113 { - color: #87d75f; -} -.asciinema-terminal .bg-113 { - background-color: #87d75f; -} -.asciinema-terminal .fg-114 { - color: #87d787; -} -.asciinema-terminal .bg-114 { - background-color: #87d787; -} -.asciinema-terminal .fg-115 { - color: #87d7af; -} -.asciinema-terminal .bg-115 { - background-color: #87d7af; -} -.asciinema-terminal .fg-116 { - color: #87d7d7; -} -.asciinema-terminal .bg-116 { - background-color: #87d7d7; -} -.asciinema-terminal .fg-117 { - color: #87d7ff; -} -.asciinema-terminal .bg-117 { - background-color: #87d7ff; -} -.asciinema-terminal .fg-118 { - color: #87ff00; -} -.asciinema-terminal .bg-118 { - background-color: #87ff00; -} -.asciinema-terminal .fg-119 { - color: #87ff5f; -} -.asciinema-terminal .bg-119 { - background-color: #87ff5f; -} -.asciinema-terminal .fg-120 { - color: #87ff87; -} -.asciinema-terminal .bg-120 { - background-color: #87ff87; -} -.asciinema-terminal .fg-121 { - color: #87ffaf; -} -.asciinema-terminal .bg-121 { - background-color: #87ffaf; -} -.asciinema-terminal .fg-122 { - color: #87ffd7; -} -.asciinema-terminal .bg-122 { - background-color: #87ffd7; -} -.asciinema-terminal .fg-123 { - color: #87ffff; -} -.asciinema-terminal .bg-123 { - background-color: #87ffff; -} -.asciinema-terminal .fg-124 { - color: #af0000; -} -.asciinema-terminal .bg-124 { - background-color: #af0000; -} -.asciinema-terminal .fg-125 { - color: #af005f; -} -.asciinema-terminal .bg-125 { - background-color: #af005f; -} -.asciinema-terminal .fg-126 { - color: #af0087; -} -.asciinema-terminal .bg-126 { - background-color: #af0087; -} -.asciinema-terminal .fg-127 { - color: #af00af; -} -.asciinema-terminal .bg-127 { - background-color: #af00af; -} -.asciinema-terminal .fg-128 { - color: #af00d7; -} -.asciinema-terminal .bg-128 { - background-color: #af00d7; -} -.asciinema-terminal .fg-129 { - color: #af00ff; -} -.asciinema-terminal .bg-129 { - background-color: #af00ff; -} -.asciinema-terminal .fg-130 { - color: #af5f00; -} -.asciinema-terminal .bg-130 { - background-color: #af5f00; -} -.asciinema-terminal .fg-131 { - color: #af5f5f; -} -.asciinema-terminal .bg-131 { - background-color: #af5f5f; -} -.asciinema-terminal .fg-132 { - color: #af5f87; -} -.asciinema-terminal .bg-132 { - background-color: #af5f87; -} -.asciinema-terminal .fg-133 { - color: #af5faf; -} -.asciinema-terminal .bg-133 { - background-color: #af5faf; -} -.asciinema-terminal .fg-134 { - color: #af5fd7; -} -.asciinema-terminal .bg-134 { - background-color: #af5fd7; -} -.asciinema-terminal .fg-135 { - color: #af5fff; -} -.asciinema-terminal .bg-135 { - background-color: #af5fff; -} -.asciinema-terminal .fg-136 { - color: #af8700; -} -.asciinema-terminal .bg-136 { - background-color: #af8700; -} -.asciinema-terminal .fg-137 { - color: #af875f; -} -.asciinema-terminal .bg-137 { - background-color: #af875f; -} -.asciinema-terminal .fg-138 { - color: #af8787; -} -.asciinema-terminal .bg-138 { - background-color: #af8787; -} -.asciinema-terminal .fg-139 { - color: #af87af; -} -.asciinema-terminal .bg-139 { - background-color: #af87af; -} -.asciinema-terminal .fg-140 { - color: #af87d7; -} -.asciinema-terminal .bg-140 { - background-color: #af87d7; -} -.asciinema-terminal .fg-141 { - color: #af87ff; -} -.asciinema-terminal .bg-141 { - background-color: #af87ff; -} -.asciinema-terminal .fg-142 { - color: #afaf00; -} -.asciinema-terminal .bg-142 { - background-color: #afaf00; -} -.asciinema-terminal .fg-143 { - color: #afaf5f; -} -.asciinema-terminal .bg-143 { - background-color: #afaf5f; -} -.asciinema-terminal .fg-144 { - color: #afaf87; -} -.asciinema-terminal .bg-144 { - background-color: #afaf87; -} -.asciinema-terminal .fg-145 { - color: #afafaf; -} -.asciinema-terminal .bg-145 { - background-color: #afafaf; -} -.asciinema-terminal .fg-146 { - color: #afafd7; -} -.asciinema-terminal .bg-146 { - background-color: #afafd7; -} -.asciinema-terminal .fg-147 { - color: #afafff; -} -.asciinema-terminal .bg-147 { - background-color: #afafff; -} -.asciinema-terminal .fg-148 { - color: #afd700; -} -.asciinema-terminal .bg-148 { - background-color: #afd700; -} -.asciinema-terminal .fg-149 { - color: #afd75f; -} -.asciinema-terminal .bg-149 { - background-color: #afd75f; -} -.asciinema-terminal .fg-150 { - color: #afd787; -} -.asciinema-terminal .bg-150 { - background-color: #afd787; -} -.asciinema-terminal .fg-151 { - color: #afd7af; -} -.asciinema-terminal .bg-151 { - background-color: #afd7af; -} -.asciinema-terminal .fg-152 { - color: #afd7d7; -} -.asciinema-terminal .bg-152 { - background-color: #afd7d7; -} -.asciinema-terminal .fg-153 { - color: #afd7ff; -} -.asciinema-terminal .bg-153 { - background-color: #afd7ff; -} -.asciinema-terminal .fg-154 { - color: #afff00; -} -.asciinema-terminal .bg-154 { - background-color: #afff00; -} -.asciinema-terminal .fg-155 { - color: #afff5f; -} -.asciinema-terminal .bg-155 { - background-color: #afff5f; -} -.asciinema-terminal .fg-156 { - color: #afff87; -} -.asciinema-terminal .bg-156 { - background-color: #afff87; -} -.asciinema-terminal .fg-157 { - color: #afffaf; -} -.asciinema-terminal .bg-157 { - background-color: #afffaf; -} -.asciinema-terminal .fg-158 { - color: #afffd7; -} -.asciinema-terminal .bg-158 { - background-color: #afffd7; -} -.asciinema-terminal .fg-159 { - color: #afffff; -} -.asciinema-terminal .bg-159 { - background-color: #afffff; -} -.asciinema-terminal .fg-160 { - color: #d70000; -} -.asciinema-terminal .bg-160 { - background-color: #d70000; -} -.asciinema-terminal .fg-161 { - color: #d7005f; -} -.asciinema-terminal .bg-161 { - background-color: #d7005f; -} -.asciinema-terminal .fg-162 { - color: #d70087; -} -.asciinema-terminal .bg-162 { - background-color: #d70087; -} -.asciinema-terminal .fg-163 { - color: #d700af; -} -.asciinema-terminal .bg-163 { - background-color: #d700af; -} -.asciinema-terminal .fg-164 { - color: #d700d7; -} -.asciinema-terminal .bg-164 { - background-color: #d700d7; -} -.asciinema-terminal .fg-165 { - color: #d700ff; -} -.asciinema-terminal .bg-165 { - background-color: #d700ff; -} -.asciinema-terminal .fg-166 { - color: #d75f00; -} -.asciinema-terminal .bg-166 { - background-color: #d75f00; -} -.asciinema-terminal .fg-167 { - color: #d75f5f; -} -.asciinema-terminal .bg-167 { - background-color: #d75f5f; -} -.asciinema-terminal .fg-168 { - color: #d75f87; -} -.asciinema-terminal .bg-168 { - background-color: #d75f87; -} -.asciinema-terminal .fg-169 { - color: #d75faf; -} -.asciinema-terminal .bg-169 { - background-color: #d75faf; -} -.asciinema-terminal .fg-170 { - color: #d75fd7; -} -.asciinema-terminal .bg-170 { - background-color: #d75fd7; -} -.asciinema-terminal .fg-171 { - color: #d75fff; -} -.asciinema-terminal .bg-171 { - background-color: #d75fff; -} -.asciinema-terminal .fg-172 { - color: #d78700; -} -.asciinema-terminal .bg-172 { - background-color: #d78700; -} -.asciinema-terminal .fg-173 { - color: #d7875f; -} -.asciinema-terminal .bg-173 { - background-color: #d7875f; -} -.asciinema-terminal .fg-174 { - color: #d78787; -} -.asciinema-terminal .bg-174 { - background-color: #d78787; -} -.asciinema-terminal .fg-175 { - color: #d787af; -} -.asciinema-terminal .bg-175 { - background-color: #d787af; -} -.asciinema-terminal .fg-176 { - color: #d787d7; -} -.asciinema-terminal .bg-176 { - background-color: #d787d7; -} -.asciinema-terminal .fg-177 { - color: #d787ff; -} -.asciinema-terminal .bg-177 { - background-color: #d787ff; -} -.asciinema-terminal .fg-178 { - color: #d7af00; -} -.asciinema-terminal .bg-178 { - background-color: #d7af00; -} -.asciinema-terminal .fg-179 { - color: #d7af5f; -} -.asciinema-terminal .bg-179 { - background-color: #d7af5f; -} -.asciinema-terminal .fg-180 { - color: #d7af87; -} -.asciinema-terminal .bg-180 { - background-color: #d7af87; -} -.asciinema-terminal .fg-181 { - color: #d7afaf; -} -.asciinema-terminal .bg-181 { - background-color: #d7afaf; -} -.asciinema-terminal .fg-182 { - color: #d7afd7; -} -.asciinema-terminal .bg-182 { - background-color: #d7afd7; -} -.asciinema-terminal .fg-183 { - color: #d7afff; -} -.asciinema-terminal .bg-183 { - background-color: #d7afff; -} -.asciinema-terminal .fg-184 { - color: #d7d700; -} -.asciinema-terminal .bg-184 { - background-color: #d7d700; -} -.asciinema-terminal .fg-185 { - color: #d7d75f; -} -.asciinema-terminal .bg-185 { - background-color: #d7d75f; -} -.asciinema-terminal .fg-186 { - color: #d7d787; -} -.asciinema-terminal .bg-186 { - background-color: #d7d787; -} -.asciinema-terminal .fg-187 { - color: #d7d7af; -} -.asciinema-terminal .bg-187 { - background-color: #d7d7af; -} -.asciinema-terminal .fg-188 { - color: #d7d7d7; -} -.asciinema-terminal .bg-188 { - background-color: #d7d7d7; -} -.asciinema-terminal .fg-189 { - color: #d7d7ff; -} -.asciinema-terminal .bg-189 { - background-color: #d7d7ff; -} -.asciinema-terminal .fg-190 { - color: #d7ff00; -} -.asciinema-terminal .bg-190 { - background-color: #d7ff00; -} -.asciinema-terminal .fg-191 { - color: #d7ff5f; -} -.asciinema-terminal .bg-191 { - background-color: #d7ff5f; -} -.asciinema-terminal .fg-192 { - color: #d7ff87; -} -.asciinema-terminal .bg-192 { - background-color: #d7ff87; -} -.asciinema-terminal .fg-193 { - color: #d7ffaf; -} -.asciinema-terminal .bg-193 { - background-color: #d7ffaf; -} -.asciinema-terminal .fg-194 { - color: #d7ffd7; -} -.asciinema-terminal .bg-194 { - background-color: #d7ffd7; -} -.asciinema-terminal .fg-195 { - color: #d7ffff; -} -.asciinema-terminal .bg-195 { - background-color: #d7ffff; -} -.asciinema-terminal .fg-196 { - color: #ff0000; -} -.asciinema-terminal .bg-196 { - background-color: #ff0000; -} -.asciinema-terminal .fg-197 { - color: #ff005f; -} -.asciinema-terminal .bg-197 { - background-color: #ff005f; -} -.asciinema-terminal .fg-198 { - color: #ff0087; -} -.asciinema-terminal .bg-198 { - background-color: #ff0087; -} -.asciinema-terminal .fg-199 { - color: #ff00af; -} -.asciinema-terminal .bg-199 { - background-color: #ff00af; -} -.asciinema-terminal .fg-200 { - color: #ff00d7; -} -.asciinema-terminal .bg-200 { - background-color: #ff00d7; -} -.asciinema-terminal .fg-201 { - color: #ff00ff; -} -.asciinema-terminal .bg-201 { - background-color: #ff00ff; -} -.asciinema-terminal .fg-202 { - color: #ff5f00; -} -.asciinema-terminal .bg-202 { - background-color: #ff5f00; -} -.asciinema-terminal .fg-203 { - color: #ff5f5f; -} -.asciinema-terminal .bg-203 { - background-color: #ff5f5f; -} -.asciinema-terminal .fg-204 { - color: #ff5f87; -} -.asciinema-terminal .bg-204 { - background-color: #ff5f87; -} -.asciinema-terminal .fg-205 { - color: #ff5faf; -} -.asciinema-terminal .bg-205 { - background-color: #ff5faf; -} -.asciinema-terminal .fg-206 { - color: #ff5fd7; -} -.asciinema-terminal .bg-206 { - background-color: #ff5fd7; -} -.asciinema-terminal .fg-207 { - color: #ff5fff; -} -.asciinema-terminal .bg-207 { - background-color: #ff5fff; -} -.asciinema-terminal .fg-208 { - color: #ff8700; -} -.asciinema-terminal .bg-208 { - background-color: #ff8700; -} -.asciinema-terminal .fg-209 { - color: #ff875f; -} -.asciinema-terminal .bg-209 { - background-color: #ff875f; -} -.asciinema-terminal .fg-210 { - color: #ff8787; -} -.asciinema-terminal .bg-210 { - background-color: #ff8787; -} -.asciinema-terminal .fg-211 { - color: #ff87af; -} -.asciinema-terminal .bg-211 { - background-color: #ff87af; -} -.asciinema-terminal .fg-212 { - color: #ff87d7; -} -.asciinema-terminal .bg-212 { - background-color: #ff87d7; -} -.asciinema-terminal .fg-213 { - color: #ff87ff; -} -.asciinema-terminal .bg-213 { - background-color: #ff87ff; -} -.asciinema-terminal .fg-214 { - color: #ffaf00; -} -.asciinema-terminal .bg-214 { - background-color: #ffaf00; -} -.asciinema-terminal .fg-215 { - color: #ffaf5f; -} -.asciinema-terminal .bg-215 { - background-color: #ffaf5f; -} -.asciinema-terminal .fg-216 { - color: #ffaf87; -} -.asciinema-terminal .bg-216 { - background-color: #ffaf87; -} -.asciinema-terminal .fg-217 { - color: #ffafaf; -} -.asciinema-terminal .bg-217 { - background-color: #ffafaf; -} -.asciinema-terminal .fg-218 { - color: #ffafd7; -} -.asciinema-terminal .bg-218 { - background-color: #ffafd7; -} -.asciinema-terminal .fg-219 { - color: #ffafff; -} -.asciinema-terminal .bg-219 { - background-color: #ffafff; -} -.asciinema-terminal .fg-220 { - color: #ffd700; -} -.asciinema-terminal .bg-220 { - background-color: #ffd700; -} -.asciinema-terminal .fg-221 { - color: #ffd75f; -} -.asciinema-terminal .bg-221 { - background-color: #ffd75f; -} -.asciinema-terminal .fg-222 { - color: #ffd787; -} -.asciinema-terminal .bg-222 { - background-color: #ffd787; -} -.asciinema-terminal .fg-223 { - color: #ffd7af; -} -.asciinema-terminal .bg-223 { - background-color: #ffd7af; -} -.asciinema-terminal .fg-224 { - color: #ffd7d7; -} -.asciinema-terminal .bg-224 { - background-color: #ffd7d7; -} -.asciinema-terminal .fg-225 { - color: #ffd7ff; -} -.asciinema-terminal .bg-225 { - background-color: #ffd7ff; -} -.asciinema-terminal .fg-226 { - color: #ffff00; -} -.asciinema-terminal .bg-226 { - background-color: #ffff00; -} -.asciinema-terminal .fg-227 { - color: #ffff5f; -} -.asciinema-terminal .bg-227 { - background-color: #ffff5f; -} -.asciinema-terminal .fg-228 { - color: #ffff87; -} -.asciinema-terminal .bg-228 { - background-color: #ffff87; -} -.asciinema-terminal .fg-229 { - color: #ffffaf; -} -.asciinema-terminal .bg-229 { - background-color: #ffffaf; -} -.asciinema-terminal .fg-230 { - color: #ffffd7; -} -.asciinema-terminal .bg-230 { - background-color: #ffffd7; -} -.asciinema-terminal .fg-231 { - color: #ffffff; -} -.asciinema-terminal .bg-231 { - background-color: #ffffff; -} -.asciinema-terminal .fg-232 { - color: #080808; -} -.asciinema-terminal .bg-232 { - background-color: #080808; -} -.asciinema-terminal .fg-233 { - color: #121212; -} -.asciinema-terminal .bg-233 { - background-color: #121212; -} -.asciinema-terminal .fg-234 { - color: #1c1c1c; -} -.asciinema-terminal .bg-234 { - background-color: #1c1c1c; -} -.asciinema-terminal .fg-235 { - color: #262626; -} -.asciinema-terminal .bg-235 { - background-color: #262626; -} -.asciinema-terminal .fg-236 { - color: #303030; -} -.asciinema-terminal .bg-236 { - background-color: #303030; -} -.asciinema-terminal .fg-237 { - color: #3a3a3a; -} -.asciinema-terminal .bg-237 { - background-color: #3a3a3a; -} -.asciinema-terminal .fg-238 { - color: #444444; -} -.asciinema-terminal .bg-238 { - background-color: #444444; -} -.asciinema-terminal .fg-239 { - color: #4e4e4e; -} -.asciinema-terminal .bg-239 { - background-color: #4e4e4e; -} -.asciinema-terminal .fg-240 { - color: #585858; -} -.asciinema-terminal .bg-240 { - background-color: #585858; -} -.asciinema-terminal .fg-241 { - color: #626262; -} -.asciinema-terminal .bg-241 { - background-color: #626262; -} -.asciinema-terminal .fg-242 { - color: #6c6c6c; -} -.asciinema-terminal .bg-242 { - background-color: #6c6c6c; -} -.asciinema-terminal .fg-243 { - color: #767676; -} -.asciinema-terminal .bg-243 { - background-color: #767676; -} -.asciinema-terminal .fg-244 { - color: #808080; -} -.asciinema-terminal .bg-244 { - background-color: #808080; -} -.asciinema-terminal .fg-245 { - color: #8a8a8a; -} -.asciinema-terminal .bg-245 { - background-color: #8a8a8a; -} -.asciinema-terminal .fg-246 { - color: #949494; -} -.asciinema-terminal .bg-246 { - background-color: #949494; -} -.asciinema-terminal .fg-247 { - color: #9e9e9e; -} -.asciinema-terminal .bg-247 { - background-color: #9e9e9e; -} -.asciinema-terminal .fg-248 { - color: #a8a8a8; -} -.asciinema-terminal .bg-248 { - background-color: #a8a8a8; -} -.asciinema-terminal .fg-249 { - color: #b2b2b2; -} -.asciinema-terminal .bg-249 { - background-color: #b2b2b2; -} -.asciinema-terminal .fg-250 { - color: #bcbcbc; -} -.asciinema-terminal .bg-250 { - background-color: #bcbcbc; -} -.asciinema-terminal .fg-251 { - color: #c6c6c6; -} -.asciinema-terminal .bg-251 { - background-color: #c6c6c6; -} -.asciinema-terminal .fg-252 { - color: #d0d0d0; -} -.asciinema-terminal .bg-252 { - background-color: #d0d0d0; -} -.asciinema-terminal .fg-253 { - color: #dadada; -} -.asciinema-terminal .bg-253 { - background-color: #dadada; -} -.asciinema-terminal .fg-254 { - color: #e4e4e4; -} -.asciinema-terminal .bg-254 { - background-color: #e4e4e4; -} -.asciinema-terminal .fg-255 { - color: #eeeeee; -} -.asciinema-terminal .bg-255 { - background-color: #eeeeee; -} -.asciinema-theme-tango .asciinema-terminal { - color: #cccccc; - background-color: #121314; - border-color: #121314; -} -.asciinema-theme-tango .fg-bg { - color: #121314; -} -.asciinema-theme-tango .bg-fg { - background-color: #cccccc; -} -.asciinema-theme-tango .fg-0 { - color: #000; -} -.asciinema-theme-tango .bg-0 { - background-color: #000; -} -.asciinema-theme-tango .fg-1 { - color: #c00; -} -.asciinema-theme-tango .bg-1 { - background-color: #c00; -} -.asciinema-theme-tango .fg-2 { - color: #4e9a06; -} -.asciinema-theme-tango .bg-2 { - background-color: #4e9a06; -} -.asciinema-theme-tango .fg-3 { - color: #c4a000; -} -.asciinema-theme-tango .bg-3 { - background-color: #c4a000; -} -.asciinema-theme-tango .fg-4 { - color: #3465a4; -} -.asciinema-theme-tango .bg-4 { - background-color: #3465a4; -} -.asciinema-theme-tango .fg-5 { - color: #75507b; -} -.asciinema-theme-tango .bg-5 { - background-color: #75507b; -} -.asciinema-theme-tango .fg-6 { - color: #06989a; -} -.asciinema-theme-tango .bg-6 { - background-color: #06989a; -} -.asciinema-theme-tango .fg-7 { - color: #d3d7cf; -} -.asciinema-theme-tango .bg-7 { - background-color: #d3d7cf; -} -.asciinema-theme-tango .fg-8 { - color: #555753; - font-weight: bold; -} -.asciinema-theme-tango .bg-8 { - background-color: #555753; -} -.asciinema-theme-tango .fg-9 { - color: #ef2929; - font-weight: bold; -} -.asciinema-theme-tango .bg-9 { - background-color: #ef2929; -} -.asciinema-theme-tango .fg-10 { - color: #8ae234; - font-weight: bold; -} -.asciinema-theme-tango .bg-10 { - background-color: #8ae234; -} -.asciinema-theme-tango .fg-11 { - color: #fce94f; - font-weight: bold; -} -.asciinema-theme-tango .bg-11 { - background-color: #fce94f; -} -.asciinema-theme-tango .fg-12 { - color: #729fcf; - font-weight: bold; -} -.asciinema-theme-tango .bg-12 { - background-color: #729fcf; -} -.asciinema-theme-tango .fg-13 { - color: #ad7fa8; - font-weight: bold; -} -.asciinema-theme-tango .bg-13 { - background-color: #ad7fa8; -} -.asciinema-theme-tango .fg-14 { - color: #34e2e2; - font-weight: bold; -} -.asciinema-theme-tango .bg-14 { - background-color: #34e2e2; -} -.asciinema-theme-tango .fg-15 { - color: #eeeeec; - font-weight: bold; -} -.asciinema-theme-tango .bg-15 { - background-color: #eeeeec; -} -.asciinema-theme-solarized-dark .asciinema-terminal { - color: #839496; - background-color: #002b36; - border-color: #002b36; -} -.asciinema-theme-solarized-dark .fg-bg { - color: #002b36; -} -.asciinema-theme-solarized-dark .bg-fg { - background-color: #839496; -} -.asciinema-theme-solarized-dark .fg-0 { - color: #073642; -} -.asciinema-theme-solarized-dark .bg-0 { - background-color: #073642; -} -.asciinema-theme-solarized-dark .fg-1 { - color: #dc322f; -} -.asciinema-theme-solarized-dark .bg-1 { - background-color: #dc322f; -} -.asciinema-theme-solarized-dark .fg-2 { - color: #859900; -} -.asciinema-theme-solarized-dark .bg-2 { - background-color: #859900; -} -.asciinema-theme-solarized-dark .fg-3 { - color: #b58900; -} -.asciinema-theme-solarized-dark .bg-3 { - background-color: #b58900; -} -.asciinema-theme-solarized-dark .fg-4 { - color: #268bd2; -} -.asciinema-theme-solarized-dark .bg-4 { - background-color: #268bd2; -} -.asciinema-theme-solarized-dark .fg-5 { - color: #d33682; -} -.asciinema-theme-solarized-dark .bg-5 { - background-color: #d33682; -} -.asciinema-theme-solarized-dark .fg-6 { - color: #2aa198; -} -.asciinema-theme-solarized-dark .bg-6 { - background-color: #2aa198; -} -.asciinema-theme-solarized-dark .fg-7 { - color: #eee8d5; -} -.asciinema-theme-solarized-dark .bg-7 { - background-color: #eee8d5; -} -.asciinema-theme-solarized-dark .fg-8 { - color: #002b36; -} -.asciinema-theme-solarized-dark .bg-8 { - background-color: #002b36; -} -.asciinema-theme-solarized-dark .fg-9 { - color: #cb4b16; -} -.asciinema-theme-solarized-dark .bg-9 { - background-color: #cb4b16; -} -.asciinema-theme-solarized-dark .fg-10 { - color: #586e75; -} -.asciinema-theme-solarized-dark .bg-10 { - background-color: #586e75; -} -.asciinema-theme-solarized-dark .fg-11 { - color: #657b83; -} -.asciinema-theme-solarized-dark .bg-11 { - background-color: #657b83; -} -.asciinema-theme-solarized-dark .fg-12 { - color: #839496; -} -.asciinema-theme-solarized-dark .bg-12 { - background-color: #839496; -} -.asciinema-theme-solarized-dark .fg-13 { - color: #6c71c4; -} -.asciinema-theme-solarized-dark .bg-13 { - background-color: #6c71c4; -} -.asciinema-theme-solarized-dark .fg-14 { - color: #93a1a1; -} -.asciinema-theme-solarized-dark .bg-14 { - background-color: #93a1a1; -} -.asciinema-theme-solarized-dark .fg-15 { - color: #fdf6e3; -} -.asciinema-theme-solarized-dark .bg-15 { - background-color: #fdf6e3; -} -.asciinema-theme-solarized-light .asciinema-terminal { - color: #657b83; - background-color: #fdf6e3; - border-color: #fdf6e3; -} -.asciinema-theme-solarized-light .fg-bg { - color: #fdf6e3; -} -.asciinema-theme-solarized-light .bg-fg { - background-color: #657b83; -} -.asciinema-theme-solarized-light .fg-0 { - color: #eee8d5; -} -.asciinema-theme-solarized-light .bg-0 { - background-color: #eee8d5; -} -.asciinema-theme-solarized-light .fg-1 { - color: #dc322f; -} -.asciinema-theme-solarized-light .bg-1 { - background-color: #dc322f; -} -.asciinema-theme-solarized-light .fg-2 { - color: #859900; -} -.asciinema-theme-solarized-light .bg-2 { - background-color: #859900; -} -.asciinema-theme-solarized-light .fg-3 { - color: #b58900; -} -.asciinema-theme-solarized-light .bg-3 { - background-color: #b58900; -} -.asciinema-theme-solarized-light .fg-4 { - color: #268bd2; -} -.asciinema-theme-solarized-light .bg-4 { - background-color: #268bd2; -} -.asciinema-theme-solarized-light .fg-5 { - color: #d33682; -} -.asciinema-theme-solarized-light .bg-5 { - background-color: #d33682; -} -.asciinema-theme-solarized-light .fg-6 { - color: #2aa198; -} -.asciinema-theme-solarized-light .bg-6 { - background-color: #2aa198; -} -.asciinema-theme-solarized-light .fg-7 { - color: #073642; -} -.asciinema-theme-solarized-light .bg-7 { - background-color: #073642; -} -.asciinema-theme-solarized-light .fg-8 { - color: #fdf6e3; -} -.asciinema-theme-solarized-light .bg-8 { - background-color: #fdf6e3; -} -.asciinema-theme-solarized-light .fg-9 { - color: #cb4b16; -} -.asciinema-theme-solarized-light .bg-9 { - background-color: #cb4b16; -} -.asciinema-theme-solarized-light .fg-10 { - color: #93a1a1; -} -.asciinema-theme-solarized-light .bg-10 { - background-color: #93a1a1; -} -.asciinema-theme-solarized-light .fg-11 { - color: #839496; -} -.asciinema-theme-solarized-light .bg-11 { - background-color: #839496; -} -.asciinema-theme-solarized-light .fg-12 { - color: #657b83; -} -.asciinema-theme-solarized-light .bg-12 { - background-color: #657b83; -} -.asciinema-theme-solarized-light .fg-13 { - color: #6c71c4; -} -.asciinema-theme-solarized-light .bg-13 { - background-color: #6c71c4; -} -.asciinema-theme-solarized-light .fg-14 { - color: #586e75; -} -.asciinema-theme-solarized-light .bg-14 { - background-color: #586e75; -} -.asciinema-theme-solarized-light .fg-15 { - color: #002b36; -} -.asciinema-theme-solarized-light .bg-15 { - background-color: #002b36; -} -@font-face { - font-family: 'Powerline Symbols'; - src: local('Powerline Symbols'), local('PowerlineSymbols'), - url('/assets/PowerlineSymbols-e01f7994076eb666329fcf600fadb8bd.otf') - format('opentype'); -} -body.iframe { - background-color: transparent; - padding: 0; - margin: 0; -} -body.iframe .powered { - margin: 4px 0 0 0; - text-align: right; - font-size: 12px; - font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif; -} -body.iframe .powered a { - font-weight: 600; - color: #06989a; - text-decoration: none; -} -body.iframe .powered a:hover { - text-decoration: underline; -} diff --git a/src/.vuepress/public/blog/077-collaborative-clusters/ascii/ascii.js b/src/.vuepress/public/blog/077-collaborative-clusters/ascii/ascii.js deleted file mode 100644 index f70f760b..00000000 --- a/src/.vuepress/public/blog/077-collaborative-clusters/ascii/ascii.js +++ /dev/null @@ -1,8 +0,0 @@ -function tryCreatePlayer(e,t,n){function r(){asciinema.CreatePlayer(e,t.width,t.height,t.stdout_frames_url,t.duration,{snapshot:t.snapshot,speed:n.speed,autoPlay:n.autoPlay,loop:n.loop,fontSize:n.fontSize,theme:n.theme})}function o(){$.get("/api/asciicasts/"+t.id+".json",function(e){t=e,i()})}function i(){t.stdout_frames_url?($(".processing-info").remove(),r()):($(".processing-info").show(),setTimeout(o,2e3))}i()}!function(e,t){function n(e){var t=e.length,n=lt.type(e);return lt.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=Tt[e]={};return lt.each(e.match(dt)||[],function(e,n){t[n]=!0}),t}function o(e,n,r,o){if(lt.acceptData(e)){var i,a,s=lt.expando,u=e.nodeType,c=u?lt.cache:e,l=u?e[s]:e[s]&&s;if(l&&c[l]&&(o||c[l].data)||r!==t||"string"!=typeof n)return l||(l=u?e[s]=tt.pop()||lt.guid++:s),c[l]||(c[l]=u?{}:{toJSON:lt.noop}),("object"==typeof n||"function"==typeof n)&&(o?c[l]=lt.extend(c[l],n):c[l].data=lt.extend(c[l].data,n)),a=c[l],o||(a.data||(a.data={}),a=a.data),r!==t&&(a[lt.camelCase(n)]=r),"string"==typeof n?(i=a[n],null==i&&(i=a[lt.camelCase(n)])):i=a,i}}function i(e,t,n){if(lt.acceptData(e)){var r,o,i=e.nodeType,a=i?lt.cache:e,u=i?e[lt.expando]:lt.expando;if(a[u]){if(t&&(r=n?a[u]:a[u].data)){lt.isArray(t)?t=t.concat(lt.map(t,lt.camelCase)):t in r?t=[t]:(t=lt.camelCase(t),t=t in r?[t]:t.split(" ")),o=t.length;for(;o--;)delete r[t[o]];if(n?!s(r):!lt.isEmptyObject(r))return}(n||(delete a[u].data,s(a[u])))&&(i?lt.cleanData([e],!0):lt.support.deleteExpando||a!=a.window?delete a[u]:a[u]=null)}}}function a(e,n,r){if(r===t&&1===e.nodeType){var o="data-"+n.replace(Dt,"-$1").toLowerCase();if(r=e.getAttribute(o),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:Rt.test(r)?lt.parseJSON(r):r}catch(i){}lt.data(e,n,r)}else r=t}return r}function s(e){var t;for(t in e)if(("data"!==t||!lt.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function u(){return!0}function c(){return!1}function l(){try{return G.activeElement}catch(e){}}function p(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function d(e,t,n){if(lt.isFunction(t))return lt.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return lt.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(qt.test(t))return lt.filter(t,e,n);t=lt.filter(t,e)}return lt.grep(e,function(e){return lt.inArray(e,t)>=0!==n})}function f(e){var t=Kt.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){return lt.nodeName(e,"table")&<.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function m(e){return e.type=(null!==lt.find.attr(e,"type"))+"/"+e.type,e}function g(e){var t=on.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function v(e,t){for(var n,r=0;null!=(n=e[r]);r++)lt._data(n,"globalEval",!t||lt._data(t[r],"globalEval"))}function y(e,t){if(1===t.nodeType&<.hasData(e)){var n,r,o,i=lt._data(e),a=lt._data(t,i),s=i.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,o=s[n].length;o>r;r++)lt.event.add(t,n,s[n][r])}a.data&&(a.data=lt.extend({},a.data))}}function C(e,t){var n,r,o;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!lt.support.noCloneEvent&&t[lt.expando]){o=lt._data(t);for(r in o.events)lt.removeEvent(t,r,o.handle);t.removeAttribute(lt.expando)}"script"===n&&t.text!==e.text?(m(t).text=e.text,g(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),lt.support.html5Clone&&e.innerHTML&&!lt.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&tn.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function b(e,n){var r,o,i=0,a=typeof e.getElementsByTagName!==$?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==$?e.querySelectorAll(n||"*"):t;if(!a)for(a=[],r=e.childNodes||e;null!=(o=r[i]);i++)!n||lt.nodeName(o,n)?a.push(o):lt.merge(a,b(o,n));return n===t||n&<.nodeName(e,n)?lt.merge([e],a):a}function x(e){tn.test(e.type)&&(e.defaultChecked=e.checked)}function w(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,o=Tn.length;o--;)if(t=Tn[o]+n,t in e)return t;return r}function M(e,t){return e=t||e,"none"===lt.css(e,"display")||!lt.contains(e.ownerDocument,e)}function E(e,t){for(var n,r,o,i=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(i[a]=lt._data(r,"olddisplay"),n=r.style.display,t?(i[a]||"none"!==n||(r.style.display=""),""===r.style.display&&M(r)&&(i[a]=lt._data(r,"olddisplay",N(r.nodeName)))):i[a]||(o=M(r),(n&&"none"!==n||!o)&<._data(r,"olddisplay",o?n:lt.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?i[a]||"":"none"));return e}function T(e,t,n){var r=yn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function R(e,t,n,r,o){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>i;i+=2)"margin"===n&&(a+=lt.css(e,n+En[i],!0,o)),r?("content"===n&&(a-=lt.css(e,"padding"+En[i],!0,o)),"margin"!==n&&(a-=lt.css(e,"border"+En[i]+"Width",!0,o))):(a+=lt.css(e,"padding"+En[i],!0,o),"padding"!==n&&(a+=lt.css(e,"border"+En[i]+"Width",!0,o)));return a}function D(e,t,n){var r=!0,o="width"===t?e.offsetWidth:e.offsetHeight,i=pn(e),a=lt.support.boxSizing&&"border-box"===lt.css(e,"boxSizing",!1,i);if(0>=o||null==o){if(o=dn(e,t,i),(0>o||null==o)&&(o=e.style[t]),Cn.test(o))return o;r=a&&(lt.support.boxSizingReliable||o===e.style[t]),o=parseFloat(o)||0}return o+R(e,t,n||(a?"border":"content"),r,i)+"px"}function N(e){var t=G,n=xn[e];return n||(n=S(e,t),"none"!==n&&n||(ln=(ln||lt(" +

asciicast powered by asciinema

First let's initialize the IPFS config: diff --git a/src/_blog/012-js-ipfs-0-23/README.md b/src/_blog/012-js-ipfs-0-23.md similarity index 98% rename from src/_blog/012-js-ipfs-0-23/README.md rename to src/_blog/012-js-ipfs-0-23.md index 8b408621..6fccc2a0 100644 --- a/src/_blog/012-js-ipfs-0-23/README.md +++ b/src/_blog/012-js-ipfs-0-23.md @@ -1,10 +1,10 @@ --- date: 2017-03-24 -url: /23-js-ipfs-0-23/ +permalink: /23-js-ipfs-0-23/ title: js-ipfs 0.23.0 released description: author: David Dias & Victor Bjelkholm -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'API' - 'interoperability' diff --git a/src/_blog/013-uncensorable-wikipedia/README.md b/src/_blog/013-uncensorable-wikipedia.md similarity index 99% rename from src/_blog/013-uncensorable-wikipedia/README.md rename to src/_blog/013-uncensorable-wikipedia.md index f94048d9..ae3a2fc6 100644 --- a/src/_blog/013-uncensorable-wikipedia/README.md +++ b/src/_blog/013-uncensorable-wikipedia.md @@ -1,6 +1,6 @@ --- date: 2017-05-04 -url: /24-uncensorable-wikipedia/ +permalink: /24-uncensorable-wikipedia/ title: Uncensorable Wikipedia on IPFS description: author: The IPFS Team diff --git a/src/_blog/014-pubsub/README.md b/src/_blog/014-pubsub.md similarity index 99% rename from src/_blog/014-pubsub/README.md rename to src/_blog/014-pubsub.md index 29eb9478..c529d684 100644 --- a/src/_blog/014-pubsub/README.md +++ b/src/_blog/014-pubsub.md @@ -1,6 +1,6 @@ --- date: 2017-05-17 -url: /25-pubsub/ +permalink: /25-pubsub/ title: Take a look at pubsub on IPFS description: author: Whyrusleeping diff --git a/src/_blog/015-js-ipfs-0-24/README.md b/src/_blog/015-js-ipfs-0-24.md similarity index 98% rename from src/_blog/015-js-ipfs-0-24/README.md rename to src/_blog/015-js-ipfs-0-24.md index 6c3493b4..b3054272 100644 --- a/src/_blog/015-js-ipfs-0-24/README.md +++ b/src/_blog/015-js-ipfs-0-24.md @@ -1,10 +1,10 @@ --- date: 2017-05-25 -url: /26-js-ipfs-0-24/ +permalink: /26-js-ipfs-0-24/ title: js-ipfs 0.24.0 released description: author: David Dias -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/016-go-ipfs-0-4-10/README.md b/src/_blog/016-go-ipfs-0-4-10.md similarity index 99% rename from src/_blog/016-go-ipfs-0-4-10/README.md rename to src/_blog/016-go-ipfs-0-4-10.md index a282f24d..2498ba84 100644 --- a/src/_blog/016-go-ipfs-0-4-10/README.md +++ b/src/_blog/016-go-ipfs-0-4-10.md @@ -1,6 +1,6 @@ --- date: 2017-06-28 -url: /27-go-ipfs-0-4-10/ +permalink: /27-go-ipfs-0-4-10/ title: go-ipfs 0.4.10 released description: author: Whyrusleeping diff --git a/src/_blog/017-js-ipfs-0.25/README.md b/src/_blog/017-js-ipfs-0.25.md similarity index 97% rename from src/_blog/017-js-ipfs-0.25/README.md rename to src/_blog/017-js-ipfs-0.25.md index 8a5e18af..7b384cc3 100644 --- a/src/_blog/017-js-ipfs-0.25/README.md +++ b/src/_blog/017-js-ipfs-0.25.md @@ -1,10 +1,10 @@ --- date: 2017-07-12 -url: /28-js-ipfs-0-25/ +permalink: /28-js-ipfs-0-25/ title: js-ipfs 0.25.0 released description: author: David Dias -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/018-js-ipfs-pubsub/README.md b/src/_blog/018-js-ipfs-pubsub.md similarity index 99% rename from src/_blog/018-js-ipfs-pubsub/README.md rename to src/_blog/018-js-ipfs-pubsub.md index 9c935d39..f6a8217b 100644 --- a/src/_blog/018-js-ipfs-pubsub/README.md +++ b/src/_blog/018-js-ipfs-pubsub.md @@ -1,6 +1,6 @@ --- date: 2017-07-29 -url: /29-js-ipfs-pubsub/ +permalink: /29-js-ipfs-pubsub/ title: Distributed pubsub primitives for js-ipfs in the Browser description: author: Pedro Teixeira diff --git a/src/_blog/019-js-ipfs-crdts/README.md b/src/_blog/019-js-ipfs-crdts.md similarity index 99% rename from src/_blog/019-js-ipfs-crdts/README.md rename to src/_blog/019-js-ipfs-crdts.md index 8a511af4..52d1e4ff 100644 --- a/src/_blog/019-js-ipfs-crdts/README.md +++ b/src/_blog/019-js-ipfs-crdts.md @@ -1,6 +1,6 @@ --- date: 2017-08-01 -url: /30-js-ipfs-crdts/ +permalink: /30-js-ipfs-crdts/ title: Decentralized Real-Time Collaborative Documents - Conflict-free editing in the browser using js-ipfs and CRDTs description: author: Pedro Teixeira diff --git a/src/_blog/020-js-ipfs-0.26/README.md b/src/_blog/020-js-ipfs-0.26.md similarity index 99% rename from src/_blog/020-js-ipfs-0.26/README.md rename to src/_blog/020-js-ipfs-0.26.md index dc2bf1fa..7d835737 100644 --- a/src/_blog/020-js-ipfs-0.26/README.md +++ b/src/_blog/020-js-ipfs-0.26.md @@ -1,10 +1,10 @@ --- date: 2017-09-13 -url: /30-js-ipfs-0-26/ +permalink: /30-js-ipfs-0-26/ title: js-ipfs 0.26.0 released description: author: David Dias -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' - 'AEgir' diff --git a/src/_blog/021-js-ipfs-0.27/README.md b/src/_blog/021-js-ipfs-0.27.md similarity index 98% rename from src/_blog/021-js-ipfs-0.27/README.md rename to src/_blog/021-js-ipfs-0.27.md index cdbb376d..ca2ca842 100644 --- a/src/_blog/021-js-ipfs-0.27/README.md +++ b/src/_blog/021-js-ipfs-0.27.md @@ -1,10 +1,10 @@ --- date: 2017-12-02 -url: /32-js-ipfs-0-27/ +permalink: /32-js-ipfs-0-27/ title: js-ipfs 0.27.0 released description: author: David Dias -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/022-js-ipfs-0.28/README.md b/src/_blog/022-js-ipfs-0.28.md similarity index 98% rename from src/_blog/022-js-ipfs-0.28/README.md rename to src/_blog/022-js-ipfs-0.28.md index 6438aab5..1d746eb6 100644 --- a/src/_blog/022-js-ipfs-0.28/README.md +++ b/src/_blog/022-js-ipfs-0.28.md @@ -1,10 +1,10 @@ --- date: 2018-03-16 -url: /33-js-ipfs-0-28/ +permalink: /33-js-ipfs-0-28/ title: js-ipfs 0.28.0 released description: author: David Dias -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/023-go-ipfs-0.4.14/README.md b/src/_blog/023-go-ipfs-0.4.14.md similarity index 99% rename from src/_blog/023-go-ipfs-0.4.14/README.md rename to src/_blog/023-go-ipfs-0.4.14.md index 1157d9b2..fbb46992 100644 --- a/src/_blog/023-go-ipfs-0.4.14/README.md +++ b/src/_blog/023-go-ipfs-0.4.14.md @@ -1,6 +1,6 @@ --- date: 2018-03-26 -url: /34-go-ipfs-0.4.14/ +permalink: /34-go-ipfs-0.4.14/ title: go-ipfs 0.4.14 released description: author: Whyrusleeping, Victor Bjelkholm diff --git a/src/_blog/024-ipfs-companion-2.2.0/README.md b/src/_blog/024-ipfs-companion-2.2.0.md similarity index 99% rename from src/_blog/024-ipfs-companion-2.2.0/README.md rename to src/_blog/024-ipfs-companion-2.2.0.md index bbfcd2da..320807bc 100644 --- a/src/_blog/024-ipfs-companion-2.2.0/README.md +++ b/src/_blog/024-ipfs-companion-2.2.0.md @@ -1,6 +1,6 @@ --- date: 2018-04-10 -url: /35-ipfs-companion-2-2-0/ +permalink: /35-ipfs-companion-2-2-0/ title: IPFS Companion 2.2.0 brings window.ipfs to your Browser description: author: Lidel diff --git a/src/_blog/025-a-look-at-windows/README.md b/src/_blog/025-a-look-at-windows.md similarity index 92% rename from src/_blog/025-a-look-at-windows/README.md rename to src/_blog/025-a-look-at-windows.md index 2297b9d3..a86cb5ec 100644 --- a/src/_blog/025-a-look-at-windows/README.md +++ b/src/_blog/025-a-look-at-windows.md @@ -1,6 +1,6 @@ --- date: 2018-04-23 -url: /36-a-look-at-windows/ +permalink: /36-a-look-at-windows/ title: A look at go-ipfs on Windows description: author: Dominic Della Valle @@ -18,17 +18,17 @@ If you're not a Windows or `go-ipfs` user, you may still be interested in seeing ### Log output -![log-before](img/log-before.png) +![log-before](/025-a-look-at-windows-log-before.png) Issue: The output on Windows was filled with non-native [control characters](https://en.wikipedia.org/wiki/Control_character). This made our output hard to read, both for users and developers (when malformed logs were shared with us). -![log-after](img/log-after.png) +![log-after](/025-a-look-at-windows-log-after.png) Resolution: We've added a method of translating these characters into native equivalents. There should be no more oddities related to character color or cursor placement, text should be clear and lines shouldn't overlap anymore. This should make everyone a little bit happier. ### Building -![build](img/build.gif) +![build](/025-a-look-at-windows-build.gif) Issue: Building the Windows binary, on Windows itself, had multiple problems: silent failures, lack of respect for user supplied arguments, inconsistent handling of dependencies, and more. @@ -37,7 +37,7 @@ Multiple fixes had to be applied to `go-ipfs`, `gx`, some of our first and third ### Temporary file access errors -![garbage](img/garbage.png) +![garbage](/025-a-look-at-windows-garbage.png) Issue: When trying to move data-blocks from a temporary location, the destination address was getting corrupted. This led to "Access Denied" errors and the unexpected creation of garbage files in the working directory. @@ -51,12 +51,12 @@ No filters were being applied to file paths during extraction (IPFS -> other fil 1. #### Extracting content from IPFS could fail due to native file system restrictions - ![File names](img/filenames.png) + ![File names](/025-a-look-at-windows-filenames.png) FAT32, NTFS, ReFS, and Windows itself, all impose their own path limitations. If a hash contained a non-legal path, operations like `ipfs get` would fail. In the image above, the [XKCD archive ](https://github.com/ipfs/archives/issues/21) could not be downloaded on Windows because the directory "1031 - s keyboard leopard " ends in a space. 2. #### Hashes that contained malicious file paths would be extracted - ![overwrite 1](img/overwrite%201.png) - ![overwrite 2](img/overwrite%202.png) + ![overwrite 1](/025-a-look-at-windows-overwrite%201.png) + ![overwrite 2](/025-a-look-at-windows-overwrite%202.png) It was possible for users to craft specific hashes that could escape the extraction root and overwrite files (if the target file's location was known in advance and users had write permissions for the files). Resolution: @@ -64,7 +64,7 @@ We now account for these limitations and translate path-names into platform lega ### `stdio` -![pipe](img/pipe.png) +![pipe](/025-a-look-at-windows-pipe.png) Issue: stdin support was explicitly disabled in `go-ipfs`, preventing basic [IPC](https://en.wikipedia.org/wiki/Inter-process_communication) with other applications. Resolution: diff --git a/src/_blog/026-ipfs-conf-dev-meetings-and-user-registry/README.md b/src/_blog/026-ipfs-conf-dev-meetings-and-user-registry.md similarity index 98% rename from src/_blog/026-ipfs-conf-dev-meetings-and-user-registry/README.md rename to src/_blog/026-ipfs-conf-dev-meetings-and-user-registry.md index 34c95b73..3c966783 100644 --- a/src/_blog/026-ipfs-conf-dev-meetings-and-user-registry/README.md +++ b/src/_blog/026-ipfs-conf-dev-meetings-and-user-registry.md @@ -1,6 +1,6 @@ --- date: 2018-05-19 -url: /37-ipfs-conf-dev-meetings-and-user-registry/ +permalink: /37-ipfs-conf-dev-meetings-and-user-registry/ title: 'Announcements: IPFS Conf, Developer Meetings for IPFS & libp2p and a User Registry' description: author: Matt Zumwalt diff --git a/src/_blog/027-js-ipfs-0.29/README.md b/src/_blog/027-js-ipfs-0.29.md similarity index 98% rename from src/_blog/027-js-ipfs-0.29/README.md rename to src/_blog/027-js-ipfs-0.29.md index b43556c8..66ff9122 100644 --- a/src/_blog/027-js-ipfs-0.29/README.md +++ b/src/_blog/027-js-ipfs-0.29.md @@ -1,10 +1,10 @@ --- date: 2018-05-29 -url: /38-js-ipfs-0-29/ +permalink: /38-js-ipfs-0-29/ title: js-ipfs 0.29.0 released description: author: David Dias -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/028-go-libp2p-6.0.0/README.md b/src/_blog/028-go-libp2p-6.0.0.md similarity index 99% rename from src/_blog/028-go-libp2p-6.0.0/README.md rename to src/_blog/028-go-libp2p-6.0.0.md index 8167ad37..2da3b01f 100644 --- a/src/_blog/028-go-libp2p-6.0.0/README.md +++ b/src/_blog/028-go-libp2p-6.0.0.md @@ -1,6 +1,6 @@ --- date: 2018-06-15 -url: /39-go-libp2p-6-0-0/ +permalink: /39-go-libp2p-6-0-0/ title: go-libp2p 6.0.0 released description: author: Steven Allen diff --git a/src/_blog/029-js-ipfs-0.30/README.md b/src/_blog/029-js-ipfs-0.30.md similarity index 98% rename from src/_blog/029-js-ipfs-0.30/README.md rename to src/_blog/029-js-ipfs-0.30.md index a249b0fc..b4d956df 100644 --- a/src/_blog/029-js-ipfs-0.30/README.md +++ b/src/_blog/029-js-ipfs-0.30.md @@ -1,10 +1,10 @@ --- date: 2018-07-09 -url: /40-js-ipfs-0-30/ +permalink: /40-js-ipfs-0-30/ title: js-ipfs 0.30.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' - 'breaking changes' diff --git a/src/_blog/030-js-libp2p-0.23/README.md b/src/_blog/030-js-libp2p-0.23.md similarity index 99% rename from src/_blog/030-js-libp2p-0.23/README.md rename to src/_blog/030-js-libp2p-0.23.md index 7d0764c1..90ae46a6 100644 --- a/src/_blog/030-js-libp2p-0.23/README.md +++ b/src/_blog/030-js-libp2p-0.23.md @@ -1,6 +1,6 @@ --- date: 2018-07-27 -url: /41-js-libp2p-0-23/ +permalink: /41-js-libp2p-0-23/ title: js-libp2p 0.23.0 released description: author: David Dias diff --git a/src/_blog/031-js-ipfs-0.31/README.md b/src/_blog/031-js-ipfs-0.31.md similarity index 98% rename from src/_blog/031-js-ipfs-0.31/README.md rename to src/_blog/031-js-ipfs-0.31.md index df2a3e31..c74b7d36 100644 --- a/src/_blog/031-js-ipfs-0.31/README.md +++ b/src/_blog/031-js-ipfs-0.31.md @@ -1,10 +1,10 @@ --- date: 2018-07-29 -url: /42-js-ipfs-0-31/ +permalink: /42-js-ipfs-0-31/ title: js-ipfs 0.31.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/032-js-ipfs-0.32/README.md b/src/_blog/032-js-ipfs-0.32.md similarity index 98% rename from src/_blog/032-js-ipfs-0.32/README.md rename to src/_blog/032-js-ipfs-0.32.md index c9f8d735..5b3890d8 100644 --- a/src/_blog/032-js-ipfs-0.32/README.md +++ b/src/_blog/032-js-ipfs-0.32.md @@ -1,10 +1,10 @@ --- date: 2018-09-11 -url: /43-js-ipfs-0-32/ +permalink: /43-js-ipfs-0-32/ title: js-ipfs 0.32.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/033-ipld-explorer-cli-0.14/README.md b/src/_blog/033-ipld-explorer-cli-0.14.md similarity index 98% rename from src/_blog/033-ipld-explorer-cli-0.14/README.md rename to src/_blog/033-ipld-explorer-cli-0.14.md index a557e2b3..355f9a84 100644 --- a/src/_blog/033-ipld-explorer-cli-0.14/README.md +++ b/src/_blog/033-ipld-explorer-cli-0.14.md @@ -1,6 +1,6 @@ --- date: 2018-09-12 -url: /44-ipld-explorer-cli-0-14/ +permalink: /44-ipld-explorer-cli-0-14/ title: ipld-explorer-cli 0.14 released description: author: Alan Shaw diff --git a/src/_blog/034-js-ipfs-0.33/README.md b/src/_blog/034-js-ipfs-0.33.md similarity index 98% rename from src/_blog/034-js-ipfs-0.33/README.md rename to src/_blog/034-js-ipfs-0.33.md index ac3ebba4..132df585 100644 --- a/src/_blog/034-js-ipfs-0.33/README.md +++ b/src/_blog/034-js-ipfs-0.33.md @@ -1,10 +1,10 @@ --- date: 2018-11-01 -url: /51-js-ipfs-0-33/ +permalink: /51-js-ipfs-0-33/ title: js-ipfs 0.33.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' - 'IPFS Web UI' diff --git a/src/_blog/035-go-ipfs-0-4-18/README.md b/src/_blog/035-go-ipfs-0-4-18.md similarity index 98% rename from src/_blog/035-go-ipfs-0-4-18/README.md rename to src/_blog/035-go-ipfs-0-4-18.md index a7e266b2..3e85fe21 100644 --- a/src/_blog/035-go-ipfs-0-4-18/README.md +++ b/src/_blog/035-go-ipfs-0-4-18.md @@ -1,6 +1,6 @@ --- date: 2018-11-07 -url: /53-go-ipfs-0-4-18/ +permalink: /53-go-ipfs-0-4-18/ title: go-ipfs 0.4.18 released description: author: Steven Allen, Erik Ingenito @@ -167,7 +167,7 @@ directories and tiny files. This release includes the latest, very shiny [updated webui](https://github.com/ipfs-shipyard/ipfs-webui). You can view it by installing go-ipfs and visiting http://localhost:5001/webui. It deserves its own release note - oh look, it [got -one](./51-js-ipfs-0-33/#web-ui-2-0)! Here's a peek: +one](/51-js-ipfs-0-33/#web-ui-2-0)! Here's a peek: ![Screenshot of the status page](https://raw.githubusercontent.com/ipfs-shipyard/ipfs-webui/master/docs/screenshots/ipfs-webui-status.png) @@ -187,11 +187,11 @@ In this release, we've (a) fixed a slow memory leak in libp2p and (b) significantly reduced the allocation load. Together, these should improve both memory and CPU usage. How much you ask? Glad you asked. -![gc-latency](img/gc-latency.png) +![gc-latency](/035-go-ipfs-0-4-18-gc-latency.png) Above is a graph of time our IPFS gateway nodes spend in GC. See the awesome looking light blue line at the bottom? That's the node running 0.4.18. IKR? -![cpu-load](img/cpu-load.png) +![cpu-load](/035-go-ipfs-0-4-18-cpu-load.png) This graph of time spent in execution has greater variability but the improvement is still pretty clear. You want the light blue one. diff --git a/src/_blog/036-js-libp2p-0.24/README.md b/src/_blog/036-js-libp2p-0.24.md similarity index 99% rename from src/_blog/036-js-libp2p-0.24/README.md rename to src/_blog/036-js-libp2p-0.24.md index c27ae76d..dfe811cd 100644 --- a/src/_blog/036-js-libp2p-0.24/README.md +++ b/src/_blog/036-js-libp2p-0.24.md @@ -1,6 +1,6 @@ --- date: 2018-11-16 -url: /55-js-libp2p-0-24/ +permalink: /55-js-libp2p-0-24/ title: js-libp2p 0.24.0 released description: author: Jacob Heun diff --git a/src/_blog/037-http-client-rename/README.md b/src/_blog/037-http-client-rename.md similarity index 97% rename from src/_blog/037-http-client-rename/README.md rename to src/_blog/037-http-client-rename.md index 36fc63de..d2fe50ea 100644 --- a/src/_blog/037-http-client-rename/README.md +++ b/src/_blog/037-http-client-rename.md @@ -1,6 +1,6 @@ --- date: 2018-12-03 -url: /58-http-client-rename/ +permalink: /58-http-client-rename/ title: The HTTP client libraries are being renamed! description: author: Alan Shaw diff --git a/src/_blog/038-js-ipfs-0.34/README.md b/src/_blog/038-js-ipfs-0.34.md similarity index 99% rename from src/_blog/038-js-ipfs-0.34/README.md rename to src/_blog/038-js-ipfs-0.34.md index dacd94be..31de52a4 100644 --- a/src/_blog/038-js-ipfs-0.34/README.md +++ b/src/_blog/038-js-ipfs-0.34.md @@ -1,10 +1,10 @@ --- date: 2019-01-17 -url: /64-js-ipfs-0-34/ +permalink: /64-js-ipfs-0-34/ title: js-ipfs 0.34.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/039-london-hack-week-report/README.md b/src/_blog/039-london-hack-week-report.md similarity index 99% rename from src/_blog/039-london-hack-week-report/README.md rename to src/_blog/039-london-hack-week-report.md index f97ba437..27dc0f3e 100644 --- a/src/_blog/039-london-hack-week-report/README.md +++ b/src/_blog/039-london-hack-week-report.md @@ -1,6 +1,6 @@ --- date: 2019-01-24 -url: /65-london-hack-week-report/ +permalink: /65-london-hack-week-report/ title: 2018 Q4 London Hack Week Summary description: author: David Dias diff --git a/src/_blog/040-crdt-research-meetup/README.md b/src/_blog/040-crdt-research-meetup.md similarity index 92% rename from src/_blog/040-crdt-research-meetup/README.md rename to src/_blog/040-crdt-research-meetup.md index 389ef704..102e405d 100644 --- a/src/_blog/040-crdt-research-meetup/README.md +++ b/src/_blog/040-crdt-research-meetup.md @@ -1,6 +1,6 @@ --- date: 2019-03-22 -url: /67-crdt-research-meetup/ +permalink: /67-crdt-research-meetup/ title: 2018 CRDT Research Meetup - Lisbon description: author: Pedro Teixeira @@ -23,7 +23,7 @@ If you didn't have the chance to attend this meetup in person, you can now follo ## Vitor Enes - Borrowing an Identity for a Distributed Counter -[![Watch video](img/video1.png)](https://www.youtube.com/watch?v=rGfbcu7UkGk) +[![Watch video](/040-crdt-research-meetup-video1.png)](https://www.youtube.com/watch?v=rGfbcu7UkGk) In this presentation, Vitor Enes, a PhD student from HasLab, presented a design he co-authored for avoiding the identity explosion in state-based CRDTs. @@ -33,7 +33,7 @@ Having an entry per replica in the system does not scale, because the state will ## Nuno Preguiça - AntidoteDB and more -[![Play video](img/video2.png)](https://www.youtube.com/watch?v=-v_1aJJujdg) +[![Play video](/040-crdt-research-meetup-video2.png)](https://www.youtube.com/watch?v=-v_1aJJujdg) When using geo-replicated databases, there is a first wave of databases that are eventually consistent (like Cassandra and Riak) that offer high availability but little automation to deal with concurrency. Lately, second-generation DBMSs like Spanner and CosmosDB offer strong consistency guarantees, but at the necessary expense of availability in the face of network partitions. @@ -43,7 +43,7 @@ What about numeric invariants? How can you guarantee, for instance, that, in a g ## Ali Shoker - As Secure as Possible Eventual Consistency -[![play video](img/video3.png)](https://www.youtube.com/watch?v=ip2XhudTEGE) +[![play video](/040-crdt-research-meetup-video3.png)](https://www.youtube.com/watch?v=ip2XhudTEGE) CRDTs and Strong Eventual Consistency gives us the guarantee that all replicas will eventually converge, but this may only be true depending on your fault model. If, for instance, a replica fails to apply an operation (due to a bug, a hardware failure or malicious code, for instance), the system is not guaranteed to converge. @@ -53,6 +53,6 @@ Clients can then opt into using the more secure BFT certificate (with the compro ## Evan Miyazono - Protocol Labs RFP Program -[![play video](img/video4.png)](https://www.youtube.com/watch?v=PkjfwmFe75s) +[![play video](/040-crdt-research-meetup-video4.png)](https://www.youtube.com/watch?v=PkjfwmFe75s) Evan Miyazono, captain of the research team at Protocol Labs (PL), provides an overview of the PL approach to external research, and describes the PL Request For Proposals (RFP) and grant program. diff --git a/src/_blog/041-ann-ipfs-camp/README.md b/src/_blog/041-ann-ipfs-camp.md similarity index 98% rename from src/_blog/041-ann-ipfs-camp/README.md rename to src/_blog/041-ann-ipfs-camp.md index 709b0c86..8b9e7232 100644 --- a/src/_blog/041-ann-ipfs-camp/README.md +++ b/src/_blog/041-ann-ipfs-camp.md @@ -1,6 +1,6 @@ --- date: 2019-02-28 -url: /72-ann-ipfs-camp/ +permalink: /72-ann-ipfs-camp/ title: Announcing the First Ever 🌌 IPFS Camp, Jun 27-30, 2019 🏕 description: author: David Dias, Angie Maguire, Chris Waring, Jamie Nicholson diff --git a/src/_blog/042-lisbon-hack-week/README.md b/src/_blog/042-lisbon-hack-week.md similarity index 98% rename from src/_blog/042-lisbon-hack-week/README.md rename to src/_blog/042-lisbon-hack-week.md index 92f9b867..4df7d97e 100644 --- a/src/_blog/042-lisbon-hack-week/README.md +++ b/src/_blog/042-lisbon-hack-week.md @@ -1,6 +1,6 @@ --- date: 2019-03-25 -url: /74-lisbon-hack-week/ +permalink: /74-lisbon-hack-week/ title: 2018 IPFS Hack Week in Lisbon description: author: André Cruz diff --git a/src/_blog/043-ipfs-2019-roadmap/README.md b/src/_blog/043-ipfs-2019-roadmap.md similarity index 97% rename from src/_blog/043-ipfs-2019-roadmap/README.md rename to src/_blog/043-ipfs-2019-roadmap.md index 08bd42ea..f9a727ff 100644 --- a/src/_blog/043-ipfs-2019-roadmap/README.md +++ b/src/_blog/043-ipfs-2019-roadmap.md @@ -1,6 +1,6 @@ --- date: 2019-04-05 -url: /78-ipfs-2019-roadmap/ +permalink: /78-ipfs-2019-roadmap/ title: 'Achievement Unlocked: The 2019 IPFS Roadmap' description: author: Molly Mackinlay @@ -13,11 +13,11 @@ In Q4 2018, we undertook a new planning process for the IPFS project to more cle To ground our thinking about the next year, we first had to zoom out to the core mission of the IPFS project in the long-term. We take on many efforts and support many groups in our open source community, but it is all driven by the aim to make the internet more accessible, empowering, and useful for many years to come. With much wordsmithing, we condensed this into our first (written) [mission statement](https://github.com/ipfs/roadmap#ipfs-mission-statement)! 👏 -![IPFS Mission Statement](img/mission-statement.png) +![IPFS Mission Statement](/043-ipfs-2019-roadmap-mission-statement.png) This mission is reflected in our goals for IPFS - what we hope to tangibly achieve in the world. So far, we've identified **SIXTEEN** ranging over the next 5-10 years of work. These include launching the [Interplanetary Web](https://github.com/ipfs/roadmap#-interplanetary-web---mars-2024-d3-e3-i4), making the memex a reality with the [Personal Web](https://github.com/ipfs/roadmap#-personal-web-d3-e4-i2), snapshotting all human knowledge with the [Self-Archiving Web](https://github.com/ipfs/roadmap#-self-archiving-web-d4-e4-i4), and even merging the web and the OS with [WebOS](https://github.com/ipfs/roadmap#-webos-d5-e2-i3) among others. While there are assuredly many that we haven’t explored yet, 16 is a good start - and far more than we could possibly work on this year. Mission "Plan 2019" was underway! 🚀 -![IPFS Goals](img/goals.png) +![IPFS Goals](/043-ipfs-2019-roadmap-goals.png) To narrow in on where we should begin, we ranked the goals on a number of factors to create an ordered list. We sorted first in terms of low difficulty or "delta" (i.e. minimal additional requirements and fewer dependencies from the capabilities IPFS has now), then high ecosystem growth (growing our community and resources to help us gravity assist and accelerate our progress), and finally high importance (to ensure IPFS has a strong, positive impact on the world). This [sorting function](https://github.com/ipfs/roadmap#2019-priority) gave us a ranked list of goals to work towards to achieve our mission - where completing earlier goals brought us closer to the technical requirements and resources to achieve later goals. 🤩 @@ -27,7 +27,7 @@ Improving IPFS for package managers also has the added benefit of diagnosing and Identifying our [top priority for the year](https://github.com/ipfs/roadmap#2019-priority) was an important achievement, but it was still just the beginning. Next, we needed to break that goal down into milestones so we could incrementally add features, performance improvements, and educational guides to make “IPFS for package managers” a reality. We did this in two stages. First, individual IPFS working groups drafted feature and performance milestones of the work they saw as most important to achieve our goal. After a quick cross-working group feedback loop for asks and alignment, we “merged” across all working group roadmaps to create a unified project-level roadmap. You can see the results of this in our [2019 Epics](https://github.com/ipfs/roadmap#2019-epics). 👀 -![IPFS 2019 Epics](img/2019-epics.png) +![IPFS 2019 Epics](/043-ipfs-2019-roadmap-2019-epics.png) When taking on Package Managers as a top use case and priority, we realized there was still much we didn’t know about the needs and requirements to support this community - so learning more was our first step. We spun up a new [Package Managers Working Group](https://github.com/ipfs/package-managers) in early Q1, which has been focused on research, knowledge-sharing, and stress-testing the protocol with demos and experiments to target our efforts for the rest of the year. The team has already identified a bunch of low hanging fruit around usability and performance. Want to get involved? [Check out this list of known issues and feature requests!](https://github.com/ipfs/package-managers/blob/master/blockers.md) _(We'd also love to hear about your ideas, experiments, and pain points - add them here!)_ 💪 @@ -37,6 +37,6 @@ When we started out with 2019 planning, we actually took on **THREE** top-level Given this realization, we made the hard choice to descope those goals for 2019 and focus our energies on supporting package managers. However, we’d already finalized our Q1 OKRs and much of the prioritized work was still aligned and valuable for our narrowed priority. Therefore, we decided to pause any additional re-planning until the end-of-quarter mark. Not to fear, Q2 brings lots of fresh package-manager-focused improvements built on all of our great Q1 learnings. Curious what the working groups are picking up and how you can help out? Check out the [IPFS Q2 OKRs](https://docs.google.com/spreadsheets/d/1YSeyWqXh3ImanRrTkYQHHkCofiORn68bYqM_KTLBlsA/edit) and associated planning issues [here](https://github.com/ipfs/team-mgmt/issues/902). 🤗 -![IPFS 2019 Q2 OKRs](img/q2-okrs.png) +![IPFS 2019 Q2 OKRs](/043-ipfs-2019-roadmap-q2-okrs.png) Since the [IPFS Alpha release](https://github.com/ipfs/ipfs/blob/master/README.md#alpha-distribution) in February 2015, the IPFS project has grown significantly - including releasing our [Data Model (IPLD)](http://ipld.io/) and [Networking Stack (libp2p)](https://libp2p.io/) as standalone projects, amongst many other [exciting updates recentrly](https://filecoin.io/blog/update-2018-q3-q4/#9-ipfs-update-for-filecoin). The past 4 years have brought huge improvements to the protocol, but we’re most excited about the path to come and all the awesome new capabilities described in our [working group roadmaps](https://github.com/ipfs/roadmap#2019-working-groups-roadmaps). We hope you’ll join us on that quest - whether it’s suggesting usability improvements, writing performance benchmarks, helping optimize our [new apt-on-ipfs experiment](https://github.com/ipfs/package-managers/issues/18) (or contribute your own!), or any other new endeavors you propose. Onwards! 🤝 diff --git a/src/_blog/044-js-ipfs-0.35/README.md b/src/_blog/044-js-ipfs-0.35.md similarity index 99% rename from src/_blog/044-js-ipfs-0.35/README.md rename to src/_blog/044-js-ipfs-0.35.md index d44c0d80..88970db3 100644 --- a/src/_blog/044-js-ipfs-0.35/README.md +++ b/src/_blog/044-js-ipfs-0.35.md @@ -1,10 +1,10 @@ --- date: 2019-04-12 -url: /80-js-ipfs-0-35/ +permalink: /80-js-ipfs-0-35/ title: js-ipfs 0.35.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/045-js-libp2p-0.25/README.md b/src/_blog/045-js-libp2p-0.25.md similarity index 99% rename from src/_blog/045-js-libp2p-0.25/README.md rename to src/_blog/045-js-libp2p-0.25.md index 562afd69..7259eebc 100644 --- a/src/_blog/045-js-libp2p-0.25/README.md +++ b/src/_blog/045-js-libp2p-0.25.md @@ -1,10 +1,10 @@ --- date: 2019-04-12 -url: /81-js-libp2p-0-25/ +permalink: /81-js-libp2p-0-25/ title: js-libp2p 0.25.0 released description: author: Jacob Heun -header_image: 045-js-libp2p-0.25.png +header_image: /045-js-libp2p-0.25-header-image.png tags: - 'libp2p' --- diff --git a/src/_blog/046-go-ipfs-0.4.20/README.md b/src/_blog/046-go-ipfs-0.4.20.md similarity index 99% rename from src/_blog/046-go-ipfs-0.4.20/README.md rename to src/_blog/046-go-ipfs-0.4.20.md index cccc3675..0a88b407 100644 --- a/src/_blog/046-go-ipfs-0.4.20/README.md +++ b/src/_blog/046-go-ipfs-0.4.20.md @@ -1,6 +1,6 @@ --- date: 2019-04-16 -url: /83-go-ipfs-0-4-20/ +permalink: /83-go-ipfs-0-4-20/ title: go-ipfs 0.4.20 released description: author: Steven Allen diff --git a/src/_blog/047-js-ipfs-0.36/README.md b/src/_blog/047-js-ipfs-0.36.md similarity index 99% rename from src/_blog/047-js-ipfs-0.36/README.md rename to src/_blog/047-js-ipfs-0.36.md index 31b2bb64..571af086 100644 --- a/src/_blog/047-js-ipfs-0.36/README.md +++ b/src/_blog/047-js-ipfs-0.36.md @@ -1,10 +1,10 @@ --- date: 2019-05-22 -url: /89-js-ipfs-0-36/ +permalink: /89-js-ipfs-0-36/ title: js-ipfs 0.36.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' - 'breaking changes' diff --git a/src/_blog/048-ipfs-dev-meetings-2018/README.md b/src/_blog/048-ipfs-dev-meetings-2018.md similarity index 99% rename from src/_blog/048-ipfs-dev-meetings-2018/README.md rename to src/_blog/048-ipfs-dev-meetings-2018.md index c5f6a4e3..42ad8289 100644 --- a/src/_blog/048-ipfs-dev-meetings-2018/README.md +++ b/src/_blog/048-ipfs-dev-meetings-2018.md @@ -1,6 +1,6 @@ --- date: 2019-06-07 -url: /91-ipfs-2018-dev-meetings/ +permalink: /91-ipfs-2018-dev-meetings/ title: July 2018 IPFS Developer Meetings description: author: Molly Mackinlay diff --git a/src/_blog/049-go-ipfs-0.4.21/README.md b/src/_blog/049-go-ipfs-0.4.21.md similarity index 99% rename from src/_blog/049-go-ipfs-0.4.21/README.md rename to src/_blog/049-go-ipfs-0.4.21.md index f1c93164..25626438 100644 --- a/src/_blog/049-go-ipfs-0.4.21/README.md +++ b/src/_blog/049-go-ipfs-0.4.21.md @@ -1,6 +1,6 @@ --- date: 2019-06-06 -url: /93-go-ipfs-0.4.21/ +permalink: /93-go-ipfs-0.4.21/ title: go-ipfs 0.4.21 released description: author: Molly Mackinlay diff --git a/src/_blog/050-ipfs-camp-recap/README.md b/src/_blog/050-ipfs-camp-recap.md similarity index 97% rename from src/_blog/050-ipfs-camp-recap/README.md rename to src/_blog/050-ipfs-camp-recap.md index 20fe8aab..420f3111 100644 --- a/src/_blog/050-ipfs-camp-recap/README.md +++ b/src/_blog/050-ipfs-camp-recap.md @@ -1,6 +1,6 @@ --- date: 2019-07-08 -url: /2019-07-08-ipfs-camp-recap/ +permalink: /2019-07-08-ipfs-camp-recap/ title: 2019 IPFS Camp Recap description: author: David Dias @@ -66,7 +66,7 @@ Catch up on all the artefacts at 📒 [https://github.com/ipfs/camp#-unconf](htt And it was a blast. Here is a quick video recap as a souvenir for everyone that was there, and a postcard for everyone that didn't get a chance this time around: -[![](./ipfs-camp-youtube-preview.jpg)](https://youtu.be/kc_dxO-V8YM) +[![](/050-ipfs-camp-recap-youtube-preview.jpg)](https://youtu.be/kc_dxO-V8YM) However, the IPFS Camp spirit doesn't stop here, now it is all about continuing the dialog that got started and taking all the learnings and materials to local IPFS Communities, showing and teaching more folks how to build on the P2P Web. All the content produced can be found in the IPFS Camp Repo -- http://github.com/ipfs/camp. We will be posting all the recordings soon as well. @@ -77,7 +77,7 @@ Last, but definitely not the least, a huge THANK YOU ❤️ to everyone that con - An outstanding [Production Team](https://camp.ipfs.io/team) that created the phenomenal experience for everyone - The over 4000 IPFS Community members that have been building this project with us since the beginning -[![](https://media.giphy.com/media/mGW5xq4SwlqnSTxwtb/giphy.gif)](./camp-gif.gif) +[![](https://media.giphy.com/media/mGW5xq4SwlqnSTxwtb/giphy.gif)](/050-ipfs-camp-recap-gif.gif) On behalf of the whole IPFS Project, thank you all for being part of this project and community, such an ambitious goal couldn't be achieved without all your energy, passion and dedication to make it happen. Onwards! diff --git a/src/_blog/051-ipfs-camp-content-first-batch/README.md b/src/_blog/051-ipfs-camp-content-first-batch.md similarity index 99% rename from src/_blog/051-ipfs-camp-content-first-batch/README.md rename to src/_blog/051-ipfs-camp-content-first-batch.md index b2f92d78..463b7fb5 100644 --- a/src/_blog/051-ipfs-camp-content-first-batch/README.md +++ b/src/_blog/051-ipfs-camp-content-first-batch.md @@ -1,6 +1,6 @@ --- date: 2019-07-20 -url: /2019-07-22-ipfs-camp-content-first-batch/ +permalink: /2019-07-22-ipfs-camp-content-first-batch/ title: 2019 IPFS Camp 1st batch of recordings are out! description: author: David Dias diff --git a/src/_blog/051-new-ipfs-release-process/README.md b/src/_blog/051-new-ipfs-release-process.md similarity index 99% rename from src/_blog/051-new-ipfs-release-process/README.md rename to src/_blog/051-new-ipfs-release-process.md index 81c563e9..4572c961 100644 --- a/src/_blog/051-new-ipfs-release-process/README.md +++ b/src/_blog/051-new-ipfs-release-process.md @@ -1,6 +1,6 @@ --- date: 2019-08-14 -url: /2019-08-14-ipfs-release-process/ +permalink: /2019-08-14-ipfs-release-process/ title: Improving the IPFS Release Process description: author: Steven Allen, Alan Shaw, David Dias, Molly Mackinlay, Eric Ronne, Agata Krych diff --git a/src/_blog/052-operation-task-force/README.md b/src/_blog/052-operation-task-force.md similarity index 99% rename from src/_blog/052-operation-task-force/README.md rename to src/_blog/052-operation-task-force.md index 4affd468..e09a055a 100644 --- a/src/_blog/052-operation-task-force/README.md +++ b/src/_blog/052-operation-task-force.md @@ -1,6 +1,6 @@ --- date: 2019-07-31 -url: /2019-07-31-operation-task-force/ +permalink: /2019-07-31-operation-task-force/ title: IPFS Project Q3 Priorities & Working Groups description: author: Dietrich Ayala diff --git a/src/_blog/053-js-ipfs-0.37/README.md b/src/_blog/053-js-ipfs-0.37.md similarity index 99% rename from src/_blog/053-js-ipfs-0.37/README.md rename to src/_blog/053-js-ipfs-0.37.md index 18287c31..84a31924 100644 --- a/src/_blog/053-js-ipfs-0.37/README.md +++ b/src/_blog/053-js-ipfs-0.37.md @@ -1,10 +1,10 @@ --- date: 2019-08-06 -url: /2019-08-06-js-ipfs-0-37/ +permalink: /2019-08-06-js-ipfs-0-37/ title: js-ipfs 0.37.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' - 'async/await' diff --git a/src/_blog/054-go-ipfs-0.4.22/README.md b/src/_blog/054-go-ipfs-0.4.22.md similarity index 99% rename from src/_blog/054-go-ipfs-0.4.22/README.md rename to src/_blog/054-go-ipfs-0.4.22.md index cea4210c..cc89fcf0 100644 --- a/src/_blog/054-go-ipfs-0.4.22/README.md +++ b/src/_blog/054-go-ipfs-0.4.22.md @@ -1,6 +1,6 @@ --- date: 2019-08-13 -url: /054-go-ipfs-0.4.22/ +permalink: /054-go-ipfs-0.4.22/ title: go-ipfs 0.4.22 released description: author: Steven Allen diff --git a/src/_blog/054-great-calamity-circumvention-assembly-at-ipfs-camp/README.md b/src/_blog/054-great-calamity-circumvention-assembly-at-ipfs-camp.md similarity index 99% rename from src/_blog/054-great-calamity-circumvention-assembly-at-ipfs-camp/README.md rename to src/_blog/054-great-calamity-circumvention-assembly-at-ipfs-camp.md index 16b8edfd..03dd41df 100644 --- a/src/_blog/054-great-calamity-circumvention-assembly-at-ipfs-camp/README.md +++ b/src/_blog/054-great-calamity-circumvention-assembly-at-ipfs-camp.md @@ -1,6 +1,6 @@ --- date: 2019-08-12 -url: /2019-08-12-great-calamity-circumvention-assembly-at-ipfs-camp/ +permalink: /2019-08-12-great-calamity-circumvention-assembly-at-ipfs-camp/ title: The Great Calamity Circumvention Assembly at IPFS Camp 2019 description: author: Alan Shaw diff --git a/src/_blog/055-js-libp2p-0.26/README.md b/src/_blog/055-js-libp2p-0.26.md similarity index 98% rename from src/_blog/055-js-libp2p-0.26/README.md rename to src/_blog/055-js-libp2p-0.26.md index 01a2cecb..e422dedc 100644 --- a/src/_blog/055-js-libp2p-0.26/README.md +++ b/src/_blog/055-js-libp2p-0.26.md @@ -1,10 +1,10 @@ --- date: 2019-08-07 -url: /2019-08-07-js-libp2p-0-26/ +permalink: /2019-08-07-js-libp2p-0-26/ title: js-libp2p 0.26.0 released description: author: Jacob Heun -header_image: 055-js-libp2p-0.26.png +header_image: /055-js-libp2p-0.26-header-image.png tags: - 'libp2p' - 'Gossipsub' diff --git a/src/_blog/056-pubsub-in-the-browser/README.md b/src/_blog/056-pubsub-in-the-browser.md similarity index 91% rename from src/_blog/056-pubsub-in-the-browser/README.md rename to src/_blog/056-pubsub-in-the-browser.md index 0fffab7a..373fc6db 100644 --- a/src/_blog/056-pubsub-in-the-browser/README.md +++ b/src/_blog/056-pubsub-in-the-browser.md @@ -1,6 +1,6 @@ --- date: 2019-08-29 -url: /2019-08-29-pubsub-in-the-browser/ +permalink: /2019-08-29-pubsub-in-the-browser/ title: PubSub in the browser with the JS IPFS HTTP API client description: author: Alan Shaw @@ -17,13 +17,13 @@ There’s also a brand new example application that you can play with showing ho [github.com/ipfs/js-ipfs-http-client/examples/browser-pubsub](https://github.com/ipfs/js-ipfs-http-client/tree/master/examples/browser-pubsub) -![Screenshot of PubSub in the browser example app](/056-pubsub-in-the-browser/demo-screenshot.png) +![Screenshot of PubSub in the browser example app](/056-pubsub-in-the-browser-demo-screenshot.png) This was made possible by the experimentation done in a [“lite” http client](https://github.com/ipfs-shipyard/js-ipfs-http-client-lite) I was working on, which was originally meant to be just really really small (it’s currently ~13kb gzipped vs ~200kb for the regular client). To make it small we needed to switch to using the fetch API but I soon realized that this opened up a bunch of other opportunities, like enabling pubsub. We also get easily cancelable requests, request timeouts, custom fetch implementations and a switch to async/await and async iterators. I originally demoed it in the lite client here: -[![Watch video](/056-pubsub-in-the-browser/ipfs-pubsub-in-browser-video.jpg)](https://www.youtube.com/watch?v=NZb6ybkAYWs) +[![Watch video](/056-pubsub-in-the-browser-video.jpg)](https://www.youtube.com/watch?v=NZb6ybkAYWs) The lite client has been a great proving ground for ensuring the “hard parts” of the API are now possible using browser native APIs. I’ll be applying more of the learnings from there to the regular http client in the near future, which should hopefully result in a smaller bundle size, as well as more cool new features like this one. diff --git a/src/_blog/057-ipfs-camp-course-videos/README.md b/src/_blog/057-ipfs-camp-course-videos.md similarity index 96% rename from src/_blog/057-ipfs-camp-course-videos/README.md rename to src/_blog/057-ipfs-camp-course-videos.md index 1352232c..23ce41f4 100644 --- a/src/_blog/057-ipfs-camp-course-videos/README.md +++ b/src/_blog/057-ipfs-camp-course-videos.md @@ -1,6 +1,6 @@ --- date: 2019-09-18 -url: /2019-09-18-ipfs-camp-course-videos/ +permalink: /2019-09-18-ipfs-camp-course-videos/ title: IPFS Camp course videos released 🍿 description: author: Teri Chadbourne @@ -31,7 +31,7 @@ This workshop introduced a few awesome visualization and learning tools that you Watch the recording below or check out the [slides](https://github.com/ipfs/camp/blob/master/CORE_AND_ELECTIVE_COURSES/CORE_COURSE_A/IPFS_Camp_Core_Course_A_Slides.pdf)! -[![Video: Understanding How IPFS Deals with Files](./core-a-thumbnail.png)](https://youtu.be/Z5zNPwMDYGg) +[![Video: Understanding How IPFS Deals with Files](/057-ipfs-camp-course-videos-core-a-thumbnail.png)](https://youtu.be/Z5zNPwMDYGg) _Video: [Understanding How IPFS Deals with Files](https://youtu.be/Z5zNPwMDYGg)_ @@ -41,7 +41,7 @@ This course covers all the stuff that happens _after_ you add a file to IPFS, hi Watch the video below or check out the slides (available on [Google Slides with speaker notes](https://docs.google.com/presentation/d/1UOX-a1lCxi-LOyEOe9VEFRcxg_j93Xkywwa4Y95TJaw/edit?usp=sharing) or as a [PDF](https://github.com/ipfs/camp/blob/master/CORE_AND_ELECTIVE_COURSES/CORE_COURSE_D/IPFS_Camp_Core_Course_D_Slides.pdf))! -[![Video: The Lifecycle of Data in DWeb](./core-d-thumbnail.png)](https://youtu.be/fLUq0RkiTBA) +[![Video: The Lifecycle of Data in DWeb](/057-ipfs-camp-course-videos-core-d-thumbnail.png)](https://youtu.be/fLUq0RkiTBA) _Video: [The Lifecycle of Data in DWeb](https://youtu.be/fLUq0RkiTBA)_ diff --git a/src/_blog/058-ipfs-desktop-0-9/README.md b/src/_blog/058-ipfs-desktop-0-9.md similarity index 95% rename from src/_blog/058-ipfs-desktop-0-9/README.md rename to src/_blog/058-ipfs-desktop-0-9.md index cefe5958..0159c5af 100644 --- a/src/_blog/058-ipfs-desktop-0-9/README.md +++ b/src/_blog/058-ipfs-desktop-0-9.md @@ -1,6 +1,6 @@ --- date: 2019-09-19 -url: /2019-09-19-ipfs-desktop-0-9/ +permalink: /2019-09-19-ipfs-desktop-0-9/ title: IPFS Desktop 0.9 released description: author: Henrique Dias @@ -14,7 +14,7 @@ IPFS Desktop has come a long way to reach its current form. We are here to celeb Back in May 2015, Juan Benet pushed the first so-called "Initial Commit" to start a project at the time named "ipfs-electron". The purpose of the app was quite simple and that hasn't changed much with time: providing a long running daemon, alongside with a GUI for managing it. -![Evolution of IPFS Desktop](/058-ipfs-desktop-0-9/evolution.jpg) +![Evolution of IPFS Desktop](/058-ipfs-desktop-0-9-evolution.jpg) Regarding the application's name, it went from "ipfs-electron" to "IPFS Native Application", then to ["IPFS Station"](https://github.com/ipfs-shipyard/ipfs-desktop/commit/5a123c2c9ed0fe3ec86aad336417ddbefdea9243), it being a much fancier name. However, we [changed it again](https://github.com/ipfs-shipyard/ipfs-desktop/pull/574) to "IPFS Desktop" and that's where we are right now! It's a result of an uniformization between our applications names and the most self-explanatory option we had. @@ -26,13 +26,13 @@ The newest version of IPFS Desktop, 0.9.2 - yes, we already released two patch v With the [recent update to the Web UI](https://github.com/ipfs-shipyard/ipfs-webui/releases/tag/v2.5.0), we are now capable of navigating through the whole IPFS system. Previously, you could only access your 'Files' (the contents of the [Mutable File System](https://proto.school/#/mutable-file-system)). Now, you can navigate not only to any `/ipfs/` or `/ipns/` path, but also any content [pinned](https://docs.ipfs.io/guides/concepts/pinning/) to your IPFS node! -![Browsing /ipns/ipns.io](/058-ipfs-desktop-0-9/browse-wild.jpg) +![Browsing /ipns/ipns.io](/058-ipfs-desktop-0-9-browse-wild.jpg) ### Use npm on ipfs In addition, we are introducing a new experiments section on the 'Settings' page which will allow you to enable new experimental features as they come in. To celebrate this new section, we are adding [npm on ipfs](https://github.com/ipfs-shipyard/npm-on-ipfs) to it! This is a project that allows you to use the `ipfs-npm` and `npm-ipfs` commands to install your Node.js modules through the IPFS network! -![Experiments section](/058-ipfs-desktop-0-9/npm-ipfs.jpg) +![Experiments section](/058-ipfs-desktop-0-9-npm-ipfs.jpg) **Please note** that this feature is intended for those who have [Node.js](https://nodejs.org) installed on their system. Moreover, the activation will only work if your setup does not require additional permissions for executing `npm install -g`. @@ -40,7 +40,7 @@ In addition, we are introducing a new experiments section on the 'Settings' page Adding `ipfs` command line tools to your system was actually introduced in 0.8.0, but it's always worth noting that you are just a click away of having the `ipfs` command available from your command line! This way, you don't have to worry about configuring your `PATH` variable or doing other confusing stuff to start using all IPFS capabilities. Just go to Settings and enable "IPFS command line tools"! -![IPFS command line tools](/058-ipfs-desktop-0-9/ipfs-cmd.jpg) +![IPFS command line tools](/058-ipfs-desktop-0-9-ipfs-cmd.jpg) ### And more... diff --git a/src/_blog/059-ipfs-camp-sci-fi-fair-videos/README.md b/src/_blog/059-ipfs-camp-sci-fi-fair-videos.md similarity index 95% rename from src/_blog/059-ipfs-camp-sci-fi-fair-videos/README.md rename to src/_blog/059-ipfs-camp-sci-fi-fair-videos.md index 26a195b4..d8adf364 100644 --- a/src/_blog/059-ipfs-camp-sci-fi-fair-videos/README.md +++ b/src/_blog/059-ipfs-camp-sci-fi-fair-videos.md @@ -1,6 +1,6 @@ --- date: 2019-10-03 -url: /2019-10-03-ipfs-camp-sci-fi-fair-videos/ +permalink: /2019-10-03-ipfs-camp-sci-fi-fair-videos/ title: IPFS Camp Sci-Fi videos 🧬 description: author: Arkadiy Kukarkin @@ -41,7 +41,7 @@ _Hector explains the topology of the RPi cluster (feat. many blinkenlights)_ Hector and the rest of the [IPFS Cluster](https://cluster.ipfs.io) team came through with a project high in fun, fabric, and blinking lights: the Raspberry Pi IPFS Cluster. Six tiny but mighty (and lovingly upholstered) nodes tirelessly worked together to pin whatever CIDs were thrown at them and reported their pinset load through an ingenious hardware display. Not pictured: [@cluster-labs'](https://github.com/cluster-labs) [Horizon UI for IPFS Cluster](https://medium.com/towardsblockchain/we-made-a-dashboard-for-ipfs-clusters-and-now-we-want-you-to-check-it-out-a87234629908) giving fair attendees even more fine-grained insights into the pinset. -![@achingbrain's npm-in-a-box](/059-ipfs-camp-sci-fi-fair-videos/npm-in-box.jpg) +![@achingbrain's npm-in-a-box](/059-ipfs-camp-sci-fi-fair-videos-npm-in-box.jpg) _[Alex Potsides’s](https://github.com/achingbrain) npm-in-a-box project_ **BONUS:** If you like big IPFS nodes running on small computers (and/or "The IT Crowd"), you may also enjoy Alex's ["npm in a box"](https://github.com/ipfs-shipyard/npm-on-ipfs), which packs the entire NPM package repository on a very portable (and pretty sleek looking) RPi based IPFS node with a BIG archival grade hard drive. Take this with you on your field trip and your team will never see an npm timeout ever again. @@ -63,19 +63,19 @@ These are just some of the projects that made it to the Fair: head over to the [ Our tireless camera crew could only be in one place at a time (we're working on it), which has left some of our favorite projects sadly underdocumented in the video department. Here are some stills that fill in the gaps: -![@MarneeDear's FARS + @gorhgorh's minitel IPFS](/059-ipfs-camp-sci-fi-fair-videos/marnee-minitel.jpg) +![@MarneeDear's FARS + @gorhgorh's minitel IPFS](/059-ipfs-camp-sci-fi-fair-videos-marnee-minitel.jpg) _[Marnee Dearman](https://github.com/MarneeDear)'s IPFS-over-Ham Radio FARS project and Jérôme's IPFS Chat on a French Minitel terminal_ -![@vasa-develop's 3D collaboration](/059-ipfs-camp-sci-fi-fair-videos/vasa.jpg) +![@vasa-develop's 3D collaboration](/059-ipfs-camp-sci-fi-fair-videos-vasa.jpg) _[Vasa](https://github.com/vasa-develop)'s CRDT-based collaborative 3D modeling interface_ -![@gorhgorh's catbot](/059-ipfs-camp-sci-fi-fair-videos/catbot.jpg) +![@gorhgorh's catbot](/059-ipfs-camp-sci-fi-fair-videos-catbot.jpg) _[Jérôme Loï](https://github.com/goth goth)'s libp2p-powered Lazer Catbot (unfortunately no cats were on premises)_ -![the elusive @rklaehn](/059-ipfs-camp-sci-fi-fair-videos/actyx.jpg) +![the elusive @rklaehn](/059-ipfs-camp-sci-fi-fair-videos-actyx.jpg) _Actyx's [Rüdiger](https://github.com/rklaehn) has somehow managed to avoid ALL photos at the fair, so here's a shot of him demoing their amazing industrial automation system from the lightning talks_ -![@aschmahmann's Fast IPNS](/059-ipfs-camp-sci-fi-fair-videos/ipns.jpg) +![@aschmahmann's Fast IPNS](/059-ipfs-camp-sci-fi-fair-videos-ipns.jpg) _Last but not least, [Adin](https://github.com/aschmahmann)'s "Fast IPNS" demo (it was VERY FAST!)_ ## Keep Exploring! diff --git a/src/_blog/060-ipfs-camp-keynotes-interviews/README.md b/src/_blog/060-ipfs-camp-keynotes-interviews.md similarity index 98% rename from src/_blog/060-ipfs-camp-keynotes-interviews/README.md rename to src/_blog/060-ipfs-camp-keynotes-interviews.md index a6be60fc..f9d65b37 100644 --- a/src/_blog/060-ipfs-camp-keynotes-interviews/README.md +++ b/src/_blog/060-ipfs-camp-keynotes-interviews.md @@ -1,10 +1,10 @@ --- date: 2019-10-14 -url: /2019-10-14-ipfs-camp-keynotes-interviews/ +permalink: /2019-10-14-ipfs-camp-keynotes-interviews/ title: IPFS Camp Keynotes and Interviews description: author: Molly Mackinlay -header_image: 060-ipfs-camp-keynotes-interviews.png +header_image: /060-ipfs-camp-keynotes-interviews-header-image.png tags: - 'IPFS Camp' - 'conferences' diff --git a/src/_blog/070-js-ipfs-0-38/README.md b/src/_blog/070-js-ipfs-0-38.md similarity index 98% rename from src/_blog/070-js-ipfs-0-38/README.md rename to src/_blog/070-js-ipfs-0-38.md index 8452da80..a8fd8263 100644 --- a/src/_blog/070-js-ipfs-0-38/README.md +++ b/src/_blog/070-js-ipfs-0-38.md @@ -1,10 +1,10 @@ --- date: 2019-09-30 -url: /070-js-ipfs-0-38/ +permalink: /070-js-ipfs-0-38/ title: js-ipfs 0.38.0 released description: author: Alex Potsides -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/071-ipfs-in-web-browsers/README.md b/src/_blog/071-ipfs-in-web-browsers.md similarity index 95% rename from src/_blog/071-ipfs-in-web-browsers/README.md rename to src/_blog/071-ipfs-in-web-browsers.md index b13460ac..66703bb1 100644 --- a/src/_blog/071-ipfs-in-web-browsers/README.md +++ b/src/_blog/071-ipfs-in-web-browsers.md @@ -1,10 +1,10 @@ --- date: 2019-10-08 -url: /2019-10-08-ipfs-browsers-update/ +permalink: /2019-10-08-ipfs-browsers-update/ title: IPFS Browser Update description: author: Dietrich Ayala -header_image: 071-ipfs-in-web-browsers.png +header_image: /071-ipfs-in-web-browsers-header-image.png tags: - 'browsers' --- @@ -15,7 +15,7 @@ But we're making headway. Today, we'd like to share some collaborations the IPFS ## Stages -![Stages of browser integration](./stages-of-browser-integration.png) +![Stages of browser integration](/071-ipfs-in-web-browsers-stages-of-browser-integration.png) The path to a truly decentralized web is a long one. For over 30 years the browser has been a [_client_]() – but a foundational concept in P2P systems is that a participant is both a client _and a [server]()\_. Web browser vendors and web standards bodies have not designed for this architectural shift, so we're breaking it down into steps. @@ -31,7 +31,7 @@ Brave has tended to live up to its name since the beginning - riling up the brow Today you can open [`brave://settings/extensions`](brave://settings/extensions) in Brave and see a toggle for enabling IPFS Companion. -![Enabling IPFS Companion in Brave](./enabling-ipfs-companion-in-brave.gif) +![Enabling IPFS Companion in Brave](/071-ipfs-in-web-browsers-enabling-ipfs-companion-in-brave.gif) Removing this install step _really matters_ for adoption. While technical users are familiar with browser extensions, it's less comfortable for non-technical users, and Brave users have the additional overhead of going to the _Chrome_ web app store to find and install them. @@ -49,7 +49,7 @@ These powerful APIs enable the js-ipfs node embedded in the browser to provide a By default, our browser extension still expects [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop#ipfs-desktop) to be installed, however you can select the experimental option shown below in order to run _a standalone IPFS node_ in Brave itself. Mind this is an _early preview_ of both a full JS IPFS node and a gateway running in a browser extension. Performance and features will improve over time. -![IPFS configuration option for embedded node using Chrome sockets API in Brave](./enable-embedded-node-in-brave.png) +![IPFS configuration option for embedded node using Chrome sockets API in Brave](/071-ipfs-in-web-browsers-enable-embedded-node-in-brave.png) At IPFS Camp earlier this year, Brave engineer Jocelyn Liu demoed some of these features at the science fair, including one-click install of Companion, the embedded gateway, and also talks about what's to come: tackling the current connectivity limitations such as the lack of DHT support in js-ipfs, and also plans Brave has for the design of the address bar when loading IPFS content. @@ -61,7 +61,7 @@ Opera is another [early leader](https://blogs.opera.com/mobile/2018/12/ofa-49-wi Earlier this year [Opera announced they were working on support for IPFS](https://twitter.com/ensdomains/status/1102884419017297921)! We've been talking ever since, and are looking forward to the launch of IPFS support in their Android browser by the end of this year. -![Opera announcing ENS and IPFS at EthCC March 2019](./opera-announcement.png) +![Opera announcing ENS and IPFS at EthCC March 2019](/071-ipfs-in-web-browsers-opera-announcement.png) ## Firefox diff --git a/src/_blog/072-js-ipfs-0.39/README.md b/src/_blog/072-js-ipfs-0.39.md similarity index 98% rename from src/_blog/072-js-ipfs-0.39/README.md rename to src/_blog/072-js-ipfs-0.39.md index 4ad5bb0f..09ded286 100644 --- a/src/_blog/072-js-ipfs-0.39/README.md +++ b/src/_blog/072-js-ipfs-0.39.md @@ -1,10 +1,10 @@ --- date: 2019-10-24 -url: /071-js-ipfs-0-39/ +permalink: /071-js-ipfs-0-39/ title: js-ipfs 0.39.0 released description: author: Alex Potsides -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' --- diff --git a/src/_blog/073-073-go-ipfs-as-a-library/README.md b/src/_blog/073-073-go-ipfs-as-a-library.md similarity index 97% rename from src/_blog/073-073-go-ipfs-as-a-library/README.md rename to src/_blog/073-073-go-ipfs-as-a-library.md index 56d0e496..d9bf3e46 100644 --- a/src/_blog/073-073-go-ipfs-as-a-library/README.md +++ b/src/_blog/073-073-go-ipfs-as-a-library.md @@ -1,6 +1,6 @@ --- date: 2019-10-29 -url: /073-go-ipfs-as-a-library/ +permalink: /073-go-ipfs-as-a-library/ title: Learn How to Use go-ipfs as a Library description: author: David Dias diff --git a/src/_blog/074-explore-the-files-api-on-protoschool/README.md b/src/_blog/074-explore-the-files-api-on-protoschool.md similarity index 93% rename from src/_blog/074-explore-the-files-api-on-protoschool/README.md rename to src/_blog/074-explore-the-files-api-on-protoschool.md index ae9a87e5..dc97bff3 100644 --- a/src/_blog/074-explore-the-files-api-on-protoschool/README.md +++ b/src/_blog/074-explore-the-files-api-on-protoschool.md @@ -1,10 +1,10 @@ --- date: 2019-11-06 -url: /2019-11-06-explore-the-files-api-on-protoschool/ +permalink: /2019-11-06-explore-the-files-api-on-protoschool/ title: Explore the Files API on ProtoSchool description: author: Teri Chadbourne -header_image: 074-explore-the-files-api-on-protoschool.png +header_image: /074-explore-the-files-api-on-protoschool-header-image.png tags: - 'ProtoSchool' - 'tutorial' @@ -13,8 +13,8 @@ tags: Today we're excited to announce the launch of a [brand new ProtoSchool tutorial exploring the **Regular Files API**](https://proto.school/#/regular-files-api), built by the awesome [Gil Domingues](https://github.com/dominguesgm). 🎉 -![Tutorial Table of Contents](./toc_screenshot.png) -![Code Challenge](./challenge_screenshot.png) +![Tutorial Table of Contents](/074-explore-the-files-api-on-protoschool-toc_screenshot.png) +![Code Challenge](/074-explore-the-files-api-on-protoschool-challenge_screenshot.png) This new tutorial explores the methods at the top-level of js-ipfs (`add`, `get`, `cat`, etc.) that are custom-built for working with files. We refer to these methods as the Regular Files API to distinguish them from the Mutable File System (MFS). MFS mimics a more traditional file system interface with methods like `files.cp` and `files.mkdir`, but it hides the complexity of immutable content addressing in IPFS. Check out the [first lesson](https://proto.school/#/regular-files-api/01) of the new tutorial for more on the differences between these two approaches, as well as some important distinctions between the Files API and the DAG API. diff --git a/src/_blog/075-js-ipfs-0.40/README.md b/src/_blog/075-js-ipfs-0.40.md similarity index 99% rename from src/_blog/075-js-ipfs-0.40/README.md rename to src/_blog/075-js-ipfs-0.40.md index 42958f04..c8ea841e 100644 --- a/src/_blog/075-js-ipfs-0.40/README.md +++ b/src/_blog/075-js-ipfs-0.40.md @@ -1,10 +1,10 @@ --- date: 2019-12-02 -url: /2019-12-02-js-ipfs-0-40/ +permalink: /2019-12-02-js-ipfs-0-40/ title: js-ipfs 0.40.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' - 'CID' diff --git a/src/_blog/076-ipfs-docs-beta/README.md b/src/_blog/076-ipfs-docs-beta.md similarity index 88% rename from src/_blog/076-ipfs-docs-beta/README.md rename to src/_blog/076-ipfs-docs-beta.md index 3a6480fd..0fbcdee6 100644 --- a/src/_blog/076-ipfs-docs-beta/README.md +++ b/src/_blog/076-ipfs-docs-beta.md @@ -1,10 +1,10 @@ --- date: 2020-01-07 -url: /2020-01-07-ipfs-docs-beta/ +permalink: /2020-01-07-ipfs-docs-beta/ title: The new IPFS Docs beta is live! 📚 🆕 description: author: Jessica Schilling -header_image: 076-ipfs-docs-beta.png +header_image: /076-ipfs-docs-beta-header-image.png tags: - 'docs' - 'community' @@ -12,11 +12,11 @@ tags: **We’re excited to announce [the new IPFS documentation site is live in beta](https://docs.ipfs.io/)!** The doors are open, and just like any housewarming, you’re cordially invited to stop by, have a look around, and let us know what you think. -Screenshot of docs beta +Screenshot of docs beta
_New year, new look._ -![Mind map of docs beta nav](/076-ipfs-docs-beta/img/docs-beta-site-mindmap.png) +![Mind map of docs beta nav](/076-ipfs-docs-beta-site-mindmap.png)
_Here’s a mind map of how the docs beta’s navigation works._ diff --git a/src/_blog/077-collaborative-clusters/README.md b/src/_blog/077-collaborative-clusters.md similarity index 96% rename from src/_blog/077-collaborative-clusters/README.md rename to src/_blog/077-collaborative-clusters.md index 896898e8..17305f4c 100644 --- a/src/_blog/077-collaborative-clusters/README.md +++ b/src/_blog/077-collaborative-clusters.md @@ -1,10 +1,10 @@ --- date: 2020-01-09 -url: /2020-01-09-collaborative-clusters/ +permalink: /2020-01-09-collaborative-clusters/ title: Announcing collaborative clusters description: author: Hector Sanjuan -header_image: 077-collaborative-clusters.png +header_image: /077-collaborative-clusters-header-image.png tags: - 'IPFS Cluster' - 'collaborative cluster' diff --git a/src/_blog/078-go-ipfs-0.4.23/README.md b/src/_blog/078-go-ipfs-0.4.23.md similarity index 99% rename from src/_blog/078-go-ipfs-0.4.23/README.md rename to src/_blog/078-go-ipfs-0.4.23.md index 1e3c255c..0c1888b5 100644 --- a/src/_blog/078-go-ipfs-0.4.23/README.md +++ b/src/_blog/078-go-ipfs-0.4.23.md @@ -1,6 +1,6 @@ --- date: 2020-01-30 -url: /2020-01-30-go-ipfs-0-4-23/ +permalink: /2020-01-30-go-ipfs-0-4-23/ title: go-ipfs 0.4.23 released description: author: Alan Shaw diff --git a/src/_blog/079-async-await-refactor/README.md b/src/_blog/079-async-await-refactor.md similarity index 99% rename from src/_blog/079-async-await-refactor/README.md rename to src/_blog/079-async-await-refactor.md index edf930b5..1bd44b91 100644 --- a/src/_blog/079-async-await-refactor/README.md +++ b/src/_blog/079-async-await-refactor.md @@ -1,6 +1,6 @@ --- date: 2020-02-01 -url: /2020-02-01-async-await-refactor/ +permalink: /2020-02-01-async-await-refactor/ title: The Async Await Refactor description: author: Alan Shaw diff --git a/src/_blog/080-big-refactors/README.md b/src/_blog/080-big-refactors.md similarity index 99% rename from src/_blog/080-big-refactors/README.md rename to src/_blog/080-big-refactors.md index 7b64842c..c44126e4 100644 --- a/src/_blog/080-big-refactors/README.md +++ b/src/_blog/080-big-refactors.md @@ -1,6 +1,6 @@ --- date: 2020-02-06 -url: /2020-02-06-big-refactors/ +permalink: /2020-02-06-big-refactors/ title: Big Refactors description: author: Alan Shaw diff --git a/src/_blog/081-js-libp2p-0.27/README.md b/src/_blog/081-js-libp2p-0.27.md similarity index 99% rename from src/_blog/081-js-libp2p-0.27/README.md rename to src/_blog/081-js-libp2p-0.27.md index 0c2d92ab..9a1f142b 100644 --- a/src/_blog/081-js-libp2p-0.27/README.md +++ b/src/_blog/081-js-libp2p-0.27.md @@ -1,10 +1,10 @@ --- date: 2020-02-07 -url: /2020-02-07-js-libp2p-0-27/ +permalink: /2020-02-07-js-libp2p-0-27/ title: js-libp2p 0.27 released description: author: Jacob Heun -header_image: 081-js-libp2p-0.27.png +header_image: /081-js-libp2p-0.27-header-image.png tags: - 'libp2p' - 'async/await' diff --git a/src/_blog/082-ethdenver-2020/README.md b/src/_blog/082-ethdenver-2020.md similarity index 96% rename from src/_blog/082-ethdenver-2020/README.md rename to src/_blog/082-ethdenver-2020.md index 35cb44c1..0d081c6a 100644 --- a/src/_blog/082-ethdenver-2020/README.md +++ b/src/_blog/082-ethdenver-2020.md @@ -1,10 +1,10 @@ --- date: 2020-02-07 -url: /2020-02-07-ethdenver-2020/ +permalink: /2020-02-07-ethdenver-2020/ title: Hack with us at ETHDenver description: author: Jenn Turner -header_image: 082-ethdenver-2020.png +header_image: /082-ethdenver-2020-header-image.png tags: - 'conferences' - 'community' diff --git a/src/_blog/082-ethdenver-2020/ipfs-ethdenver.png b/src/_blog/082-ethdenver-2020/ipfs-ethdenver.png deleted file mode 100644 index ab911cdc..00000000 Binary files a/src/_blog/082-ethdenver-2020/ipfs-ethdenver.png and /dev/null differ diff --git a/src/_blog/082-our-focus-for-2020/README.md b/src/_blog/082-our-focus-for-2020.md similarity index 99% rename from src/_blog/082-our-focus-for-2020/README.md rename to src/_blog/082-our-focus-for-2020.md index a7ac78da..a07a8fb6 100644 --- a/src/_blog/082-our-focus-for-2020/README.md +++ b/src/_blog/082-our-focus-for-2020.md @@ -1,10 +1,10 @@ --- date: 2020-02-10 -url: /2020-02-10-our-focus-for-2020/ +permalink: /2020-02-10-our-focus-for-2020/ title: IPFS Project Focus for 2020 description: author: Molly Mackinlay -header_image: 082-our-focus-for-2020.png +header_image: /082-our-focus-for-2020-header-image.png tags: - 'project planning' --- diff --git a/src/_blog/083-improved-bitswap-with-netflix/README.md b/src/_blog/083-improved-bitswap-with-netflix.md similarity index 98% rename from src/_blog/083-improved-bitswap-with-netflix/README.md rename to src/_blog/083-improved-bitswap-with-netflix.md index 7b4a0b63..0509c1a7 100644 --- a/src/_blog/083-improved-bitswap-with-netflix/README.md +++ b/src/_blog/083-improved-bitswap-with-netflix.md @@ -1,10 +1,10 @@ --- date: 2020-02-14 -url: /2020-02-14-improved-bitswap-for-container-distribution/ +permalink: /2020-02-14-improved-bitswap-for-container-distribution/ title: New improvements to IPFS Bitswap for faster container image distribution description: author: Dirk McCormick (IPFS) and Edgar Lee (Netflix) -header_image: 083-improved-bitswap-with-netflix.png +header_image: /083-improved-bitswap-with-netflix-header-image.png tags: - 'community' - 'Bitswap' diff --git a/src/_blog/083-js-ipfs-0.41/README.md b/src/_blog/083-js-ipfs-0.41.md similarity index 99% rename from src/_blog/083-js-ipfs-0.41/README.md rename to src/_blog/083-js-ipfs-0.41.md index 0892e8c4..918ffb5b 100644 --- a/src/_blog/083-js-ipfs-0.41/README.md +++ b/src/_blog/083-js-ipfs-0.41.md @@ -1,10 +1,10 @@ --- date: 2020-02-13 -url: /2020-02-13-js-ipfs-0-41/ +permalink: /2020-02-13-js-ipfs-0-41/ title: js-ipfs 0.41.0 released description: author: Alan Shaw -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png tags: - 'js-ipfs' - 'async/await' diff --git a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/README.md b/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool.md similarity index 90% rename from src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/README.md rename to src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool.md index 10d3847a..6aa7136a 100644 --- a/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool/README.md +++ b/src/_blog/084-explore-the-anatomy-of-a-cid-on-protoschool.md @@ -1,10 +1,10 @@ --- date: 2020-03-04 -url: /2020-03-04-protoschool-tutorial-anatomy-of-a-cid/ +permalink: /2020-03-04-protoschool-tutorial-anatomy-of-a-cid/ title: Explore the anatomy of a CID in ProtoSchool’s newest tutorial description: author: José Bateira, Teri Chadbourne -header_image: 084-explore-the-anatomy-of-a-cid-on-protoschool.png +header_image: /084-explore-the-anatomy-of-a-cid-on-protoschool-header-image.png tags: - 'ProtoSchool' - 'tutorial' @@ -13,8 +13,8 @@ tags: The [ProtoSchool](https://proto.school/#/) team is pleased to announce the launch of a shiny new multiple-choice tutorial on the **[Anatomy of a CID](https://proto.school/#/anatomy-of-a-cid)**, built by the fabulous [José Bateira](https://github.com/zebateira)! It’s our first multiple-choice content and the first to explore Multiformats. 🎉 -![Table of Contents](./table-of-contents.png) -![Sample Lesson](./sample-lesson.png) +![Table of Contents](/084-explore-the-anatomy-of-a-cid-on-protoschool-table-of-contents.png) +![Sample Lesson](/084-explore-the-anatomy-of-a-cid-on-protoschool-sample-lesson.png) Content identifiers (CIDs) and cryptographic hashing make content addressing possible, allowing us to securely locate and identify data on the decentralized web. The string representations of CIDs used by IPFS look like random characters strung together, but there’s a lot more going on under the hood. In this new tutorial we explore all of the data revealed by these self-describing content-addressed identifiers, digging deep into multihash, multicodec, multibase, and version prefixes. @@ -26,7 +26,7 @@ We also take a look at the evolution of the [CID specification](https://github.c Did you know you can paste any IPFS CID into the [**CID Inspector**](https://cid.ipfs.io/) for a human-friendly breakdown of its multihash format and length, multicodec, multibase, and version? It can even convert CIDv0 to CIDv1! The awesome [Oli Evans](https://github.com/olizilla) built this super-useful visualization tool that we explore in this new tutorial and which you can now access from our coding challenges. -![CID Inspector](./cid-inspector.png) +![CID Inspector](/084-explore-the-anatomy-of-a-cid-on-protoschool-cid-inspector.png) ### IPFS Camp Course: Understanding How IPFS Deals with Files @@ -44,7 +44,7 @@ _Video: [Understanding How IPFS Deals with Files](https://youtu.be/Z5zNPwMDYGg)_ The new [Anatomy of a CID](https://proto.school/#/anatomy-of-a-cid) tutorial is our first to include **multiple-choice quizzes** to keep you sharp on the concepts introduced in each lesson. 😉 -![Multiple-Choice Quiz](./quiz.png) +![Multiple-Choice Quiz](/084-explore-the-anatomy-of-a-cid-on-protoschool-quiz.png) Kudos to [Teri Chadbourne](https://github.com/terichadbourne) and [Diogo Silva](https://github.com/fsdiogo), who laid the groundwork for our multiple choice lessons. @@ -56,11 +56,11 @@ We also offer a **text-based** tutorial on [Decentralized Data Structures](https We’re excited to create beginner-friendly content suitable for a variety of learners, regardless of their coding experience. To that end, we recently added **spiffy new icons** throughout the site to represent our coding challenges, multiple-choice quizzes, and text-only lessons, making it easy to identify lesson formats before you get started. -![Lesson Type Icons](./type-icons.png) +![Lesson Type Icons](/084-explore-the-anatomy-of-a-cid-on-protoschool-type-icons.png) We also updated our [tutorial listings](https://proto.school/#/tutorials) with a **handy toggle to help you hide coding challenges** if you’d like to stick to text-based and multiple-choice content. 👏 -![Toggle Coding Challenges](./toggle-coding-challenges.png) +![Toggle Coding Challenges](/084-explore-the-anatomy-of-a-cid-on-protoschool-toggle-coding-challenges.png) A shoutout to [Teri Chadbourne](https://github.com/terichadbourne) for taking the lead on these improvements, and to [Agata Krych](https://github.com/akrych) for the aforementioned spiffy new icons. diff --git a/src/_blog/085-announcing-rust-ipfs/README.md b/src/_blog/085-announcing-rust-ipfs.md similarity index 97% rename from src/_blog/085-announcing-rust-ipfs/README.md rename to src/_blog/085-announcing-rust-ipfs.md index 4128e2d4..204dbe9b 100644 --- a/src/_blog/085-announcing-rust-ipfs/README.md +++ b/src/_blog/085-announcing-rust-ipfs.md @@ -1,10 +1,10 @@ --- date: 2020-03-18 -url: /2020-03-18-announcing-rust-ipfs/ +permalink: /2020-03-18-announcing-rust-ipfs/ title: Announcing Rust IPFS, and a call for contributors description: author: Mark Robert Henderson and Molly Mackinlay -header_image: 085-announcing-rust-ipfs.png +header_image: /085-announcing-rust-ipfs-header-image.png tags: - 'Rust' - 'community' diff --git a/src/_blog/086-ipfs-in-opera-for-android/README.md b/src/_blog/086-ipfs-in-opera-for-android.md similarity index 93% rename from src/_blog/086-ipfs-in-opera-for-android/README.md rename to src/_blog/086-ipfs-in-opera-for-android.md index 53c97afc..ad7a18f2 100644 --- a/src/_blog/086-ipfs-in-opera-for-android/README.md +++ b/src/_blog/086-ipfs-in-opera-for-android.md @@ -1,22 +1,22 @@ --- date: 2020-03-30 -url: /2020-03-30-ipfs-in-opera-for-android/ +permalink: /2020-03-30-ipfs-in-opera-for-android/ title: IPFS in Opera for Android description: author: Dietrich Ayala -header_image: 086-ipfs-in-opera-for-android.png +header_image: /086-ipfs-in-opera-for-android-header-image.png tags: - 'browsers' - 'mobile' --- -![IPFS built-in to Opera for Android](./opera-android-banner.png) +![IPFS built-in to Opera for Android](/086-ipfs-in-opera-for-android-banner.png) As we hinted in our previous post about [IPFS in web browsers](https://blog.ipfs.io/2019-10-08-ipfs-browsers-update/), IPFS support in the Opera web browser has been in development for some time. Today, **Opera for Android 57** is live in the Google Play Store with default support for IPFS with a native handler for `ipfs://` addresses that redirects to the HTTP gateway of your choosing! [Install Opera Android with IPFS now](https://play.google.com/store/apps/details?id=com.opera.browser). -[![Screenshot of Opera for Android in the Google Play Store, linked to the URL of that page](./opera-android-play-store.png)](https://play.google.com/store/apps/details?id=com.opera.browser) +[![Screenshot of Opera for Android in the Google Play Store, linked to the URL of that page](/086-ipfs-in-opera-for-android-play-store.png)](https://play.google.com/store/apps/details?id=com.opera.browser) This release is a huge leap forward for the IPFS project, with a couple of important milestones: @@ -34,7 +34,7 @@ IPFS and other peer-to-peer protocols are a paradigmatic change to the network a IPFS support is enabled by default, so as a user you don’t need to do anything to turn it on. -![Screenshots of entering an ipfs:// address in Opera for Android, and loading it.](./opera-android-protocol-demo.png) +![Screenshots of entering an ipfs:// address in Opera for Android, and loading it.](/086-ipfs-in-opera-for-android-protocol-demo.png) You can load an IPFS content address such as: @@ -82,7 +82,7 @@ You can easily check compatibility and level of implementation using the [IPFS p Here’s what it looks like in a browser that doesn't support IPFS addresses. In Opera for Android, the image loads the same in both cases. -![Screenshot of a failed image test in the IPFS protocol handler smoketests.](./opera-android-test-page.png) +![Screenshot of a failed image test in the IPFS protocol handler smoketests.](/086-ipfs-in-opera-for-android-test-page.png) ## HTTP Gateways @@ -90,7 +90,7 @@ Opera for Android 57 adds IPFS support by navigating native IPFS addresses to an The default gateway in this release of Opera for Android is `dweb.link`, but you can also easily configure the gateway in the Crypto Wallet settings, as shown here: -![IPFS HTTP gateway configuration in the Crypto Wallet settings in Opera for Android](./opera-android-settings.gif) +![IPFS HTTP gateway configuration in the Crypto Wallet settings in Opera for Android](/086-ipfs-in-opera-for-android-settings.gif) The setting has several choices of gateway built in, and also allows you to set a _custom_ gateway. Perhaps you run your own gateway, are running an IPFS node on your device with a local gateway, or want to use one of the many [public gateways provided by the community](https://ipfs.github.io/public-gateway-checker/). diff --git a/src/_blog/087-ipfs-mobile-design-research/README.md b/src/_blog/087-ipfs-mobile-design-research.md similarity index 97% rename from src/_blog/087-ipfs-mobile-design-research/README.md rename to src/_blog/087-ipfs-mobile-design-research.md index 93972261..9551d3a1 100644 --- a/src/_blog/087-ipfs-mobile-design-research/README.md +++ b/src/_blog/087-ipfs-mobile-design-research.md @@ -1,6 +1,6 @@ --- date: 2020-04-10 -url: /2020-04-10-ipfs-mobile-design-research/ +permalink: /2020-04-10-ipfs-mobile-design-research/ title: IPFS Mobile Design Research description: author: Jim Kosem, Dietrich Ayala @@ -13,7 +13,7 @@ The focus of development of IPFS to date has been primarily on desktop and serve This growth at the furthest edge of the network requires solutions at the edge. While the IPFS network continues to grow on mobile (for instance, IPFS now has default support on Opera for Android), more research is needed for the value of the network to be fully realized. IPFS should be directly available and accessible to end users in all their devices - and the design of IPFS integrations should make this clear and easy to use. To create that level of clarity, developers need good guidelines that align with user needs while unlocking all the power of the mobile dweb. -![Graph of global internet device sales showing devices explosively growing from 2005 to 2016.](./device-sales-2005-2016.jpg) +![Graph of global internet device sales showing devices explosively growing from 2005 to 2016.](/087-ipfs-mobile-design-research-device-sales-2005-2016.jpg) In emerging markets and for under-served audiences and marginalized or oppressed peoples the need for data sovereignty, offline-first applications and trustable computing is especially dire, so IPFS should function optimally on the devices used by them in order to serve their use-cases. diff --git a/src/_blog/087-js-ipfs-0.42/README.md b/src/_blog/087-js-ipfs-0.42.md similarity index 99% rename from src/_blog/087-js-ipfs-0.42/README.md rename to src/_blog/087-js-ipfs-0.42.md index 2115cb6e..2caf40f8 100644 --- a/src/_blog/087-js-ipfs-0.42/README.md +++ b/src/_blog/087-js-ipfs-0.42.md @@ -1,8 +1,8 @@ --- date: 2020-04-14 -url: /2020-04-14-js-ipfs-0-42/ +permalink: /2020-04-14-js-ipfs-0-42/ title: js-ipfs 0.42.0 released -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png description: author: Alex Potsides tags: diff --git a/src/_blog/088-ipfs-grants-platform/README.md b/src/_blog/088-ipfs-grants-platform.md similarity index 98% rename from src/_blog/088-ipfs-grants-platform/README.md rename to src/_blog/088-ipfs-grants-platform.md index 6a71039e..270db287 100644 --- a/src/_blog/088-ipfs-grants-platform/README.md +++ b/src/_blog/088-ipfs-grants-platform.md @@ -1,10 +1,10 @@ --- date: 2020-04-20 -url: /2020-04-20-ipfs-grants-platform/ +permalink: /2020-04-20-ipfs-grants-platform/ title: IPFS Grants Platform description: author: Arkadiy Kukarkin, Molly Mackinlay -header_image: 088-ipfs-grants-platform.png +header_image: /088-ipfs-grants-platform-header-image.png tags: - 'community' - 'project planning' diff --git a/src/_blog/089-ipfs-mobile-design-research-findings/README.md b/src/_blog/089-ipfs-mobile-design-research-findings.md similarity index 99% rename from src/_blog/089-ipfs-mobile-design-research-findings/README.md rename to src/_blog/089-ipfs-mobile-design-research-findings.md index 2d14d782..983d0356 100644 --- a/src/_blog/089-ipfs-mobile-design-research-findings/README.md +++ b/src/_blog/089-ipfs-mobile-design-research-findings.md @@ -1,6 +1,6 @@ --- date: 2020-04-24 -url: /2020-04-24-ipfs-mobile-design-research-findings/ +permalink: /2020-04-24-ipfs-mobile-design-research-findings/ title: IPFS Mobile Design Research Findings description: author: Jim Kosem, Dietrich Ayala diff --git a/src/_blog/090-go-ipfs-0-5-0/README.md b/src/_blog/090-go-ipfs-0-5-0.md similarity index 96% rename from src/_blog/090-go-ipfs-0-5-0/README.md rename to src/_blog/090-go-ipfs-0-5-0.md index 7e2b77d1..503f59cd 100644 --- a/src/_blog/090-go-ipfs-0-5-0/README.md +++ b/src/_blog/090-go-ipfs-0-5-0.md @@ -1,15 +1,15 @@ --- date: 2020-04-28 -url: /2020-04-28-go-ipfs-0-5-0/ +permalink: /2020-04-28-go-ipfs-0-5-0/ title: IPFS 0.5.0 is here! Our largest upgrade to IPFS yet description: author: Molly Mackinlay -header_image: 090-go-ipfs-0-5-0.png +header_image: /090-go-ipfs-0-5-0-header-image.png tags: - 'go-ipfs' --- -![Announcing IPFS 0.5](/header_images/090-go-ipfs-0-5-0.png) +![Announcing IPFS 0.5](/090-go-ipfs-0-5-0-header-image.png) _go-ipfs 0.5.0 is a major step forward on our journey toward a more efficient, secure, and resilient web to preserve and grow humanity’s knowledge._ @@ -40,7 +40,7 @@ Our performance work centered around **content routing**, the process of finding Here are a few of the improvements made in IPFS 0.5.0: -![Improvements to go-ipfs 0.5.0](/090-go-ipfs-0-5-0/0.5-Infographic.png) +![Improvements to go-ipfs 0.5.0](/090-go-ipfs-0-5-0-Infographic.png) - **Faster content discovery:** IPFS 0.5.0 makes finding and sharing data in the network much faster, thanks to large improvements to our [DHT logic](https://docs.ipfs.io/concepts/dht/). More efficient routing and providing—already 2-3x faster—lowers bandwidth usage and background traffic. We’ve also updated our experimental QUIC transport to reduce connection latency and round-trips—with the aim to make this the default next release! - **Speedy files transfers:** We sped up our file transfer mechanism, [Bitswap](https://docs.ipfs.io/concepts/bitswap/), to make sharing data between many nodes much faster. [Read more](https://blog.ipfs.io/2020-02-14-improved-bitswap-for-container-distribution/) about how we worked with Netflix to benchmark and stress-test these improvements! @@ -67,7 +67,7 @@ With our new testing and release process, IPFS 0.5.0 has already been put to use **_Matt Ober, Pinata:_** “IPFS 0.5 makes big improvements to Bitswap, which de-dupes data transfer between nodes. This means data providers like Pinata who are transferring a lot of data all around the world every day, can send each block only once and it gets to its destination. That cuts our bandwidth costs down significantly. And, it’s also faster.” -![Improved container image performance](/090-go-ipfs-0-5-0/container-image.png) +![Improved container image performance](/090-go-ipfs-0-5-0-container-image.png) **_Michael Godsey, Infura:_** “Our collaboration with Protocol Labs and the latest go-ipfs v0.5 release are essential to our upcoming premium IPFS product release later this year. The upgraded subdomain gateway support greatly improves the security of our offering while helping us support some great new features. The improvements to the DHT and stability of peering allow us to provide an even more reliable product and continue to get IPFS into the hands of decentralized application developers.” @@ -92,12 +92,13 @@ There is no way IPFS 0.5.0 could have been our biggest update yet without the he Also, a huge thank you to [everyone who contributed](https://github.com/ipfs/go-ipfs/blob/master/CHANGELOG.md#contributors) patches and improvements in this release, all **98** of you! We couldn’t have made this happen without your help and feedback. ❤ -[![IPFS Contributors](/090-go-ipfs-0-5-0/ipfs-contributors.png)](https://github.com/ipfs/go-ipfs/blob/master/CHANGELOG.md#contributors) +[![IPFS Contributors](/090-go-ipfs-0-5-0-ipfs-contributors.png)](https://github.com/ipfs/go-ipfs/blob/master/CHANGELOG.md#contributors) +. ## Want to learn more...or even, better get involved? We’d like to know what you think and help answer any questions you may have. [Please join us for a virtual meetup](https://www.meetup.com/San-Francisco-IPFS/events/270212268/) on **Friday, May 1st**, to deep-dive on the improvements in this release and field questions and feedback. -[![IPFS 0.5 Launch Meetup](/090-go-ipfs-0-5-0/Launch-Meetup.png)](https://www.meetup.com/San-Francisco-IPFS/events/270212268/) +[![IPFS 0.5 Launch Meetup](/090-go-ipfs-0-5-0-launch-Meetup.png)](https://www.meetup.com/San-Francisco-IPFS/events/270212268/) In the meantime, get started by [installing go-ipfs](https://dist.ipfs.io/#go-ipfs) or [upgrading to go-ipfs 0.5](https://docs.ipfs.io/recent-releases/go-ipfs-0-5/update-procedure) to see the improvements yourself! diff --git a/src/_blog/091-dev-exp/README.md b/src/_blog/091-dev-exp.md similarity index 98% rename from src/_blog/091-dev-exp/README.md rename to src/_blog/091-dev-exp.md index ce3415fe..cc6eb203 100644 --- a/src/_blog/091-dev-exp/README.md +++ b/src/_blog/091-dev-exp.md @@ -1,6 +1,6 @@ --- date: 2020-05-05 -url: /2020-05-05-developer-experience/ +permalink: /2020-05-05-developer-experience/ title: Improving the IPFS Developer experience description: author: Hector Sanjuan @@ -28,7 +28,7 @@ After discussion with active IPFS contributors and research into other OSS commu - New contributors to repositories will now receive automated responses on their first submission, giving context on the process outlined above and reminders for needed information. This will help reduce the number of round trips for contributors and reviewers/maintainers. - A [major review of the documentation](https://docs.ipfs.io/) site is already underway to provide better developer documentation for our major implementations and products. [Watch this space!](https://github.com/ipfs/docs/milestones) -![IPFS Autoresponder and labels](/091-dev-exp/labels-autoresponder.png) +![IPFS Autoresponder and labels](/091-dev-exp-labels-autoresponder.png) At the same time, there are some things that are NOT changing: diff --git a/src/_blog/092-launching-testground/README.md b/src/_blog/092-launching-testground.md similarity index 97% rename from src/_blog/092-launching-testground/README.md rename to src/_blog/092-launching-testground.md index 964cd062..86bbd7f3 100644 --- a/src/_blog/092-launching-testground/README.md +++ b/src/_blog/092-launching-testground.md @@ -1,15 +1,15 @@ --- date: 2020-05-06 -url: /2020-05-06-launching-testground/ +permalink: /2020-05-06-launching-testground/ title: Launching Testground v0.5 description: author: Raul Kripalani -header_image: 092-launching-testground.png +header_image: /092-launching-testground-header-image.png tags: - 'Testground' --- -![Launching Testground](/header_images/092-launching-testground.png) +![Launching Testground](/092-launching-testground-header-image.png) Testing peer-to-peer (p2p) systems is hard. Doing so reliably and reproducibly is even harder. Today, **we’re releasing [Testground v0.5](https://github.com/testground/testground/releases/tag/v0.5.0) to the world**. This is a huge milestone for us, and for the wider p2p ecosystem. In this post, we’ll walk you through what Testground is, how to get started, what’s coming next, and the backstory behind Testground itself. @@ -44,7 +44,7 @@ To illustrate the above, consider a 200-instance test run. With Kubernetes, it c The cherry on the top of all this is the **observation pipeline (experimental)**. Test plans can record raw data points or aggregate metrics (histograms, [EWMA](https://en.wikipedia.org/wiki/EWMA_chart), counters, etc.) about the system under test, as well as emit arbitrary output assets. **The Testground platform will harvest them and make them available for one-stop collection.** -![Testground Architecture](/092-launching-testground/launch_testground_architecture.png) +![Testground Architecture](/092-launching-testground-architecture.png)

Architecture diagram, focused on a test plan’s inputs and outputs, highlighting the circuitry of the observability pipeline

@@ -75,7 +75,7 @@ At the tail end of that sprint, we will produce v0.7 of the Testground Core, whi
Needless to say, you’re welcome to pitch in at any point in time! Continue reading to learn how. -![Testground flowchart](/092-launching-testground/launch_testground_flowchart.png) +![Testground flowchart](/092-launching-testground-flowchart.png) ## Getting involved diff --git a/src/_blog/093-ipfs-pinning-summit-recap/README.md b/src/_blog/093-ipfs-pinning-summit-recap.md similarity index 97% rename from src/_blog/093-ipfs-pinning-summit-recap/README.md rename to src/_blog/093-ipfs-pinning-summit-recap.md index 23b93c45..bfdfdbc5 100644 --- a/src/_blog/093-ipfs-pinning-summit-recap/README.md +++ b/src/_blog/093-ipfs-pinning-summit-recap.md @@ -1,10 +1,10 @@ --- date: 2020-05-13 -url: /2020-05-13-ipfs-pinning-summit-recap/ +permalink: /2020-05-13-ipfs-pinning-summit-recap/ title: IPFS Pinning Summit Recap description: author: Molly Mackinlay & Pooja Shah -header_image: 093-ipfs-pinning-summit-recap.png +header_image: /093-ipfs-pinning-summit-recap-header-image.png tags: - 'infrastructure' - 'pinning' @@ -15,7 +15,7 @@ tags: ---

- +

The first-ever [IPFS Pinning Summit](https://ipfspinningsummit.com/) brought together [IPFS pinning services](https://docs.ipfs.io/guides/concepts/pinning/), infra providers, and users for 2 days of presentations & meetings to discuss the current state of IPFS infrastructure, services, and tools - and the future opportunities in this space. diff --git a/src/_blog/094-gossipsub-v1.1/README.md b/src/_blog/094-gossipsub-v1.1.md similarity index 97% rename from src/_blog/094-gossipsub-v1.1/README.md rename to src/_blog/094-gossipsub-v1.1.md index 9a5f2c1f..c83ced15 100644 --- a/src/_blog/094-gossipsub-v1.1/README.md +++ b/src/_blog/094-gossipsub-v1.1.md @@ -1,10 +1,10 @@ --- date: 2020-05-20 -url: /2020-05-20-gossipsub-v1.1/ +permalink: /2020-05-20-gossipsub-v1.1/ title: Gossipsub v1.1 brings hardening extensions to PubSub description: author: David Dias -header_image: 094-gossipsub-v1.1-headerimage.jpeg +header_image: /094-gossipsub-v1.1-header-image.jpeg tags: - 'libp2p' - 'pubsub' @@ -12,7 +12,7 @@ tags: ---

- +

The gossip you’ve heard on the streets is correct, Gossipsub v1.1 is here and it packs several security hardening extensions along with new testing, documentation, and an updated specification. diff --git a/src/_blog/095-road-to-dht/README.md b/src/_blog/095-road-to-dht.md similarity index 97% rename from src/_blog/095-road-to-dht/README.md rename to src/_blog/095-road-to-dht.md index cac3b3f8..f3e11706 100644 --- a/src/_blog/095-road-to-dht/README.md +++ b/src/_blog/095-road-to-dht.md @@ -1,10 +1,10 @@ --- date: 2020-05-19 -url: /2020-05-19-road-to-dht/ +permalink: /2020-05-19-road-to-dht/ title: The Road to the New DHT description: author: Adin Schmahmann -header_image: 095-road-to-dht.png +header_image: /095-road-to-dht-header-image.png tags: - 'go-ipfs' - 'DHT' @@ -12,7 +12,7 @@ tags: ---

- +

At the end of April, we released our largest update to go-ipfs to date: [IPFS 0.5.0](https://blog.ipfs.io/2020-04-28-go-ipfs-0-5-0/). This upgrade brings major performance and reliability improvements to IPFS — especially on the content discovery and routing front. These gains are brought to you largely by our rework of the Distributed Hash Table (DHT) which powers most peer and content discovery in the IPFS Public Network. @@ -23,7 +23,7 @@ We’d like to take you through our journey to _re-write_ the DHT - from identif

- +

## First a refresher: What’s the DHT? @@ -62,7 +62,7 @@ With this analysis and the feedback synthesized from our core users and communit This meant some hard calls on prioritization: focusing our working groups on a targeted set of improvements to the DHT and routing logic to ensure we resolved these underlying performance and reliability concerns. In turn, we adjusted our product roadmap and stood up new core working groups, including one focused strictly on content routing and another on a new test infrastructure: [Testground](https://docs.testground.ai/).

- +

## Test, test, test diff --git a/src/_blog/096-js-ipfs-0.44/README.md b/src/_blog/096-js-ipfs-0.44.md similarity index 99% rename from src/_blog/096-js-ipfs-0.44/README.md rename to src/_blog/096-js-ipfs-0.44.md index 5f1009cc..8a09462a 100644 --- a/src/_blog/096-js-ipfs-0.44/README.md +++ b/src/_blog/096-js-ipfs-0.44.md @@ -1,8 +1,8 @@ --- date: 2020-05-21 -url: /2020-05-21-js-ipfs-0-44/ +permalink: /2020-05-21-js-ipfs-0-44/ title: js-ipfs 0.44.0 released -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png description: author: Alex Potsides tags: diff --git a/src/_blog/097-js-ipfs-0.46/README.md b/src/_blog/097-js-ipfs-0.46.md similarity index 98% rename from src/_blog/097-js-ipfs-0.46/README.md rename to src/_blog/097-js-ipfs-0.46.md index cfc7bfd2..7bca0914 100644 --- a/src/_blog/097-js-ipfs-0.46/README.md +++ b/src/_blog/097-js-ipfs-0.46.md @@ -1,8 +1,8 @@ --- date: 2020-06-08 -url: /2020-06-08-js-ipfs-0-46/ +permalink: /2020-06-08-js-ipfs-0-46/ title: js-IPFS 0.46.0 released with new faster bitswap and go-IPFS 0.5 compat -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png description: author: Alex Potsides tags: @@ -25,7 +25,7 @@ See [ipfs/js-ipfs-bitswap#204](https://github.com/ipfs/js-ipfs-bitswap/pull/204) The Bitswap module has had a bit of an overhaul and is now much faster at pulling blocks from other nodes across the network. Before, we waited a little while before sending our wantlist to newly connected peers—we’ve reduced that window and seen a massive speedup (smaller bars are better): -![Graphs showing Bitswap speedups](/097-js-ipfs-0.46/bitswap-speedup.png) +![Graphs showing Bitswap speedups](/097-js-ipfs-0.46-bitswap-speedup.png) As you can see, the new js-IPFS is about 3x faster at pulling large files from other nodes on the network than the previous release, and that increases to about 5x as the files get smaller. diff --git a/src/_blog/098-libp2p-in-2020/README.md b/src/_blog/098-libp2p-in-2020.md similarity index 98% rename from src/_blog/098-libp2p-in-2020/README.md rename to src/_blog/098-libp2p-in-2020.md index 52bbba0f..ebcf85af 100644 --- a/src/_blog/098-libp2p-in-2020/README.md +++ b/src/_blog/098-libp2p-in-2020.md @@ -1,7 +1,7 @@ --- date: 2020-06-09 -url: /2020-06-09-libp2p-in-2020/ -header_image: blog-header-libp2p.png +permalink: /2020-06-09-libp2p-in-2020/ +header_image: /header-image-libp2p.png title: libp2p in 2020 description: author: The libp2p Team @@ -84,13 +84,13 @@ Throughout the first half of the year, our top focus was supporting the needs of To support IPFS and all our other dapp users out there, we’ve improved libp2p’s content routing and connectivity to make finding and sharing content in distributed networks fast and reliable. This meant we needed to dive deep into major systems like the libp2p DHT, providing subsystem, NAT traversal, and more to optimize and refactor for performance. We’ve been collaborating closely with Protocol Labs’ IPFS and Testground teams to make this a reality. Read more about our progress in the [IPFS 0.5 launch](https://blog.ipfs.io/2020-04-28-go-ipfs-0-5-0/) post, and our path to get there in the [Road to the New DHT](https://blog.ipfs.io/2020-05-19-road-to-dht/) post! -![Content Routing Speed](/098-libp2p-in-2020/find-perf.png) +![Content Routing Speed](/098-libp2p-in-2020-find-perf.png) ### Launching Testground to the world What is [Testground](https://blog.ipfs.io/2020-05-06-launching-testground/) you ask? Only the coolest new testing tool for large-scale p2p networks! When starting our network upgrade plans, it was clear that the scope and complexity of changes we’d need to make to core IPFS network functions would be impossible to optimize without powerful testing tools to simulate each change to network performance at scale. We couldn’t find a tool with the scale and configurability we needed, so we built the testing tool we needed, and made it modular and system agnostic just like libp2p so other p2p networks can take advantage of this new OSS infrastructure too! -![Launching Testground](/header_images/092-launching-testground.png) +![Launching Testground](/092-launching-testground-header-image.png) ### Gossipsub security enhancements @@ -100,7 +100,7 @@ This work is of extreme importance as our adopters (e.g., Filecoin and Ethereum You can find the [specification](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub) and [implementation](https://github.com/libp2p/go-libp2p-pubsub/) on GitHub. We will be releasing a report that fully describes how we identified the attack vectors, developed the motivations and went through implementing, testing, evaluating under multiple network conditions and got it audited. Stay tuned. -![Gossipsub v1.1](/header_images/094-gossipsub-v1.1-headerimage+grid.jpeg) +![Gossipsub v1.1](/094-gossipsub-v1.1-header-image+grid.jpeg) ### Going forward diff --git a/src/_blog/099-identity-ipfs-ion/README.md b/src/_blog/099-identity-ipfs-ion.md similarity index 94% rename from src/_blog/099-identity-ipfs-ion/README.md rename to src/_blog/099-identity-ipfs-ion.md index fe611269..ed1fabb7 100644 --- a/src/_blog/099-identity-ipfs-ion/README.md +++ b/src/_blog/099-identity-ipfs-ion.md @@ -1,7 +1,7 @@ --- date: 2020-06-11 -url: /2020-06-11-identity-ipfs-ion/ -header_image: blog-header-ion.png +permalink: /2020-06-11-identity-ipfs-ion/ +header_image: /header-image-ion.png title: Decentralized Identity, IPFS and ION description: author: Dietrich Ayala @@ -10,7 +10,7 @@ tags: - 'community' --- -![IPFS logo and ION logo](./ipfs-ion-header.png) +![IPFS logo and ION logo](/099-identity-ipfs-ion-header.png) Identity is a key part of how we all interact with each other on the internet every day—sometimes every moment of every day. And sometimes each raging moment as we do the “forgot your password?” dance yet again. Regardless, forging a path forward for user-controlled online identity is a table-stakes requirement for the dweb to succeed. @@ -22,13 +22,13 @@ However, today we’re celebrating the launch of a decentralized identity protoc Microsoft has been increasingly present in open-source tools and services in the past few years, and has now [launched a standards-based decentralized identity service called ION](https://techcommunity.microsoft.com/t5/identity-standards-blog/ion-booting-up-the-network/ba-p/1441552). -![ION logo](./ion-logo.png) +![ION logo](/099-identity-ipfs-ion-logo.png) ION has been under development for over a year, and is an instance implementation of [Sidetree (a blockchain-agnostic distributed PKI protocol)](https://github.com/decentralized-identity/sidetree) that runs on the Bitcoin blockchain. And it stores transaction data on IPFS. -![ION architecture diagram](./ion-architecture.png) +![ION architecture diagram](/099-identity-ipfs-ion-architecture.png) Like HTTP, IPFS does not have user identity built into the protocol. However, IPFS provides resiliency, validation, and future-proofing features that HTTP cannot: diff --git a/src/_blog/100-IPFS-mobile-design-guidelines/README.md b/src/_blog/100-IPFS-mobile-design-guidelines.md similarity index 93% rename from src/_blog/100-IPFS-mobile-design-guidelines/README.md rename to src/_blog/100-IPFS-mobile-design-guidelines.md index 1ccb1d91..7355b434 100644 --- a/src/_blog/100-IPFS-mobile-design-guidelines/README.md +++ b/src/_blog/100-IPFS-mobile-design-guidelines.md @@ -1,7 +1,7 @@ --- date: 2020-06-25 -url: /2020-06-25-IPFS-mobile-design-guidelines/ -header_image: 100-mobile-design-guidelines-header.png +permalink: /2020-06-25-IPFS-mobile-design-guidelines/ +header_image: /100-mobile-design-guidelines-header-image.png title: IPFS Mobile Design Guidelines description: author: Jim Kosem, Dietrich Ayala @@ -67,9 +67,9 @@ From the research, we developed an initial set of principles to address issues a We’ve also created a handy cheat sheet for the design principles which you can download below. -![Design principles cheat sheet](./cheat-sheet-preview.png) +![Design principles cheat sheet](/100-IPFS-mobile-design-guidelines-cheat-sheet-preview.png) -_Download full size in [PDF](./cheat-sheet.pdf) or [PNG](./cheat-sheet.png)_ +_Download full size in [PDF](/100-IPFS-mobile-design-guidelines-cheat-sheet.pdf) or [PNG](/100-IPFS-mobile-design-guidelines-cheat-sheet.png)_ ### Scenarios @@ -81,7 +81,7 @@ With the design principles developed, we then created use case scenarios to illu - IPFS’s unique ability to transfer files without centralised servers can help offline users in particular. - A safe means for helping users connect with and contact one another. -![Illustrations of the Scenarios](./scenarios.png) +![Illustrations of the Scenarios](/100-IPFS-mobile-design-guidelines-scenarios.png) _Illustrations of the Scenarios_ @@ -97,7 +97,7 @@ Read the full conclusion of [these findings](https://protocol-labs.gitbook.io/ip While we refined our understanding of IPFS and P2P mobile design with this project, we need more research to realise the full value of the network to users. This is especially true for emerging markets and under-served and marginalised users. Their need for data privacy, portability, and stability is as great, if not greater, than for those where the internet works most of the time. These users also serve as a way to understand not only under-explored markets, but also more resilient methods of computing that helps everyone. -![Illustrations of the design principles](./principles.png) +![Illustrations of the design principles](/100-IPFS-mobile-design-guidelines-principles.png) _Illustrations of the design principles_ diff --git a/src/_blog/100-june-meetup-recap/README.md b/src/_blog/100-june-meetup-recap.md similarity index 97% rename from src/_blog/100-june-meetup-recap/README.md rename to src/_blog/100-june-meetup-recap.md index 6f1c0352..94b3e39b 100644 --- a/src/_blog/100-june-meetup-recap/README.md +++ b/src/_blog/100-june-meetup-recap.md @@ -1,6 +1,6 @@ --- date: 2020-06-23 -url: /2020-06-23-june-meetup-recap/ +permalink: /2020-06-23-june-meetup-recap/ title: Watch exclusive content from our June meetup! description: author: Jenn Turner diff --git a/src/_blog/101-go-ipfs-0-6-0/README.md b/src/_blog/101-go-ipfs-0-6-0.md similarity index 99% rename from src/_blog/101-go-ipfs-0-6-0/README.md rename to src/_blog/101-go-ipfs-0-6-0.md index b04b6699..fd0e57cd 100644 --- a/src/_blog/101-go-ipfs-0-6-0/README.md +++ b/src/_blog/101-go-ipfs-0-6-0.md @@ -1,6 +1,6 @@ --- date: 2020-06-26 -url: /2020-06-26-go-ipfs-0-6-0/ +permalink: /2020-06-26-go-ipfs-0-6-0/ title: IPFS 0.6.0 is here! QUIC, Noise, Peering and more! description: author: Jacob Heun diff --git a/src/_blog/102-case-study-audius/README.md b/src/_blog/102-case-study-audius.md similarity index 93% rename from src/_blog/102-case-study-audius/README.md rename to src/_blog/102-case-study-audius.md index d090e3a6..9cae0deb 100644 --- a/src/_blog/102-case-study-audius/README.md +++ b/src/_blog/102-case-study-audius.md @@ -1,17 +1,17 @@ --- date: 2020-07-09 -url: /2020-07-09-case-study-audius/ +permalink: /2020-07-09-case-study-audius/ title: Introducing the IPFS Case Study Series! description: author: Jessica Schilling -header_image: 102-case-study-audius.png +header_image: /102-case-study-audius-header-image.png tags: - 'community' - 'case study' - 'streaming' --- -![IPFS Case Study Seriew - Audius](./case-study-audius.jpg) +![IPFS Case Study Seriew - Audius](/102-case-study-audius-header-image.jpg) ## You asked, we delivered! diff --git a/src/_blog/102-case-study-audius/case-study-audius.jpg b/src/_blog/102-case-study-audius/case-study-audius.jpg deleted file mode 100644 index 967c7ea7..00000000 Binary files a/src/_blog/102-case-study-audius/case-study-audius.jpg and /dev/null differ diff --git a/src/_blog/102-gossipsub-reports/README.md b/src/_blog/102-gossipsub-reports.md similarity index 98% rename from src/_blog/102-gossipsub-reports/README.md rename to src/_blog/102-gossipsub-reports.md index 77a4abed..fc34b258 100644 --- a/src/_blog/102-gossipsub-reports/README.md +++ b/src/_blog/102-gossipsub-reports.md @@ -1,8 +1,8 @@ --- date: 2020-07-07 -url: /gossipsubv1.1-eval-report-and-security-audit/ +permalink: /gossipsubv1.1-eval-report-and-security-audit/ title: Comprehensive Evaluation of Gossipsub v1.1 -header_image: 102-header-image-gossipsub-reports.png +header_image: /102-gossipsub-reports-header-image.png description: author: David Dias tags: diff --git a/src/_blog/104-dht-deep-dive/README.md b/src/_blog/104-dht-deep-dive.md similarity index 98% rename from src/_blog/104-dht-deep-dive/README.md rename to src/_blog/104-dht-deep-dive.md index fa01728b..9b4d3678 100644 --- a/src/_blog/104-dht-deep-dive/README.md +++ b/src/_blog/104-dht-deep-dive.md @@ -1,10 +1,10 @@ --- date: 2020-07-20 -url: /2020-07-20-dht-deep-dive/ +permalink: /2020-07-20-dht-deep-dive/ title: 'IPFS 0.5 Content Routing Improvements: Deep Dive' description: author: Adin Schmahmann -header_image: 104-dht-deep-dive.png +header_image: /104-dht-deep-dive-header-image.png tags: - 'go-ipfs' - content routing' @@ -12,8 +12,8 @@ tags: - 'Kademlia' --- -

- +

+

At the end of April, we released our largest update to go-ipfs to date: [IPFS 0.5](https://blog.ipfs.io/2020-04-28-go-ipfs-0-5-0/). While there have been many improvements, the changes to IPFS’s Distributed Hash Table (DHT) were especially critical to improving the performance and stability of finding data in IPFS. For some background on how we arrived at the most recent set of DHT changes, take a look at [The Road to the New DHT](https://blog.ipfs.io/2020-05-19-road-to-dht/), or try them out yourself in the [latest version of go-ipfs](https://dist.ipfs.io/#go-ipfs). @@ -140,8 +140,8 @@ Throughout the development process we ran many Testground tests to get an unders As can be seen in the graphs, the most drastic changes are to 95th percentile lookup times and to the operations that spent more time doing their lookups and could not terminate as early. This meant IPFS Provide and IPNS Put, which require actually completing a search through the network, got a very large boost (for Provide 24x speedup on average and 33x speedup for the 95th percentile). This was followed by IPNS Get which needs to find many records, then Find Peer which is looking for one very specific record, and finally the time to find just one IPFS Provider record was sped up by 2.2x on average and 6.4x for the 95th percentile.

- - + +

## Parting Thoughts diff --git a/src/_blog/104-js-ipfs-0.48/README.md b/src/_blog/104-js-ipfs-0.48.md similarity index 99% rename from src/_blog/104-js-ipfs-0.48/README.md rename to src/_blog/104-js-ipfs-0.48.md index 1434a220..c7673654 100644 --- a/src/_blog/104-js-ipfs-0.48/README.md +++ b/src/_blog/104-js-ipfs-0.48.md @@ -1,8 +1,8 @@ --- date: 2020-07-20 -url: /2020-07-20-js-ipfs-0-48/ +permalink: /2020-07-20-js-ipfs-0-48/ title: js-IPFS 0.48.0 released with connectivity improvements and smaller blockstore -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png description: author: Alex Potsides tags: diff --git a/src/_blog/105-deprecating-secio/README.md b/src/_blog/105-deprecating-secio.md similarity index 99% rename from src/_blog/105-deprecating-secio/README.md rename to src/_blog/105-deprecating-secio.md index 81b3a872..000e3470 100644 --- a/src/_blog/105-deprecating-secio/README.md +++ b/src/_blog/105-deprecating-secio.md @@ -1,6 +1,6 @@ --- date: 2020-08-07 -url: /2020-08-07-deprecating-secio/ +permalink: /2020-08-07-deprecating-secio/ title: We're removing support for the SECIO security transport description: author: Jacob Heun diff --git a/src/_blog/106-ipfs-meetup-aug2020/README.md b/src/_blog/106-ipfs-meetup-aug2020.md similarity index 98% rename from src/_blog/106-ipfs-meetup-aug2020/README.md rename to src/_blog/106-ipfs-meetup-aug2020.md index 175adee0..a90be799 100644 --- a/src/_blog/106-ipfs-meetup-aug2020/README.md +++ b/src/_blog/106-ipfs-meetup-aug2020.md @@ -1,6 +1,6 @@ --- date: 2020-08-14 -url: /2020-08-14-ipfs-meetup-aug2020/ +permalink: /2020-08-14-ipfs-meetup-aug2020/ title: Reliving the IPFS August 2020 Meetup description: author: Emily Vaughan, Dietrich Ayala diff --git a/src/_blog/107-nix-ipfs-milestone-1/README.md b/src/_blog/107-nix-ipfs-milestone-1.md similarity index 98% rename from src/_blog/107-nix-ipfs-milestone-1/README.md rename to src/_blog/107-nix-ipfs-milestone-1.md index 227c8f6c..298968da 100644 --- a/src/_blog/107-nix-ipfs-milestone-1/README.md +++ b/src/_blog/107-nix-ipfs-milestone-1.md @@ -1,7 +1,7 @@ --- date: 2020-09-08 -url: /2020-09-08-nix-ipfs-milestone-1/ -header_image: 107-nix-ipfs.jpg +permalink: /2020-09-08-nix-ipfs-milestone-1/ +header_image: /107-nix-ipfs-header-image.jpg title: Nix × IPFS - Milestone 1 description: author: John Ericson diff --git a/src/_blog/108-js-ipfs-0.50.0/README.md b/src/_blog/108-js-ipfs-0.50.0.md similarity index 98% rename from src/_blog/108-js-ipfs-0.50.0/README.md rename to src/_blog/108-js-ipfs-0.50.0.md index d9417df8..f4783dc9 100644 --- a/src/_blog/108-js-ipfs-0.50.0/README.md +++ b/src/_blog/108-js-ipfs-0.50.0.md @@ -1,8 +1,8 @@ --- date: 2020-09-14 -url: /2020-09-14-js-ipfs-0-50/ +permalink: /2020-09-14-js-ipfs-0-50/ title: js-IPFS 0.50.0 runs in shared webworkers and has faster pinning -header_image: js-ipfs-placeholder.png +header_image: /header-image-js-ipfs-placeholder.png description: author: Alex Potsides tags: @@ -48,7 +48,7 @@ As you add and remove pins, this DAG grows and shrinks. [CID]s of intermediate n `js-ipfs@0.50.0` has changed the default storage of pins to use the datastore instead of a [DAG] and has seen a corresponding speedup as the number of pinned blocks in your repo increases:

- +

In the diagram above you can see that as the number of pinned items increases, so does the time it takes to add the next pin. There's a steep increase at 8,192 pins, which is when the first bucket is considered full and multiple buckets are created which then involves more operations to add the next pin. diff --git a/src/_blog/109-ipfs-meetup-sep2020/README.md b/src/_blog/109-ipfs-meetup-sep2020.md similarity index 98% rename from src/_blog/109-ipfs-meetup-sep2020/README.md rename to src/_blog/109-ipfs-meetup-sep2020.md index 680ba19e..f29d83d0 100644 --- a/src/_blog/109-ipfs-meetup-sep2020/README.md +++ b/src/_blog/109-ipfs-meetup-sep2020.md @@ -1,6 +1,6 @@ --- date: 2020-09-18 -url: /2020-09-18-ipfs-meetup-sep2020/ +permalink: /2020-09-18-ipfs-meetup-sep2020/ title: The IPFS Remember September 2020 Meetup description: author: Dietrich Ayala diff --git a/src/_blog/110-go-ipfs-0-7-0/README.md b/src/_blog/110-go-ipfs-0-7-0.md similarity index 98% rename from src/_blog/110-go-ipfs-0-7-0/README.md rename to src/_blog/110-go-ipfs-0-7-0.md index b581f6f4..347a86ae 100644 --- a/src/_blog/110-go-ipfs-0-7-0/README.md +++ b/src/_blog/110-go-ipfs-0-7-0.md @@ -1,10 +1,10 @@ --- date: 2020-09-24 -url: /2020-09-24-go-ipfs-0-7-0/ +permalink: /2020-09-24-go-ipfs-0-7-0/ title: IPFS 0.7.0, the SECIO retirement edition, is here! description: author: Jacob Heun & Adin Schmahmann -avatarUrl: /header_images/blog-placeholder.png +avatarpermalink: /header-image-placeholder.png tags: - 'go-ipfs' - 'breaking change' diff --git a/src/_blog/111-js-ipfs-0-51-0/.gitkeep b/src/_blog/111-js-ipfs-0-51-0/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/112-dht-hardening/.gitkeep b/src/_blog/112-dht-hardening/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/113-community-rfp/.gitkeep b/src/_blog/113-community-rfp/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/114-ipfs-in-2021/.gitkeep b/src/_blog/114-ipfs-in-2021/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/115-protoschool-merkle-dags/.gitkeep b/src/_blog/115-protoschool-merkle-dags/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/116-ipfs-and-igalia-collaborate-on-dweb-in-browsers/.gitkeep b/src/_blog/116-ipfs-and-igalia-collaborate-on-dweb-in-browsers/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/academicpapers/README.md b/src/_blog/academicpapers.md similarity index 100% rename from src/_blog/academicpapers/README.md rename to src/_blog/academicpapers.md diff --git a/src/_blog/events/README.md b/src/_blog/events.md similarity index 100% rename from src/_blog/events/README.md rename to src/_blog/events.md diff --git a/src/_blog/115-protoschool-merkle-dags/explore-merkle-dags-at-protoschool.md b/src/_blog/explore-merkle-dags-at-protoschool.md similarity index 97% rename from src/_blog/115-protoschool-merkle-dags/explore-merkle-dags-at-protoschool.md rename to src/_blog/explore-merkle-dags-at-protoschool.md index 275bb085..942eb27c 100644 --- a/src/_blog/115-protoschool-merkle-dags/explore-merkle-dags-at-protoschool.md +++ b/src/_blog/explore-merkle-dags-at-protoschool.md @@ -1,14 +1,14 @@ --- date: 2021-01-14 07:00:00 +0000 -url: "/2021-01-14-explore-merkle-dags-at-protoschool/" +permalink: '/2021-01-14-explore-merkle-dags-at-protoschool/' translationKey: '' tags: ProtoSchool, IPLD, DAG -header_image: "/115-protoschool-merkle-dags.png" +header_image: '/115-protoschool-merkle-dags.png' title: Explore Merkle DAGs at ProtoSchool description: '' author: Teri Chadbourne - --- + The [ProtoSchool](https://proto.school) team is pleased to announce the launch of a shiny new multiple-choice tutorial on [Merkle DAGs](https://proto.school/merkle-dags), the cornerstone of our freshly launched [IPLD (InterPlanetary Data) course](https;//proto.school/course/ipld). 🎉 This new content is inspired by feedback on our Decentralized Data Structures tutorial, which originally explored both content addressing and data structures. Based on learner feedback, we’ve split the content in two! You’ll now find the majority of our original content in our rebranded tutorial, [Content Addressing on the Decentralized Web](https://proto.school/content-addressing), which highlights the key differences in how data is shared and retrieved on the centralized web and decentralized web. Meanwhile, our brand new tutorial, [Merkle DAGs: Structuring Data for the Distributed Web](https://proto.school/merkle-dags), is chock full of new content exploring the intricacies of the magical data structure that much of the decentralized web relies on. @@ -37,15 +37,12 @@ Prefer your learning in video format? Check out these presentations on the super 🎬 [Understanding How IPFS Deals with Files](https://youtu.be/Z5zNPwMDYGg) (IPFS Camp 2019): This presentation by Alan Shaw and Mikeal Rogers offers a deep dive on key IPFS concepts like immutability, content addressing, hashing, the anatomy of CIDs, what the heck a Merkle DAG is, and how chunk size affects file imports. It also covers the joys and pitfalls of the Mutable File System (MFS), the layer of abstraction in IPFS that lets you work with immutable files and directories as if you were using a traditional name-based file system. -
Video: Content-Addressed Distributed Data Structures Video: How Merkle Trees Enable the Distributed Web Video: Understanding How IPFS Deals with Files
- - ## Help us improve ProtoSchool ProtoSchool is a team effort, and we depend on folks in the IPFS and dweb community to outline new content, add new features, fix bugs, catch typos, and test-drive new tutorials like this one. There are many ways to [contribute to the project](https://proto.school/contribute), no matter your background, and our new multiple-choice format makes it super easy to [create new tutorials](https://proto.school/build) without any coding experience. In fact, the awesome Mitch Wagner, who created our latest tutorial, built it with the help of our user-friendly ProtoWizard CLI! @@ -54,4 +51,4 @@ ProtoSchool is a team effort, and we depend on folks in the IPFS and dweb commun One of the easiest ways to help is by sharing your feedback as you explore our tutorials. You’ll find a link at the bottom of every lesson to help you submit your suggestions. -We can’t wait to hear what you think of the [new Merkle DAG tutorial](https://proto.school/merkle-dags)! \ No newline at end of file +We can’t wait to hear what you think of the [new Merkle DAG tutorial](https://proto.school/merkle-dags)! diff --git a/src/_blog/112-dht-hardening/hardening-the-ipfs-public-dht-against-eclipse-attacks.md b/src/_blog/hardening-the-ipfs-public-dht-against-eclipse-attacks.md similarity index 98% rename from src/_blog/112-dht-hardening/hardening-the-ipfs-public-dht-against-eclipse-attacks.md rename to src/_blog/hardening-the-ipfs-public-dht-against-eclipse-attacks.md index 688934a0..31b2a7bc 100644 --- a/src/_blog/112-dht-hardening/hardening-the-ipfs-public-dht-against-eclipse-attacks.md +++ b/src/_blog/hardening-the-ipfs-public-dht-against-eclipse-attacks.md @@ -1,14 +1,14 @@ --- date: 2020-10-30 06:00:00 +0000 -url: "/2020-10-30-dht-hardening/" +permalink: '/2020-10-30-dht-hardening/' translationKey: '' tags: libp2p, DHT, security -header_image: "/112-dht-hardening.jpg" +header_image: '/112-dht-hardening.jpg' title: Hardening the IPFS public DHT against eclipse attacks description: '' author: Jacob Heun - --- + A major focus of IPFS for 2020 has been improving Content Routing as the network has continued to scale. While we've made [significant improvements](https://blog.ipfs.io/2020-07-20-dht-deep-dive/) to the speed of requests on the DHT, another crucial focus for us has been on the security of the network. During our work leading up to the release of go-ipfs 0.5, we were contacted by Bernd Prünster and Alexander Marsalek at [A-SIT](https://www.a-sit.at) and the [Graz University of Technology](https://tugraz.at) to advise us of an attack they had discovered during their research targeting go-ipfs 0.4.23 that would allow an attacker with minimal resources to eclipse any node on the public DHT. Over the past 3 minor releases of go-ipfs (0.5, 0.6 and 0.7), we've been collaborating closely with Bernd and Alexander, which has enabled us to release incremental improvements that have mitigated their original attack and increased the cost and difficulty of such attacks by several orders of magnitude. Today we'll dive into the attack and the various mitigations we've released. If you would like to read the full paper, "Total Eclipse of the Heart – Disrupting the InterPlanetary File System", you can find it at the [TU Graz Research Portal](https://graz.pure.elsevier.com/en/publications/total-eclipse-of-the-heart-disrupting-the-interplanetary-file-sys). ## Mitigating the attack diff --git a/src/_blog/116-ipfs-and-igalia-collaborate-on-dweb-in-browsers/ipfs-and-igalia-collaborate-on-dweb-in-browsers.md b/src/_blog/ipfs-and-igalia-collaborate-on-dweb-in-browsers.md similarity index 81% rename from src/_blog/116-ipfs-and-igalia-collaborate-on-dweb-in-browsers/ipfs-and-igalia-collaborate-on-dweb-in-browsers.md rename to src/_blog/ipfs-and-igalia-collaborate-on-dweb-in-browsers.md index bc4fda4a..67358714 100644 --- a/src/_blog/116-ipfs-and-igalia-collaborate-on-dweb-in-browsers/ipfs-and-igalia-collaborate-on-dweb-in-browsers.md +++ b/src/_blog/ipfs-and-igalia-collaborate-on-dweb-in-browsers.md @@ -1,25 +1,26 @@ --- date: 2021-01-15 07:00:00 +0000 -url: "/2021-01-15-ipfs-and-igalia-collaborate-on-dweb-in-browsers/" +url: '/2021-01-15-ipfs-and-igalia-collaborate-on-dweb-in-browsers/' translationKey: '' tags: community, browsers -header_image: "/ipfs-in-browsers-1.png" +header_image: '/ipfs-and-igalia-collaborate-on-dweb-in-browsers-header-image.png' title: IPFS and Igalia collaborate on dweb in browsers -description: IPFS and Igalia started a collaboration to improve web platform support +description: + IPFS and Igalia started a collaboration to improve web platform support in Chromium, Firefox, and WebKit and help the distributed web community. This blog post provides an overview of the 2020 accomplishments, as well as future work. author: Frédéric Wang, Dietrich Ayala - --- + ## TL;DR -* IPFS and [Igalia](https://www.igalia.com/) started a collaboration that will continue during 2021. -* [Distributed web schemes have been safelisted in Chrome 86](https://www.chromestatus.com/feature/4776602869170176)’s implementation of [custom handlers](https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers) and [registered at IANA](https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml). -* Chrome 89 will allow browser extensions to register cross-origin handlers or handlers for schemes with prefix `ext+`. Refinement is pending for the [permission UI](https://bugs.chromium.org/p/chromium/issues/detail?id=1079333). -* Firefox 84 marks `http://*.localhost/` URLs as [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts), which means websites loaded from local [subdomain gateway](https://docs.ipfs.io/how-to/address-ipfs-on-web/#subdomain-gateway) will have access to the same Web APIs as HTTPS version. -* Firefox 84 has improved support for [loading locally delivered mixed-resources](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content#Loading_locally_delivered_mixed-resources). Patches have also been submitted to WebKit but are pending on reviews and discussions. -* Work is in progress to improve Chromium’s consistency and specification compliance regarding the notion of [secure contexts](https://w3c.github.io/webappsec-secure-contexts/), including removing non-standard [localhost](https://chromestatus.com/feature/5698580851458048) [names](https://chromestatus.com/feature/5668106045227008). -* Miscellaneous other fixes have landed for the Firefox and Chromium’s implementations of custom handlers. +- IPFS and [Igalia](https://www.igalia.com/) started a collaboration that will continue during 2021. +- [Distributed web schemes have been safelisted in Chrome 86](https://www.chromestatus.com/feature/4776602869170176)’s implementation of [custom handlers](https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers) and [registered at IANA](https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml). +- Chrome 89 will allow browser extensions to register cross-origin handlers or handlers for schemes with prefix `ext+`. Refinement is pending for the [permission UI](https://bugs.chromium.org/p/chromium/issues/detail?id=1079333). +- Firefox 84 marks `http://*.localhost/` URLs as [secure context](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts), which means websites loaded from local [subdomain gateway](https://docs.ipfs.io/how-to/address-ipfs-on-web/#subdomain-gateway) will have access to the same Web APIs as HTTPS version. +- Firefox 84 has improved support for [loading locally delivered mixed-resources](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content#Loading_locally_delivered_mixed-resources). Patches have also been submitted to WebKit but are pending on reviews and discussions. +- Work is in progress to improve Chromium’s consistency and specification compliance regarding the notion of [secure contexts](https://w3c.github.io/webappsec-secure-contexts/), including removing non-standard [localhost](https://chromestatus.com/feature/5698580851458048) [names](https://chromestatus.com/feature/5668106045227008). +- Miscellaneous other fixes have landed for the Firefox and Chromium’s implementations of custom handlers. ## Background @@ -115,8 +116,8 @@ For now, due to an existing [permission UI bug](https://bugs.chromium.org/p/chro The issue with redirected URLs not behaving like normal URLs is a bit more tricky and can come from several reasons. For local HTTP gateways, such as the one provided by [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop#ipfs-desktop), one of the explanations is that browsers used to not treat these local URLs as secure contexts and thus block various web platform features. This was [changed three years ago in Chrome](https://www.chromestatus.com/feature/6269417340010496) and specifications were updated accordingly. More precisely: -* The definition of [potentially trustworthy origins](https://w3c.github.io/webappsec-secure-contexts/#potentially-trustworthy-origin) includes the ones whose hosts are loopback IPv4 and IPv6 addresses and (optionally) `localhost` and `*.localhost` names. -* This optional behavior is conditioned on the fact that browsers override native DNS when [resolving localhost names](https://w3c.github.io/webappsec-secure-contexts/#localhost). +- The definition of [potentially trustworthy origins](https://w3c.github.io/webappsec-secure-contexts/#potentially-trustworthy-origin) includes the ones whose hosts are loopback IPv4 and IPv6 addresses and (optionally) `localhost` and `*.localhost` names. +- This optional behavior is conditioned on the fact that browsers override native DNS when [resolving localhost names](https://w3c.github.io/webappsec-secure-contexts/#localhost). Mozilla has been supportive of this change. The case of Loopback IP addresses has been implemented since Firefox 55, but as this happens with limited development resources and prioritization, the work for localhost names had never been finished. One of the difficulties being that many existing network tests do not assume the above behavior and require some adjustments to keep passing. After several attempts, the [main patches landed without being reverted](https://bugzilla.mozilla.org/show_bug.cgi?id=1220810) and is released in the latest version of Firefox. @@ -130,69 +131,68 @@ In Chromium, there were [at least 6 implementations of “secure”](https://bug As usual, performing this kind of effort leads to a lot of side tasks: community and specification discussion, code clean up and refactoring, documentation improvement, and other bug fixes. Here are Chromium bugs fixed that are relevant for custom handlers and interoperability with Firefox: -* [Make service workers work with custom handlers](https://chromium-review.googlesource.com/c/chromium/src/+/2487107) -* [Do not remove %s token when validating (un)registerProtocolHandler’s URL](https://chromium-review.googlesource.com/c/chromium/src/+/2335434) -* [percent-encode U+0020 SPACE when in URLs computed by custom protocol handlers](https://chromestatus.com/feature/5678518908223488) -* [percent-encode the delete character when parsing URLs](https://chromestatus.com/feature/5651438652882944) +- [Make service workers work with custom handlers](https://chromium-review.googlesource.com/c/chromium/src/+/2487107) +- [Do not remove %s token when validating (un)registerProtocolHandler’s URL](https://chromium-review.googlesource.com/c/chromium/src/+/2335434) +- [percent-encode U+0020 SPACE when in URLs computed by custom protocol handlers](https://chromestatus.com/feature/5678518908223488) +- [percent-encode the delete character when parsing URLs](https://chromestatus.com/feature/5651438652882944) Finally, for both Chromium and Firefox, [the title argument has been removed from registerProtocolHandler()](https://chromestatus.com/feature/5634386663833600) as per [Mozilla's suggestion](https://github.com/whatwg/html/pull/5425). If you are interested in an exhaustive list of contributions related to this work, here it comes: -### Chromium +### Chromium -* [[Extensions] Fix broken links in documentation on writing a new API](https://chromium-review.googlesource.com/c/chromium/src/+/2167395) -* [[Extensions] Fix typos in chrome.test.sendMessage() doc](https://chromium-review.googlesource.com/c/chromium/src/+/2323684) -* [Fix test for RegisterProtocolHandlerDifferentOrigin](https://chromium-review.googlesource.com/c/chromium/src/+/2299229) -* [Do not remove %s token when validating (un)registerProtocolHandler's URL](https://chromium-review.googlesource.com/c/chromium/src/+/2335434) -* [percent-encode U+0020 SPACE when using a protocol handler](https://chromium-review.googlesource.com/c/chromium/src/+/2324126) -* [percent-encode U+007F in cannot-be-a-base-URL path and fragment states](https://chromium-review.googlesource.com/c/chromium/src/+/2324425) -* [Add WPT tests for registerProtocolHandler and 'web+' schemes](https://chromium-review.googlesource.com/c/chromium/src/+/2371632) -* [2362802: Introduce common browser/web API for validation of custom handlers](https://chromium-review.googlesource.com/c/chromium/src/+/2362802) -* [2153064: Safelist distributed web schemes for "registerProtocolHandler"](https://chromium-review.googlesource.com/c/chromium/src/+/2153064) -* [2379511: Remove references to ServiceWorkerRequestHandler/ServiceWorkerNavigationLoader](https://chromium-review.googlesource.com/c/chromium/src/+/2379511) -* [2487107: Reland "Make custom protocol handlers work with service workers' fetch event"](https://chromium-review.googlesource.com/c/chromium/src/+/2487107) -* [2157531: Remove the title argument from registerProtocolHandler()](https://chromium-review.googlesource.com/c/chromium/src/+/2157531) -* [2287304: Add custom security levels for registerProtocolHandler](https://chromium-review.googlesource.com/c/chromium/src/+/2287304) -* [2560305: Add registerProtocolHandler for extension-specific features](https://chromium-review.googlesource.com/c/chromium/src/+/2560305) -* [2560953: Prepare code to improve handling of potentially trustworthy url/origin](https://chromium-review.googlesource.com/c/chromium/src/+/2560953) -* [2563492: Limit about: URLs that are treated as potentially trustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2563492) -* [2563759: Remove content::IsPotentiallyTrustworthyOrigin](https://chromium-review.googlesource.com/c/chromium/src/+/2563759) -* [2570568: Remove special handling of localhost6 and localhost6.localdomain6](https://chromium-review.googlesource.com/c/chromium/src/+/2570568) -* [2580067: Use network::IsOriginPotentiallyTrustworthy in Insecure Input Tab Helper](https://chromium-review.googlesource.com/c/chromium/src/+/2580067) -* [2563683: Treat data: URLs as potentially trustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2563683) -* [2563883: Remove blink::network_utils::IsOriginSecure](https://chromium-review.googlesource.com/c/chromium/src/+/2563883) -* [2577688: Remove special handling of localhost.localdomain](https://chromium-review.googlesource.com/c/chromium/src/+/2577688) -* [2587738: Remove SecurityPolicy::IsUrlTrustworthySafelisted()](https://chromium-review.googlesource.com/c/chromium/src/+/2587738) -* [2332675: Restrict protocol handler to potentially trustworthy URLs](https://chromium-review.googlesource.com/c/chromium/src/+/2332675) -* [2595424: Use a standard scheme to test potential trustworthiness](https://chromium-review.googlesource.com/c/chromium/src/+/2595424) -* [2593629: Add tests for SecurityOrigin::IsSecure and network::Is*PotentiallyTrustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2593629) -* [2610100: Add tests for SecurityOrigin::IsPotentiallyTrustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2610100) -* [2612947: Remove SecurityPolicy APIs for handling a trustworthy safelist](https://chromium-review.googlesource.com/c/chromium/src/+/2612947) -* [2614784: Remove SchemeRegistry APIs for handling local and secure schemes](https://chromium-review.googlesource.com/c/chromium/src/+/2614784) -* [2615260: Implement SecurityOrigin::IsPotentiallyTrustworthy with network::IsOriginPotentiallyTrustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2615260) -* [2617709: Rewrite SecurityOrigin::IsSecure() using GURL and url::Origin](https://chromium-review.googlesource.com/c/chromium/src/+/2617709) -* [2617883: Make SecurityOrigin::IsSecure treat localhost and local files as secure](https://chromium-review.googlesource.com/c/chromium/src/+/2617883) +- [[Extensions] Fix broken links in documentation on writing a new API](https://chromium-review.googlesource.com/c/chromium/src/+/2167395) +- [[Extensions] Fix typos in chrome.test.sendMessage() doc](https://chromium-review.googlesource.com/c/chromium/src/+/2323684) +- [Fix test for RegisterProtocolHandlerDifferentOrigin](https://chromium-review.googlesource.com/c/chromium/src/+/2299229) +- [Do not remove %s token when validating (un)registerProtocolHandler's URL](https://chromium-review.googlesource.com/c/chromium/src/+/2335434) +- [percent-encode U+0020 SPACE when using a protocol handler](https://chromium-review.googlesource.com/c/chromium/src/+/2324126) +- [percent-encode U+007F in cannot-be-a-base-URL path and fragment states](https://chromium-review.googlesource.com/c/chromium/src/+/2324425) +- [Add WPT tests for registerProtocolHandler and 'web+' schemes](https://chromium-review.googlesource.com/c/chromium/src/+/2371632) +- [2362802: Introduce common browser/web API for validation of custom handlers](https://chromium-review.googlesource.com/c/chromium/src/+/2362802) +- [2153064: Safelist distributed web schemes for "registerProtocolHandler"](https://chromium-review.googlesource.com/c/chromium/src/+/2153064) +- [2379511: Remove references to ServiceWorkerRequestHandler/ServiceWorkerNavigationLoader](https://chromium-review.googlesource.com/c/chromium/src/+/2379511) +- [2487107: Reland "Make custom protocol handlers work with service workers' fetch event"](https://chromium-review.googlesource.com/c/chromium/src/+/2487107) +- [2157531: Remove the title argument from registerProtocolHandler()](https://chromium-review.googlesource.com/c/chromium/src/+/2157531) +- [2287304: Add custom security levels for registerProtocolHandler](https://chromium-review.googlesource.com/c/chromium/src/+/2287304) +- [2560305: Add registerProtocolHandler for extension-specific features](https://chromium-review.googlesource.com/c/chromium/src/+/2560305) +- [2560953: Prepare code to improve handling of potentially trustworthy url/origin](https://chromium-review.googlesource.com/c/chromium/src/+/2560953) +- [2563492: Limit about: URLs that are treated as potentially trustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2563492) +- [2563759: Remove content::IsPotentiallyTrustworthyOrigin](https://chromium-review.googlesource.com/c/chromium/src/+/2563759) +- [2570568: Remove special handling of localhost6 and localhost6.localdomain6](https://chromium-review.googlesource.com/c/chromium/src/+/2570568) +- [2580067: Use network::IsOriginPotentiallyTrustworthy in Insecure Input Tab Helper](https://chromium-review.googlesource.com/c/chromium/src/+/2580067) +- [2563683: Treat data: URLs as potentially trustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2563683) +- [2563883: Remove blink::network_utils::IsOriginSecure](https://chromium-review.googlesource.com/c/chromium/src/+/2563883) +- [2577688: Remove special handling of localhost.localdomain](https://chromium-review.googlesource.com/c/chromium/src/+/2577688) +- [2587738: Remove SecurityPolicy::IsUrlTrustworthySafelisted()](https://chromium-review.googlesource.com/c/chromium/src/+/2587738) +- [2332675: Restrict protocol handler to potentially trustworthy URLs](https://chromium-review.googlesource.com/c/chromium/src/+/2332675) +- [2595424: Use a standard scheme to test potential trustworthiness](https://chromium-review.googlesource.com/c/chromium/src/+/2595424) +- [2593629: Add tests for SecurityOrigin::IsSecure and network::Is\*PotentiallyTrustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2593629) +- [2610100: Add tests for SecurityOrigin::IsPotentiallyTrustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2610100) +- [2612947: Remove SecurityPolicy APIs for handling a trustworthy safelist](https://chromium-review.googlesource.com/c/chromium/src/+/2612947) +- [2614784: Remove SchemeRegistry APIs for handling local and secure schemes](https://chromium-review.googlesource.com/c/chromium/src/+/2614784) +- [2615260: Implement SecurityOrigin::IsPotentiallyTrustworthy with network::IsOriginPotentiallyTrustworthy](https://chromium-review.googlesource.com/c/chromium/src/+/2615260) +- [2617709: Rewrite SecurityOrigin::IsSecure() using GURL and url::Origin](https://chromium-review.googlesource.com/c/chromium/src/+/2617709) +- [2617883: Make SecurityOrigin::IsSecure treat localhost and local files as secure](https://chromium-review.googlesource.com/c/chromium/src/+/2617883) ### Firefox -* [Improve compatibility of protocol_handlers with registerProtocolHandler](https://phabricator.services.mozilla.com/D71747) -* [Safelist cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns, and ssb schemes for registerProtocolHandler().](https://phabricator.services.mozilla.com/D71580) -* [Remove the title argument from registerProtocolHandler()](https://phabricator.services.mozilla.com/D71714) -* [ Do not set network.dns.ipv4OnlyDomains when running XPCShell](https://phabricator.services.mozilla.com/D94986) -* [Add a test to ensure loopback host names cannot be overridden](https://phabricator.services.mozilla.com/D94712) -* [Hardcode localhost to loopback](https://phabricator.services.mozilla.com/D92716) +- [Improve compatibility of protocol_handlers with registerProtocolHandler](https://phabricator.services.mozilla.com/D71747) +- [Safelist cabal, dat, did, dweb, ethereum, hyper, ipfs, ipns, and ssb schemes for registerProtocolHandler().](https://phabricator.services.mozilla.com/D71580) +- [Remove the title argument from registerProtocolHandler()](https://phabricator.services.mozilla.com/D71714) +- [ Do not set network.dns.ipv4OnlyDomains when running XPCShell](https://phabricator.services.mozilla.com/D94986) +- [Add a test to ensure loopback host names cannot be overridden](https://phabricator.services.mozilla.com/D94712) +- [Hardcode localhost to loopback](https://phabricator.services.mozilla.com/D92716) -### WebKit - -* [Don't treat loopback addresses (127.0.0.0/8, ::1/128, localhost, .localhost) as mixed content](https://bugs.webkit.org/show_bug.cgi?id=171934) -* [Don't treat loopback IP addresses (127.0.0.0/8, ::1/128) as mixed content](https://bugs.webkit.org/show_bug.cgi?id=218623) -* [Introduce preference not to treat localhost and .localhost as mixed content](https://bugs.webkit.org/show_bug.cgi?id=218627) -* [[GTK] Allow WebKitTestServer to run non-loopback addresses for API test](https://bugs.webkit.org/show_bug.cgi?id=219257) -* [Migrate WebKitTestServer to libsoup 2.48 API](https://bugs.webkit.org/show_bug.cgi?id=219160) -* [Treat loopback addresses (127.0.0.0/8, ::1/128, localhost, .localhost) as potentially trustworthy URL ](https://bugs.webkit.org/show_bug.cgi?id=218980) +### WebKit +- [Don't treat loopback addresses (127.0.0.0/8, ::1/128, localhost, .localhost) as mixed content](https://bugs.webkit.org/show_bug.cgi?id=171934) +- [Don't treat loopback IP addresses (127.0.0.0/8, ::1/128) as mixed content](https://bugs.webkit.org/show_bug.cgi?id=218623) +- [Introduce preference not to treat localhost and .localhost as mixed content](https://bugs.webkit.org/show_bug.cgi?id=218627) +- [[GTK] Allow WebKitTestServer to run non-loopback addresses for API test](https://bugs.webkit.org/show_bug.cgi?id=219257) +- [Migrate WebKitTestServer to libsoup 2.48 API](https://bugs.webkit.org/show_bug.cgi?id=219160) +- [Treat loopback addresses (127.0.0.0/8, ::1/128, localhost, .localhost) as potentially trustworthy URL ](https://bugs.webkit.org/show_bug.cgi?id=218980) ## In Conclusion -IPFS and Igalia have made an initial effort to improve support and interoperability of web platform features that would benefit the distributed web, as well as the web community in general. In addition to starting discussions among the different actors, several patches have already landed in browsers. We are looking forward to continuing this work in 2021... Stay tuned! 🚀 \ No newline at end of file +IPFS and Igalia have made an initial effort to improve support and interoperability of web platform features that would benefit the distributed web, as well as the web community in general. In addition to starting discussions among the different actors, several patches have already landed in browsers. We are looking forward to continuing this work in 2021... Stay tuned! 🚀 diff --git a/src/_blog/113-community-rfp/ipfs-in-2021-call-for-proposals.md b/src/_blog/ipfs-in-2021-call-for-proposals.md similarity index 95% rename from src/_blog/113-community-rfp/ipfs-in-2021-call-for-proposals.md rename to src/_blog/ipfs-in-2021-call-for-proposals.md index 2bced028..e199a656 100644 --- a/src/_blog/113-community-rfp/ipfs-in-2021-call-for-proposals.md +++ b/src/_blog/ipfs-in-2021-call-for-proposals.md @@ -1,14 +1,14 @@ --- date: 2020-11-19 07:00:00 +0000 -url: "/2020-11-19-community-rfp/" +permalink: '/2020-11-19-community-rfp/' translationKey: '' tags: project planning, community -header_image: "/113-community-rfp.jpg" +header_image: '/113-community-rfp.jpg' title: 'IPFS in 2021: Call for Proposals' description: '' author: David Choi, Kadir Topal - --- + # 2021 IPFS Project Planning As 2020 comes to a close and we look ahead to 2021, it’s time to evaluate what’s important for the IPFS Project to focus on next year -- and we need your help! Get involved now and shape the IPFS project plan for the next year. Help us reflect on IPFS progress and status, how the wider ecosystem and internet has evolved over the past year, and chart a course for our work in 2021 that optimizes for the long term success of our mission. @@ -21,13 +21,13 @@ The IPFS team has started evaluating potential themes to guide the project in 20 ## Proposal Process -We want to hear from you in the form of public Github issues. Issues should contain a potential theme that you think IPFS should tackle in 2021 - and why. Your theme proposals can be at any level of granularity — from general direction for the project, to specific features or tooling improvements, to ecosystem needs — everything is in scope. We want to hear what’s on your mind, what direction you want to take IPFS, and what your pain points are. +We want to hear from you in the form of public Github issues. Issues should contain a potential theme that you think IPFS should tackle in 2021 - and why. Your theme proposals can be at any level of granularity — from general direction for the project, to specific features or tooling improvements, to ecosystem needs — everything is in scope. We want to hear what’s on your mind, what direction you want to take IPFS, and what your pain points are. Aside from new theme proposals, we’d also very much appreciate comments on theme proposals, especially if there are additional important workstreams you’d like to see as part of that theme. Existing proposals for themes can be found [here](https://github.com/ipfs/roadmap/issues?q=is%3Aissue+is%3Aopen+label%3A%222021+Theme+Proposal%22). [![Proposals Screenshot](/screenshot.png)](https://github.com/ipfs/roadmap/issues?q=is%3Aissue+is%3Aopen+label%3A%222021+Theme+Proposal%22) -To suggest a theme proposal, please create a [new 2021 Proposal issue](https://github.com/ipfs/roadmap/issues/new/choose) in this repo. The hope with using github issues is to allow for clarifying conversation in comments, help others build on your great ideas, and also be inspired to propose their own thoughts. You are welcome to submit more than one proposal! +To suggest a theme proposal, please create a [new 2021 Proposal issue](https://github.com/ipfs/roadmap/issues/new/choose) in this repo. The hope with using github issues is to allow for clarifying conversation in comments, help others build on your great ideas, and also be inspired to propose their own thoughts. You are welcome to submit more than one proposal! ### The [2021 Theme Proposal template](https://github.com/ipfs/roadmap/issues/new/choose) includes @@ -37,7 +37,7 @@ To suggest a theme proposal, please create a [new 2021 Proposal issue](https://g - **Vision statement**: If executing on the theme or initiative is massively successful, what would the state of the IPFS project look like? - **Why focus this year**: Why does it make sense to focus on this theme or initiative this year? - **Example workstreams**: What are potential workstreams, milestones, etc. that this initiative or theme might involve? -Feel free to include any other relevant content! + Feel free to include any other relevant content! Check out [existing proposals for themes here](https://github.com/ipfs/roadmap/issues?q=is%3Aissue+is%3Aopen+label%3A%222021+Theme+Proposal%22) if helpful. @@ -46,4 +46,4 @@ Check out [existing proposals for themes here](https://github.com/ipfs/roadmap/i - **Nov 19 - Dec 7**: Open call for 2021 Proposals (add yours [here](https://github.com/ipfs/roadmap/issues/new/choose)) - **Dec 16 - Dec 20**: IPFS 2021 planning “Spike” - **Dec 20 - Jan 11**: Review and feedback on 2021 theme(s) with key stakeholders -- **Jan 18**: Finalize and present 2021 theme(s) and updated roadmap \ No newline at end of file +- **Jan 18**: Finalize and present 2021 theme(s) and updated roadmap diff --git a/src/_blog/114-ipfs-in-2021/ipfs-in-2021-thank-you-for-your-proposals.md b/src/_blog/ipfs-in-2021-thank-you-for-your-proposals.md similarity index 92% rename from src/_blog/114-ipfs-in-2021/ipfs-in-2021-thank-you-for-your-proposals.md rename to src/_blog/ipfs-in-2021-thank-you-for-your-proposals.md index 4a04da4a..5b2cd1b1 100644 --- a/src/_blog/114-ipfs-in-2021/ipfs-in-2021-thank-you-for-your-proposals.md +++ b/src/_blog/ipfs-in-2021-thank-you-for-your-proposals.md @@ -1,21 +1,21 @@ --- date: 2020-12-21 07:00:00 +0000 -url: "/2020-12-21-ipfs-in-2021/" +permalink: '/2020-12-21-ipfs-in-2021/' translationKey: '' tags: project planning, community -header_image: "/114-ipfs-2021.jpg" +header_image: '/114-ipfs-2021.jpg' title: 'IPFS in 2021: Thank You for Your Proposals!' description: '' author: David Choi, Kadir Topal - --- + In November, [we asked the IPFS community to nominate and discuss potential themes](/2020-11-19-community-rfp/) for the project to tackle in 2021. It’s been amazing to see the insight, creativity, and passion from this amazing community to better understand where the IPFS Project needs to improve, upgrade, and focus in 2021. Using the thinking surfaced, we hope to help synthesize a few broad areas of work that the project could focus on next year (and even beyond) - and share those back with the community for feedback in January. Now that the brainstorm period is over, all we can say is: **THANK YOU**! We’ve been blown away by the level of participation, thoughtfulness in discussion, and time and energy spent to help chart our shared course and priorities for next year. In just \~3 weeks, the community contributed: -* **27** theme proposals, spanning all areas of the protocol from performance improvements to new features to tooling you’d like to see -* **70+** comments on and 85+ reactions to these proposals -* **35+** community members participating in discussion +- **27** theme proposals, spanning all areas of the protocol from performance improvements to new features to tooling you’d like to see +- **70+** comments on and 85+ reactions to these proposals +- **35+** community members participating in discussion The full list of themes and discussion can be found in the [IPFS roadmap repo](https://github.com/ipfs/roadmap/issues?q=is%3Aissue+is%3Aopen+label%3A%222021+Theme+Proposal%22). @@ -43,4 +43,4 @@ Thank you again for the time, thoughtfulness, and energy you all brought to this We are still in the middle of 2021 planning! Using the community discussion, our goal is to determine a few overarching themes that can be a guiding “north star” for 2021 to best support the growing community and help the project achieve its long-term mission. Similar to last year, we expect that instead of choosing a single theme from community discussion to pursue next year, we’ll instead identify a few common threads / needs across the themes surfaced as the most important area for the project to focus next year. Further, the final themes are not intended to dictate all that the project does in 2021, but just some major areas of focus. Other areas or themes can and should still be tackled by the project and community. So consider the proposed themes “conversation starters” - and if you haven’t yet, [join the conversation](https://github.com/ipfs/roadmap/issues)! -Happy holidays, and see you in 2021! \ No newline at end of file +Happy holidays, and see you in 2021! diff --git a/src/_blog/111-js-ipfs-0-51-0/js-ipfs-0.51.0-adds-type-definitions-and-removes-secio.md b/src/_blog/js-ipfs-0.51.0-adds-type-definitions-and-removes-secio.md similarity index 56% rename from src/_blog/111-js-ipfs-0-51-0/js-ipfs-0.51.0-adds-type-definitions-and-removes-secio.md rename to src/_blog/js-ipfs-0.51.0-adds-type-definitions-and-removes-secio.md index a69a89b5..2cddfb8b 100644 --- a/src/_blog/111-js-ipfs-0-51-0/js-ipfs-0.51.0-adds-type-definitions-and-removes-secio.md +++ b/src/_blog/js-ipfs-0.51.0-adds-type-definitions-and-removes-secio.md @@ -1,14 +1,14 @@ --- date: 2020-10-29 06:00:00 +0000 -url: "/2020-10-29-js-ipfs-0-50/" +permalink: '/2020-10-29-js-ipfs-0-50/' translationKey: '' tags: js-ipfs, SECIO -header_image: "/header_images/js-ipfs-placeholder.png" +header_image: 'js-ipfs-placeholder-header-image.png' title: js-IPFS 0.51.0 adds type definitions and removes SECIO description: '' author: Alex Potsides - --- + # 🔦 Highlights > Type Defs! No more SECIO! Halve your install time! @@ -21,7 +21,7 @@ TypeScript has taken the JS world by storm, allowing developers to be alerted wh There have been [several](https://github.com/vishalkuo/types-ipfs) [community](https://github.com/survirtual/types-ipfs) [led](https://github.com/beenotung/typestub-ipfs) [efforts](https://github.com/zabirauf/ipfs-types) to provide type information for `js-IPFS` but since the project moves so quickly it's an uphill struggle to keep compatibility with the changes that get landed in every release. -With `js-IPFS@0.51.0` types are now a first-class citizen within the codebase. The project has not gone so far as to convert to TypeScript - we do not wish knowledge of TypeScript to become a prerequisite to contributing to `js-IPFS` development, instead all types are defined using [JSDoc](https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html) comments and are built and validated during development and Continuous Integration. +With `js-IPFS@0.51.0` types are now a first-class citizen within the codebase. The project has not gone so far as to convert to TypeScript - we do not wish knowledge of TypeScript to become a prerequisite to contributing to `js-IPFS` development, instead all types are defined using [JSDoc](https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html) comments and are built and validated during development and Continuous Integration. Going forward all new code will be required to have types so to help contributors with that [aegir](https://github.com/ipfs/aegir) recently added stricter linting for JSDoc comments and we also [added a typecheck github action](https://github.com/ipfs/js-ipfs/pull/3327) to `js-IPFS` so any errors or missing types should be easy to spot in a PR. @@ -31,7 +31,7 @@ Going forward all new code will be required to have types so to help contributor ## SECIO Removal -The [deprecated](https://blog.ipfs.io/2020-08-07-deprecating-secio/) security transport [SECIO](https://github.com/libp2p/specs/blob/master/secio/README.md) has finally been removed in `js-IPFS@0.51.0`. It's successor, [Noise](https://github.com/libp2p/specs/blob/master/noise/README.md) was first released with `js-IPFS@0.47.0` and is now the default security transport used by libp2p. +The [deprecated](https://blog.ipfs.io/2020-08-07-deprecating-secio/) security transport [SECIO](https://github.com/libp2p/specs/blob/master/secio/README.md) has finally been removed in `js-IPFS@0.51.0`. It's successor, [Noise](https://github.com/libp2p/specs/blob/master/noise/README.md) was first released with `js-IPFS@0.47.0` and is now the default security transport used by libp2p. `go-IPFS@0.7.0` recently also removed SECIO support after introducing Noise in `go-IPFS@0.6.0`, which means `js-IPFS@0.51.0` and `go-IPFS@0.7.0` can only talk to other nodes running `go-IPFS@0.6.0` or `js-IPFS@0.47.0` or later. @@ -53,11 +53,11 @@ See the new [custom-ipld-formats](https://github.com/ipfs/js-ipfs/tree/master/ex ## 🍏 ipfs-core - a new lighter IPFS for application authors -When you `npm install ipfs` you get the core IPFS node as well as tools to run a daemon, an HTTP API server and a CLI. If you're installing this globally to use on the command line to use with IPFS Desktop or just to have a node running on your network this is great as you want the extra tools to be able to communicate with your node. +When you `npm install ipfs` you get the core IPFS node as well as tools to run a daemon, an HTTP API server and a CLI. If you're installing this globally to use on the command line to use with IPFS Desktop or just to have a node running on your network this is great as you want the extra tools to be able to communicate with your node. These take time to install and use up hard drive space and if you are building an application on top of `js-IPFS` you don't necessarily need them. -Now you can `npm install ipfs-core` to just get the parts of the IPFS stack you need to run an in-process node. This has roughly halved the install size of `js-IPFS` by not installing all those extra dependencies that you don't need. +Now you can `npm install ipfs-core` to just get the parts of the IPFS stack you need to run an in-process node. This has roughly halved the install size of `js-IPFS` by not installing all those extra dependencies that you don't need. You can use the module in the same way you did before, all you need to do is change the dependency name/version and update the require name: @@ -87,7 +87,7 @@ async function () { } ``` -and you're all set! This is the start of an attempt to make the codebase more modular and allow for swapping components out and maybe not pulling in everything all the time to enable power users to create a minimal node that only contains the functionality they require. Watch this space for more! +and you're all set! This is the start of an attempt to make the codebase more modular and allow for swapping components out and maybe not pulling in everything all the time to enable power users to create a minimal node that only contains the functionality they require. Watch this space for more! ## CORS is now disabled by default @@ -101,26 +101,26 @@ See the [CORS section](https://github.com/ipfs/js-ipfs/blob/master/packages/ipfs # ✨New features -* Type check & generate defs from jsdoc ([#3281](https://github.com/ipfs/js-ipfs/issues/3281)) ([bbcaf34](https://github.com/ipfs/js-ipfs/commit/bbcaf34111251b142273a5675f4754ff68bd9fa0)) -* Enable custom formats for dag put and get ([#3347](https://github.com/ipfs/js-ipfs/pull/3347)) ([3250ff4](https://github.com/ipfs/js-ipfs/commit/3250ff453a1d3275cc4ab746f59f9f70abd5cc5f)) -* Node.js 15 support ([#3339](https://github.com/ipfs/js-ipfs/pull/3339)) ([66f2081](https://github.com/ipfs/js-ipfs/commit/66f2081d02decbdcdc79532191a8ead0588c63cc)) -* Implement ipfs.ls on message-port-client ([#3322](https://github.com/ipfs/js-ipfs/pull/3322)) ([f642f1d](https://github.com/ipfs/js-ipfs/pull/3322/commits/f642f1d892d960ce09d71ed3390d9211ae4f56c9)) -* webui v2.11.4 ([#3317](https://github.com/ipfs/js-ipfs/pull/3317)) ([7f32f7f](https://github.com/ipfs/js-ipfs/commit/7f32f7fd1eb3cffc3cd529827e4af7a8a08e36d9)) +- Type check & generate defs from jsdoc ([#3281](https://github.com/ipfs/js-ipfs/issues/3281)) ([bbcaf34](https://github.com/ipfs/js-ipfs/commit/bbcaf34111251b142273a5675f4754ff68bd9fa0)) +- Enable custom formats for dag put and get ([#3347](https://github.com/ipfs/js-ipfs/pull/3347)) ([3250ff4](https://github.com/ipfs/js-ipfs/commit/3250ff453a1d3275cc4ab746f59f9f70abd5cc5f)) +- Node.js 15 support ([#3339](https://github.com/ipfs/js-ipfs/pull/3339)) ([66f2081](https://github.com/ipfs/js-ipfs/commit/66f2081d02decbdcdc79532191a8ead0588c63cc)) +- Implement ipfs.ls on message-port-client ([#3322](https://github.com/ipfs/js-ipfs/pull/3322)) ([f642f1d](https://github.com/ipfs/js-ipfs/pull/3322/commits/f642f1d892d960ce09d71ed3390d9211ae4f56c9)) +- webui v2.11.4 ([#3317](https://github.com/ipfs/js-ipfs/pull/3317)) ([7f32f7f](https://github.com/ipfs/js-ipfs/commit/7f32f7fd1eb3cffc3cd529827e4af7a8a08e36d9)) ## 🔨 Breaking changes -* Support for SECIO has been removed ([#3295](https://github.com/ipfs/js-ipfs/issues/3295)) ([5f5ef7e](https://github.com/ipfs/js-ipfs/commit/5f5ef7ee6cc6dc634cc6adbede0602492490a85d)) -* Disable CORS by default ([#3275](https://github.com/ipfs/js-ipfs/issues/3275)) ([3ff833d](https://github.com/ipfs/js-ipfs/commit/3ff833db6444a3e931db9b76bf74c3420e57ee02)) -* Remove buffer export from ipfs-core ([#3348](https://github.com/ipfs/js-ipfs/pull/3348)) ([5cc6dfe](https://github.com/ipfs/js-ipfs/commit/5cc6dfebf96ad9509e7ded175291789e32402eec)) +- Support for SECIO has been removed ([#3295](https://github.com/ipfs/js-ipfs/issues/3295)) ([5f5ef7e](https://github.com/ipfs/js-ipfs/commit/5f5ef7ee6cc6dc634cc6adbede0602492490a85d)) +- Disable CORS by default ([#3275](https://github.com/ipfs/js-ipfs/issues/3275)) ([3ff833d](https://github.com/ipfs/js-ipfs/commit/3ff833db6444a3e931db9b76bf74c3420e57ee02)) +- Remove buffer export from ipfs-core ([#3348](https://github.com/ipfs/js-ipfs/pull/3348)) ([5cc6dfe](https://github.com/ipfs/js-ipfs/commit/5cc6dfebf96ad9509e7ded175291789e32402eec)) ## 🕷️ Bug fixes -* files ls should return string ([#3352](https://github.com/ipfs/js-ipfs/pull/3352)) ([16ecc74](https://github.com/ipfs/js-ipfs/commit/16ecc7485dfbb1f0c827c5f804974bb804f3dafd)) -* fixes "interface-ipfs-core" link ([#3334](https://github.com/ipfs/js-ipfs/pull/3334)) ([3e7e222](https://github.com/ipfs/js-ipfs/commit/3e7e22239e334705acd665408e77c84e65da2b32)) -* packages/ipfs-core/src/index.js attempts to export undefined Buffer ([#3312](https://github.com/ipfs/js-ipfs/issues/3312)) ([5cc6dfe](https://github.com/ipfs/js-ipfs/commit/5cc6dfebf96ad9509e7ded175291789e32402eec)) -* HTTP client factory: Invalid URL in React Navtive ([#3331](https://github.com/ipfs/js-ipfs/issues/3331)) ([4eb196c](https://github.com/ipfs/js-ipfs/commit/4eb196c07129d0ee90a7ad55feca69b6b349d8b7)) -* Invalid version error triggered in cli pin add/rm ([#3306](https://github.com/ipfs/js-ipfs/pull/3306)) ([69757f3](https://github.com/ipfs/js-ipfs/commit/69757f3c321c5d135ebde7a262c169427e4f1105)) -* Loading ipfs-js bundle in worker fails with ReferenceError: window is not defined ([#2349](https://github.com/ipfs/js-ipfs/issues/2349)) ([3f72e50](https://github.com/ipfs/aegir/commit/3f72e5074145a8f2ec03143db4230514af664f95)) +- files ls should return string ([#3352](https://github.com/ipfs/js-ipfs/pull/3352)) ([16ecc74](https://github.com/ipfs/js-ipfs/commit/16ecc7485dfbb1f0c827c5f804974bb804f3dafd)) +- fixes "interface-ipfs-core" link ([#3334](https://github.com/ipfs/js-ipfs/pull/3334)) ([3e7e222](https://github.com/ipfs/js-ipfs/commit/3e7e22239e334705acd665408e77c84e65da2b32)) +- packages/ipfs-core/src/index.js attempts to export undefined Buffer ([#3312](https://github.com/ipfs/js-ipfs/issues/3312)) ([5cc6dfe](https://github.com/ipfs/js-ipfs/commit/5cc6dfebf96ad9509e7ded175291789e32402eec)) +- HTTP client factory: Invalid URL in React Navtive ([#3331](https://github.com/ipfs/js-ipfs/issues/3331)) ([4eb196c](https://github.com/ipfs/js-ipfs/commit/4eb196c07129d0ee90a7ad55feca69b6b349d8b7)) +- Invalid version error triggered in cli pin add/rm ([#3306](https://github.com/ipfs/js-ipfs/pull/3306)) ([69757f3](https://github.com/ipfs/js-ipfs/commit/69757f3c321c5d135ebde7a262c169427e4f1105)) +- Loading ipfs-js bundle in worker fails with ReferenceError: window is not defined ([#2349](https://github.com/ipfs/js-ipfs/issues/2349)) ([3f72e50](https://github.com/ipfs/aegir/commit/3f72e5074145a8f2ec03143db4230514af664f95)) # 🗺️ What’s next? @@ -130,75 +130,75 @@ Only large features are called out in the roadmap, expect lots of small bugfix r # 😍 Huge thank you to everyone that made this release possible -* [@achingbrain](https://github.com/achingbrain) (52 commits, 33 PRs, 2 issues, 78 comments) -* [@acolytec3](https://github.com/acolytec3) (1 commit, 1 PR) -* [@acostalima](https://github.com/acostalima) (2 issues, 5 comments) -* [@adamprocter](https://github.com/adamprocter) (1 issue, 1 comment) -* [@andrew](https://github.com/andrew) (1 comment) -* [@aphelionz](https://github.com/aphelionz) (1 issue, 3 comments) -* [@aschmahmann](https://github.com/aschmahmann) (1 comment) -* [@AuHau](https://github.com/AuHau) (2 issues, 4 comments) -* [@autonome](https://github.com/autonome) (1 issue, 1 comment) -* [@bconnorwhite](https://github.com/bconnorwhite) (1 commit, 1 PR) -* [@bellbind](https://github.com/bellbind) (1 issue, 1 comment) -* [@BlackGlory](https://github.com/BlackGlory) (1 comment) -* [@bluelovers](https://github.com/bluelovers) (1 commit, 1 PR, 3 comments) -* [@chafey](https://github.com/chafey) (2 issues, 1 comment) -* [@chebyte](https://github.com/chebyte) (2 comments) -* [@cindywu](https://github.com/cindywu) (1 commit, 1 PR) -* [@codecov-commenter](https://github.com/codecov-commenter) (2 comments) -* [@codecov-io](https://github.com/codecov-io) (1 comment) -* [@conr2d](https://github.com/conr2d) (1 commit, 1 PR) -* [@daviddias](https://github.com/daviddias) (1 comment) -* [@DougAnderson444](https://github.com/DougAnderson444) (1 comment) -* [@duc811997](https://github.com/duc811997) (1 issue) -* [@EthanTheMaster](https://github.com/EthanTheMaster) (1 commit, 1 PR, 1 comment) -* [@gcohler](https://github.com/gcohler) (1 PR, 1 issue, 2 comments) -* [@georgyo](https://github.com/georgyo) (2 issues) -* [@Gozala](https://github.com/Gozala) (12 commits, 15 PRs, 6 issues, 33 comments) -* [@hugomrdias](https://github.com/hugomrdias) (1 comment) -* [@icidasset](https://github.com/icidasset) (3 comments) -* [@imestin](https://github.com/imestin) (1 commit, 1 PR, 1 issue, 3 comments) -* [@jacobheun](https://github.com/jacobheun) (20 commits, 6 PRs, 4 issues, 29 comments) -* [@jakehemmerle](https://github.com/jakehemmerle) (1 comment) -* [@Jonybang](https://github.com/Jonybang) (1 issue, 1 comment) -* [@kottackalsulvin](https://github.com/kottackalsulvin) (3 issues, 9 comments) -* [@lidel](https://github.com/lidel) (2 commits, 3 PRs, 7 comments) -* [@mburns](https://github.com/mburns) (1 PR, 3 comments) -* [@mcclure](https://github.com/mcclure) (3 issues, 3 comments) -* [@mh-cbon](https://github.com/mh-cbon) (2 issues, 1 comment) -* [@mikeal](https://github.com/mikeal) (1 commit, 1 issue, 5 comments) -* [@mpetrunic](https://github.com/mpetrunic) (7 commits, 1 PR, 1 comment) -* [@negamaxi](https://github.com/negamaxi) (2 comments) -* [@obo20](https://github.com/obo20) (1 comment) -* [@oed](https://github.com/oed) (1 issue, 1 comment) -* [@olizilla](https://github.com/olizilla) (1 issue) -* [@onichandame](https://github.com/onichandame) (1 issue, 3 comments) -* [@pepoospina](https://github.com/pepoospina) (3 comments) -* [@rafaelramalho19](https://github.com/rafaelramalho19) (1 issue) -* [@RobertFischer](https://github.com/RobertFischer) (1 comment) -* [@rvagg](https://github.com/rvagg) (5 comments) -* [@rysiekpl](https://github.com/rysiekpl) (3 comments) -* [@simonovic86](https://github.com/simonovic86) (2 PRs, 1 issue, 7 comments) -* [@stale](undefined) (9 comments) -* [@StationedInTheField](https://github.com/StationedInTheField) (1 issue, 3 comments) -* [@straiforos](https://github.com/straiforos) (1 issue, 2 comments) -* [@tabcat](https://github.com/tabcat) (1 commit, 1 issue, 6 comments) -* [@Tcll](https://github.com/Tcll) (1 issue, 4 comments) -* [@tniessen](https://github.com/tniessen) (1 comment) -* [@tuyennhv](https://github.com/tuyennhv) (3 commits, 3 PRs, 1 comment) -* [@ubernaut](https://github.com/ubernaut) (1 issue, 1 comment) -* [@vasco-santos](https://github.com/vasco-santos) (30 commits, 25 PRs, 6 issues, 42 comments) -* [@vmx](https://github.com/vmx) (11 commits, 1 PR, 8 comments) -* [@Weedshaker](https://github.com/Weedshaker) (1 comment) -* [@welcome](undefined) (17 comments) -* [@wemeetagain](https://github.com/wemeetagain) (4 commits, 1 PR, 4 comments) -* [@woss](https://github.com/woss) (6 comments) -* [@Xmader](https://github.com/Xmader) (1 commit, 1 PR, 1 comment) -* [@Xplorer123](https://github.com/Xplorer123) (1 issue) -* [@yfs-2000](https://github.com/yfs-2000) (1 issue, 1 comment) -* [@zebateira](https://github.com/zebateira) (1 comment) -* [@zoernert](https://github.com/zoernert) (1 commit, 1 PR, 1 comment) +- [@achingbrain](https://github.com/achingbrain) (52 commits, 33 PRs, 2 issues, 78 comments) +- [@acolytec3](https://github.com/acolytec3) (1 commit, 1 PR) +- [@acostalima](https://github.com/acostalima) (2 issues, 5 comments) +- [@adamprocter](https://github.com/adamprocter) (1 issue, 1 comment) +- [@andrew](https://github.com/andrew) (1 comment) +- [@aphelionz](https://github.com/aphelionz) (1 issue, 3 comments) +- [@aschmahmann](https://github.com/aschmahmann) (1 comment) +- [@AuHau](https://github.com/AuHau) (2 issues, 4 comments) +- [@autonome](https://github.com/autonome) (1 issue, 1 comment) +- [@bconnorwhite](https://github.com/bconnorwhite) (1 commit, 1 PR) +- [@bellbind](https://github.com/bellbind) (1 issue, 1 comment) +- [@BlackGlory](https://github.com/BlackGlory) (1 comment) +- [@bluelovers](https://github.com/bluelovers) (1 commit, 1 PR, 3 comments) +- [@chafey](https://github.com/chafey) (2 issues, 1 comment) +- [@chebyte](https://github.com/chebyte) (2 comments) +- [@cindywu](https://github.com/cindywu) (1 commit, 1 PR) +- [@codecov-commenter](https://github.com/codecov-commenter) (2 comments) +- [@codecov-io](https://github.com/codecov-io) (1 comment) +- [@conr2d](https://github.com/conr2d) (1 commit, 1 PR) +- [@daviddias](https://github.com/daviddias) (1 comment) +- [@DougAnderson444](https://github.com/DougAnderson444) (1 comment) +- [@duc811997](https://github.com/duc811997) (1 issue) +- [@EthanTheMaster](https://github.com/EthanTheMaster) (1 commit, 1 PR, 1 comment) +- [@gcohler](https://github.com/gcohler) (1 PR, 1 issue, 2 comments) +- [@georgyo](https://github.com/georgyo) (2 issues) +- [@Gozala](https://github.com/Gozala) (12 commits, 15 PRs, 6 issues, 33 comments) +- [@hugomrdias](https://github.com/hugomrdias) (1 comment) +- [@icidasset](https://github.com/icidasset) (3 comments) +- [@imestin](https://github.com/imestin) (1 commit, 1 PR, 1 issue, 3 comments) +- [@jacobheun](https://github.com/jacobheun) (20 commits, 6 PRs, 4 issues, 29 comments) +- [@jakehemmerle](https://github.com/jakehemmerle) (1 comment) +- [@Jonybang](https://github.com/Jonybang) (1 issue, 1 comment) +- [@kottackalsulvin](https://github.com/kottackalsulvin) (3 issues, 9 comments) +- [@lidel](https://github.com/lidel) (2 commits, 3 PRs, 7 comments) +- [@mburns](https://github.com/mburns) (1 PR, 3 comments) +- [@mcclure](https://github.com/mcclure) (3 issues, 3 comments) +- [@mh-cbon](https://github.com/mh-cbon) (2 issues, 1 comment) +- [@mikeal](https://github.com/mikeal) (1 commit, 1 issue, 5 comments) +- [@mpetrunic](https://github.com/mpetrunic) (7 commits, 1 PR, 1 comment) +- [@negamaxi](https://github.com/negamaxi) (2 comments) +- [@obo20](https://github.com/obo20) (1 comment) +- [@oed](https://github.com/oed) (1 issue, 1 comment) +- [@olizilla](https://github.com/olizilla) (1 issue) +- [@onichandame](https://github.com/onichandame) (1 issue, 3 comments) +- [@pepoospina](https://github.com/pepoospina) (3 comments) +- [@rafaelramalho19](https://github.com/rafaelramalho19) (1 issue) +- [@RobertFischer](https://github.com/RobertFischer) (1 comment) +- [@rvagg](https://github.com/rvagg) (5 comments) +- [@rysiekpl](https://github.com/rysiekpl) (3 comments) +- [@simonovic86](https://github.com/simonovic86) (2 PRs, 1 issue, 7 comments) +- [@stale](undefined) (9 comments) +- [@StationedInTheField](https://github.com/StationedInTheField) (1 issue, 3 comments) +- [@straiforos](https://github.com/straiforos) (1 issue, 2 comments) +- [@tabcat](https://github.com/tabcat) (1 commit, 1 issue, 6 comments) +- [@Tcll](https://github.com/Tcll) (1 issue, 4 comments) +- [@tniessen](https://github.com/tniessen) (1 comment) +- [@tuyennhv](https://github.com/tuyennhv) (3 commits, 3 PRs, 1 comment) +- [@ubernaut](https://github.com/ubernaut) (1 issue, 1 comment) +- [@vasco-santos](https://github.com/vasco-santos) (30 commits, 25 PRs, 6 issues, 42 comments) +- [@vmx](https://github.com/vmx) (11 commits, 1 PR, 8 comments) +- [@Weedshaker](https://github.com/Weedshaker) (1 comment) +- [@welcome](undefined) (17 comments) +- [@wemeetagain](https://github.com/wemeetagain) (4 commits, 1 PR, 4 comments) +- [@woss](https://github.com/woss) (6 comments) +- [@Xmader](https://github.com/Xmader) (1 commit, 1 PR, 1 comment) +- [@Xplorer123](https://github.com/Xplorer123) (1 issue) +- [@yfs-2000](https://github.com/yfs-2000) (1 issue, 1 comment) +- [@zebateira](https://github.com/zebateira) (1 comment) +- [@zoernert](https://github.com/zoernert) (1 commit, 1 PR, 1 comment) # 🙌🏽 Want to contribute? @@ -214,14 +214,14 @@ Would you like to contribute to the IPFS project and don’t know how? Well, the The best place to ask your questions about IPFS, how it works, and what you can do with it is at [discuss.ipfs.io](https://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode. -[UnixFS]: https://docs.ipfs.io/guides/concepts/unixfs/ -[CID]: https://docs.ipfs.io/guides/concepts/cid/ -[MFS]: https://docs.ipfs.io/guides/concepts/mfs/ +[unixfs]: https://docs.ipfs.io/guides/concepts/unixfs/ +[cid]: https://docs.ipfs.io/guides/concepts/cid/ +[mfs]: https://docs.ipfs.io/guides/concepts/mfs/ [libp2p]: https://github.com/libp2p/js-libp2p [ipld]: https://github.com/ipld/js-ipld -[AbortSignal]: https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal -[Multihash]: https://multiformats.io/multihash -[DHT]: https://docs.ipfs.io/concepts/dht/ -[Multiaddr]: https://multiformats.io/multiaddr/ -[DAG]: https://docs.ipfs.io/concepts/merkle-dag/ -[Core-API]: https://github.com/ipfs/js-ipfs/tree/master/docs/core-api \ No newline at end of file +[abortsignal]: https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal +[multihash]: https://multiformats.io/multihash +[dht]: https://docs.ipfs.io/concepts/dht/ +[multiaddr]: https://multiformats.io/multiaddr/ +[dag]: https://docs.ipfs.io/concepts/merkle-dag/ +[core-api]: https://github.com/ipfs/js-ipfs/tree/master/docs/core-api diff --git a/src/_blog/meet-the-community--Alan-Shaw-IPFS/README.md b/src/_blog/meet-the-community--Alan-Shaw-IPFS.md similarity index 99% rename from src/_blog/meet-the-community--Alan-Shaw-IPFS/README.md rename to src/_blog/meet-the-community--Alan-Shaw-IPFS.md index 18f57f7b..778cfb2b 100644 --- a/src/_blog/meet-the-community--Alan-Shaw-IPFS/README.md +++ b/src/_blog/meet-the-community--Alan-Shaw-IPFS.md @@ -1,6 +1,6 @@ --- date: 2019-05-20 -url: /meet-the-community-alan-shaw/ +permalink: /meet-the-community-alan-shaw/ title: 'Meet the Community: Alan Shaw @ IPFS' description: author: IPFS Events Team @@ -17,7 +17,7 @@ tags: ## Meet the Community: Alan Shaw, Core Developer of the IPFS Protocol @ IPFS / Protocol Labs -![](./alan-shaw.jpg) +![](/alan-shaw.jpg) ### Tell us a bit about yourself and your background. How did you get involved with IPFS and end up joining the team at Protocol Labs? diff --git a/src/_blog/meet-the-community--Carson-Farmer-Textile/README.md b/src/_blog/meet-the-community--Carson-Farmer-Textile.md similarity index 98% rename from src/_blog/meet-the-community--Carson-Farmer-Textile/README.md rename to src/_blog/meet-the-community--Carson-Farmer-Textile.md index 7eada739..6b409277 100644 --- a/src/_blog/meet-the-community--Carson-Farmer-Textile/README.md +++ b/src/_blog/meet-the-community--Carson-Farmer-Textile.md @@ -1,6 +1,6 @@ --- date: 2019-05-13 -url: /meet-the-community-carson-farmer/ +permalink: /meet-the-community-carson-farmer/ title: 'Meet the Community: Carson Farmer @ Textile' description: author: IPFS Events Team @@ -17,7 +17,7 @@ tags: ## Meet the Community: Carson Farmet, Core Developer @ Textile.io -![](./carson-farmer.jpg) +![](/carson-farmer.jpg) ### Tell us a bit about yourself and your background. How did you get involved with IPFS and what’s your relationship with Protocol Labs? diff --git a/src/_blog/meet-the-community--Edgar-Lee-Netflix/README.md b/src/_blog/meet-the-community--Edgar-Lee-Netflix.md similarity index 98% rename from src/_blog/meet-the-community--Edgar-Lee-Netflix/README.md rename to src/_blog/meet-the-community--Edgar-Lee-Netflix.md index e21afa5e..a56a0713 100644 --- a/src/_blog/meet-the-community--Edgar-Lee-Netflix/README.md +++ b/src/_blog/meet-the-community--Edgar-Lee-Netflix.md @@ -1,6 +1,6 @@ --- date: 2019-05-06 -url: /meet-the-community-edgar-lee/ +permalink: /meet-the-community-edgar-lee/ title: 'Meet the Community: Edgar Lee @ Netflix' description: author: IPFS Events Team @@ -17,7 +17,7 @@ tags: # Meet the Community: Edgar Lee, Software Developer @ Netflix -![](./edgar-lee.jpg) +![](/edgar-lee.jpg) ### Tell us a bit about yourself and your background. How did you get involved with IPFS? diff --git a/src/_blog/newscoverage/README.md b/src/_blog/newscoverage.md similarity index 100% rename from src/_blog/newscoverage/README.md rename to src/_blog/newscoverage.md diff --git a/src/_blog/releasenotes/README.md b/src/_blog/releasenotes.md similarity index 100% rename from src/_blog/releasenotes/README.md rename to src/_blog/releasenotes.md diff --git a/src/_blog/tutorials.md b/src/_blog/tutorials.md new file mode 100644 index 00000000..44104b8a --- /dev/null +++ b/src/_blog/tutorials.md @@ -0,0 +1,62 @@ +--- +title: Tutorials +type: Tutorial +data: + - name: 'ProtoSchool: Merkle DAGs — Structuring Data for the Distributed Web' + title: 'ProtoSchool: Merkle DAGs — Structuring Data for the Distributed Web' + path: https://proto.school/merkle-dags + date: 2021-01-14 07:00:00 +0000 + tags: + - ipld + - ' ProtoSchool' + - ' DAG' + - name: 'ProtoSchool: Content Addressing on the Decentralized Web' + title: 'ProtoSchool: Content Addressing on the Decentralized Web' + path: https://proto.school/content-addressing + date: 2021-01-13 01:00:00 +0000 + tags: + - ProtoSchool + - DAG + - CID + - name: 'ProtoSchool: Mutable File System' + title: 'ProtoSchool: Mutable File System' + path: https://proto.school/mutable-file-system + date: 2020-09-12T00:00:00.000+00:00 + tags: + - ProtoSchool + - MFS + - name: 'ProtoSchool: Regular Files API' + title: 'ProtoSchool: Regular Files API' + path: https://proto.school/regular-files-api + date: 2020-09-12T00:00:00.000+00:00 + tags: + - ProtoSchool + - API + - name: 'ProtoSchool: P2P Data Links with Content Addressing' + title: 'ProtoSchool: P2P Data Links with Content Addressing' + path: https://proto.school/basics + date: 2020-09-12T00:00:00.000+00:00 + tags: + - ProtoSchool + - CID + - name: 'ProtoSchool: Blogging on the Decentralized Web' + title: 'ProtoSchool: Blogging on the Decentralized Web' + path: https://proto.school/blog + date: 2020-09-12T00:00:00.000+00:00 + tags: + - ProtoSchool + - static publishing + - name: 'ProtoSchool: Anatomy of a CID' + title: 'ProtoSchool: Anatomy of a CID' + path: https://proto.school/anatomy-of-a-cid + date: 2020-09-12T00:00:00.000+00:00 + tags: + - ProtoSchool + - CID + - name: Install IPFS on a Raspberry Pi 2 + title: Install IPFS on a Raspberry Pi 2 + path: https://www.siliconian.com/blog/16-bitcoin-blockchain/23-beginner-s-guide-to-installing-ipfs-on-a-raspberry-pi-2 + date: 2015-05-02T07:00:00.000+00:00 + tags: + - ProtoSchool +--- diff --git a/src/_blog/tutorials/README.md b/src/_blog/tutorials/README.md deleted file mode 100644 index a80df456..00000000 --- a/src/_blog/tutorials/README.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Tutorials -type: Tutorial -data: -- name: 'ProtoSchool: Merkle DAGs — Structuring Data for the Distributed Web' - title: 'ProtoSchool: Merkle DAGs — Structuring Data for the Distributed Web' - path: https://proto.school/merkle-dags - date: 2021-01-14 07:00:00 +0000 - tags: - - ipld - - " ProtoSchool" - - " DAG" -- name: 'ProtoSchool: Content Addressing on the Decentralized Web' - title: 'ProtoSchool: Content Addressing on the Decentralized Web' - path: https://proto.school/content-addressing - date: 2021-01-13 01:00:00 +0000 - tags: - - ProtoSchool - - DAG - - CID -- name: 'ProtoSchool: Mutable File System' - title: 'ProtoSchool: Mutable File System' - path: https://proto.school/mutable-file-system - date: 2020-09-12T00:00:00.000+00:00 - tags: - - ProtoSchool - - MFS -- name: 'ProtoSchool: Regular Files API' - title: 'ProtoSchool: Regular Files API' - path: https://proto.school/regular-files-api - date: 2020-09-12T00:00:00.000+00:00 - tags: - - ProtoSchool - - API -- name: 'ProtoSchool: P2P Data Links with Content Addressing' - title: 'ProtoSchool: P2P Data Links with Content Addressing' - path: https://proto.school/basics - date: 2020-09-12T00:00:00.000+00:00 - tags: - - ProtoSchool - - CID -- name: 'ProtoSchool: Blogging on the Decentralized Web' - title: 'ProtoSchool: Blogging on the Decentralized Web' - path: https://proto.school/blog - date: 2020-09-12T00:00:00.000+00:00 - tags: - - ProtoSchool - - static publishing -- name: 'ProtoSchool: Anatomy of a CID' - title: 'ProtoSchool: Anatomy of a CID' - path: https://proto.school/anatomy-of-a-cid - date: 2020-09-12T00:00:00.000+00:00 - tags: - - ProtoSchool - - CID -- name: Install IPFS on a Raspberry Pi 2 - title: Install IPFS on a Raspberry Pi 2 - path: https://www.siliconian.com/blog/16-bitcoin-blockchain/23-beginner-s-guide-to-installing-ipfs-on-a-raspberry-pi-2 - date: 2015-05-02T07:00:00.000+00:00 - tags: - - ProtoSchool - ---- diff --git a/src/_blog/videos/README.md b/src/_blog/videos.md similarity index 100% rename from src/_blog/videos/README.md rename to src/_blog/videos.md diff --git a/src/_blog/weekly-001/README.md b/src/_blog/weekly-001.md similarity index 99% rename from src/_blog/weekly-001/README.md rename to src/_blog/weekly-001.md index ef8fee3d..71fca0bd 100644 --- a/src/_blog/weekly-001/README.md +++ b/src/_blog/weekly-001.md @@ -1,6 +1,6 @@ --- date: 2016-01-11 -url: /4-ipfs-weekly-1/ +permalink: /4-ipfs-weekly-1/ title: IPFS Weekly 1 description: author: Richard Littauer, Andrew Chin diff --git a/src/_blog/weekly-002/README.md b/src/_blog/weekly-002.md similarity index 99% rename from src/_blog/weekly-002/README.md rename to src/_blog/weekly-002.md index 8bb05985..f40da4f3 100644 --- a/src/_blog/weekly-002/README.md +++ b/src/_blog/weekly-002.md @@ -1,6 +1,6 @@ --- date: 2016-01-13 -url: /5-ipfs-weekly-2/ +permalink: /5-ipfs-weekly-2/ title: IPFS Weekly 2 description: author: Richard Littauer, Andrew Chin diff --git a/src/_blog/weekly-003/README.md b/src/_blog/weekly-003.md similarity index 99% rename from src/_blog/weekly-003/README.md rename to src/_blog/weekly-003.md index 4501113c..01007297 100644 --- a/src/_blog/weekly-003/README.md +++ b/src/_blog/weekly-003.md @@ -1,6 +1,6 @@ --- date: 2016-02-01 -url: /6-ipfs-weekly-3/ +permalink: /6-ipfs-weekly-3/ title: IPFS Weekly 3 description: author: Richard Littauer, Andrew Chin diff --git a/src/_blog/weekly-004/README.md b/src/_blog/weekly-004.md similarity index 99% rename from src/_blog/weekly-004/README.md rename to src/_blog/weekly-004.md index fbf9a165..de6e4bc2 100644 --- a/src/_blog/weekly-004/README.md +++ b/src/_blog/weekly-004.md @@ -1,6 +1,6 @@ --- date: 2016-02-05 -url: /7-ipfs-weekly-4/ +permalink: /7-ipfs-weekly-4/ title: IPFS Weekly 4 description: author: Richard Littauer, Andrew Chin diff --git a/src/_blog/weekly-005/README.md b/src/_blog/weekly-005.md similarity index 99% rename from src/_blog/weekly-005/README.md rename to src/_blog/weekly-005.md index 1caaf00e..5ea8ceca 100644 --- a/src/_blog/weekly-005/README.md +++ b/src/_blog/weekly-005.md @@ -1,6 +1,6 @@ --- date: 2016-03-04 -url: /10-ipfs-weekly-5/ +permalink: /10-ipfs-weekly-5/ title: IPFS Weekly 5 description: author: Richard Littauer, Andrew Chin diff --git a/src/_blog/weekly-006/README.md b/src/_blog/weekly-006.md similarity index 99% rename from src/_blog/weekly-006/README.md rename to src/_blog/weekly-006.md index 96024706..28f07c9b 100644 --- a/src/_blog/weekly-006/README.md +++ b/src/_blog/weekly-006.md @@ -1,6 +1,6 @@ --- date: 2016-03-09 -url: /11-ipfs-weekly-6/ +permalink: /11-ipfs-weekly-6/ title: IPFS Weekly 6 description: author: Richard Littauer, Andrew Chin diff --git a/src/_blog/weekly-007/README.md b/src/_blog/weekly-007.md similarity index 99% rename from src/_blog/weekly-007/README.md rename to src/_blog/weekly-007.md index 83c59d61..aaf11bd6 100644 --- a/src/_blog/weekly-007/README.md +++ b/src/_blog/weekly-007.md @@ -1,6 +1,6 @@ --- date: 2016-03-17 -url: /12-ipfs-weekly-7/ +permalink: /12-ipfs-weekly-7/ title: IPFS Weekly 7 description: author: Richard Littauer, Andrew Chin diff --git a/src/_blog/weekly-008/README.md b/src/_blog/weekly-008.md similarity index 99% rename from src/_blog/weekly-008/README.md rename to src/_blog/weekly-008.md index 0dcb41c5..227549b3 100644 --- a/src/_blog/weekly-008/README.md +++ b/src/_blog/weekly-008.md @@ -1,6 +1,6 @@ --- date: 2016-03-22 -url: /13-ipfs-weekly-8/ +permalink: /13-ipfs-weekly-8/ title: IPFS Weekly 8 description: author: Richard Littauer @@ -16,7 +16,7 @@ Here are some of the highlights for the [March 14](//github.com/ipfs/pm/issues/9 ## Updates -![webui](008_webui.gif) +![webui](/weekly-008-webui.gif) ### [webui](//github.com/ipfs/webui) diff --git a/src/_blog/weekly-009/README.md b/src/_blog/weekly-009.md similarity index 99% rename from src/_blog/weekly-009/README.md rename to src/_blog/weekly-009.md index 1028509e..e4a6ecc3 100644 --- a/src/_blog/weekly-009/README.md +++ b/src/_blog/weekly-009.md @@ -1,6 +1,6 @@ --- date: 2016-04-20 -url: /15-ipfs-weekly-9/ +permalink: /15-ipfs-weekly-9/ title: IPFS Weekly 9 description: author: Richard Littauer @@ -47,7 +47,7 @@ Following [js-ipfs roadmap](https://github.com/ipfs/js-ipfs/blob/master/ROADMAP. ### [Orbit](//github.com/haadcode/orbit) -![Orbit](009_orbit.png) +![Orbit](/weekly-009-orbit.png) [@haadcode](//github.com/haadcode) has been working on improvements to [orbit-db](https://github.com/haadcode/orbit-db), [ipfs-log](https://github.com/haadcode/ipfs-log/) and [Orbit](https://github.com/haadcode/orbit). The message history fetching is now more stable and the UI feedback for loading messages is fixed. All this work will improve the user experience of Orbit. @@ -95,7 +95,7 @@ Last Monday members of the IPFS comminuty attended a [blockchain workshop](http: ### Lisbon Research and Development Meetup -![Lisbon](009_lisbon.png) +![Lisbon](/weekly-009-lisbon.png) [The IPFS Lisbon community had their second "Research & Development Meetup"](http://www.meetup.com/ipfs-lisbon-meetup/events/229807984/), hosted by Uniplaces (https://www.uniplaces.com). The focus was "The Distributed Web" ([Slides](http://www.slideshare.net/DavidDias11/rdm2-the-distributed-web)) and "Machine Learning + Artificial Intelligence for Recommender Algorithms", with talks by [David Dias](https://github.com/diasdavid) and [João Ascensão](https://github.com/jtascensao), respectively. If you are around Lisbon, make sure to join http://www.meetup.com/ipfs-lisbon-meetup to get notified about the next one. Resources for this talk can be found [here](https://github.com/research-development-meetup/discussion/tree/master/rdm-2). @@ -113,7 +113,7 @@ BitCoin News had a discussion on using IPFS and Bitcoin for Decentralised Citize ## IPFS Meme of the Week -![Hee hee](009_neo.jpg) +![Hee hee](/weekly-009-neo.jpg) From https://twitter.com/jplur_/status/712670265919086594. Thanks, jplur\_! diff --git a/src/_blog/weekly-010/README.md b/src/_blog/weekly-010.md similarity index 98% rename from src/_blog/weekly-010/README.md rename to src/_blog/weekly-010.md index edadbf7c..f06bcb3c 100644 --- a/src/_blog/weekly-010/README.md +++ b/src/_blog/weekly-010.md @@ -1,6 +1,6 @@ --- date: 2016-05-08 -url: /16-ipfs-weekly-10/ +permalink: /16-ipfs-weekly-10/ title: IPFS Weekly 10 description: author: Richard Littauer @@ -27,7 +27,7 @@ See the [blog](http://blog.ipfs.io/14-ipfs-0-4-0-released/) for more details. [@haadcode](https://github.com/haadcode) upgraded all of his projects to use 0.4.0, got [orbit-db](https://github.com/haadcode/orbit-db) and [ipfs-log](https://github.com/haadcode/ipfs-log) working in the browser, and improved Orbit's UX. As a result, Orbit is much faster and more stable than it was under 0.3! We now have working distributables for [orbit-db](https://github.com/haadcode/orbit-db) and [ipfs-log](https://github.com/haadcode/ipfs-log) in the browser. They still require a local daemon to run to work but this will change when js-ipfs ships. [@haadcode](https://github.com/haadcode) added some new features to Orbit: preview files directly in the chat with code highlighting, players for audio and video, and improved the files browsing functionality in general. You can now also copy the hash of a file to clipboard. It looks like this: -![Orbit](010_orbit.png) +![Orbit](/weekly-010-orbit.png) Finally, [@haadcode](https://github.com/haadcode) also created a simple JavaScript logging module called [logplease](https://github.com/haadcode/logplease), which works in Node.js and browsers. logplease does two simple things: output log messages to the console and/or to a file (Node.js only) and display the log messages with nice colors. It was inspired by [log4js](https://github.com/stritti/log4js) and [debug](https://github.com/visionmedia/debug). @@ -45,7 +45,7 @@ As part of this, [@whyrusleeping](https://github.com/whyrusleeping) removed over ### js-ipld -![libp2p-cli](010_js-libp2p.png) +![libp2p-cli](/weekly-010-js-libp2p.png) [@dignifiedquire](https://github.com/dignifiedquire) shipped an updated version of [js-ipld](https://npmjs.org/ipld) which now conforms to the [latest spec of IPLD](https://github.com/ipfs/specs/tree/master/ipld). In addition [js-ipfs-ipld](https://npmjs.org/ipfs-ipld) was created, which implements the building blocks to use IPLD in js-ipfs. The third package that was published is [js-ipfs-cli](https://npmjs.org/ipld-cli) which gives you a cli tool to interact and experiment with IPLD. @@ -89,7 +89,7 @@ go-ipfs has support for restricting peer connections to certain IP address range ### MIT Meetup -![IPFS Meeting in Cambridge](010_ipfs-boston.jpg) +![IPFS Meeting in Cambridge](/weekly-010-ipfs-boston.jpg) We had the first ever IPFS meetup in Cambridge, at MIT. It was sponsored by [Consensys](https://consensys.net), and hosted by the [MIT Bitcoin Club](http://bitcoin.mit.edu/). [@jbenet](https://github.com/jbenet), [@nicola](https://github.com/nicola), and [@CReckhow](https://twitter.com/CReckhow) each gave talks. A full writeup will appear on the blog as soon as we have edited the videos and posted them on the IPFS YouTube channel. We'll let you know when that happens, here. diff --git a/src/_blog/weekly-011/README.md b/src/_blog/weekly-011.md similarity index 99% rename from src/_blog/weekly-011/README.md rename to src/_blog/weekly-011.md index 4429acb3..71f668b4 100644 --- a/src/_blog/weekly-011/README.md +++ b/src/_blog/weekly-011.md @@ -1,6 +1,6 @@ --- date: 2018-09-25 -url: /45-ipfs-weekly-11/ +permalink: /45-ipfs-weekly-11/ translationKey: 45-ipfs-weekly-11 title: IPFS Weekly 11 description: diff --git a/src/_blog/weekly-012/README.md b/src/_blog/weekly-012.md similarity index 99% rename from src/_blog/weekly-012/README.md rename to src/_blog/weekly-012.md index c6fbd0dc..0f03bb5a 100644 --- a/src/_blog/weekly-012/README.md +++ b/src/_blog/weekly-012.md @@ -1,6 +1,6 @@ --- date: 2018-10-02 -url: /46-ipfs-weekly-12/ +permalink: /46-ipfs-weekly-12/ title: IPFS Weekly 12 description: author: Jenn Turner diff --git a/src/_blog/weekly-013/README.md b/src/_blog/weekly-013.md similarity index 99% rename from src/_blog/weekly-013/README.md rename to src/_blog/weekly-013.md index 3d49e2ca..01d3ac0b 100644 --- a/src/_blog/weekly-013/README.md +++ b/src/_blog/weekly-013.md @@ -1,6 +1,6 @@ --- date: 2018-10-09 -url: /47-ipfs-weekly-13/ +permalink: /47-ipfs-weekly-13/ title: IPFS Weekly 13 description: author: Jenn Turner diff --git a/src/_blog/weekly-014/README.md b/src/_blog/weekly-014.md similarity index 99% rename from src/_blog/weekly-014/README.md rename to src/_blog/weekly-014.md index 36e79aad..762e13a7 100644 --- a/src/_blog/weekly-014/README.md +++ b/src/_blog/weekly-014.md @@ -1,6 +1,6 @@ --- date: 2018-10-16 -url: /48-ipfs-weekly-14/ +permalink: /48-ipfs-weekly-14/ title: IPFS Weekly 14 description: author: Jenn Turner diff --git a/src/_blog/weekly-015/README.md b/src/_blog/weekly-015.md similarity index 99% rename from src/_blog/weekly-015/README.md rename to src/_blog/weekly-015.md index ddcb6026..50633fdf 100644 --- a/src/_blog/weekly-015/README.md +++ b/src/_blog/weekly-015.md @@ -1,6 +1,6 @@ --- date: 2018-10-23 -url: /49-ipfs-weekly-15/ +permalink: /49-ipfs-weekly-15/ title: IPFS Weekly 15 description: author: Jenn Turner diff --git a/src/_blog/weekly-016/README.md b/src/_blog/weekly-016.md similarity index 99% rename from src/_blog/weekly-016/README.md rename to src/_blog/weekly-016.md index 09c108ef..ee8def10 100644 --- a/src/_blog/weekly-016/README.md +++ b/src/_blog/weekly-016.md @@ -1,6 +1,6 @@ --- date: 2018-10-30 -url: /50-ipfs-weekly-16/ +permalink: /50-ipfs-weekly-16/ title: IPFS Weekly 16 description: author: Jenn Turner diff --git a/src/_blog/weekly-017/README.md b/src/_blog/weekly-017.md similarity index 99% rename from src/_blog/weekly-017/README.md rename to src/_blog/weekly-017.md index 5e03a7a9..d5fae8c7 100644 --- a/src/_blog/weekly-017/README.md +++ b/src/_blog/weekly-017.md @@ -1,6 +1,6 @@ --- date: 2018-11-06 -url: /52-ipfs-weekly-17/ +permalink: /52-ipfs-weekly-17/ title: IPFS Weekly 17 description: author: Jenn Turner diff --git a/src/_blog/weekly-018/README.md b/src/_blog/weekly-018.md similarity index 99% rename from src/_blog/weekly-018/README.md rename to src/_blog/weekly-018.md index 1dbe6f0e..db93fcb2 100644 --- a/src/_blog/weekly-018/README.md +++ b/src/_blog/weekly-018.md @@ -1,6 +1,6 @@ --- date: 2018-11-13 -url: /54-ipfs-weekly-18/ +permalink: /54-ipfs-weekly-18/ title: IPFS Weekly 18 description: author: Jenn Turner diff --git a/src/_blog/weekly-019/README.md b/src/_blog/weekly-019.md similarity index 99% rename from src/_blog/weekly-019/README.md rename to src/_blog/weekly-019.md index 6cc4c220..0e7a6a68 100644 --- a/src/_blog/weekly-019/README.md +++ b/src/_blog/weekly-019.md @@ -1,6 +1,6 @@ --- date: 2018-11-20 -url: /56-ipfs-weekly-19/ +permalink: /56-ipfs-weekly-19/ title: IPFS Weekly 19 description: author: Jenn Turner diff --git a/src/_blog/weekly-020/README.md b/src/_blog/weekly-020.md similarity index 99% rename from src/_blog/weekly-020/README.md rename to src/_blog/weekly-020.md index 438e465c..acb4388d 100644 --- a/src/_blog/weekly-020/README.md +++ b/src/_blog/weekly-020.md @@ -1,6 +1,6 @@ --- date: 2018-11-27 -url: /57-ipfs-weekly-20/ +permalink: /57-ipfs-weekly-20/ title: IPFS Weekly 20 description: author: Jenn Turner diff --git a/src/_blog/weekly-021/README.md b/src/_blog/weekly-021.md similarity index 99% rename from src/_blog/weekly-021/README.md rename to src/_blog/weekly-021.md index e29f2716..9b74dcc2 100644 --- a/src/_blog/weekly-021/README.md +++ b/src/_blog/weekly-021.md @@ -1,6 +1,6 @@ --- date: 2018-12-04 -url: /59-ipfs-weekly-21/ +permalink: /59-ipfs-weekly-21/ title: IPFS Weekly 21 description: author: Jenn Turner diff --git a/src/_blog/weekly-022/README.md b/src/_blog/weekly-022.md similarity index 99% rename from src/_blog/weekly-022/README.md rename to src/_blog/weekly-022.md index 314cd64e..c3b080ce 100644 --- a/src/_blog/weekly-022/README.md +++ b/src/_blog/weekly-022.md @@ -1,6 +1,6 @@ --- date: 2018-12-11 -url: /60-ipfs-weekly-22/ +permalink: /60-ipfs-weekly-22/ title: IPFS Weekly 22 description: author: Jenn Turner diff --git a/src/_blog/weekly-023/README.md b/src/_blog/weekly-023.md similarity index 99% rename from src/_blog/weekly-023/README.md rename to src/_blog/weekly-023.md index ba8eddad..a4344c0e 100644 --- a/src/_blog/weekly-023/README.md +++ b/src/_blog/weekly-023.md @@ -1,6 +1,6 @@ --- date: 2018-12-18 -url: /61-ipfs-weekly-23/ +permalink: /61-ipfs-weekly-23/ title: IPFS Weekly 23 description: author: Jenn Turner diff --git a/src/_blog/weekly-024/README.md b/src/_blog/weekly-024.md similarity index 99% rename from src/_blog/weekly-024/README.md rename to src/_blog/weekly-024.md index ca354f24..014a9831 100644 --- a/src/_blog/weekly-024/README.md +++ b/src/_blog/weekly-024.md @@ -1,6 +1,6 @@ --- date: 2019-01-08 -url: /62-ipfs-weekly-24/ +permalink: /62-ipfs-weekly-24/ title: IPFS Weekly 24 description: author: Jenn Turner diff --git a/src/_blog/weekly-025/README.md b/src/_blog/weekly-025.md similarity index 99% rename from src/_blog/weekly-025/README.md rename to src/_blog/weekly-025.md index 6b05c03d..341edc3a 100644 --- a/src/_blog/weekly-025/README.md +++ b/src/_blog/weekly-025.md @@ -1,6 +1,6 @@ --- date: 2019-01-15 -url: /63-ipfs-weekly-25/ +permalink: /63-ipfs-weekly-25/ title: IPFS Weekly 25 description: author: Jenn Turner diff --git a/src/_blog/weekly-026/README.md b/src/_blog/weekly-026.md similarity index 99% rename from src/_blog/weekly-026/README.md rename to src/_blog/weekly-026.md index e0b67ce8..b5b3db4a 100644 --- a/src/_blog/weekly-026/README.md +++ b/src/_blog/weekly-026.md @@ -1,6 +1,6 @@ --- date: 2019-01-22 -url: /65-ipfs-weekly-26/ +permalink: /65-ipfs-weekly-26/ title: IPFS Weekly 26 description: author: Jenn Turner diff --git a/src/_blog/weekly-027/README.md b/src/_blog/weekly-027.md similarity index 99% rename from src/_blog/weekly-027/README.md rename to src/_blog/weekly-027.md index de21edf1..562ddcbd 100644 --- a/src/_blog/weekly-027/README.md +++ b/src/_blog/weekly-027.md @@ -1,6 +1,6 @@ --- date: 2019-01-29 -url: /67-ipfs-weekly-27/ +permalink: /67-ipfs-weekly-27/ title: IPFS Weekly 27 description: author: Jenn Turner diff --git a/src/_blog/weekly-028/README.md b/src/_blog/weekly-028.md similarity index 99% rename from src/_blog/weekly-028/README.md rename to src/_blog/weekly-028.md index 2324dba1..c3585fc7 100644 --- a/src/_blog/weekly-028/README.md +++ b/src/_blog/weekly-028.md @@ -1,6 +1,6 @@ --- date: 2019-02-05 -url: /68-ipfs-weekly-28/ +permalink: /68-ipfs-weekly-28/ title: IPFS Weekly 28 description: author: Jenn Turner diff --git a/src/_blog/weekly-029/README.md b/src/_blog/weekly-029.md similarity index 99% rename from src/_blog/weekly-029/README.md rename to src/_blog/weekly-029.md index acf006fc..ac5bf90d 100644 --- a/src/_blog/weekly-029/README.md +++ b/src/_blog/weekly-029.md @@ -1,6 +1,6 @@ --- date: 2019-02-12 -url: /69-ipfs-weekly-29/ +permalink: /69-ipfs-weekly-29/ title: IPFS Weekly 29 description: author: Jenn Turner diff --git a/src/_blog/weekly-030/README.md b/src/_blog/weekly-030.md similarity index 99% rename from src/_blog/weekly-030/README.md rename to src/_blog/weekly-030.md index df6ed32c..45048970 100644 --- a/src/_blog/weekly-030/README.md +++ b/src/_blog/weekly-030.md @@ -1,6 +1,6 @@ --- date: 2019-02-19 -url: /70-ipfs-weekly-30/ +permalink: /70-ipfs-weekly-30/ title: IPFS Weekly 30 description: author: Jenn Turner diff --git a/src/_blog/weekly-031/README.md b/src/_blog/weekly-031.md similarity index 99% rename from src/_blog/weekly-031/README.md rename to src/_blog/weekly-031.md index 87782c69..61148654 100644 --- a/src/_blog/weekly-031/README.md +++ b/src/_blog/weekly-031.md @@ -1,6 +1,6 @@ --- date: 2019-02-26 -url: /71-ipfs-weekly-31/ +permalink: /71-ipfs-weekly-31/ title: IPFS Weekly 31 description: author: Jenn Turner diff --git a/src/_blog/weekly-032/README.md b/src/_blog/weekly-032.md similarity index 99% rename from src/_blog/weekly-032/README.md rename to src/_blog/weekly-032.md index 124e5b58..be879466 100644 --- a/src/_blog/weekly-032/README.md +++ b/src/_blog/weekly-032.md @@ -1,6 +1,6 @@ --- date: 2019-03-05 -url: /73-ipfs-weekly-32/ +permalink: /73-ipfs-weekly-32/ title: IPFS Weekly 32 description: author: Jenn Turner diff --git a/src/_blog/weekly-033/README.md b/src/_blog/weekly-033.md similarity index 99% rename from src/_blog/weekly-033/README.md rename to src/_blog/weekly-033.md index 9c90a050..b96ecd93 100644 --- a/src/_blog/weekly-033/README.md +++ b/src/_blog/weekly-033.md @@ -1,6 +1,6 @@ --- date: 2019-03-12 -url: /74-ipfs-weekly-33/ +permalink: /74-ipfs-weekly-33/ title: IPFS Weekly 33 description: author: Jenn Turner diff --git a/src/_blog/weekly-034/README.md b/src/_blog/weekly-034.md similarity index 99% rename from src/_blog/weekly-034/README.md rename to src/_blog/weekly-034.md index 9b0d139c..eedc69c3 100644 --- a/src/_blog/weekly-034/README.md +++ b/src/_blog/weekly-034.md @@ -1,6 +1,6 @@ --- date: 2019-03-19 -url: /75-ipfs-weekly-34/ +permalink: /75-ipfs-weekly-34/ title: IPFS Weekly 34 description: author: Jenn Turner diff --git a/src/_blog/weekly-035/README.md b/src/_blog/weekly-035.md similarity index 99% rename from src/_blog/weekly-035/README.md rename to src/_blog/weekly-035.md index 0781f2dc..5aae1487 100644 --- a/src/_blog/weekly-035/README.md +++ b/src/_blog/weekly-035.md @@ -1,6 +1,6 @@ --- date: 2019-03-26 -url: /76-ipfs-weekly-35/ +permalink: /76-ipfs-weekly-35/ title: IPFS Weekly 35 description: author: Jenn Turner diff --git a/src/_blog/weekly-036/README.md b/src/_blog/weekly-036.md similarity index 99% rename from src/_blog/weekly-036/README.md rename to src/_blog/weekly-036.md index e58b83de..78428bf7 100644 --- a/src/_blog/weekly-036/README.md +++ b/src/_blog/weekly-036.md @@ -1,6 +1,6 @@ --- date: 2019-04-02 -url: /77-ipfs-weekly-36/ +permalink: /77-ipfs-weekly-36/ title: IPFS Weekly 36 description: author: Jenn Turner diff --git a/src/_blog/weekly-037/README.md b/src/_blog/weekly-037.md similarity index 99% rename from src/_blog/weekly-037/README.md rename to src/_blog/weekly-037.md index 524614f7..30b69468 100644 --- a/src/_blog/weekly-037/README.md +++ b/src/_blog/weekly-037.md @@ -1,6 +1,6 @@ --- date: 2019-04-10 -url: /79-ipfs-weekly-37/ +permalink: /79-ipfs-weekly-37/ title: Recapping IPFS in Q1 2019 🎉 description: author: Jenn Turner diff --git a/src/_blog/weekly-038/README.md b/src/_blog/weekly-038.md similarity index 99% rename from src/_blog/weekly-038/README.md rename to src/_blog/weekly-038.md index 5c61c363..7baa0e6d 100644 --- a/src/_blog/weekly-038/README.md +++ b/src/_blog/weekly-038.md @@ -1,6 +1,6 @@ --- date: 2019-04-16 -url: /82-ipfs-weekly-38/ +permalink: /82-ipfs-weekly-38/ title: IPFS Weekly 38 description: author: Jenn Turner diff --git a/src/_blog/weekly-039/README.md b/src/_blog/weekly-039.md similarity index 99% rename from src/_blog/weekly-039/README.md rename to src/_blog/weekly-039.md index e098cfcd..54db3bab 100644 --- a/src/_blog/weekly-039/README.md +++ b/src/_blog/weekly-039.md @@ -1,6 +1,6 @@ --- date: 2019-04-23 -url: /84-ipfs-weekly-39/ +permalink: /84-ipfs-weekly-39/ title: IPFS Weekly 39 description: author: Jenn Turner diff --git a/src/_blog/weekly-040/README.md b/src/_blog/weekly-040.md similarity index 99% rename from src/_blog/weekly-040/README.md rename to src/_blog/weekly-040.md index 60741c5a..f38c70c3 100644 --- a/src/_blog/weekly-040/README.md +++ b/src/_blog/weekly-040.md @@ -1,6 +1,6 @@ --- date: 2019-04-30 -url: /85-ipfs-weekly-40/ +permalink: /85-ipfs-weekly-40/ title: IPFS Weekly 40 description: author: Jenn Turner diff --git a/src/_blog/weekly-041/README.md b/src/_blog/weekly-041.md similarity index 99% rename from src/_blog/weekly-041/README.md rename to src/_blog/weekly-041.md index f5da450a..a265bba9 100644 --- a/src/_blog/weekly-041/README.md +++ b/src/_blog/weekly-041.md @@ -1,6 +1,6 @@ --- date: 2019-05-07 -url: /86-ipfs-weekly-41/ +permalink: /86-ipfs-weekly-41/ title: IPFS Weekly 41 description: author: Jenn Turner diff --git a/src/_blog/weekly-042/README.md b/src/_blog/weekly-042.md similarity index 99% rename from src/_blog/weekly-042/README.md rename to src/_blog/weekly-042.md index 18d489a2..c2933fad 100644 --- a/src/_blog/weekly-042/README.md +++ b/src/_blog/weekly-042.md @@ -1,6 +1,6 @@ --- date: 2019-05-14 -url: /87-ipfs-weekly-42/ +permalink: /87-ipfs-weekly-42/ title: IPFS Weekly 42 description: author: Jenn Turner diff --git a/src/_blog/weekly-043/README.md b/src/_blog/weekly-043.md similarity index 99% rename from src/_blog/weekly-043/README.md rename to src/_blog/weekly-043.md index fecb11dc..6ed55090 100644 --- a/src/_blog/weekly-043/README.md +++ b/src/_blog/weekly-043.md @@ -1,6 +1,6 @@ --- date: 2019-05-21 -url: /88-ipfs-weekly-43/ +permalink: /88-ipfs-weekly-43/ title: IPFS Weekly 43 description: author: Jenn Turner diff --git a/src/_blog/weekly-044/README.md b/src/_blog/weekly-044.md similarity index 99% rename from src/_blog/weekly-044/README.md rename to src/_blog/weekly-044.md index 926b5b42..fc63f4d8 100644 --- a/src/_blog/weekly-044/README.md +++ b/src/_blog/weekly-044.md @@ -1,6 +1,6 @@ --- date: 2019-05-28 -url: /90-ipfs-weekly-44/ +permalink: /90-ipfs-weekly-44/ title: IPFS Weekly 44 description: author: Jenn Turner diff --git a/src/_blog/weekly-045/README.md b/src/_blog/weekly-045.md similarity index 99% rename from src/_blog/weekly-045/README.md rename to src/_blog/weekly-045.md index 8da617a4..db0195cc 100644 --- a/src/_blog/weekly-045/README.md +++ b/src/_blog/weekly-045.md @@ -1,6 +1,6 @@ --- date: 2019-06-11 -url: /94-ipfs-weekly-45/ +permalink: /94-ipfs-weekly-45/ title: IPFS Weekly 45 description: author: Jenn Turner diff --git a/src/_blog/weekly-046/README.md b/src/_blog/weekly-046.md similarity index 99% rename from src/_blog/weekly-046/README.md rename to src/_blog/weekly-046.md index bbe79e2f..3bca491f 100644 --- a/src/_blog/weekly-046/README.md +++ b/src/_blog/weekly-046.md @@ -1,6 +1,6 @@ --- date: 2019-06-18 -url: /95-ipfs-weekly-46/ +permalink: /95-ipfs-weekly-46/ title: IPFS Weekly 46 description: author: Jenn Turner diff --git a/src/_blog/weekly-047/README.md b/src/_blog/weekly-047.md similarity index 99% rename from src/_blog/weekly-047/README.md rename to src/_blog/weekly-047.md index 02c66295..47f14d90 100644 --- a/src/_blog/weekly-047/README.md +++ b/src/_blog/weekly-047.md @@ -1,6 +1,6 @@ --- date: 2019-06-25 -url: /96-ipfs-weekly-47/ +permalink: /96-ipfs-weekly-47/ title: IPFS Weekly 47 description: author: Jenn Turner diff --git a/src/_blog/weekly-048/README.md b/src/_blog/weekly-048.md similarity index 99% rename from src/_blog/weekly-048/README.md rename to src/_blog/weekly-048.md index 7448ac51..0cbf76b6 100644 --- a/src/_blog/weekly-048/README.md +++ b/src/_blog/weekly-048.md @@ -1,6 +1,6 @@ --- date: 2019-07-02 -url: /97-ipfs-weekly-48/ +permalink: /97-ipfs-weekly-48/ title: IPFS Weekly 48 description: author: Jenn Turner diff --git a/src/_blog/weekly-049/README.md b/src/_blog/weekly-049.md similarity index 99% rename from src/_blog/weekly-049/README.md rename to src/_blog/weekly-049.md index 9b76c10f..a177eab2 100644 --- a/src/_blog/weekly-049/README.md +++ b/src/_blog/weekly-049.md @@ -1,6 +1,6 @@ --- date: 2019-07-09 -url: /98-ipfs-weekly-49/ +permalink: /98-ipfs-weekly-49/ title: Recapping IPFS in Q2 2019 🎉 description: author: Jenn Turner diff --git a/src/_blog/weekly-050/README.md b/src/_blog/weekly-050.md similarity index 99% rename from src/_blog/weekly-050/README.md rename to src/_blog/weekly-050.md index be38eb35..4737f529 100644 --- a/src/_blog/weekly-050/README.md +++ b/src/_blog/weekly-050.md @@ -1,6 +1,6 @@ --- date: 2019-07-16 -url: /weekly-50/ +permalink: /weekly-50/ title: IPFS Weekly 50 description: author: Jenn Turner diff --git a/src/_blog/weekly-051/README.md b/src/_blog/weekly-051.md similarity index 99% rename from src/_blog/weekly-051/README.md rename to src/_blog/weekly-051.md index fbeae96f..28ac0403 100644 --- a/src/_blog/weekly-051/README.md +++ b/src/_blog/weekly-051.md @@ -1,6 +1,6 @@ --- date: 2019-07-23 -url: /weekly-51/ +permalink: /weekly-51/ translationKey: ipfs-weekly-51 title: IPFS Weekly 51 description: diff --git a/src/_blog/weekly-052/README.md b/src/_blog/weekly-052.md similarity index 99% rename from src/_blog/weekly-052/README.md rename to src/_blog/weekly-052.md index 94ca95b1..5f5537b7 100644 --- a/src/_blog/weekly-052/README.md +++ b/src/_blog/weekly-052.md @@ -1,6 +1,6 @@ --- date: 2019-07-30 -url: /weekly-52/ +permalink: /weekly-52/ translationKey: ipfs-weekly-52 title: IPFS Weekly 52 description: diff --git a/src/_blog/weekly-053/README.md b/src/_blog/weekly-053.md similarity index 99% rename from src/_blog/weekly-053/README.md rename to src/_blog/weekly-053.md index 0d9189bf..74fb6e0d 100644 --- a/src/_blog/weekly-053/README.md +++ b/src/_blog/weekly-053.md @@ -1,6 +1,6 @@ --- date: 2019-08-06 -url: /weekly-53/ +permalink: /weekly-53/ translationKey: ipfs-weekly-53 title: IPFS Weekly 53 description: diff --git a/src/_blog/weekly-054/README.md b/src/_blog/weekly-054.md similarity index 99% rename from src/_blog/weekly-054/README.md rename to src/_blog/weekly-054.md index 8813a492..a4227509 100644 --- a/src/_blog/weekly-054/README.md +++ b/src/_blog/weekly-054.md @@ -1,6 +1,6 @@ --- date: 2019-08-13 -url: /weekly-54/ +permalink: /weekly-54/ translationKey: ipfs-weekly-54 title: IPFS Weekly 54 description: diff --git a/src/_blog/weekly-055/README.md b/src/_blog/weekly-055.md similarity index 99% rename from src/_blog/weekly-055/README.md rename to src/_blog/weekly-055.md index dff23171..47e036b8 100644 --- a/src/_blog/weekly-055/README.md +++ b/src/_blog/weekly-055.md @@ -1,6 +1,6 @@ --- date: 2019-08-20 -url: /weekly-55/ +permalink: /weekly-55/ translationKey: ipfs-weekly-55 title: IPFS Weekly 55 description: diff --git a/src/_blog/weekly-056/README.md b/src/_blog/weekly-056.md similarity index 99% rename from src/_blog/weekly-056/README.md rename to src/_blog/weekly-056.md index d6b6a9af..17560cf0 100644 --- a/src/_blog/weekly-056/README.md +++ b/src/_blog/weekly-056.md @@ -1,6 +1,6 @@ --- date: 2019-08-27 -url: /weekly-56/ +permalink: /weekly-56/ translationKey: ipfs-weekly-56 title: IPFS Weekly 56 description: diff --git a/src/_blog/weekly-057/README.md b/src/_blog/weekly-057.md similarity index 99% rename from src/_blog/weekly-057/README.md rename to src/_blog/weekly-057.md index a580f8f8..a60e65b2 100644 --- a/src/_blog/weekly-057/README.md +++ b/src/_blog/weekly-057.md @@ -1,6 +1,6 @@ --- date: 2019-09-03 -url: /weekly-57/ +permalink: /weekly-57/ translationKey: ipfs-weekly-57 title: IPFS Weekly 57 description: diff --git a/src/_blog/weekly-058/README.md b/src/_blog/weekly-058.md similarity index 99% rename from src/_blog/weekly-058/README.md rename to src/_blog/weekly-058.md index 88695dbe..09e01331 100644 --- a/src/_blog/weekly-058/README.md +++ b/src/_blog/weekly-058.md @@ -1,6 +1,6 @@ --- date: 2019-09-10 -url: /weekly-58/ +permalink: /weekly-58/ translationKey: ipfs-weekly-58 title: IPFS Weekly 58 description: diff --git a/src/_blog/weekly-059/README.md b/src/_blog/weekly-059.md similarity index 99% rename from src/_blog/weekly-059/README.md rename to src/_blog/weekly-059.md index 641eeb17..ac12f06b 100644 --- a/src/_blog/weekly-059/README.md +++ b/src/_blog/weekly-059.md @@ -1,6 +1,6 @@ --- date: 2019-09-17 -url: /weekly-59/ +permalink: /weekly-59/ translationKey: ipfs-weekly-59 title: IPFS Weekly 59 description: diff --git a/src/_blog/weekly-060/README.md b/src/_blog/weekly-060.md similarity index 99% rename from src/_blog/weekly-060/README.md rename to src/_blog/weekly-060.md index 6a8f6663..a5a1274d 100644 --- a/src/_blog/weekly-060/README.md +++ b/src/_blog/weekly-060.md @@ -1,6 +1,6 @@ --- date: 2019-09-24 -url: /weekly-60/ +permalink: /weekly-60/ translationKey: ipfs-weekly-60 title: IPFS Weekly 60 description: diff --git a/src/_blog/weekly-061/README.md b/src/_blog/weekly-061.md similarity index 99% rename from src/_blog/weekly-061/README.md rename to src/_blog/weekly-061.md index 7552cfaf..73d6c941 100644 --- a/src/_blog/weekly-061/README.md +++ b/src/_blog/weekly-061.md @@ -1,6 +1,6 @@ --- date: 2019-10-01 -url: /weekly-61/ +permalink: /weekly-61/ translationKey: ipfs-weekly-61 title: IPFS Weekly 61 description: diff --git a/src/_blog/weekly-062/README.md b/src/_blog/weekly-062.md similarity index 99% rename from src/_blog/weekly-062/README.md rename to src/_blog/weekly-062.md index 1e84ef60..9c2ed7ce 100644 --- a/src/_blog/weekly-062/README.md +++ b/src/_blog/weekly-062.md @@ -1,6 +1,6 @@ --- date: 2019-10-10 -url: /weekly-62/ +permalink: /weekly-62/ translationKey: ipfs-weekly-62 title: IPFS Weekly 62 description: diff --git a/src/_blog/weekly-063/README.md b/src/_blog/weekly-063.md similarity index 99% rename from src/_blog/weekly-063/README.md rename to src/_blog/weekly-063.md index 9b368cab..07fe4a03 100644 --- a/src/_blog/weekly-063/README.md +++ b/src/_blog/weekly-063.md @@ -1,6 +1,6 @@ --- date: 2019-10-15 -url: /weekly-63/ +permalink: /weekly-63/ translationKey: ipfs-weekly-63 title: Recapping IPFS in Q3 2019 🎉 description: diff --git a/src/_blog/weekly-064/README.md b/src/_blog/weekly-064.md similarity index 99% rename from src/_blog/weekly-064/README.md rename to src/_blog/weekly-064.md index 42e6b4ec..9fe16b1c 100644 --- a/src/_blog/weekly-064/README.md +++ b/src/_blog/weekly-064.md @@ -1,6 +1,6 @@ --- date: 2019-10-22 -url: /weekly-64/ +permalink: /weekly-64/ translationKey: ipfs-weekly-64 title: IPFS Weekly 64 description: diff --git a/src/_blog/weekly-065/README.md b/src/_blog/weekly-065.md similarity index 99% rename from src/_blog/weekly-065/README.md rename to src/_blog/weekly-065.md index c04a478d..eb4f67e6 100644 --- a/src/_blog/weekly-065/README.md +++ b/src/_blog/weekly-065.md @@ -1,6 +1,6 @@ --- date: 2019-10-29 -url: /weekly-65/ +permalink: /weekly-65/ translationKey: ipfs-weekly-65 title: IPFS Weekly 65 description: diff --git a/src/_blog/weekly-066/README.md b/src/_blog/weekly-066.md similarity index 99% rename from src/_blog/weekly-066/README.md rename to src/_blog/weekly-066.md index b7d83913..67472997 100644 --- a/src/_blog/weekly-066/README.md +++ b/src/_blog/weekly-066.md @@ -1,6 +1,6 @@ --- date: 2019-11-05 -url: /weekly-66/ +permalink: /weekly-66/ translationKey: ipfs-weekly-66 title: IPFS Weekly 66 description: diff --git a/src/_blog/weekly-067/README.md b/src/_blog/weekly-067.md similarity index 99% rename from src/_blog/weekly-067/README.md rename to src/_blog/weekly-067.md index ff01fd92..9e4bcb40 100644 --- a/src/_blog/weekly-067/README.md +++ b/src/_blog/weekly-067.md @@ -1,6 +1,6 @@ --- date: 2019-11-12 -url: /weekly-67/ +permalink: /weekly-67/ translationKey: ipfs-weekly-67 title: IPFS Weekly 67 description: diff --git a/src/_blog/weekly-068/README.md b/src/_blog/weekly-068.md similarity index 99% rename from src/_blog/weekly-068/README.md rename to src/_blog/weekly-068.md index ef6a4924..5f191fdd 100644 --- a/src/_blog/weekly-068/README.md +++ b/src/_blog/weekly-068.md @@ -1,6 +1,6 @@ --- date: 2019-11-19 -url: /weekly-68/ +permalink: /weekly-68/ translationKey: ipfs-weekly-68 title: IPFS Weekly 68 description: diff --git a/src/_blog/weekly-069/README.md b/src/_blog/weekly-069.md similarity index 99% rename from src/_blog/weekly-069/README.md rename to src/_blog/weekly-069.md index df274fc7..8105c75c 100644 --- a/src/_blog/weekly-069/README.md +++ b/src/_blog/weekly-069.md @@ -1,6 +1,6 @@ --- date: 2019-11-26 -url: /weekly-69/ +permalink: /weekly-69/ translationKey: ipfs-weekly-69 title: IPFS Weekly 69 description: diff --git a/src/_blog/weekly-070/README.md b/src/_blog/weekly-070.md similarity index 99% rename from src/_blog/weekly-070/README.md rename to src/_blog/weekly-070.md index c6880860..ffff27ad 100644 --- a/src/_blog/weekly-070/README.md +++ b/src/_blog/weekly-070.md @@ -1,6 +1,6 @@ --- date: 2019-12-03 -url: /weekly-70/ +permalink: /weekly-70/ translationKey: ipfs-weekly-70 title: IPFS Weekly 70 description: diff --git a/src/_blog/weekly-071/README.md b/src/_blog/weekly-071.md similarity index 99% rename from src/_blog/weekly-071/README.md rename to src/_blog/weekly-071.md index 69715958..8afffeda 100644 --- a/src/_blog/weekly-071/README.md +++ b/src/_blog/weekly-071.md @@ -1,6 +1,6 @@ --- date: 2019-12-10 -url: /weekly-71/ +permalink: /weekly-71/ translationKey: ipfs-weekly-71 title: IPFS Weekly 71 description: diff --git a/src/_blog/weekly-072/README.md b/src/_blog/weekly-072.md similarity index 99% rename from src/_blog/weekly-072/README.md rename to src/_blog/weekly-072.md index 524cc385..ec0eca83 100644 --- a/src/_blog/weekly-072/README.md +++ b/src/_blog/weekly-072.md @@ -1,6 +1,6 @@ --- date: 2019-12-17 -url: /weekly-72/ +permalink: /weekly-72/ translationKey: ipfs-weekly-72 title: 'IPFS Weekly 72: Recapping IPFS in Q4 2019 🎉' description: diff --git a/src/_blog/weekly-073/README.md b/src/_blog/weekly-073.md similarity index 99% rename from src/_blog/weekly-073/README.md rename to src/_blog/weekly-073.md index 0aa51088..7e9342ce 100644 --- a/src/_blog/weekly-073/README.md +++ b/src/_blog/weekly-073.md @@ -1,6 +1,6 @@ --- date: 2020-01-14 -url: /weekly-73/ +permalink: /weekly-73/ translationKey: ipfs-weekly-73 title: IPFS Weekly 73 description: diff --git a/src/_blog/weekly-074/README.md b/src/_blog/weekly-074.md similarity index 99% rename from src/_blog/weekly-074/README.md rename to src/_blog/weekly-074.md index d7ec8fdd..345442db 100644 --- a/src/_blog/weekly-074/README.md +++ b/src/_blog/weekly-074.md @@ -1,6 +1,6 @@ --- date: 2020-01-21 -url: /weekly-74/ +permalink: /weekly-74/ translationKey: ipfs-weekly-74 title: IPFS Weekly 74 description: diff --git a/src/_blog/weekly-075/README.md b/src/_blog/weekly-075.md similarity index 99% rename from src/_blog/weekly-075/README.md rename to src/_blog/weekly-075.md index 007ca6c4..2b76de34 100644 --- a/src/_blog/weekly-075/README.md +++ b/src/_blog/weekly-075.md @@ -1,6 +1,6 @@ --- date: 2020-01-28 -url: /weekly-75/ +permalink: /weekly-75/ translationKey: ipfs-weekly-75 title: IPFS Weekly 75 description: diff --git a/src/_blog/weekly-076/README.md b/src/_blog/weekly-076.md similarity index 99% rename from src/_blog/weekly-076/README.md rename to src/_blog/weekly-076.md index b5507dea..e41701e0 100644 --- a/src/_blog/weekly-076/README.md +++ b/src/_blog/weekly-076.md @@ -1,6 +1,6 @@ --- date: 2020-02-04 -url: /weekly-76/ +permalink: /weekly-76/ translationKey: ipfs-weekly-76 title: IPFS Weekly 76 description: diff --git a/src/_blog/weekly-077/README.md b/src/_blog/weekly-077.md similarity index 99% rename from src/_blog/weekly-077/README.md rename to src/_blog/weekly-077.md index dce42c89..eb07a476 100644 --- a/src/_blog/weekly-077/README.md +++ b/src/_blog/weekly-077.md @@ -1,6 +1,6 @@ --- date: 2020-02-11 -url: /weekly-77/ +permalink: /weekly-77/ translationKey: ipfs-weekly-77 title: IPFS Weekly 77 description: diff --git a/src/_blog/weekly-078/README.md b/src/_blog/weekly-078.md similarity index 99% rename from src/_blog/weekly-078/README.md rename to src/_blog/weekly-078.md index 76a2294e..bd3affe4 100644 --- a/src/_blog/weekly-078/README.md +++ b/src/_blog/weekly-078.md @@ -1,6 +1,6 @@ --- date: 2020-02-18 -url: /weekly-78/ +permalink: /weekly-78/ translationKey: ipfs-weekly-78 title: IPFS Weekly 78 description: diff --git a/src/_blog/weekly-079/README.md b/src/_blog/weekly-079.md similarity index 99% rename from src/_blog/weekly-079/README.md rename to src/_blog/weekly-079.md index dd3c0115..ed175fcc 100644 --- a/src/_blog/weekly-079/README.md +++ b/src/_blog/weekly-079.md @@ -1,6 +1,6 @@ --- date: 2020-02-25 -url: /weekly-79/ +permalink: /weekly-79/ translationKey: ipfs-weekly-79 title: IPFS Weekly 79 description: diff --git a/src/_blog/weekly-080/README.md b/src/_blog/weekly-080.md similarity index 98% rename from src/_blog/weekly-080/README.md rename to src/_blog/weekly-080.md index 60c071af..f9f27228 100644 --- a/src/_blog/weekly-080/README.md +++ b/src/_blog/weekly-080.md @@ -1,8 +1,8 @@ --- date: 2020-03-03 -url: /weekly-80/ +permalink: /weekly-80/ translationKey: ipfs-weekly-80 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 80 description: author: Jenn Turner diff --git a/src/_blog/weekly-081/README.md b/src/_blog/weekly-081.md similarity index 99% rename from src/_blog/weekly-081/README.md rename to src/_blog/weekly-081.md index 351bcb70..5e8d3b8c 100644 --- a/src/_blog/weekly-081/README.md +++ b/src/_blog/weekly-081.md @@ -1,8 +1,8 @@ --- date: 2020-03-10 -url: /weekly-81/ +permalink: /weekly-81/ translationKey: ipfs-weekly-81 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 81 description: author: Jenn Turner diff --git a/src/_blog/weekly-082/README.md b/src/_blog/weekly-082.md similarity index 99% rename from src/_blog/weekly-082/README.md rename to src/_blog/weekly-082.md index eeec36e5..947fdf55 100644 --- a/src/_blog/weekly-082/README.md +++ b/src/_blog/weekly-082.md @@ -1,8 +1,8 @@ --- date: 2020-03-24 -url: /weekly-82/ +permalink: /weekly-82/ translationKey: ipfs-weekly-82 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 82 description: author: Jenn Turner diff --git a/src/_blog/weekly-083/README.md b/src/_blog/weekly-083.md similarity index 99% rename from src/_blog/weekly-083/README.md rename to src/_blog/weekly-083.md index 6375d37a..29b8d86e 100644 --- a/src/_blog/weekly-083/README.md +++ b/src/_blog/weekly-083.md @@ -1,8 +1,8 @@ --- date: 2020-03-31 -url: /weekly-83/ +permalink: /weekly-83/ translationKey: ipfs-weekly-83 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 83 description: author: Jenn Turner diff --git a/src/_blog/weekly-084/README.md b/src/_blog/weekly-084.md similarity index 99% rename from src/_blog/weekly-084/README.md rename to src/_blog/weekly-084.md index be360d36..914ba3cc 100644 --- a/src/_blog/weekly-084/README.md +++ b/src/_blog/weekly-084.md @@ -1,6 +1,6 @@ --- date: 2020-04-08 -url: /weekly-84/ +permalink: /weekly-84/ translationKey: ipfs-weekly-84 title: IPFS Weekly Q1 2020 Recap 🎉 description: diff --git a/src/_blog/weekly-085/README.md b/src/_blog/weekly-085.md similarity index 99% rename from src/_blog/weekly-085/README.md rename to src/_blog/weekly-085.md index bc2462ee..1f609706 100644 --- a/src/_blog/weekly-085/README.md +++ b/src/_blog/weekly-085.md @@ -1,8 +1,8 @@ --- date: 2020-04-14 -url: /weekly-85/ +permalink: /weekly-85/ translationKey: ipfs-weekly-85 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 85 description: author: Jenn Turner diff --git a/src/_blog/weekly-086/README.md b/src/_blog/weekly-086.md similarity index 99% rename from src/_blog/weekly-086/README.md rename to src/_blog/weekly-086.md index 6392a9f8..3a61fc66 100644 --- a/src/_blog/weekly-086/README.md +++ b/src/_blog/weekly-086.md @@ -1,8 +1,8 @@ --- date: 2020-04-21 -url: /weekly-86/ +permalink: /weekly-86/ translationKey: ipfs-weekly-86 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 86 description: author: Jenn Turner diff --git a/src/_blog/weekly-087/README.md b/src/_blog/weekly-087.md similarity index 97% rename from src/_blog/weekly-087/README.md rename to src/_blog/weekly-087.md index e21b2563..8a82158a 100644 --- a/src/_blog/weekly-087/README.md +++ b/src/_blog/weekly-087.md @@ -1,8 +1,8 @@ --- date: 2020-04-28 -url: /weekly-87/ +permalink: /weekly-87/ translationKey: ipfs-weekly-87 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 87 description: author: Jenn Turner @@ -14,7 +14,7 @@ tags: Here’s what’s happening lately in the [InterPlanetary File System](https://ipfs.io/) galaxy and beyond! 🚀 -![Announcing IPFS 0.5](/header_images/090-go-ipfs-0-5-0.png) +![Announcing IPFS 0.5](/090-go-ipfs-0-5-0-header-image.png) ## go-ipfs 0.5.0 is officially here 🚀 diff --git a/src/_blog/weekly-088/README.md b/src/_blog/weekly-088.md similarity index 99% rename from src/_blog/weekly-088/README.md rename to src/_blog/weekly-088.md index 9fb8aaa5..56ccb975 100644 --- a/src/_blog/weekly-088/README.md +++ b/src/_blog/weekly-088.md @@ -1,8 +1,8 @@ --- date: 2020-05-05 -url: /weekly-88/ +permalink: /weekly-88/ translationKey: ipfs-weekly-88 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 88 description: author: Jenn Turner diff --git a/src/_blog/weekly-089/README.md b/src/_blog/weekly-089.md similarity index 99% rename from src/_blog/weekly-089/README.md rename to src/_blog/weekly-089.md index 24344dbc..5c7cbff5 100644 --- a/src/_blog/weekly-089/README.md +++ b/src/_blog/weekly-089.md @@ -1,8 +1,8 @@ --- date: 2020-05-12 -url: /weekly-89/ +permalink: /weekly-89/ translationKey: ipfs-weekly-89 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 89 description: author: Jenn Turner diff --git a/src/_blog/weekly-090/README.md b/src/_blog/weekly-090.md similarity index 98% rename from src/_blog/weekly-090/README.md rename to src/_blog/weekly-090.md index e8eafd76..48cb0840 100644 --- a/src/_blog/weekly-090/README.md +++ b/src/_blog/weekly-090.md @@ -1,8 +1,8 @@ --- date: 2020-05-20 -url: /weekly-90/ +permalink: /weekly-90/ translationKey: ipfs-weekly-90 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 90 description: author: Jenn Turner diff --git a/src/_blog/weekly-091/README.md b/src/_blog/weekly-091.md similarity index 98% rename from src/_blog/weekly-091/README.md rename to src/_blog/weekly-091.md index f15a141e..23b650fd 100644 --- a/src/_blog/weekly-091/README.md +++ b/src/_blog/weekly-091.md @@ -1,8 +1,8 @@ --- date: 2020-05-27 -url: /weekly-91/ +permalink: /weekly-91/ translationKey: ipfs-weekly-91 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 91 description: author: Jenn Turner diff --git a/src/_blog/weekly-092/README.md b/src/_blog/weekly-092.md similarity index 98% rename from src/_blog/weekly-092/README.md rename to src/_blog/weekly-092.md index 6f529b89..79a66b3d 100644 --- a/src/_blog/weekly-092/README.md +++ b/src/_blog/weekly-092.md @@ -1,8 +1,8 @@ --- date: 2020-06-10 -url: /weekly-92/ +permalink: /weekly-92/ translationKey: ipfs-weekly-92 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 92 description: author: Jenn Turner diff --git a/src/_blog/weekly-093/README.md b/src/_blog/weekly-093.md similarity index 98% rename from src/_blog/weekly-093/README.md rename to src/_blog/weekly-093.md index 165a0573..4b38bb76 100644 --- a/src/_blog/weekly-093/README.md +++ b/src/_blog/weekly-093.md @@ -1,8 +1,8 @@ --- date: 2020-06-17 -url: /weekly-93/ +permalink: /weekly-93/ translationKey: ipfs-weekly-93 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 93 description: author: Jenn Turner diff --git a/src/_blog/weekly-094/README.md b/src/_blog/weekly-094.md similarity index 98% rename from src/_blog/weekly-094/README.md rename to src/_blog/weekly-094.md index f14b7954..2dfd49f7 100644 --- a/src/_blog/weekly-094/README.md +++ b/src/_blog/weekly-094.md @@ -1,8 +1,8 @@ --- date: 2020-06-24 -url: /weekly-94/ +permalink: /weekly-94/ translationKey: ipfs-weekly-94 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 94 description: author: Jenn Turner diff --git a/src/_blog/weekly-095/README.md b/src/_blog/weekly-095.md similarity index 98% rename from src/_blog/weekly-095/README.md rename to src/_blog/weekly-095.md index d3c996f9..0071563a 100644 --- a/src/_blog/weekly-095/README.md +++ b/src/_blog/weekly-095.md @@ -1,8 +1,8 @@ --- date: 2020-07-01 -url: /weekly-95/ +permalink: /weekly-95/ translationKey: ipfs-weekly-95 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 95 description: author: Jenn Turner diff --git a/src/_blog/weekly-096/README.md b/src/_blog/weekly-096.md similarity index 99% rename from src/_blog/weekly-096/README.md rename to src/_blog/weekly-096.md index d1e0c2bf..facdd36d 100644 --- a/src/_blog/weekly-096/README.md +++ b/src/_blog/weekly-096.md @@ -1,8 +1,8 @@ --- date: 2020-07-07 -url: /weekly-96/ +permalink: /weekly-96/ translationKey: ipfs-weekly-96 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly’s Q2 2020 Recap Issue description: author: Jenn Turner diff --git a/src/_blog/weekly-097/README.md b/src/_blog/weekly-097.md similarity index 98% rename from src/_blog/weekly-097/README.md rename to src/_blog/weekly-097.md index b0cf2ffc..a53a0225 100644 --- a/src/_blog/weekly-097/README.md +++ b/src/_blog/weekly-097.md @@ -1,8 +1,8 @@ --- date: 2020-07-22 -url: /weekly-97/ +permalink: /weekly-97/ translationKey: ipfs-weekly-97 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 97 description: author: Jenn Turner diff --git a/src/_blog/weekly-098/README.md b/src/_blog/weekly-098.md similarity index 98% rename from src/_blog/weekly-098/README.md rename to src/_blog/weekly-098.md index 5a611d13..93912c06 100644 --- a/src/_blog/weekly-098/README.md +++ b/src/_blog/weekly-098.md @@ -1,8 +1,8 @@ --- date: 2020-07-29 -url: /weekly-98/ +permalink: /weekly-98/ translationKey: ipfs-weekly-98 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 98 description: author: Jenn Turner diff --git a/src/_blog/weekly-099/README.md b/src/_blog/weekly-099.md similarity index 98% rename from src/_blog/weekly-099/README.md rename to src/_blog/weekly-099.md index 186d6949..8d836d36 100644 --- a/src/_blog/weekly-099/README.md +++ b/src/_blog/weekly-099.md @@ -1,8 +1,8 @@ --- date: 2020-08-05 -url: /weekly-99/ +permalink: /weekly-99/ translationKey: ipfs-weekly-99 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 99 description: author: Jenn Turner diff --git a/src/_blog/weekly-100/README.md b/src/_blog/weekly-100.md similarity index 98% rename from src/_blog/weekly-100/README.md rename to src/_blog/weekly-100.md index c0cdbd22..765366bd 100644 --- a/src/_blog/weekly-100/README.md +++ b/src/_blog/weekly-100.md @@ -1,8 +1,8 @@ --- date: 2020-08-12 -url: /weekly-100/ +permalink: /weekly-100/ translationKey: ipfs-weekly-100 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 100 🎉 description: author: Jenn Turner diff --git a/src/_blog/weekly-101/README.md b/src/_blog/weekly-101.md similarity index 98% rename from src/_blog/weekly-101/README.md rename to src/_blog/weekly-101.md index aa3f7518..2c4010c6 100644 --- a/src/_blog/weekly-101/README.md +++ b/src/_blog/weekly-101.md @@ -1,8 +1,8 @@ --- date: 2020-08-19 -url: /weekly-101/ +permalink: /weekly-101/ translationKey: ipfs-weekly-101 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 101 description: author: Jenn Turner diff --git a/src/_blog/weekly-102/README.md b/src/_blog/weekly-102.md similarity index 98% rename from src/_blog/weekly-102/README.md rename to src/_blog/weekly-102.md index 852d390f..8ae4798d 100644 --- a/src/_blog/weekly-102/README.md +++ b/src/_blog/weekly-102.md @@ -1,8 +1,8 @@ --- date: 2020-08-26 -url: /weekly-102/ +permalink: /weekly-102/ translationKey: ipfs-weekly-102 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 102 description: author: Jenn Turner diff --git a/src/_blog/weekly-103/README.md b/src/_blog/weekly-103.md similarity index 98% rename from src/_blog/weekly-103/README.md rename to src/_blog/weekly-103.md index 27c69f21..122c72f9 100644 --- a/src/_blog/weekly-103/README.md +++ b/src/_blog/weekly-103.md @@ -1,8 +1,8 @@ --- date: 2020-09-02 -url: /weekly-103/ +permalink: /weekly-103/ translationKey: ipfs-weekly-103 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly 103 description: author: Jenn Turner diff --git a/src/_blog/weekly-104/README.md b/src/_blog/weekly-104.md similarity index 98% rename from src/_blog/weekly-104/README.md rename to src/_blog/weekly-104.md index f7492f7e..297cf317 100644 --- a/src/_blog/weekly-104/README.md +++ b/src/_blog/weekly-104.md @@ -1,8 +1,8 @@ --- date: 2020-09-09 -url: /weekly-104/ +permalink: /weekly-104/ translationKey: ipfs-weekly-104 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 104 description: author: Jenn Turner diff --git a/src/_blog/weekly-105/README.md b/src/_blog/weekly-105.md similarity index 98% rename from src/_blog/weekly-105/README.md rename to src/_blog/weekly-105.md index 45dfe678..19982d60 100644 --- a/src/_blog/weekly-105/README.md +++ b/src/_blog/weekly-105.md @@ -1,8 +1,8 @@ --- date: 2020-09-16 -url: /weekly-105/ +permalink: /weekly-105/ translationKey: ipfs-weekly-105 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 105 description: author: Jenn Turner diff --git a/src/_blog/weekly-106/README.md b/src/_blog/weekly-106.md similarity index 98% rename from src/_blog/weekly-106/README.md rename to src/_blog/weekly-106.md index a1d86028..dea5baa6 100644 --- a/src/_blog/weekly-106/README.md +++ b/src/_blog/weekly-106.md @@ -1,8 +1,8 @@ --- date: 2020-09-23 -url: /weekly-106/ +permalink: /weekly-106/ translationKey: ipfs-weekly-106 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 106 description: author: Jenn Turner diff --git a/src/_blog/weekly-107/README.md b/src/_blog/weekly-107.md similarity index 98% rename from src/_blog/weekly-107/README.md rename to src/_blog/weekly-107.md index 5aafdfbd..b633c600 100644 --- a/src/_blog/weekly-107/README.md +++ b/src/_blog/weekly-107.md @@ -1,8 +1,8 @@ --- date: 2020-09-30 -url: /weekly-107/ +permalink: /weekly-107/ translationKey: ipfs-weekly-107 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 107 description: author: Jenn Turner diff --git a/src/_blog/weekly-108/README.md b/src/_blog/weekly-108.md similarity index 99% rename from src/_blog/weekly-108/README.md rename to src/_blog/weekly-108.md index e0ba5305..141e50b6 100644 --- a/src/_blog/weekly-108/README.md +++ b/src/_blog/weekly-108.md @@ -1,8 +1,8 @@ --- date: 2020-10-07 -url: /weekly-108/ +permalink: /weekly-108/ translationKey: ipfs-weekly-108 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: IPFS Weekly’s Q3 2020 Recap Issue description: author: Jenn Turner diff --git a/src/_blog/weekly-109/README.md b/src/_blog/weekly-109.md similarity index 98% rename from src/_blog/weekly-109/README.md rename to src/_blog/weekly-109.md index 1aaf42f7..ef275324 100644 --- a/src/_blog/weekly-109/README.md +++ b/src/_blog/weekly-109.md @@ -1,8 +1,8 @@ --- date: 2020-10-14 -url: /weekly-109/ +permalink: /weekly-109/ translationKey: ipfs-weekly-109 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 109 description: author: Jenn Turner diff --git a/src/_blog/weekly-110/README.md b/src/_blog/weekly-110.md similarity index 98% rename from src/_blog/weekly-110/README.md rename to src/_blog/weekly-110.md index 5a3e42a8..3df56e40 100644 --- a/src/_blog/weekly-110/README.md +++ b/src/_blog/weekly-110.md @@ -1,8 +1,8 @@ --- date: 2020-10-20T23:00:00.000+00:00 -url: '/weekly-110/' +permalink: '/weekly-110/' translationKey: ipfs-weekly-110 -header_image: weekly-newsletter.png +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 110 description: '' author: Jenn Turner diff --git a/src/_blog/weekly-111/welcome-to-ipfs-weekly-111.md b/src/_blog/weekly-111.md similarity index 93% rename from src/_blog/weekly-111/welcome-to-ipfs-weekly-111.md rename to src/_blog/weekly-111.md index 102376f8..a184d354 100644 --- a/src/_blog/weekly-111/welcome-to-ipfs-weekly-111.md +++ b/src/_blog/weekly-111.md @@ -1,41 +1,47 @@ --- date: 2020-10-28 06:00:00 +0000 -url: "/weekly-111/" +permalink: '/weekly-111/' translationKey: ipfs-weekly-111 tags: weekly -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 111 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! 🚀 ## The evolution of IPFS + Filecoin + In preparation for Filecoin’s Liftoff week, some of our ecosystem’s leaders shared their reflections on the motivations and growth of the Web3 ecosystem that we’ve been building with IPFS and Filecoin. IPFS and Filecoin founder Juan Benet, and Textile co-founder and CEO Andrew Hill both took to Twitter to share their thoughts. Read [Juan’s journey](https://twitter.com/juanbenet/status/1318205432045842433) and read [Andrew’s path](https://twitter.com/andrewxhill/status/1318234068102705152) ## The Future of the Internet will be decided by tech innovators + Web3, IPFS, and Filecoin were recently the focus of an opinion piece arguing the merits of decentralization in response to the uneven balance of power held by five major tech companies, written by Marvin Ammori. Read on to learn about the legacy of Web 2.0 and how regulation can be helpful, or harmful. [Read more](https://morningconsult.com/opinions/the-future-of-the-internet-will-be-decided-by-tech-innovators/) ## Quote of the week + ## Infura ships support for Filecoin devs + Our friends at Infura recently shipped support for Filecoin via the Filecoin Network API Beta, which select users can join now. The Beta allows developers to connect to the Filecoin Mainnet and build Filecoin-based applications using the Infura dashboard. Connecting your application to Filecoin has never been easier! [Learn more](https://blog.infura.io/introducing-infura-support-for-filecoin-developers/) ## Brand new on IPFS -* Presenting [js-ipfs-fetch](https://github.com/RangerMauve/js-ipfs-fetch), a module which provides a fetch interface for ipfs:// and ipns://. -* [TUTORIAL](https://www.youtube.com/watch?v=wFxD8GTj9Y8): Build a “Twitter” Dapp using Vue.js and 3Box in this video from the 3Box community. -* [Making crypto payments](https://hackernoon.com/making-crypto-payments-less-scary-pjv3z2f) less scary with Chainlink and Unstoppable Domains. -* [FISSION put together resources](https://talk.fission.codes/t/user-controlled-authorization-networks-ucan-resources/1122) on the User Controlled Authorization Network (UCAN). + +- Presenting [js-ipfs-fetch](https://github.com/RangerMauve/js-ipfs-fetch), a module which provides a fetch interface for ipfs:// and ipns://. +- [TUTORIAL](https://www.youtube.com/watch?v=wFxD8GTj9Y8): Build a “Twitter” Dapp using Vue.js and 3Box in this video from the 3Box community. +- [Making crypto payments](https://hackernoon.com/making-crypto-payments-less-scary-pjv3z2f) less scary with Chainlink and Unstoppable Domains. +- [FISSION put together resources](https://talk.fission.codes/t/user-controlled-authorization-networks-ucan-resources/1122) on the User Controlled Authorization Network (UCAN). ## People are building the coolest things with IPFS + What is Cyber’s consensus computer on top of IPFS? [An overview in 45 seconds](https://www.youtube.com/watch?v=mTrGJRM6IME). The [IPFS link](https://cyber.page/ipfs/QmQrbAPdAWY6v1QMZhki2rCpp7n9Gy5tuPY2Bz4RBenkfw) on Cyber’s decentralized search engine. View [source code here](https://github.com/cybercongress/go-cyber). Check out the [Unity Engine + MetaMask Wallet](https://medium.com/coinmonks/unity-engine-metamask-wallet-6797d4699e45). Automagically connect your Unity game with a MetaMask (or any) wallet! @@ -52,7 +58,7 @@ VIDEO: Learn about the [new and improved Collection View](https://www.youtube.co See how easy it is to verify your Twitter handle on the blockchain with [Chainlink and Unstoppable Domains](https://twitter.com/girlgone_crypto/status/1318668723402633216). -[Infura asks](https://blog.infura.io/what-does-it-take-to-handle-two-billion-eth_calls-per-day/), what does it take to handle two billion eth_calls per day? +[Infura asks](https://blog.infura.io/what-does-it-take-to-handle-two-billion-eth_calls-per-day/), what does it take to handle two billion eth_calls per day? ## Job hunting? Work on IPFS! @@ -62,7 +68,7 @@ See how easy it is to verify your Twitter handle on the blockchain with [Chainli [Technical Writer](https://www.notion.so/Hiring-Technical-Writer-bc6a543f6bea40f28c06abfbfd810ea4): who can primarily create high-quality technical content, but has some other adjacent skills as well in the form of graphic design and/or video editing. Contract, Remote. -[Devops or SRE](https://authenticjobs.com/job/3006/textile-devops-or-sre/): The role is for someone with strong hands-on DevOps experience (cloud architecture, automated deployment, Kubernetes orchestration) that also likes to get their hands into the code (primarily written in Go). Textile, Remote. +[Devops or SRE](https://authenticjobs.com/job/3006/textile-devops-or-sre/): The role is for someone with strong hands-on DevOps experience (cloud architecture, automated deployment, Kubernetes orchestration) that also likes to get their hands into the code (primarily written in Go). Textile, Remote. [Front-end Developer](https://twitter.com/ceramicnetwork/status/1305886402886995968): Are you an experienced front end dev that understands IPFS and linked data and wants to make an impact on the future of Web3? Ceramic is looking for a contractor to work on Ceramic Explorer. @@ -73,4 +79,5 @@ See how easy it is to verify your Twitter handle on the blockchain with [Chainli Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us.](mailto:newsletter@ipfs.io) Get the IPFS Weekly in your inbox, each Tuesday. -

Sign up now

\ No newline at end of file + +

Sign up now

diff --git a/src/_blog/weekly-111/.gitkeep b/src/_blog/weekly-111/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/weekly-112/welcome-to-ipfs-weekly-112.md b/src/_blog/weekly-112.md similarity index 92% rename from src/_blog/weekly-112/welcome-to-ipfs-weekly-112.md rename to src/_blog/weekly-112.md index 62144e03..5625cfe2 100644 --- a/src/_blog/weekly-112/welcome-to-ipfs-weekly-112.md +++ b/src/_blog/weekly-112.md @@ -1,38 +1,43 @@ --- date: 2020-11-04 07:00:00 +0000 -url: "/weekly-112/" +permalink: '/weekly-112/' translationKey: ipfs-weekly-112 tags: weekly -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 112 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! 🚀 -## js-IPFS 0.51.0 shipped with TypeScript support +## js-IPFS 0.51.0 shipped with TypeScript support + Thanks to a lot of community support, types are now a first-class citizen within the js-IPFS codebase! But the real headline here should be that install times can now be halved by installing ipfs-core. Check out the full announcement for details. [Read more](https://blog.ipfs.io/2020-10-29-js-ipfs-0-50/) ## Securing the public IPFS with DHT hardening -Thanks to the work of some researchers and a small crew of core devs, we were able to not only make several crucial fixes but with the availability of Testground, we were also able to verify the mitigations. Special thanks to Bernd Prünster and Alexander Marsalek at A-SIT and the Graz University of Technology for their assistance. + +Thanks to the work of some researchers and a small crew of core devs, we were able to not only make several crucial fixes but with the availability of Testground, we were also able to verify the mitigations. Special thanks to Bernd Prünster and Alexander Marsalek at A-SIT and the Graz University of Technology for their assistance. [Read more](https://blog.ipfs.io/2020-10-30-dht-hardening/) ## Honey, I shrunk the Libp2p streams 😱 + Last week, the Protocol Labs’ ResNetLab team shipped an exploration of compression for libp2p streams and ended up achieving up to a 75% decrease in bandwidth use when performing an IPFS file exchange. Discover how in their latest blog post. [Read more](https://research.protocol.ai/blog/2020/honey-i-shrunk-our-libp2p-streams/) ## Brand new on IPFS -* [Audius in Blockonomi](https://blockonomi.com/audius-ethereum-music-app/): The Ethereum Music App Putting Streaming in Artists’ Hands -* [Looking for a decentralized document signing solution?](https://www.youtube.com/watch?v=XZy307J-0dI&feature=youtu.be) Signchain built one with IDX and IPFS. -* DEMO: [Archiving your Airtable Data with Qri](https://medium.com/qri-io/archiving-your-airtable-data-with-qri-12dbda8783c3) (and another version featuring Google Sheets) -* The [JS implementation of Multiformats](https://github.com/multiformats/js-multiformats) recently got a refactor including TypeScript support. + +- [Audius in Blockonomi](https://blockonomi.com/audius-ethereum-music-app/): The Ethereum Music App Putting Streaming in Artists’ Hands +- [Looking for a decentralized document signing solution?](https://www.youtube.com/watch?v=XZy307J-0dI&feature=youtu.be) Signchain built one with IDX and IPFS. +- DEMO: [Archiving your Airtable Data with Qri](https://medium.com/qri-io/archiving-your-airtable-data-with-qri-12dbda8783c3) (and another version featuring Google Sheets) +- The [JS implementation of Multiformats](https://github.com/multiformats/js-multiformats) recently got a refactor including TypeScript support. ## People are building the coolest things with IPFS + [Agregore](https://github.com/AgregoreWeb/agregore-browser/releases/tag/v1.0.0-26) has added IPFS support! 🎉 A detailed explanation of the [BitCherry (BCHC)](https://medium.com/bitcherryglobal/a-detailed-explanation-of-the-bitcherry-bchc-technological-innovation-mechanism-and-framework-658505819afa) technological innovation mechanism and framework. @@ -55,7 +60,6 @@ Mark your calendars for this month’s virtual community meetup, and reach out t **19 Nov 2020:** [Munich IPFS Meetup](https://www.meetup.com/de-DE/Munich-IPFS-User-Group) Speakers include David Craven from the Sunshine Foundation talking about ipfs-embed, and Volker Mische presenting on IPLD and Multiformats. - ## Job hunting? Work on IPFS! [Support Engineer, Full-Stack](https://textile.breezy.hr/p/b4aada03ce62-support-engineer-full-stack-contractor): As a support engineer, you’ll write code examples, documentation, build applications, and support our growing community of developers. Contract role, Textile, Remote. @@ -64,7 +68,7 @@ Speakers include David Craven from the Sunshine Foundation talking about ipfs-em [Technical Writer](https://www.notion.so/Hiring-Technical-Writer-bc6a543f6bea40f28c06abfbfd810ea4): who can primarily create high-quality technical content, but has some other adjacent skills as well in the form of graphic design and/or video editing. Contract, Remote. -[Devops or SRE](https://authenticjobs.com/job/3006/textile-devops-or-sre/): The role is for someone with strong hands-on DevOps experience (cloud architecture, automated deployment, Kubernetes orchestration) that also likes to get their hands into the code (primarily written in Go). Textile, Remote. +[Devops or SRE](https://authenticjobs.com/job/3006/textile-devops-or-sre/): The role is for someone with strong hands-on DevOps experience (cloud architecture, automated deployment, Kubernetes orchestration) that also likes to get their hands into the code (primarily written in Go). Textile, Remote. [Front-end Developer](https://twitter.com/ceramicnetwork/status/1305886402886995968): Are you an experienced front end dev that understands IPFS and linked data and wants to make an impact on the future of Web3? Ceramic is looking for a contractor to work on Ceramic Explorer. @@ -73,4 +77,5 @@ Speakers include David Craven from the Sunshine Foundation talking about ipfs-em Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us.](mailto:newsletter@ipfs.io) Get the IPFS Weekly in your inbox, each Tuesday. +

Sign up now

diff --git a/src/_blog/weekly-112/.gitkeep b/src/_blog/weekly-112/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/weekly-113/welcome-to-ipfs-weekly-113.md b/src/_blog/weekly-113.md similarity index 93% rename from src/_blog/weekly-113/welcome-to-ipfs-weekly-113.md rename to src/_blog/weekly-113.md index 220a0cc4..a0088be7 100644 --- a/src/_blog/weekly-113/welcome-to-ipfs-weekly-113.md +++ b/src/_blog/weekly-113.md @@ -1,22 +1,24 @@ --- date: 2020-11-11 07:00:00 +0000 -url: "/weekly-113/" +permalink: '/weekly-113/' translationKey: ipfs-weekly-113 tags: weekly -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 113 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! 🚀 ## IPFS featured on the Whiteboard Series with NEAR -The Whiteboard Series with NEAR is a set of video interviews with creators who are building scalable solutions for blockchain, and in their most recent episode, they interviewed IPFS software engineer Adin Schmahmann. As one of the foremost go-IPFS maintainers, Schmahmann takes the NEAR Protocol audience on a deep dive, including what’s next for IPFS and how it is helping the Web3 ecosystem. + +The Whiteboard Series with NEAR is a set of video interviews with creators who are building scalable solutions for blockchain, and in their most recent episode, they interviewed IPFS software engineer Adin Schmahmann. As one of the foremost go-IPFS maintainers, Schmahmann takes the NEAR Protocol audience on a deep dive, including what’s next for IPFS and how it is helping the Web3 ecosystem. [Watch the interview](https://www.youtube.com/watch?v=J-drqD2UebM&feature=youtu.be) ## IPFS and the summers of P2P, a history + Thanks to contributor and friend to the project, Graven Prest, the history section of the IPFS docs site has a few new chapters. We don’t want to spoil them here, so head over to (or bookmark it, while you’re at it) docs.ipfs.io to check out our history for yourself! [Read more](https://docs.ipfs.io/project/history/#a-p2p-summer-1999-2003) @@ -32,15 +34,17 @@ Register for this month’s virtual community meetup next Tuesday, and [reach ou Speakers include David Craven from the Sunshine Foundation talking about ipfs-embed, and Volker Mische presenting on IPLD and Multiformats. ## Leveraging Bitswap chatter for faster transfers + The latest post from ResNetLab guide you through the process they followed to drive speed-ups on file transfers, from ideation and prototyping to evaluation. Learn how they prototyped and evaluated the first upgrade, which produced an approximately 25% improvement in the time to fetch popular content, and a reduction of the number of control messages exchanged in Bitswap by 75%. [Read more](https://research.protocol.ai/blog/2020/two-ears-one-mouth-how-to-leverage-bitswap-chatter-for-faster-transfers/) ## Brand new on IPFS -* The future of Web3 identity has arrived, [3Box introduces IDX](https://medium.com/3box/idx-a-devkit-for-open-identity-48edc88e8e85): A Devkit for Open Identity. -* [Infura’s October update](https://blog.infura.io/infura-october-2020-update/) includes news on the Infura Filecoin API, MetaMask swaps and more! -* Build an NFT IPFS Wallet for your collection with [Pinata, IPFS and a Raspberry Pi](https://medium.com/pinata/how-to-build-a-portable-nft-display-cae5dc12727e)! -* This Thursday, [join Fluence Network](https://hopin.to/events/fluence-phase-1-launch) as they launch the Aquamarine programming language. + +- The future of Web3 identity has arrived, [3Box introduces IDX](https://medium.com/3box/idx-a-devkit-for-open-identity-48edc88e8e85): A Devkit for Open Identity. +- [Infura’s October update](https://blog.infura.io/infura-october-2020-update/) includes news on the Infura Filecoin API, MetaMask swaps and more! +- Build an NFT IPFS Wallet for your collection with [Pinata, IPFS and a Raspberry Pi](https://medium.com/pinata/how-to-build-a-portable-nft-display-cae5dc12727e)! +- This Thursday, [join Fluence Network](https://hopin.to/events/fluence-phase-1-launch) as they launch the Aquamarine programming language. ## People are building the coolest things with IPFS @@ -50,7 +54,7 @@ VIDEO: Nerd out to IPFS in this [Student Spotlight](https://www.youtube.com/watc From Textile’s “Winner’s Circle”: [Tonic: Honorable mention for exciting use of Threads](https://blog.textile.io/ethonline-tonic-winner/) -The latest from [Berty](https://berty.tech/blog/art-for-privacy/): Art for Privacy +The latest from [Berty](https://berty.tech/blog/art-for-privacy/): Art for Privacy [Unstoppable Domains](https://www.youtube.com/watch?v=w7Rm13v3rho&feature=youtu.be) CEO Brad Kam joins MouseBelt’s Adam Leon to discuss privacy and security, the decentralized web, and what our future of the internet will look like at REIMAGINE 2020. @@ -63,6 +67,7 @@ VIDEO: Watch the introduction to [offchain::ipfs](https://www.youtube.com/watch? Check out this [list of known IPFS web gateways](https://luke.lol/ipfs.php) and their statuses. ## Quote of the week + ## Job hunting? Work on IPFS! @@ -73,7 +78,7 @@ Check out this [list of known IPFS web gateways](https://luke.lol/ipfs.php) and [Technical Writer](https://www.notion.so/Hiring-Technical-Writer-bc6a543f6bea40f28c06abfbfd810ea4): who can primarily create high-quality technical content, but has some other adjacent skills as well in the form of graphic design and/or video editing. Contract, Remote. -[Devops or SRE](https://authenticjobs.com/job/3006/textile-devops-or-sre/): The role is for someone with strong hands-on DevOps experience (cloud architecture, automated deployment, Kubernetes orchestration) that also likes to get their hands into the code (primarily written in Go). Textile, Remote. +[Devops or SRE](https://authenticjobs.com/job/3006/textile-devops-or-sre/): The role is for someone with strong hands-on DevOps experience (cloud architecture, automated deployment, Kubernetes orchestration) that also likes to get their hands into the code (primarily written in Go). Textile, Remote. [Front-end Developer](https://twitter.com/ceramicnetwork/status/1305886402886995968): Are you an experienced front end dev that understands IPFS and linked data and wants to make an impact on the future of Web3? Ceramic is looking for a contractor to work on Ceramic Explorer. @@ -82,4 +87,5 @@ Check out this [list of known IPFS web gateways](https://luke.lol/ipfs.php) and Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us.](mailto:newsletter@ipfs.io) Get the IPFS Weekly in your inbox, each Tuesday. -

Sign up now

\ No newline at end of file + +

Sign up now

diff --git a/src/_blog/weekly-113/.gitkeep b/src/_blog/weekly-113/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/weekly-114/welcome-to-ipfs-weekly-114.md b/src/_blog/weekly-114.md similarity index 89% rename from src/_blog/weekly-114/welcome-to-ipfs-weekly-114.md rename to src/_blog/weekly-114.md index 5a7fa3f4..a098b1ad 100644 --- a/src/_blog/weekly-114/welcome-to-ipfs-weekly-114.md +++ b/src/_blog/weekly-114.md @@ -1,40 +1,45 @@ --- date: 2020-11-18 07:00:00 +0000 -url: "/weekly-114/" +permalink: '/weekly-114/' translationKey: ipfs-weekly-114 tags: weekly -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 114 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! 🚀 ## New releases from js-ipfs, go-libp2p and js-libp2p + Time for some updates y'all! Check out the latest from: -* [js-ipfs v0.52](https://github.com/ipfs/js-ipfs/releases/tag/ipfs%400.52.0): fixes typedef resolution and add examples that use types; removes all esoteric IPLD formats, plus introduces some breaking changes. -* [go-libp2p v0.12](https://github.com/libp2p/go-libp2p/releases/tag/v0.12.0): introduces a new BasicConnectionGater to filter inbound and outbound connections and makes a significant breaking change to the stream interfaces to remove some surprising behavior. -* [js-libp2p v0.29.3](https://github.com/libp2p/js-libp2p/releases/tag/v0.29.3): resolves the issue of multiaddrs before dial. +- [js-ipfs v0.52](https://github.com/ipfs/js-ipfs/releases/tag/ipfs%400.52.0): fixes typedef resolution and add examples that use types; removes all esoteric IPLD formats, plus introduces some breaking changes. +- [go-libp2p v0.12](https://github.com/libp2p/go-libp2p/releases/tag/v0.12.0): introduces a new BasicConnectionGater to filter inbound and outbound connections and makes a significant breaking change to the stream interfaces to remove some surprising behavior. +- [js-libp2p v0.29.3](https://github.com/libp2p/js-libp2p/releases/tag/v0.29.3): resolves the issue of multiaddrs before dial. Stay tuned to [blog.ipfs.io](https://blog.ipfs.io/) for more information, coming soon. ## Quote of the week - + + ## Is digital voting the solution? + The world was recently consumed by the United States presidential election, and that included those working on IPFS. Nate Williams, full-stack developer at Vocdoni, an e-voting project built on Ethereum, zk-SNARKs, and IPFS, recently shared his thoughts on how digital voting can benefit from Web3 technologies. [Read more](https://www.coindesk.com/digital-voting-privacy-blockchain) ## Brand new on IPFS -* [PAPER](https://www.researchgate.net/publication/337450101_A_Distributed_File-Based_Storage_System_for_Improving_High_Availability_of_Space_Weather_Data): A distributed file-based storage system for improving high availability of space weather data. -* [Textile](https://blog.textile.io/threaddb-for-javascript-alpha-preview/) shared an early look at the new ThreadDB for Javascript library, Alpha Preview. -* [Rarible](https://twitter.com/rariblecom/status/1325859471332171783), a community-owned NFT marketplace, rolled out support for music and video NFTs. -* [Pinata](https://medium.com/pinata/stream-files-from-aws-s3-to-ipfs-a0e23ffb7ae5) showed us all how to stream files from AWS S3 to IPFS in their latest tutorial. + +- [PAPER](https://www.researchgate.net/publication/337450101_A_Distributed_File-Based_Storage_System_for_Improving_High_Availability_of_Space_Weather_Data): A distributed file-based storage system for improving high availability of space weather data. +- [Textile](https://blog.textile.io/threaddb-for-javascript-alpha-preview/) shared an early look at the new ThreadDB for Javascript library, Alpha Preview. +- [Rarible](https://twitter.com/rariblecom/status/1325859471332171783), a community-owned NFT marketplace, rolled out support for music and video NFTs. +- [Pinata](https://medium.com/pinata/stream-files-from-aws-s3-to-ipfs-a0e23ffb7ae5) showed us all how to stream files from AWS S3 to IPFS in their latest tutorial. ## People are building the coolest things with IPFS + Build web apps with [Ceramic and 3ID Connect](https://medium.com/ceramic/tutorial-build-web-apps-with-ceramic-and-3id-connect-bd1353b8876a). Learn about distributed pinning of [IPFS hashes](https://medium.com/avado-node/distributed-pinning-of-ipfs-hashes-a6a977f980d3). @@ -76,4 +81,5 @@ Join the Filecoin team, ecosystem partners, and community members for the Novemb Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us.](mailto:newsletter@ipfs.io) Get the IPFS Weekly in your inbox, each Tuesday. +

Sign up now

diff --git a/src/_blog/weekly-114/.gitkeep b/src/_blog/weekly-114/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/weekly-115/welcome-to-ipfs-weekly-115.md b/src/_blog/weekly-115.md similarity index 91% rename from src/_blog/weekly-115/welcome-to-ipfs-weekly-115.md rename to src/_blog/weekly-115.md index 8bdcdd0a..3d3e23c6 100644 --- a/src/_blog/weekly-115/welcome-to-ipfs-weekly-115.md +++ b/src/_blog/weekly-115.md @@ -1,48 +1,54 @@ --- date: 2020-11-25 07:00:00 +0000 -url: "/weekly-115/" +permalink: '/weekly-115/' translationKey: ipfs-weekly-115 tags: weekly -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 115 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! 🚀 ## IPLD: The data layer of a decentralized web + What’s going on in the world of IPLD? There have been loads of improvements in the past months, and luckily project lead Mikeal Rogers has shared an update from the land of InterPlanetary Linked Data and structures. [Read more](https://medium.com/@mikeal/the-new-data-d6b5e392da43) -## CFP: help us shape IPFS in 2021 +## CFP: help us shape IPFS in 2021 + Want to help shape the 2021 IPFS project plan? We’re looking for your input on what’s important for IPFS to focus on next year! The proposal period runs through Monday, December 7. Read the full announcement for more details on how you can give your input. [Read more](https://blog.ipfs.io/2020-11-19-community-rfp/) ## Quote of the week - + + ## How to store signed and encrypted data on IPFS + Recently, Ceramic Engineering has gifted us with a brilliant guide to storing signed and encrypted data directly in IPFS using two new standards: DAG-jose and EIP-2844. Learn all about how to create a signed data structure with ease. [Read more](https://blog.ceramic.network/how-to-store-signed-and-encrypted-data-on-ipfs/) ## Brand new on IPFS -* [Space has reached its Alpha release](https://blog.space.storage/posts/space-alpha-where-we-are-what-is-next), and shares where the project is at, and what is next. -* [IPFS Companion v2.16.0](https://github.com/ipfs-shipyard/ipfs-companion/releases/tag/v2.16.0) is here! This release has spiffy UI enhancements plus a few new features. -* [FISSION asks](https://talk.fission.codes/t/application-for-iot/1186/2), does anyone have pointers to existing IPFS + IoT projects or experiments? -* Keychain uses IPFS to store all the data needed to keep your NFTs on [minty.keychain.me](https://minty.keychain.me). + +- [Space has reached its Alpha release](https://blog.space.storage/posts/space-alpha-where-we-are-what-is-next), and shares where the project is at, and what is next. +- [IPFS Companion v2.16.0](https://github.com/ipfs-shipyard/ipfs-companion/releases/tag/v2.16.0) is here! This release has spiffy UI enhancements plus a few new features. +- [FISSION asks](https://talk.fission.codes/t/application-for-iot/1186/2), does anyone have pointers to existing IPFS + IoT projects or experiments? +- Keychain uses IPFS to store all the data needed to keep your NFTs on [minty.keychain.me](https://minty.keychain.me). ## People are building the coolest things with IPFS + [Smart NFTs](https://medium.com/phantasticphantasma/the-smart-nft-3a1ff1c03328) are creating a revolution in content distribution. PAPER: Creating a [Traceable Product Story in Manufacturing Supply Chains](http://ltu.diva-portal.org/smash/record.jsf?aq2=%5B%5B%5D%5D&c=4&af=%5B%5D&searchType=LIST_LATEST&sortOrder2=title_sort_asc&query=&language=en&pid=diva2%3A1501699&aq=%5B%5B%5D%5D&sf=all&aqe=%5B%5D&sortOrder=author_sort_asc&onlyFullText=false&noOfRows=50&dswid=-5208) using IPFS DEMO: This is what my [future IPFS-hosted website](https://twitter.com/achatainga/status/1329151805465489409?s=20) made with GatsbyJS and ReactJS will look like. -Go down the rabbit hole with Brad Kam, Co-founder of Unstoppable Domains on Episode 24 of [Follow The White Rabbit](https://www.orchid.com/podcast/episode-24-brad-kam). +Go down the rabbit hole with Brad Kam, Co-founder of Unstoppable Domains on Episode 24 of [Follow The White Rabbit](https://www.orchid.com/podcast/episode-24-brad-kam). [Putting video on Filecoin](https://blog.textile.io/video-on-filecoin-using-voodfy-project-and-powergate/): exploring the Voodfy project built with Powergate. @@ -58,7 +64,7 @@ Mintable will soon be [launching v2.0](https://mintable.medium.com/one-week-left -Learn about the IPFS Pinning Services in this recent talk from Filecoin Liftoff week by Marcin “Lidel” Rataj. +Learn about the IPFS Pinning Services in this recent talk from Filecoin Liftoff week by Marcin “Lidel” Rataj. ## Job hunting? Work on IPFS! @@ -71,4 +77,5 @@ Learn about the IPFS Pinning Services in this recent talk from Filecoin Liftoff Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us.](mailto:newsletter@ipfs.io) Get the IPFS Weekly in your inbox, each Tuesday. +

Sign up now

diff --git a/src/_blog/weekly-115/.gitkeep b/src/_blog/weekly-115/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/weekly-116/welcome-to-ipfs-weekly-116.md b/src/_blog/weekly-116.md similarity index 90% rename from src/_blog/weekly-116/welcome-to-ipfs-weekly-116.md rename to src/_blog/weekly-116.md index 486acf3e..cfe76bfe 100644 --- a/src/_blog/weekly-116/welcome-to-ipfs-weekly-116.md +++ b/src/_blog/weekly-116.md @@ -1,60 +1,68 @@ --- date: 2020-12-02 07:00:00 +0000 -url: "/weekly-116/" +permalink: '/weekly-116/' translationKey: ipfs-weekly-116 tags: weekly -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 116 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! -## Wrap up 2020 with IPFS and friends! +## Wrap up 2020 with IPFS and friends! + Join us on December 11 for a mini-celebration featuring talks from all of the IPFS working groups: Core Implementations, Ecosystem, Web + GUI, and Bifrost, as well as special presentations from guests including Textile, Pinata, 3Box, Berty, and Fleek! [Register to attend](https://www.meetup.com/San-Francisco-IPFS/events/274910985/) ## IPFS in 2021 – Call for Proposals + Want to help shape the 2021 IPFS project plan? We’re looking for your input on what’s important for IPFS to focus on next year! The proposal period runs through Monday, December 7. Read the full announcement for more details on how you can give your input. [Read more](https://blog.ipfs.io/2020-11-19-community-rfp/) ## Thread of the week 🧵 + ## Catch up on Meetup videos + -Check out talks from IPLD, Agregore, Vibenarium, and more by visiting the IPFS YouTube page. +Check out talks from IPLD, Agregore, Vibenarium, and more by visiting the IPFS YouTube page. ## Brand new on IPFS -* [A Milestone in Storage](https://filecoin.io/blog/one-exbibyte/): Filecoin surpasses 1 exbibyte, or 4000 Wikipedias, for context. -* Learn how to [securely share files](https://developer.algorand.org/solutions/securely-share-files-algorand-ipfs/) on Algorand with IPFS with this in-depth tutorial. -* [Check out Slate](https://slate.host/), an open-sourced, IPFS-powered, gorgeously designed alternative to Dropbox! -* [That was fast!](https://berty.tech/blog/encrypt-your-life/) Discover how to encrypt your life in 10 minutes, from our friends at Berty. + +- [A Milestone in Storage](https://filecoin.io/blog/one-exbibyte/): Filecoin surpasses 1 exbibyte, or 4000 Wikipedias, for context. +- Learn how to [securely share files](https://developer.algorand.org/solutions/securely-share-files-algorand-ipfs/) on Algorand with IPFS with this in-depth tutorial. +- [Check out Slate](https://slate.host/), an open-sourced, IPFS-powered, gorgeously designed alternative to Dropbox! +- [That was fast!](https://berty.tech/blog/encrypt-your-life/) Discover how to encrypt your life in 10 minutes, from our friends at Berty. ## People are building the coolest stuff with IPFS + Learn all about the distributed [pinning of IPFS hashes](https://medium.com/avado-node/distributed-pinning-of-ipfs-hashes-a6a977f980d3). -Discover how to choose the [right blockchain for your NFT](https://medium.com/phantasticphantasma/choosing-the-right-blockchain-for-your-nft-d1df2bebae91). +Discover how to choose the [right blockchain for your NFT](https://medium.com/phantasticphantasma/choosing-the-right-blockchain-for-your-nft-d1df2bebae91). Check out this interview with [Infura’s E.G. Galano](https://anchor.fm/thedefiant/episodes/This-Boom-Feels-Organic-Traffics-Not-Coming-Out-of-The-Blue-Like-With-ICOs-in-2017-Infuras-EG-Galano-en61ig) on the latest episode of The Defiant podcast. -Wondering [how is Space different](https://blog.space.storage/posts/how-is-space-different-from-cloud-storage) from Cloud Storage? +Wondering [how is Space different](https://blog.space.storage/posts/how-is-space-different-from-cloud-storage) from Cloud Storage? Walk through building a simple dapp to demonstrate how to send a transaction using both web3.js and ethers.js [via Infura’s APIs in this recent tutorial](https://blog.infura.io/ethereum-javascript-libraries-web3-js-vs-ethers-js-part-ii/). IPFS and ProtoSchool both got a shoutout on the latest [Eureka Street Crypto Hub episode](https://www.youtube.com/watch?v=Ar4GEeGzSC4&feature=emb_logo). ## The Latest in the DWeb Ecosystem -Join the builders of the Decentralized Web as they discuss hitting new milestones with their projects this year. This Thursday, 03 December, the DWeb community will hear from 12 of these builders, including Fluence Labs, Simply Secure, and Dietrich Ayala from IPFS. + +Join the builders of the Decentralized Web as they discuss hitting new milestones with their projects this year. This Thursday, 03 December, the DWeb community will hear from 12 of these builders, including Fluence Labs, Simply Secure, and Dietrich Ayala from IPFS. [Register to attend](https://www.eventbrite.com/e/dweb-meetup-december-2020-the-latest-in-the-dweb-ecosystem-tickets-130047907793) ## Job hunting? Work on IPFS! -[DevOps Engineer](https://remoteok.io/remote-jobs/100451-remote-devops-engineer-district0x): Your goal is to maintain the integrity of the infrastructure currently in place, with an ever-present goal of 100% service and application uptime. district0x, Remote. + +[DevOps Engineer](https://remoteok.io/remote-jobs/100451-remote-devops-engineer-district0x): Your goal is to maintain the integrity of the infrastructure currently in place, with an ever-present goal of 100% service and application uptime. district0x, Remote. [Ecosystem Developer](https://jobs.lever.co/3box/ec1093c5-ed31-483c-b1b3-49b07bd0bd2e): We are looking for a technical community manager to help us create a world-class developer ecosystem and experience around our open source community. 3Box, Remote. @@ -62,10 +70,10 @@ Join the builders of the Decentralized Web as they discuss hitting new milestone [Technical Writer](https://authenticjobs.com/job/3006/textile-devops-or-sre/): who can primarily create high-quality technical content, but has some other adjacent skills as well in the form of graphic design and/or video editing. Contract, Remote. - Take care of yourselves and each other. ❤️ Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us](mailto:newsletter@ipfs.io). Get the IPFS Weekly in your inbox, each Tuesday. +

Sign up now

diff --git a/src/_blog/weekly-116/.gitkeep b/src/_blog/weekly-116/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/weekly-117/welcome-to-ipfs-weekly-117.md b/src/_blog/weekly-117.md similarity index 92% rename from src/_blog/weekly-117/welcome-to-ipfs-weekly-117.md rename to src/_blog/weekly-117.md index daefbc4a..79c78f87 100644 --- a/src/_blog/weekly-117/welcome-to-ipfs-weekly-117.md +++ b/src/_blog/weekly-117.md @@ -1,43 +1,48 @@ --- date: 2020-12-09 07:00:00 +0000 -url: "/weekly-117/" +permalink: '/weekly-117/' translationKey: ipfs-weekly-117 tags: weekly, browsers -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 117 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! ## Big browser news for IPFS 🙌 -As of last week, native support for IPFS has landed in Brave’s Nightly browser. This is a huge step forward for making IPFS adoption a smooth and easy process. Read all about the recent announcement. + +As of last week, native support for IPFS has landed in Brave’s Nightly browser. This is a huge step forward for making IPFS adoption a smooth and easy process. Read all about the recent announcement. [Read more](https://www.reddit.com/r/BATProject/comments/k5izey/ipfs_support_lands_in_brave_browser_on_the/) ## Join us on Friday for the last meetup of 2020 + Join us on December 11 for a mini-celebration featuring talks from all of the IPFS working groups: Core Implementations, Ecosystem, Web + GUI, and Bifrost, as well as special presentations from guests including Textile, Pinata, 3Box, Berty, and Fleek! [Register to attend](https://www.meetup.com/San-Francisco-IPFS/events/274910985/) ## The evolution of IPFS on the Epicenter podcast + Listen in as Epicenter hosts Brian Fabian Crain and Friederike Ernst interview IPFS creator, Juan Benet, in Protocol Labs – IPFS, Filecoin and the Vision for a Decentralized Web (Part 1 of 2). They discuss IPFS and how it has evolved, as well as the potential impacts of Filecoin on a global level. [Listen now](https://epicenter.tv/episodes/367) ## Brand new on IPFS -* [Pinata](https://www.nuget.org/packages/Pinata.Client/1.0.0) shipped a .NET implementation for the Pinata Cloud API: Pinata.Cloud 1.0.0. -* [Galacteek](https://github.com/pinnaculum/galacteek/releases/tag/v0.4.40), a multi-platform browser for the distributed web, shipped v0.4.40, check it out! -* [IPFS-FPS](https://ipfs-fps.com/) is a first-person decentralized microgame, built with Ethereum, Unity, and IPFS. -* [Catation](https://github.com/wpengine/hackathon-catation) is an experimental app for easy sharing of photo albums with non-tech people, using IPFS! + +- [Pinata](https://www.nuget.org/packages/Pinata.Client/1.0.0) shipped a .NET implementation for the Pinata Cloud API: Pinata.Cloud 1.0.0. +- [Galacteek](https://github.com/pinnaculum/galacteek/releases/tag/v0.4.40), a multi-platform browser for the distributed web, shipped v0.4.40, check it out! +- [IPFS-FPS](https://ipfs-fps.com/) is a first-person decentralized microgame, built with Ethereum, Unity, and IPFS. +- [Catation](https://github.com/wpengine/hackathon-catation) is an experimental app for easy sharing of photo albums with non-tech people, using IPFS! ## People are building the coolest stuff with IPFS + Wondering how to create your own [unique NFT](https://mintable.medium.com/how-to-create-your-own-unique-nft-6057a09500ea)? Speaking of NFTs, [Minty](https://keychain.medium.com/announcing-minty-28f1f57a04d9) has officially launched! -Learn how to create a [smart contract analytics dashboard](https://medium.com/coinmonks/how-to-create-a-smart-contract-analytics-dashboard-in-10mins-227d96c382f4) in 10 minutes! +Learn how to create a [smart contract analytics dashboard](https://medium.com/coinmonks/how-to-create-a-smart-contract-analytics-dashboard-in-10mins-227d96c382f4) in 10 minutes! Ceramic pitches in to help build Web3 at the [Gitcoin Grants 8 Hackathon](https://blog.ceramic.network/help-build-web3-at-the-gitcoin-grants-8-hackathon/) @@ -50,7 +55,8 @@ The Graph demonstrates how to [build a Subgraph](https://medium.com/swlh/how-to- VIDEO: IPFS plays a pivotal role in the [Oxford Blockchain Society’s](https://www.youtube.com/watch?v=KMX7kVtVc2M) latest technical Intro to Blockchain Part 3, with Tom Dwyer from Extropy.io. ## Job hunting? Work on IPFS! -[DevOps Engineer](https://remoteok.io/remote-jobs/100451-remote-devops-engineer-district0x): Your goal is to maintain the integrity of the infrastructure currently in place, with an ever-present goal of 100% service and application uptime. district0x, Remote. + +[DevOps Engineer](https://remoteok.io/remote-jobs/100451-remote-devops-engineer-district0x): Your goal is to maintain the integrity of the infrastructure currently in place, with an ever-present goal of 100% service and application uptime. district0x, Remote. [Ecosystem Developer](https://jobs.lever.co/3box/ec1093c5-ed31-483c-b1b3-49b07bd0bd2e): We are looking for a technical community manager to help us create a world-class developer ecosystem and experience around our open source community. 3Box, Remote. @@ -58,10 +64,10 @@ VIDEO: IPFS plays a pivotal role in the [Oxford Blockchain Society’s](https:// [Technical Writer](https://authenticjobs.com/job/3006/textile-devops-or-sre/): who can primarily create high-quality technical content, but has some other adjacent skills as well in the form of graphic design and/or video editing. Contract, Remote. - Take care of yourselves and each other. ❤️ Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us](mailto:newsletter@ipfs.io). Get the IPFS Weekly in your inbox, each Tuesday. +

Sign up now

diff --git a/src/_blog/weekly-117/.gitkeep b/src/_blog/weekly-117/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog/weekly-118/welcome-to-ipfs-weekly-118.md b/src/_blog/weekly-118.md similarity index 93% rename from src/_blog/weekly-118/welcome-to-ipfs-weekly-118.md rename to src/_blog/weekly-118.md index 2d73b573..74e5068e 100644 --- a/src/_blog/weekly-118/welcome-to-ipfs-weekly-118.md +++ b/src/_blog/weekly-118.md @@ -1,43 +1,48 @@ --- date: 2020-12-16 07:00:00 +0000 -url: "/weekly-118/" +permalink: '/weekly-118/' translationKey: ipfs-weekly-118 tags: weekly, pinning -header_image: "/header_images/weekly-newsletter.png" +header_image: /header-image-weekly-newsletter.png title: Welcome to IPFS Weekly 118 description: '' author: Jenn Turner - --- + Here’s what’s happening in the [InterPlanetary File System](https://ipfs.io/) galaxy! ## How researchers taught Bitswap nodes to jump + In their continuing journey to drive speed-ups on file transfers by way of the data exchange subsystem known as Bitswap, the research team at Protocol Labs recently shared their latest learnings on introducing new behaviors to behavior to Bitswap. Check it out! [Read more](https://research.protocol.ai/blog/2020/teaching-bitswap-nodes-to-jump/) ## Pinata announces Scoped API Keys + If you attended Friday’s IPFS December meetup, you got a sneak peek at this announcement, and now here it is! Pinata now has scoped API keys. Prior to this release, each Pinata account was issued one API Key and one API Secret. With this new feature, you issue multiple keys and that’s not all! [Read more](https://medium.com/pinata/introducing-scoped-api-keys-48e808623d5d) ## Learn to encrypt, store, and recover user-managed secrets with IDX + Ceramic wants to teach you the best way to keep secrets with IDX. In this recent tutorial, you’ll get step-by-step instructions, including how to use JWEs (JSON schemas for the encrypted payload) alongside decentralized identifiers (DIDs), and more. [Read more](https://blog.ceramic.network/how-to-store-encrypted-secrets-using-idx/) ## Brand new on IPFS -* [Peergos](https://peergos.org/posts/private-kanban) just shipped private planning boards—a.k.a. kanban boards—in your Peergos space. Enjoy! -* [Waasabi](https://opencollective.com/waasabi) is a privacy-focused self-hosted event streaming and community portal working on a new IPFS backend. Check it out! -* [Infura](https://blog.infura.io/observability-for-developers-infura/) explore some concepts related to modern observability and best dev practices for use in everyday work. -* NEW! [Fleek](https://github.com/FleekHQ/space-daemon/releases/tag/v0.1.3) just landed a new release of the Space Daemon in v0.1.3. Check out the new features and update now. + +- [Peergos](https://peergos.org/posts/private-kanban) just shipped private planning boards—a.k.a. kanban boards—in your Peergos space. Enjoy! +- [Waasabi](https://opencollective.com/waasabi) is a privacy-focused self-hosted event streaming and community portal working on a new IPFS backend. Check it out! +- [Infura](https://blog.infura.io/observability-for-developers-infura/) explore some concepts related to modern observability and best dev practices for use in everyday work. +- NEW! [Fleek](https://github.com/FleekHQ/space-daemon/releases/tag/v0.1.3) just landed a new release of the Space Daemon in v0.1.3. Check out the new features and update now. ## People are building the coolest stuff with IPFS + Help to [translate Berty](https://berty.tech/blog/berty-translation/)! Learn how to build ERC-721 NFTs with [IPFS and Pinata](https://medium.com/pinata/how-to-build-erc-721-nfts-with-ipfs-e76a21d8f914) -Catch up on this [Unstoppable AMA](https://www.reddit.com/r/ethtrader/comments/kafqan/hi_im_brad_from_unstoppable_domains_im_here_to/) with Brad Kam from last week. +Catch up on this [Unstoppable AMA](https://www.reddit.com/r/ethtrader/comments/kafqan/hi_im_brad_from_unstoppable_domains_im_here_to/) with Brad Kam from last week. Discover building with decentralized identity on [IDX and Ceramic](https://blog.ceramic.network/building-with-decentralized-identity-on-idx-and-ceramic/) @@ -52,12 +57,14 @@ Now you too can do IPFS file encryption in [Node.js](https://dev.to/codr/ipfs-fi [LiquidApps](https://medium.com/the-liquidapps-blog/turning-ordinary-users-into-extraordinary-agents-a42021d5dde3) explains how to turn Ordinary Users Into Extraordinary Agents. ## Decentralized Web Seattle meets Dec 17th + On Thursday, Filecoin lead Pooja Shah will be at Seattle’s favorite dweb meetup to talk about decentralized storage networks. Don’t miss out! [Register to attend](https://www.meetup.com/ProtoSchool-Seattle-Learn-to-Make-the-Decentralized-Web/events/274586198/) ## Job hunting? Work on IPFS! -[DevOps Engineer](https://remoteok.io/remote-jobs/100451-remote-devops-engineer-district0x): Your goal is to maintain the integrity of the infrastructure currently in place, with an ever-present goal of 100% service and application uptime. district0x, Remote. + +[DevOps Engineer](https://remoteok.io/remote-jobs/100451-remote-devops-engineer-district0x): Your goal is to maintain the integrity of the infrastructure currently in place, with an ever-present goal of 100% service and application uptime. district0x, Remote. [Ecosystem Developer](https://jobs.lever.co/3box/ec1093c5-ed31-483c-b1b3-49b07bd0bd2e): We are looking for a technical community manager to help us create a world-class developer ecosystem and experience around our open source community. 3Box, Remote. @@ -65,10 +72,10 @@ On Thursday, Filecoin lead Pooja Shah will be at Seattle’s favorite dweb meetu [Technical Writer](https://authenticjobs.com/job/3006/textile-devops-or-sre/): who can primarily create high-quality technical content, but has some other adjacent skills as well in the form of graphic design and/or video editing. Contract, Remote. - Take care of yourselves and each other. ❤️ Get involved with IPFS by checking us out on [GitHub](https://github.com/ipfs), joining discussions on [our community forum](https://discuss.ipfs.io/), or hitting us up [in chat](https://riot.im/app/#/room/#ipfs:matrix.org). Have a suggestion? [Email us](mailto:newsletter@ipfs.io). Get the IPFS Weekly in your inbox, each Tuesday. +

Sign up now

diff --git a/src/_blog/weekly-118/.gitkeep b/src/_blog/weekly-118/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/src/_blog_zh/weekly-11/README.md b/src/_blog_zh/weekly-11.md similarity index 99% rename from src/_blog_zh/weekly-11/README.md rename to src/_blog_zh/weekly-11.md index 9f1ae07b..eac0263b 100644 --- a/src/_blog_zh/weekly-11/README.md +++ b/src/_blog_zh/weekly-11.md @@ -1,6 +1,6 @@ --- date: 2018-09-25 -url: /zh-cn/45-ipfs-weekly-11/ +permalink: /zh-cn/45-ipfs-weekly-11/ translationKey: 45-ipfs-weekly-11 title: IPFS 周报-11 author: Jenn Turner diff --git a/src/_blog_zh/weekly-51/README.md b/src/_blog_zh/weekly-51.md similarity index 99% rename from src/_blog_zh/weekly-51/README.md rename to src/_blog_zh/weekly-51.md index f01f76b0..7f7cf4f1 100644 --- a/src/_blog_zh/weekly-51/README.md +++ b/src/_blog_zh/weekly-51.md @@ -1,6 +1,6 @@ --- date: 2019-07-23 -url: /zh-cn/ipfs-weekly-51/ +permalink: /zh-cn/ipfs-weekly-51/ translationKey: ipfs-weekly-51 title: IPFS 周报-51 author: 默奕 diff --git a/src/_blog_zh/weekly-52/README.md b/src/_blog_zh/weekly-52.md similarity index 99% rename from src/_blog_zh/weekly-52/README.md rename to src/_blog_zh/weekly-52.md index fc44505c..5dbf8e18 100644 --- a/src/_blog_zh/weekly-52/README.md +++ b/src/_blog_zh/weekly-52.md @@ -1,6 +1,6 @@ --- date: 2019-07-30 -url: /zh-cn/ipfs-weekly-52/ +permalink: /zh-cn/ipfs-weekly-52/ translationKey: ipfs-weekly-52 title: IPFS 周报-52 author: 默奕 diff --git a/src/_blog_zh/weekly-53/README.md b/src/_blog_zh/weekly-53.md similarity index 99% rename from src/_blog_zh/weekly-53/README.md rename to src/_blog_zh/weekly-53.md index 88f8f896..f400fcb0 100644 --- a/src/_blog_zh/weekly-53/README.md +++ b/src/_blog_zh/weekly-53.md @@ -1,6 +1,6 @@ --- date: 2019-08-06 -url: /zh-cn/ipfs-weekly-53/ +permalink: /zh-cn/ipfs-weekly-53/ translationKey: ipfs-weekly-53 title: IPFS 周报-53 author: 默奕 diff --git a/src/_blog_zh/weekly-54/README.md b/src/_blog_zh/weekly-54.md similarity index 99% rename from src/_blog_zh/weekly-54/README.md rename to src/_blog_zh/weekly-54.md index 60f226e4..2a5d8ea9 100644 --- a/src/_blog_zh/weekly-54/README.md +++ b/src/_blog_zh/weekly-54.md @@ -1,6 +1,6 @@ --- date: 2019-08-13 -url: /zh-cn/ipfs-weekly-54/ +permalink: /zh-cn/ipfs-weekly-54/ translationKey: ipfs-weekly-54 title: IPFS 周报-54 author: 默奕 diff --git a/src/_blog_zh/weekly-55/README.md b/src/_blog_zh/weekly-55.md similarity index 99% rename from src/_blog_zh/weekly-55/README.md rename to src/_blog_zh/weekly-55.md index eb76b073..18b8067e 100644 --- a/src/_blog_zh/weekly-55/README.md +++ b/src/_blog_zh/weekly-55.md @@ -1,6 +1,6 @@ --- date: 2019-08-20 -url: /zh-cn/ipfs-weekly-55/ +permalink: /zh-cn/ipfs-weekly-55/ translationKey: ipfs-weekly-55 title: IPFS 周报-55 author: 默奕 diff --git a/src/_blog_zh/weekly-56/README.md b/src/_blog_zh/weekly-56.md similarity index 99% rename from src/_blog_zh/weekly-56/README.md rename to src/_blog_zh/weekly-56.md index d04c9210..b4bff152 100644 --- a/src/_blog_zh/weekly-56/README.md +++ b/src/_blog_zh/weekly-56.md @@ -1,6 +1,6 @@ --- date: 2019-08-27 -url: /zh-cn/ipfs-weekly-56/ +permalink: /zh-cn/ipfs-weekly-56/ translationKey: ipfs-weekly-56 title: IPFS 周报-56 author: 默奕 diff --git a/src/_blog_zh/weekly-57/README.md b/src/_blog_zh/weekly-57.md similarity index 99% rename from src/_blog_zh/weekly-57/README.md rename to src/_blog_zh/weekly-57.md index d3046582..ae7ff604 100644 --- a/src/_blog_zh/weekly-57/README.md +++ b/src/_blog_zh/weekly-57.md @@ -1,6 +1,6 @@ --- date: 2019-09-03 -url: /zh-cn/ipfs-weekly-57/ +permalink: /zh-cn/ipfs-weekly-57/ translationKey: ipfs-weekly-57 tags: weekly title: IPFS 周报-57 diff --git a/src/_blog_zh/weekly-58/README.md b/src/_blog_zh/weekly-58.md similarity index 99% rename from src/_blog_zh/weekly-58/README.md rename to src/_blog_zh/weekly-58.md index ad7596bc..2807908f 100644 --- a/src/_blog_zh/weekly-58/README.md +++ b/src/_blog_zh/weekly-58.md @@ -1,6 +1,6 @@ --- date: 2019-09-10 -url: /zh-cn/ipfs-weekly-58/ +permalink: /zh-cn/ipfs-weekly-58/ translationKey: ipfs-weekly-58 tags: weekly title: IPFS 周报-58 diff --git a/src/_blog_zh/weekly-59/README.md b/src/_blog_zh/weekly-59.md similarity index 99% rename from src/_blog_zh/weekly-59/README.md rename to src/_blog_zh/weekly-59.md index 1ef1f8b4..eb8655bd 100644 --- a/src/_blog_zh/weekly-59/README.md +++ b/src/_blog_zh/weekly-59.md @@ -1,6 +1,6 @@ --- date: 2019-09-17 -url: /zh-cn/weekly-59/ +permalink: /zh-cn/weekly-59/ translationKey: ipfs-weekly-59 title: IPFS 周报-59 author: 默奕 diff --git a/src/_blog_zh/weekly-60/README.md b/src/_blog_zh/weekly-60.md similarity index 99% rename from src/_blog_zh/weekly-60/README.md rename to src/_blog_zh/weekly-60.md index e25d59e5..dd88d263 100644 --- a/src/_blog_zh/weekly-60/README.md +++ b/src/_blog_zh/weekly-60.md @@ -1,6 +1,6 @@ --- date: 2019-09-24 -url: /zh-cn/weekly-60/ +permalink: /zh-cn/weekly-60/ translationKey: ipfs-weekly-60 title: IPFS 周报-60 author: 默奕 diff --git a/src/_blog_zh/weekly-61/README.md b/src/_blog_zh/weekly-61.md similarity index 99% rename from src/_blog_zh/weekly-61/README.md rename to src/_blog_zh/weekly-61.md index ec112738..75bce24e 100644 --- a/src/_blog_zh/weekly-61/README.md +++ b/src/_blog_zh/weekly-61.md @@ -1,6 +1,6 @@ --- date: 2019-10-01 -url: /zh-cn/weekly-61/ +permalink: /zh-cn/weekly-61/ translationKey: ipfs-weekly-61 title: IPFS 周报-61 author: 默奕 diff --git a/src/_blog_zh/weekly-62/README.md b/src/_blog_zh/weekly-62.md similarity index 99% rename from src/_blog_zh/weekly-62/README.md rename to src/_blog_zh/weekly-62.md index ce0f38c6..4763e91a 100644 --- a/src/_blog_zh/weekly-62/README.md +++ b/src/_blog_zh/weekly-62.md @@ -1,6 +1,6 @@ --- date: 2019-10-10 -url: /zh-cn/weekly-62/ +permalink: /zh-cn/weekly-62/ translationKey: ipfs-weekly-62 title: IPFS 周报-62 author: 默奕 diff --git a/src/_blog_zh/weekly-63/README.md b/src/_blog_zh/weekly-63.md similarity index 99% rename from src/_blog_zh/weekly-63/README.md rename to src/_blog_zh/weekly-63.md index 0be0b3e3..0793ca50 100644 --- a/src/_blog_zh/weekly-63/README.md +++ b/src/_blog_zh/weekly-63.md @@ -1,6 +1,6 @@ --- date: 2019-10-15 -url: /zh-cn/ipfs-weekly-63/ +permalink: /zh-cn/ipfs-weekly-63/ translationKey: ipfs-weekly-63 title: 2019 第三季度 IPFS 回顾 🎉 author: 默奕 diff --git a/src/_blog_zh/weekly-64/README.md b/src/_blog_zh/weekly-64.md similarity index 99% rename from src/_blog_zh/weekly-64/README.md rename to src/_blog_zh/weekly-64.md index 0dd4e4f7..8b4e95f6 100644 --- a/src/_blog_zh/weekly-64/README.md +++ b/src/_blog_zh/weekly-64.md @@ -1,6 +1,6 @@ --- date: 2019-10-23 -url: /zh-cn/weekly-64/ +permalink: /zh-cn/weekly-64/ translationKey: ipfs-weekly-64 title: IPFS 周报-64 author: 默奕 diff --git a/src/_blog_zh/weekly-65/README.md b/src/_blog_zh/weekly-65.md similarity index 99% rename from src/_blog_zh/weekly-65/README.md rename to src/_blog_zh/weekly-65.md index 0c5ddae3..696efb3d 100644 --- a/src/_blog_zh/weekly-65/README.md +++ b/src/_blog_zh/weekly-65.md @@ -1,6 +1,6 @@ --- date: 2019-10-29 -url: /zh-ch/weekly-65/ +permalink: /zh-ch/weekly-65/ translationKey: ipfs-weekly-65 title: IPFS 周报-65 author: 默奕 diff --git a/src/_blog_zh/weekly-66/README.md b/src/_blog_zh/weekly-66.md similarity index 99% rename from src/_blog_zh/weekly-66/README.md rename to src/_blog_zh/weekly-66.md index 8af56239..267a153b 100644 --- a/src/_blog_zh/weekly-66/README.md +++ b/src/_blog_zh/weekly-66.md @@ -1,6 +1,6 @@ --- date: 2019-11-05 -url: /zh-ch/weekly-66/ +permalink: /zh-ch/weekly-66/ translationKey: ipfs-weekly-66 title: IPFS 周报-66 author: 默奕 diff --git a/src/_blog_zh/weekly-67/README.md b/src/_blog_zh/weekly-67.md similarity index 99% rename from src/_blog_zh/weekly-67/README.md rename to src/_blog_zh/weekly-67.md index ed4e6be5..f0c81b79 100644 --- a/src/_blog_zh/weekly-67/README.md +++ b/src/_blog_zh/weekly-67.md @@ -1,6 +1,6 @@ --- date: 2019-11-12 -url: /zh-ch/weekly-67/ +permalink: /zh-ch/weekly-67/ translationKey: ipfs-weekly-67 title: IPFS 周报-67 author: 默奕 diff --git a/src/_blog_zh/weekly-68/README.md b/src/_blog_zh/weekly-68.md similarity index 99% rename from src/_blog_zh/weekly-68/README.md rename to src/_blog_zh/weekly-68.md index 38d5654b..043df0df 100644 --- a/src/_blog_zh/weekly-68/README.md +++ b/src/_blog_zh/weekly-68.md @@ -1,6 +1,6 @@ --- date: 2019-11-19 -url: /zh-ch/weekly-68/ +permalink: /zh-ch/weekly-68/ translationKey: ipfs-weekly-68 title: IPFS 周报-68 author: 默奕 diff --git a/src/_blog_zh/weekly-69/README.md b/src/_blog_zh/weekly-69.md similarity index 99% rename from src/_blog_zh/weekly-69/README.md rename to src/_blog_zh/weekly-69.md index b68f7132..78151095 100644 --- a/src/_blog_zh/weekly-69/README.md +++ b/src/_blog_zh/weekly-69.md @@ -1,6 +1,6 @@ --- date: 2019-11-26 -url: /zh-cn/weekly-69/ +permalink: /zh-cn/weekly-69/ translationKey: ipfs-weekly-69 title: IPFS 周报-69 author: 默奕 diff --git a/src/_blog_zh/weekly-70/README.md b/src/_blog_zh/weekly-70.md similarity index 99% rename from src/_blog_zh/weekly-70/README.md rename to src/_blog_zh/weekly-70.md index 6dedaca1..48da6e00 100644 --- a/src/_blog_zh/weekly-70/README.md +++ b/src/_blog_zh/weekly-70.md @@ -1,6 +1,6 @@ --- date: 2019-12-03 -url: /zh-cn/weekly-70/ +permalink: /zh-cn/weekly-70/ translationKey: ipfs-weekly-70 title: IPFS 周报-70 author: 默奕 diff --git a/src/_blog_zh/weekly-71/README.md b/src/_blog_zh/weekly-71.md similarity index 99% rename from src/_blog_zh/weekly-71/README.md rename to src/_blog_zh/weekly-71.md index fc58e379..3280f2b1 100644 --- a/src/_blog_zh/weekly-71/README.md +++ b/src/_blog_zh/weekly-71.md @@ -1,6 +1,6 @@ --- date: 2019-12-10 -url: /zh-cn/weekly-71/ +permalink: /zh-cn/weekly-71/ translationKey: ipfs-weekly-71 title: IPFS 周报-71 author: 默奕 diff --git a/src/_blog_zh/weekly-72/README.md b/src/_blog_zh/weekly-72.md similarity index 99% rename from src/_blog_zh/weekly-72/README.md rename to src/_blog_zh/weekly-72.md index 79ec6ac3..c3ad5be9 100644 --- a/src/_blog_zh/weekly-72/README.md +++ b/src/_blog_zh/weekly-72.md @@ -1,6 +1,6 @@ --- date: 2019-12-17 -url: /zh-cn/weekly-72/ +permalink: /zh-cn/weekly-72/ translationKey: ipfs-weekly-72 title: IPFS 回顾 2019 年第4季度 🎉 author: 默奕