Skip to content

Commit

Permalink
Updates
Browse files Browse the repository at this point in the history
  • Loading branch information
Brian Kim committed Apr 26, 2024
1 parent 78242dd commit a41f0c8
Show file tree
Hide file tree
Showing 164 changed files with 1,270,827 additions and 3,660 deletions.
14 changes: 4 additions & 10 deletions blog/index.html
Original file line number Diff line number Diff line change
@@ -1,10 +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-Q5HR47TJ.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=""><script async src="https://www.googletagmanager.com/gtag/js?id=UA-20910936-4"></script><script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());

gtag('config', 'UA-20910936-4');
</script></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-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>
(() => {
const colorScheme = sessionStorage.getItem("color-scheme") ||
(window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches
Expand Down Expand Up @@ -35,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>October 13, 2020</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>April 15, 2020</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 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">
if (window.__embeddedJSON__ == null) {
window.__embeddedJSON__ = {};
}
window.__embeddedJSON__['static-urls-8'] = {"@b9g\u002Fcrank":"\u002Fstatic\u002Fcrank-XB6WXNGQ.js","@b9g\u002Fcrank\u002Fcrank":"\u002Fstatic\u002Fcrank-XB6WXNGQ.js","@b9g\u002Fcrank\u002Fcrank.js":"\u002Fstatic\u002Fcrank-XB6WXNGQ.js","@b9g\u002Fcrank\u002Fdom":"\u002Fstatic\u002Fdom-FJYGSVTY.js","@b9g\u002Fcrank\u002Fdom.js":"\u002Fstatic\u002Fdom-FJYGSVTY.js","@b9g\u002Fcrank\u002Fhtml":"\u002Fstatic\u002Fhtml-V67ZRAK3.js","@b9g\u002Fcrank\u002Fhtml.js":"\u002Fstatic\u002Fhtml-V67ZRAK3.js","@b9g\u002Fcrank\u002Fjsx-tag":"\u002Fstatic\u002Fjsx-tag-HNWLDDKD.js","@b9g\u002Fcrank\u002Fjsx-tag.js":"\u002Fstatic\u002Fjsx-tag-HNWLDDKD.js","@b9g\u002Fcrank\u002Fjsx-runtime":"\u002Fstatic\u002Fjsx-runtime-6YBD4CTJ.js","@b9g\u002Fcrank\u002Fjsx-runtime.js":"\u002Fstatic\u002Fjsx-runtime-6YBD4CTJ.js","@b9g\u002Fcrank\u002Fstandalone":"\u002Fstatic\u002Fstandalone-S6C3ZD63.js","@b9g\u002Fcrank\u002Fstandalone.js":"\u002Fstatic\u002Fstandalone-S6C3ZD63.js","client.css":"\u002Fstatic\u002Fclient-Q5HR47TJ.css"};
</script><script src="/static/navbar-52J6JOSM.js"></script><script src="/static/code-blocks-MHNSGLSF.js"></script></body></html>
window.__embeddedJSON__['static-urls-8'] = {"@b9g\u002Fcrank":"\u002Fstatic\u002Fcrank-IV2ABN22.js","@b9g\u002Fcrank\u002Fcrank":"\u002Fstatic\u002Fcrank-IV2ABN22.js","@b9g\u002Fcrank\u002Fcrank.js":"\u002Fstatic\u002Fcrank-IV2ABN22.js","@b9g\u002Fcrank\u002Fdom":"\u002Fstatic\u002Fdom-ASECXKBF.js","@b9g\u002Fcrank\u002Fdom.js":"\u002Fstatic\u002Fdom-ASECXKBF.js","@b9g\u002Fcrank\u002Fhtml":"\u002Fstatic\u002Fhtml-OFI3D6ZY.js","@b9g\u002Fcrank\u002Fhtml.js":"\u002Fstatic\u002Fhtml-OFI3D6ZY.js","@b9g\u002Fcrank\u002Fjsx-tag":"\u002Fstatic\u002Fjsx-tag-IIFLB6WU.js","@b9g\u002Fcrank\u002Fjsx-tag.js":"\u002Fstatic\u002Fjsx-tag-IIFLB6WU.js","@b9g\u002Fcrank\u002Fjsx-runtime":"\u002Fstatic\u002Fjsx-runtime-M3JFUQGP.js","@b9g\u002Fcrank\u002Fjsx-runtime.js":"\u002Fstatic\u002Fjsx-runtime-M3JFUQGP.js","@b9g\u002Fcrank\u002Fstandalone":"\u002Fstatic\u002Fstandalone-3PBDRIUR.js","@b9g\u002Fcrank\u002Fstandalone.js":"\u002Fstatic\u002Fstandalone-3PBDRIUR.js","client.css":"\u002Fstatic\u002Fclient-SSQIEGC5.css"};
</script><script src="/static/navbar-B645DEJ5.js"></script><script src="/static/code-blocks-GAT7VCK4.js"></script></body></html>
16 changes: 5 additions & 11 deletions blog/introducing-crank/index.html

Large diffs are not rendered by default.

Loading

0 comments on commit a41f0c8

Please sign in to comment.