roadmap/waku/updates/2023-07-24.html

195 lines
146 KiB
HTML
Raw Normal View History

2023-08-22 09:09:21 +00:00
<!DOCTYPE html>
2024-05-17 04:34:57 +00:00
<html><head><title>2023-07-24 Waku weekly</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta property="og:title" content="2023-07-24 Waku weekly"/><meta property="og:description" content="Disclaimer: First attempt playing with the format. Incomplete as not everyone is back and we are still adjusting the milestones. Docs § Milestone: Foundation for Waku docs (done) § achieved: § overall layout concept docs community/showcase pages Milestone: Foundation for node operator docs (done) § achieved: § nodes overview page guide for running nwaku (binaries, source, docker) peer discovery config guide reference docs for config methods and options Milestone: Foundation for js-waku docs § achieved: § js-waku overview + installation guide lightpush + filter guide store guide @waku/create-app guide next: § improve @waku/react guide blocker: § polyfills issue with js-waku Milestone: Docs general improvement/incorporating feedback (continuous) § Milestone: Running nwaku in the cloud § Milestone: Add Waku guide to learnweb3."/><meta property="og:image" content="https://roadmap.logos.co/static/og-image.png"/><meta property="og:width" content="1200"/><meta property="og:height" content="675"/><link rel="icon" href="../../static/icon.png"/><meta name="description" content="Disclaimer: First attempt playing with the format. Incomplete as not everyone is back and we are still adjusting the milestones. Docs § Milestone: Foundation for Waku docs (done) § achieved: § overall layout concept docs community/showcase pages Milestone: Foundation for node operator docs (done) § achieved: § nodes overview page guide for running nwaku (binaries, source, docker) peer discovery config guide reference docs for config methods and options Milestone: Foundation for js-waku docs § achieved: § js-waku overview + installation guide lightpush + filter guide store guide @waku/create-app guide next: § improve @waku/react guide blocker: § polyfills issue with js-waku Milestone: Docs general improvement/incorporating feedback (continuous) § Milestone: Running nwaku in the cloud § Milestone: Add Waku guide to learnweb3."/><meta name="generator" content="Quartz"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link href="../../index.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" rel="stylesheet" type="text/css" spa-preserve/><link href="https://fonts.googleapis.com/css2?family=IBM Plex Mono&amp;family=sans-serif:wght@400;700&amp;family=sans-serif:ital,wght@0,400;0,600;1,400;1,600&amp;display=swap" rel="stylesheet" type="text/css" spa-preserve/><script src="../../prescript.js" type="application/javascript" spa-preserve></script><script type="application/javascript" spa-preserve>const fetchData = fetch(`../../static/contentIndex.json`).then(data => data.json())</script></head><body data-slug="waku/updates/2023-07-24"><div id="quartz-root" class="page"><div id="quartz-body"><div class="left sidebar"><h1 class="page-title "><a href="../..">Logos Collective Project Roadmaps</a></h1><div class="spacer mobile-only"></div><div class="search "><div id="search-icon"><p>Search</p><div></div><svg tabIndex="0" aria-labelledby="title desc" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 19.9 19.7"><title id="title">Search</title><desc id="desc">Search</desc><g class="search-path" fill="none"><path stroke-linecap="square" d="M18.5 18.3l-5.4-5.4"></path><circle cx="8" cy="8" r="7"></circle></g></svg></div><div id="search-container"><div id="search-space"><input autocomplete="off" id="search-bar" name="search" type="text" aria-label="Search for something" placeholder="Search for something"/><div id="results-container"></div></div></div></div><div class="darkmode "><input class="toggle" id="darkmode-toggle" type="checkbox" tabIndex="-1"/><label id="toggle-label-light" for="darkmode-toggle" tabIndex="-1"><svg xmlns="http://www.w3.org/2000/svg" xmlnsXlink
2023-08-22 09:09:21 +00:00
<hr/>
<h2 id="docs">Docs<a aria-hidden="true" tabindex="-1" href="#docs" class="internal"> §</a></h2>
<h3 id="milestone-foundation-for-waku-docs-done"><strong>Milestone</strong>: Foundation for Waku docs (done)<a aria-hidden="true" tabindex="-1" href="#milestone-foundation-for-waku-docs-done" class="internal"> §</a></h3>
<h4 id="achieved"><em>achieved</em>:<a aria-hidden="true" tabindex="-1" href="#achieved" class="internal"> §</a></h4>
<ul>
<li>overall layout</li>
<li>concept docs</li>
<li>community/showcase pages</li>
</ul>
<h3 id="milestone-foundation-for-node-operator-docs-done"><strong>Milestone</strong>: Foundation for node operator docs (done)<a aria-hidden="true" tabindex="-1" href="#milestone-foundation-for-node-operator-docs-done" class="internal"> §</a></h3>
<h4 id="achieved-1"><em>achieved</em>:<a aria-hidden="true" tabindex="-1" href="#achieved-1" class="internal"> §</a></h4>
<ul>
<li>nodes overview page</li>
<li>guide for running nwaku (binaries, source, docker)</li>
<li>peer discovery config guide</li>
<li>reference docs for config methods and options</li>
</ul>
<h3 id="milestone-foundation-for-js-waku-docs"><strong>Milestone</strong>: Foundation for js-waku docs<a aria-hidden="true" tabindex="-1" href="#milestone-foundation-for-js-waku-docs" class="internal"> §</a></h3>
<h4 id="achieved-2"><em>achieved</em>:<a aria-hidden="true" tabindex="-1" href="#achieved-2" class="internal"> §</a></h4>
<ul>
<li>js-waku overview + installation guide</li>
<li>lightpush + filter guide</li>
<li>store guide</li>
<li>@waku/create-app guide</li>
</ul>
<h4 id="next"><em>next:</em><a aria-hidden="true" tabindex="-1" href="#next" class="internal"> §</a></h4>
<ul>
<li>improve @waku/react guide</li>
</ul>
<h4 id="blocker"><em>blocker:</em><a aria-hidden="true" tabindex="-1" href="#blocker" class="internal"> §</a></h4>
<ul>
<li>polyfills issue with <a href="https://github.com/waku-org/js-waku/issues/1415" class="external">js-waku</a></li>
</ul>
<h3 id="milestone-docs-general-improvementincorporating-feedback-continuous"><strong>Milestone</strong>: Docs general improvement/incorporating feedback (continuous)<a aria-hidden="true" tabindex="-1" href="#milestone-docs-general-improvementincorporating-feedback-continuous" class="internal"> §</a></h3>
<h3 id="milestone-running-nwaku-in-the-cloud"><strong>Milestone</strong>: Running nwaku in the cloud<a aria-hidden="true" tabindex="-1" href="#milestone-running-nwaku-in-the-cloud" class="internal"> §</a></h3>
<h3 id="milestone-add-waku-guide-to-learnweb3io"><strong>Milestone</strong>: Add Waku guide to learnweb3.io<a aria-hidden="true" tabindex="-1" href="#milestone-add-waku-guide-to-learnweb3io" class="internal"> §</a></h3>
<h3 id="milestone-encryption-docs-for-js-waku"><strong>Milestone</strong>: Encryption docs for js-waku<a aria-hidden="true" tabindex="-1" href="#milestone-encryption-docs-for-js-waku" class="internal"> §</a></h3>
<h3 id="milestone-advanced-node-operator-doc-postgres-wss-monitoring-common-config"><strong>Milestone</strong>: Advanced node operator doc (postgres, WSS, monitoring, common config)<a aria-hidden="true" tabindex="-1" href="#milestone-advanced-node-operator-doc-postgres-wss-monitoring-common-config" class="internal"> §</a></h3>
<h3 id="milestone-foundation-for-go-waku-docs"><strong>Milestone</strong>: Foundation for go-waku docs<a aria-hidden="true" tabindex="-1" href="#milestone-foundation-for-go-waku-docs" class="internal"> §</a></h3>
<h3 id="milestone-foundation-for-rust-waku-bindings-docs"><strong>Milestone</strong>: Foundation for rust-waku-bindings docs<a aria-hidden="true" tabindex="-1" href="#milestone-foundation-for-rust-waku-bindings-docs" class="internal"> §</a></h3>
<h3 id="milestone-waku-architecture-docs"><strong>Milestone</strong>: Waku architecture docs<a aria-hidden="true" tabindex="-1" href="#milestone-waku-architecture-docs" class="internal"> §</a></h3>
<h3 id="milestone-waku-detailed-roadmap-and-milestones"><strong>Milestone</strong>: Waku detailed roadmap and milestones<a aria-hidden="true" tabindex="-1" href="#milestone-waku-detailed-roadmap-and-milestones" class="internal"> §</a></h3>
<h3 id="milestone-explain-rln"><strong>Milestone</strong>: Explain RLN<a aria-hidden="true" tabindex="-1" href="#milestone-explain-rln" class="internal"> §</a></h3>
<hr/>
<h2 id="eco-dev-wip">Eco Dev (WIP)<a aria-hidden="true" tabindex="-1" href="#eco-dev-wip" class="internal"> §</a></h2>
<h3 id="milestone-ethcc-logos-side-event-organisation-done"><strong>Milestone</strong>: EthCC Logos side event organisation (done)<a aria-hidden="true" tabindex="-1" href="#milestone-ethcc-logos-side-event-organisation-done" class="internal"> §</a></h3>
<h3 id="milestone-community-growth"><strong>Milestone</strong>: Community Growth<a aria-hidden="true" tabindex="-1" href="#milestone-community-growth" class="internal"> §</a></h3>
<h4 id="achieved-3"><em>achieved</em>:<a aria-hidden="true" tabindex="-1" href="#achieved-3" class="internal"> §</a></h4>
<ul>
<li>Wrote several bounties, improved template; setup onboarding flow in Discord.</li>
</ul>
<h4 id="next-1"><em>next</em>:<a aria-hidden="true" tabindex="-1" href="#next-1" class="internal"> §</a></h4>
<ul>
<li>Review template, publish on GitHub</li>
</ul>
<h3 id="milestone-business-development-continuous"><strong>Milestone</strong>: Business Development (continuous)<a aria-hidden="true" tabindex="-1" href="#milestone-business-development-continuous" class="internal"> §</a></h3>
<h4 id="achieved-4"><em>achieved</em>:<a aria-hidden="true" tabindex="-1" href="#achieved-4" class="internal"> §</a></h4>
<ul>
<li>Discussions with various leads in EthCC</li>
</ul>
<h4 id="next-2"><em>next</em>:<a aria-hidden="true" tabindex="-1" href="#next-2" class="internal"> §</a></h4>
<ul>
<li>Booking calls with said leads</li>
</ul>
<h3 id="milestone-setting-up-content-strategy-for-waku"><strong>Milestone</strong>: Setting Up Content Strategy for Waku<a aria-hidden="true" tabindex="-1" href="#milestone-setting-up-content-strategy-for-waku" class="internal"> §</a></h3>
<h4 id="achieved-5"><em>achieved</em>:<a aria-hidden="true" tabindex="-1" href="#achieved-5" class="internal"> §</a></h4>
<ul>
<li>Discussions with Comms Hubs re Waku Blog</li>
<li>expressed needs and intent around future blog post and needed amplification</li>
<li>discuss strategies to onboard/involve non-dev and potential CTAs.</li>
</ul>
<h3 id="milestone-web3conf-dates"><strong>Milestone</strong>: Web3Conf (dates)<a aria-hidden="true" tabindex="-1" href="#milestone-web3conf-dates" class="internal"> §</a></h3>
<h3 id="milestone-decompute-conf"><strong>Milestone</strong>: DeCompute conf<a aria-hidden="true" tabindex="-1" href="#milestone-decompute-conf" class="internal"> §</a></h3>
<hr/>
<h2 id="research-wip">Research (WIP)<a aria-hidden="true" tabindex="-1" href="#research-wip" class="internal"> §</a></h2>
<h3 id="milestone-autosharding-v1"><strong>Milestone</strong>: <a href="https://github.com/waku-org/nwaku/issues/1846" class="external">Autosharding v1</a><a aria-hidden="true" tabindex="-1" href="#milestone-autosharding-v1" class="internal"> §</a></h3>
<h4 id="achieved-6"><em>achieved:</em><a aria-hidden="true" tabindex="-1" href="#achieved-6" class="internal"> §</a></h4>
<ul>
<li>rendezvous hashing</li>
<li>weighting function</li>
<li>updated LIGHTPUSH to handle autosharding</li>
</ul>
<h4 id="next-3"><em>next:</em><a aria-hidden="true" tabindex="-1" href="#next-3" class="internal"> §</a></h4>
<ul>
<li>update FILTER &amp; STORE for autosharding</li>
</ul>
<hr/>
<h2 id="nwaku-wip">nwaku (WIP)<a aria-hidden="true" tabindex="-1" href="#nwaku-wip" class="internal"> §</a></h2>
<h3 id="milestone-postgres-integration"><strong>Milestone</strong>: Postgres integration.<a aria-hidden="true" tabindex="-1" href="#milestone-postgres-integration" class="internal"> §</a></h3>
<h4 id="achieved-7"><em>achieved:</em><a aria-hidden="true" tabindex="-1" href="#achieved-7" class="internal"> §</a></h4>
<ul>
<li>nwaku can store messages in a Postgres database</li>
<li>we started to perform stress tests</li>
</ul>
<h4 id="next-4"><em>next:</em><a aria-hidden="true" tabindex="-1" href="#next-4" class="internal"> §</a></h4>
<ul>
<li>Analyse why some messages are not stored during stress tests happened in both sqlite and Postgres, so maybe the issue isnt directly related to <em>store</em>.</li>
</ul>
<h3 id="milestone-nwaku-as-a-library-c-bindings"><strong>Milestone</strong>: nwaku as a library (C-bindings)<a aria-hidden="true" tabindex="-1" href="#milestone-nwaku-as-a-library-c-bindings" class="internal"> §</a></h3>
<h4 id="achieved-8"><em>achieved:</em><a aria-hidden="true" tabindex="-1" href="#achieved-8" class="internal"> §</a></h4>
<ul>
<li>The integration is in progress through N-API framework</li>
</ul>
<h4 id="next-5"><em>next:</em><a aria-hidden="true" tabindex="-1" href="#next-5" class="internal"> §</a></h4>
<ul>
<li>Make the nodejs to properly work by running the <em>nwaku</em> node in a separate thread.</li>
</ul>
<hr/>
<h2 id="go-waku-wip">go-waku (WIP)<a aria-hidden="true" tabindex="-1" href="#go-waku-wip" class="internal"> §</a></h2>
<hr/>
<h2 id="js-waku-wip">js-waku (WIP)<a aria-hidden="true" tabindex="-1" href="#js-waku-wip" class="internal"> §</a></h2>
<h3 id="milestone-peer-management"><strong>Milestone</strong>: <a href="https://github.com/waku-org/js-waku/issues/914" class="external">Peer management</a><a aria-hidden="true" tabindex="-1" href="#milestone-peer-management" class="internal"> §</a></h3>
<h4 id="_achieved">_achieved:<a aria-hidden="true" tabindex="-1" href="#_achieved" class="internal"> §</a></h4>
<ul>
<li>spec test for connection manager</li>
</ul>
<h3 id="milestone-peer-exchange"><strong>Milestone</strong>: <a href="https://github.com/waku-org/js-waku/issues/1429" class="external">Peer Exchange</a><a aria-hidden="true" tabindex="-1" href="#milestone-peer-exchange" class="internal"> §</a></h3>
<h3 id="milestone-static-sharding"><strong>Milestone</strong>: Static Sharding<a aria-hidden="true" tabindex="-1" href="#milestone-static-sharding" class="internal"> §</a></h3>
<h4 id="next-6"><em>next</em>:<a aria-hidden="true" tabindex="-1" href="#next-6" class="internal"> §</a></h4>
<ul>
<li>start implementation of static sharding in js-waku</li>
</ul>
<h3 id="milestone-developer-experience"><strong>Milestone</strong>: Developer Experience<a aria-hidden="true" tabindex="-1" href="#milestone-developer-experience" class="internal"> §</a></h3>
<h4 id="achieved-9"><em>achieved</em>:<a aria-hidden="true" tabindex="-1" href="#achieved-9" class="internal"> §</a></h4>
<ul>
<li>js-lip2p upgrade to remove usage of polyfills (draft PR)</li>
</ul>
<h4 id="next-7"><em>next</em>:<a aria-hidden="true" tabindex="-1" href="#next-7" class="internal"> §</a></h4>
<ul>
<li>merge and release js-libp2p upgrade</li>
</ul>
<h3 id="milestone-waku-relay-in-the-browser"><strong>Milestone</strong>: Waku Relay in the Browser<a aria-hidden="true" tabindex="-1" href="#milestone-waku-relay-in-the-browser" class="internal"> §</a></h3>
2023-10-25 18:50:16 +00:00
<hr/></article></div><div class="right sidebar"><div class="graph "><h3>Graph View</h3><div class="graph-outer"><div id="graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:1,&quot;scale&quot;:1.1,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[]}"></div><svg version="1.1" id="global-graph-icon" xmlns="http://www.w3.org/2000/svg" xmlnsXlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 55 55" fill="currentColor" xmlSpace="preserve"><path d="M49,0c-3.309,0-6,2.691-6,6c0,1.035,0.263,2.009,0.726,2.86l-9.829,9.829C32.542,17.634,30.846,17,29,17
2023-08-22 09:09:21 +00:00
s-3.542,0.634-4.898,1.688l-7.669-7.669C16.785,10.424,17,9.74,17,9c0-2.206-1.794-4-4-4S9,6.794,9,9s1.794,4,4,4
c0.74,0,1.424-0.215,2.019-0.567l7.669,7.669C21.634,21.458,21,23.154,21,25s0.634,3.542,1.688,4.897L10.024,42.562
C8.958,41.595,7.549,41,6,41c-3.309,0-6,2.691-6,6s2.691,6,6,6s6-2.691,6-6c0-1.035-0.263-2.009-0.726-2.86l12.829-12.829
c1.106,0.86,2.44,1.436,3.898,1.619v10.16c-2.833,0.478-5,2.942-5,5.91c0,3.309,2.691,6,6,6s6-2.691,6-6c0-2.967-2.167-5.431-5-5.91
v-10.16c1.458-0.183,2.792-0.759,3.898-1.619l7.669,7.669C41.215,39.576,41,40.26,41,41c0,2.206,1.794,4,4,4s4-1.794,4-4
s-1.794-4-4-4c-0.74,0-1.424,0.215-2.019,0.567l-7.669-7.669C36.366,28.542,37,26.846,37,25s-0.634-3.542-1.688-4.897l9.665-9.665
C46.042,11.405,47.451,12,49,12c3.309,0,6-2.691,6-6S52.309,0,49,0z M11,9c0-1.103,0.897-2,2-2s2,0.897,2,2s-0.897,2-2,2
S11,10.103,11,9z M6,51c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S8.206,51,6,51z M33,49c0,2.206-1.794,4-4,4s-4-1.794-4-4
s1.794-4,4-4S33,46.794,33,49z M29,31c-3.309,0-6-2.691-6-6s2.691-6,6-6s6,2.691,6,6S32.309,31,29,31z M47,41c0,1.103-0.897,2-2,2
2024-01-02 19:24:43 +00:00
s-2-0.897-2-2s0.897-2,2-2S47,39.897,47,41z M49,10c-2.206,0-4-1.794-4-4s1.794-4,4-4s4,1.794,4,4S51.206,10,49,10z"></path></svg></div><div id="global-graph-outer"><div id="global-graph-container" data-cfg="{&quot;drag&quot;:true,&quot;zoom&quot;:true,&quot;depth&quot;:-1,&quot;scale&quot;:0.9,&quot;repelForce&quot;:0.5,&quot;centerForce&quot;:0.3,&quot;linkDistance&quot;:30,&quot;fontSize&quot;:0.6,&quot;opacityScale&quot;:1,&quot;showTags&quot;:true,&quot;removeTags&quot;:[]}"></div></div></div><div class="toc desktop-only"><button type="button" id="toc"><h3>Table of Contents</h3><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="fold"><polyline points="6 9 12 15 18 9"></polyline></svg></button><div id="toc-content"><ul class="overflow"><li class="depth-0"><a href="#docs" data-for="docs">Docs</a></li><li class="depth-1"><a href="#milestone-foundation-for-waku-docs-done" data-for="milestone-foundation-for-waku-docs-done">Milestone: Foundation for Waku docs (done)</a></li><li class="depth-1"><a href="#milestone-foundation-for-node-operator-docs-done" data-for="milestone-foundation-for-node-operator-docs-done">Milestone: Foundation for node operator docs (done)</a></li><li class="depth-1"><a href="#milestone-foundation-for-js-waku-docs" data-for="milestone-foundation-for-js-waku-docs">Milestone: Foundation for js-waku docs</a></li><li class="depth-1"><a href="#milestone-docs-general-improvementincorporating-feedback-continuous" data-for="milestone-docs-general-improvementincorporating-feedback-continuous">Milestone: Docs general improvement/incorporating feedback (continuous)</a></li><li class="depth-1"><a href="#milestone-running-nwaku-in-the-cloud" data-for="milestone-running-nwaku-in-the-cloud">Milestone: Running nwaku in the cloud</a></li><li class="depth-1"><a href="#milestone-add-waku-guide-to-learnweb3io" data-for="milestone-add-waku-guide-to-learnweb3io">Milestone: Add Waku guide to learnweb3.io</a></li><li class="depth-1"><a href="#milestone-encryption-docs-for-js-waku" data-for="milestone-encryption-docs-for-js-waku">Milestone: Encryption docs for js-waku</a></li><li class="depth-1"><a href="#milestone-advanced-node-operator-doc-postgres-wss-monitoring-common-config" data-for="milestone-advanced-node-operator-doc-postgres-wss-monitoring-common-config">Milestone: Advanced node operator doc (postgres, WSS, monitoring, common config)</a></li><li class="depth-1"><a href="#milestone-foundation-for-go-waku-docs" data-for="milestone-foundation-for-go-waku-docs">Milestone: Foundation for go-waku docs</a></li><li class="depth-1"><a href="#milestone-foundation-for-rust-waku-bindings-docs" data-for="milestone-foundation-for-rust-waku-bindings-docs">Milestone: Foundation for rust-waku-bindings docs</a></li><li class="depth-1"><a href="#milestone-waku-architecture-docs" data-for="milestone-waku-architecture-docs">Milestone: Waku architecture docs</a></li><li class="depth-1"><a href="#milestone-waku-detailed-roadmap-and-milestones" data-for="milestone-waku-detailed-roadmap-and-milestones">Milestone: Waku detailed roadmap and milestones</a></li><li class="depth-1"><a href="#milestone-explain-rln" data-for="milestone-explain-rln">Milestone: Explain RLN</a></li><li class="depth-0"><a href="#eco-dev-wip" data-for="eco-dev-wip">Eco Dev (WIP)</a></li><li class="depth-1"><a href="#milestone-ethcc-logos-side-event-organisation-done" data-for="milestone-ethcc-logos-side-event-organisation-done">Milestone: EthCC Logos side event organisation (done)</a></li><li class="depth-1"><a href="#milestone-community-growth" data-for="milestone-community-growth">Milestone: Community Growth</a></li><li class="depth-1"><a href="#milestone-business-development-continuous" data-for="milestone-business-development-continuous">Milestone: Business Development (continuous)</a></li><li class="depth-1"><a href="#milestone-setting-up-content-strategy-for-waku" data-for="milestone-setting-up-content-strategy-for-waku">Milesto
2023-08-22 09:09:21 +00:00
function toggleCallout() {
const outerBlock = this.parentElement;
outerBlock.classList.toggle(`is-collapsed`);
const collapsed = outerBlock.classList.contains(`is-collapsed`);
const height = collapsed ? this.scrollHeight : outerBlock.scrollHeight;
outerBlock.style.maxHeight = height + `px`;
let current = outerBlock;
let parent = outerBlock.parentElement;
while (parent) {
if (!parent.classList.contains(`callout`)) {
return;
}
const collapsed2 = parent.classList.contains(`is-collapsed`);
const height2 = collapsed2 ? parent.scrollHeight : parent.scrollHeight + current.scrollHeight;
parent.style.maxHeight = height2 + `px`;
current = parent;
parent = parent.parentElement;
}
}
function setupCallout() {
const collapsible = document.getElementsByClassName(
`callout is-collapsible`
);
for (const div of collapsible) {
const title = div.firstElementChild;
if (title) {
title.removeEventListener(`click`, toggleCallout);
title.addEventListener(`click`, toggleCallout);
const collapsed = div.classList.contains(`is-collapsed`);
const height = collapsed ? title.scrollHeight : div.scrollHeight;
div.style.maxHeight = height + `px`;
}
}
}
document.addEventListener(`nav`, setupCallout);
window.addEventListener(`resize`, setupCallout);
</script><script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
const darkMode = document.documentElement.getAttribute('saved-theme') === 'dark'
2023-09-25 21:23:05 +00:00
mermaid.initialize({
2023-08-22 09:09:21 +00:00
startOnLoad: false,
securityLevel: 'loose',
theme: darkMode ? 'dark' : 'default'
});
document.addEventListener('nav', async () => {
await mermaid.run({
querySelector: '.mermaid'
})
});
2023-09-18 20:20:27 +00:00
</script><script src="https://cdn.jsdelivr.net/npm/katex@0.16.7/dist/contrib/copy-tex.min.js" type="application/javascript"></script><script src="../../postscript.js" type="module"></script></html>