Skip to content

Commit

Permalink
feature: add edit suggestion links
Browse files Browse the repository at this point in the history
  • Loading branch information
Goose97 committed Oct 5, 2024
1 parent 30c8519 commit 9de9b12
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 9 deletions.
11 changes: 11 additions & 0 deletions src/components/GithubLogo.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
const { class: className } = Astro.props
---

<svg
class={className}
viewBox="0 0 98 96"
xmlns="http://www.w3.org/2000/svg"
>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z" fill="currentColor"/>
</svg>
23 changes: 18 additions & 5 deletions src/components/PartHeading.astro
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
---
import GithubLogo from './GithubLogo.astro'
type Props = {
part: number
text: string
githubLink?: string
}
const { part, text } = Astro.props
const { part, text, githubLink } = Astro.props
---

<h1 class="my-12">
<div>Part {part}</div>
<div class="text-4xl font-bold">{text}</div>
</h1>
<div class="flex justify-between items-end my-12">
<h1>
<div>Part {part}</div>
<div class="text-4xl font-bold">{text}</div>
</h1>

{
githubLink && <button class="text-base text-stone-500 hover:text-stone-700">
<a href={githubLink} rel="noopener noreferrer" target="_blank" class="flex items-center">
Suggest an edit <GithubLogo class="inline-block w-4 h-4 ml-1" />
</a>
</button>
}
</div>
6 changes: 5 additions & 1 deletion src/pages/btree-under-a-microscope/basics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@ import plainBtree from '@images/plain-btree.png';
</div>
</div>

<PartHeading text="The Basics" part={1} />
<PartHeading
text="The Basics"
part={1}
githubLink="https://github.com/Goose97/ducnguyen.space/blob/main/src/pages/btree-under-a-microscope/basics.mdx"
/>

The one thing I love about B-Tree is that the core idea is crazy simple. I
can't help myself nodding enthusiastically while reading about it: "Hmm, this
Expand Down
6 changes: 5 additions & 1 deletion src/pages/btree-under-a-microscope/databases.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,11 @@ import slottedPageFragmentation from '@images/slotted-page-fragmentation.png';
</div>
</div>

<PartHeading text="Databases" part={2} />
<PartHeading
text="Databases"
part={2}
githubLink="https://github.com/Goose97/ducnguyen.space/blob/main/src/pages/btree-under-a-microscope/databases.mdx"
/>

B-Tree is ubiquitous and appears everywhere, especially in the database realm.
You can find a B-Tree implementation in almost every database nowadays,
Expand Down
6 changes: 5 additions & 1 deletion src/pages/btree-under-a-microscope/optimizations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@ import slottedPage from '@images/slotted-page.png';
</div>


<PartHeading text="Optimizations" part={4} />
<PartHeading
text="Optimizations"
part={4}
githubLink="https://github.com/Goose97/ducnguyen.space/blob/main/src/pages/btree-under-a-microscope/optimizations.mdx"
/>

We can apply a number of optimizations on the baseline design of B-Tree,
each with different trade-offs. They aim to provide more compact tree
Expand Down
6 changes: 5 additions & 1 deletion src/pages/btree-under-a-microscope/variations.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,11 @@ import bLinkTree from '@images/b-link-tree.png';
</div>
</div>

<PartHeading text="Variations" part={3} />
<PartHeading
text="Variations"
part={3}
githubLink="https://github.com/Goose97/ducnguyen.space/blob/main/src/pages/btree-under-a-microscope/variations.mdx"
/>

B-Tree has different variations, improving different aspects of the base design.
They all share a few things in common: tree structure, the balancing mechanism
Expand Down

0 comments on commit 9de9b12

Please sign in to comment.