Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
brainkim committed Oct 7, 2024
1 parent ce4c420 commit 40f2005
Show file tree
Hide file tree
Showing 170 changed files with 83,277 additions and 1,689,998 deletions.
8 changes: 4 additions & 4 deletions blog/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><title>Crank.js | Blog</title><link href="/static/client-SSQIEGC5.css" rel="stylesheet" type="text/css"><meta property="og:title" content="Crank.js | Blog"><meta property="og:url" content="https:/crank.js.org/blog"><meta property="og:description" content=""></head><body><script>
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><title>Crank.js | Blog</title><link href="/static/client-TNOPHTVT.css" rel="stylesheet" type="text/css"><meta property="og:title" content="Crank.js | Blog"><meta property="og:url" content="https:/crank.js.org/blog"><meta property="og:description" content=""></head><body><script>
(() => {
const colorScheme = sessionStorage.getItem("color-scheme") ||
(window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches
Expand Down Expand Up @@ -29,9 +29,9 @@
A 0.2 1 0 0 0 160 -20
L 0 -40
z
"></path></g></svg>Crank.js</a></div><div><a href="/guides/getting-started">Guides</a></div><div><a href="/blog/" aria-current="page">Blog</a></div><div><a href="/playground/">Playground</a></div></div><div class="css-1n0j5y9"><div><a href="https://github.com/bikeshaving/crank">GitHub</a></div><div><a href="http://npm.im/@b9g/crank">NPM</a></div><button role="switch" aria-label="set dark mode" aria-checked="false"></button></div></nav></div><style data-emotion="css 1wkb9s8">.css-1wkb9s8{background-color:var(--bg-color);margin-top:50px;padding:2rem 0.4rem;color:var(--text-color);border-right:1px solid currentcolor;border-bottom:1px solid currentcolor;}@media screen and (min-width: 800px){.css-1wkb9s8{position:fixed;top:50px;bottom:0;overflow-x:hidden;overflow-y:auto;width:15rem;margin:0;padding:2rem 1rem;text-align:right;}}@media screen and (min-width: 1100px){.css-1wkb9s8{padding:3rem 2rem;width:20rem;}}.css-1wkb9s8 >:first-child{margin-top:0;}</style><div id="sidebar" class="css-1wkb9s8"><style data-emotion="css ep9szm">.css-ep9szm{color:var(--highlight-color);margin-top:0;}</style><h3 class="css-ep9szm">Recent Posts</h3><style data-emotion="css w1ljn4">.css-w1ljn4{margin:10px 0;}</style><div class="css-w1ljn4"><style data-emotion="css 1l0nd7p">.css-1l0nd7p{-webkit-text-decoration:none;text-decoration:none;}</style><a href="/blog/writing-crank-from-scratch" class="css-1l0nd7p">Writing Crank from Scratch</a></div><div class="css-w1ljn4"><a href="/blog/introducing-crank" class="css-1l0nd7p">Introducing Crank</a></div></div><style data-emotion="css sjfxen">.css-sjfxen{margin:0 auto;padding:2rem 0.4rem;}@media screen and (min-width: 800px){.css-sjfxen{margin-left:240px;padding:2rem 1rem;margin-top:50px;}}@media screen and (min-width: 1100px){.css-sjfxen{margin-left:320px;padding:3rem 2rem;}}.css-sjfxen p{max-width:800px;}</style><main class="css-sjfxen"><div class="content"><h1>Writing Crank from Scratch</h1><p>By <a href="https://github.com/brainkim" rel="author">Brian Kim</a> <span>– Published October 13, 2020</span></p><p>One of my goals when authoring Crank.js was to create a framework which was so simple that any intermediate JavaScript developer could conceivably write it from scratch. What I think makes this uniquely achievable for Crank is that its component model is built on top of JavaScript’s two main control flow abstractions, iterators and promises, allowing developers to write components exclusively with sync and async functions and generator functions.</p><p>The following is an attempt to prove that I’ve met this goal by rewriting the bulk of Crank’s core logic as a series of additive commits, with explanations for what I’m doing at each step.</p><div><a href="/blog/writing-crank-from-scratch">Read more…</a></div></div><div class="content"><h1>Introducing Crank</h1><p>By <a href="https://github.com/brainkim" rel="author">Brian Kim</a> <span>– Published April 15, 2020</span></p><p>After months of development, I’m happy to introduce Crank.js, a new framework for creating JSX-driven components with functions, promises and generators. And I know what you’re thinking: <em>oh no, not another web framework.</em> There are already so many of them out there and each carries a non-negligible cost in terms of learning it and building an ecosystem to surround it, so it makes sense that you would reject newcomers if only to avoid the deep sense of exhaustion which has come to be known amongst front-end developers as “JavaScript fatigue.” Therefore, this post is both an introduction to Crank as well as an apology: I’m sorry for creating yet another framework, and I hope that by explaining the circumstances which led me to do so, you will forgive me.</p><div><a href="/blog/introducing-crank">Read more…</a></div></div></main><script data-name="static-urls-8" id="static-urls">
"></path></g></svg>Crank.js</a></div><div><a href="/guides/getting-started">Guides</a></div><div><a href="/blog/" aria-current="page">Blog</a></div><div><a href="/playground/">Playground</a></div></div><div class="css-1n0j5y9"><div><a href="https://github.com/bikeshaving/crank">GitHub</a></div><div><a href="http://npm.im/@b9g/crank">NPM</a></div><button role="switch" aria-label="set dark mode" aria-checked="false"></button></div></nav></div><style data-emotion="css 1wkb9s8">.css-1wkb9s8{background-color:var(--bg-color);margin-top:50px;padding:2rem 0.4rem;color:var(--text-color);border-right:1px solid currentcolor;border-bottom:1px solid currentcolor;}@media screen and (min-width: 800px){.css-1wkb9s8{position:fixed;top:50px;bottom:0;overflow-x:hidden;overflow-y:auto;width:15rem;margin:0;padding:2rem 1rem;text-align:right;}}@media screen and (min-width: 1100px){.css-1wkb9s8{padding:3rem 2rem;width:20rem;}}.css-1wkb9s8 >:first-child{margin-top:0;}</style><div id="sidebar" class="css-1wkb9s8"><style data-emotion="css ep9szm">.css-ep9szm{color:var(--highlight-color);margin-top:0;}</style><h3 class="css-ep9szm">Recent Posts</h3><style data-emotion="css w1ljn4">.css-w1ljn4{margin:10px 0;}</style><div class="css-w1ljn4"><style data-emotion="css 1l0nd7p">.css-1l0nd7p{-webkit-text-decoration:none;text-decoration:none;}</style><a href="/blog/writing-crank-from-scratch" class="css-1l0nd7p">Writing Crank from Scratch</a></div><div class="css-w1ljn4"><a href="/blog/introducing-crank" class="css-1l0nd7p">Introducing Crank</a></div></div><style data-emotion="css 1mkiuoh">.css-1mkiuoh{margin:0 auto;padding:2rem 0.4rem;}@media screen and (min-width: 800px){.css-1mkiuoh{margin-left:240px;padding:2rem 1rem;margin-top:50px;}}@media screen and (min-width: 1100px){.css-1mkiuoh{margin-left:20rem;padding:3rem 2rem;}}.css-1mkiuoh p{max-width:800px;}</style><main class="css-1mkiuoh"><div class="content"><h1>Writing Crank from Scratch</h1><p>By <a href="https://github.com/brainkim" rel="author">Brian Kim</a> <span>– Published October 13, 2020</span></p><p>One of my goals when authoring Crank.js was to create a framework which was so simple that any intermediate JavaScript developer could conceivably write it from scratch. What I think makes this uniquely achievable for Crank is that its component model is built on top of JavaScript’s two main control flow abstractions, iterators and promises, allowing developers to write components exclusively with sync and async functions and generator functions.</p><p>The following is an attempt to prove that I’ve met this goal by rewriting the bulk of Crank’s core logic as a series of additive commits, with explanations for what I’m doing at each step.</p><div><a href="/blog/writing-crank-from-scratch">Read more…</a></div></div><div class="content"><h1>Introducing Crank</h1><p>By <a href="https://github.com/brainkim" rel="author">Brian Kim</a> <span>– Published April 15, 2020</span></p><p>After months of development, I’m happy to introduce Crank.js, a new framework for creating JSX-driven components with functions, promises and generators. And I know what you’re thinking: <em>oh no, not another web framework.</em> There are already so many of them out there and each carries a non-negligible cost in terms of learning it and building an ecosystem to surround it, so it makes sense that you would reject newcomers if only to avoid the deep sense of exhaustion which has come to be known amongst front-end developers as “JavaScript fatigue.” Therefore, this post is both an introduction to Crank as well as an apology: I’m sorry for creating yet another framework, and I hope that by explaining the circumstances which led me to do so, you will forgive me.</p><div><a href="/blog/introducing-crank">Read more…</a></div></div></main><script data-name="static-urls-8" id="static-urls">
if (window.__embeddedJSON__ == null) {
window.__embeddedJSON__ = {};
}
window.__embeddedJSON__['static-urls-8'] = {"@b9g\u002Fcrank":"\u002Fstatic\u002Fcrank-IKBCNXHY.js","@b9g\u002Fcrank\u002Fcrank":"\u002Fstatic\u002Fcrank-IKBCNXHY.js","@b9g\u002Fcrank\u002Fcrank.js":"\u002Fstatic\u002Fcrank-IKBCNXHY.js","@b9g\u002Fcrank\u002Fdom":"\u002Fstatic\u002Fdom-P6RTISBD.js","@b9g\u002Fcrank\u002Fdom.js":"\u002Fstatic\u002Fdom-P6RTISBD.js","@b9g\u002Fcrank\u002Fhtml":"\u002Fstatic\u002Fhtml-BAPPTV5D.js","@b9g\u002Fcrank\u002Fhtml.js":"\u002Fstatic\u002Fhtml-BAPPTV5D.js","@b9g\u002Fcrank\u002Fjsx-tag":"\u002Fstatic\u002Fjsx-tag-LOQQR4CC.js","@b9g\u002Fcrank\u002Fjsx-tag.js":"\u002Fstatic\u002Fjsx-tag-LOQQR4CC.js","@b9g\u002Fcrank\u002Fjsx-runtime":"\u002Fstatic\u002Fjsx-runtime-TBBD57QJ.js","@b9g\u002Fcrank\u002Fjsx-runtime.js":"\u002Fstatic\u002Fjsx-runtime-TBBD57QJ.js","@b9g\u002Fcrank\u002Fstandalone":"\u002Fstatic\u002Fstandalone-2WFTNLZJ.js","@b9g\u002Fcrank\u002Fstandalone.js":"\u002Fstatic\u002Fstandalone-2WFTNLZJ.js","client.css":"\u002Fstatic\u002Fclient-SSQIEGC5.css"};
</script><script src="/static/navbar-HS4GXO4K.js"></script><script src="/static/code-blocks-PIZMJYLY.js"></script></body></html>
window.__embeddedJSON__['static-urls-8'] = {"@b9g\u002Fcrank":"\u002Fstatic\u002Fcrank-IKBCNXHY.js","@b9g\u002Fcrank\u002Fcrank":"\u002Fstatic\u002Fcrank-IKBCNXHY.js","@b9g\u002Fcrank\u002Fcrank.js":"\u002Fstatic\u002Fcrank-IKBCNXHY.js","@b9g\u002Fcrank\u002Fdom":"\u002Fstatic\u002Fdom-P6RTISBD.js","@b9g\u002Fcrank\u002Fdom.js":"\u002Fstatic\u002Fdom-P6RTISBD.js","@b9g\u002Fcrank\u002Fhtml":"\u002Fstatic\u002Fhtml-BAPPTV5D.js","@b9g\u002Fcrank\u002Fhtml.js":"\u002Fstatic\u002Fhtml-BAPPTV5D.js","@b9g\u002Fcrank\u002Fjsx-tag":"\u002Fstatic\u002Fjsx-tag-LOQQR4CC.js","@b9g\u002Fcrank\u002Fjsx-tag.js":"\u002Fstatic\u002Fjsx-tag-LOQQR4CC.js","@b9g\u002Fcrank\u002Fjsx-runtime":"\u002Fstatic\u002Fjsx-runtime-TBBD57QJ.js","@b9g\u002Fcrank\u002Fjsx-runtime.js":"\u002Fstatic\u002Fjsx-runtime-TBBD57QJ.js","@b9g\u002Fcrank\u002Fstandalone":"\u002Fstatic\u002Fstandalone-2WFTNLZJ.js","@b9g\u002Fcrank\u002Fstandalone.js":"\u002Fstatic\u002Fstandalone-2WFTNLZJ.js","client.css":"\u002Fstatic\u002Fclient-TNOPHTVT.css"};
</script><script src="/static/navbar-7RQI54E4.js"></script><script src="/static/code-blocks-3AYVBWPO.js"></script></body></html>
8 changes: 4 additions & 4 deletions blog/introducing-crank/index.html

Large diffs are not rendered by default.

Loading

0 comments on commit 40f2005

Please sign in to comment.