Skip to content

Commit

Permalink
Merge #8 from RealA10N/golang-packages
Browse files Browse the repository at this point in the history
Host Golang Packages
  • Loading branch information
RealA10N authored Aug 4, 2024
2 parents 7365f1a + 4754d37 commit 94eaf12
Show file tree
Hide file tree
Showing 11 changed files with 106 additions and 27 deletions.
5 changes: 4 additions & 1 deletion mdsvex.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@ const config = defineConfig({

remarkPlugins: [[readingTime, { wpm: 185 }], remarkMath],
rehypePlugins: [rehypeKatexSvelte],
layout: 'src/routes/posts/_PostLayout.svelte'
layout: {
post: 'src/routes/posts/_PostLayout.svelte',
package: 'src/routes/x/_PackageLayout.svelte'
}
});

export default config;
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 17 additions & 12 deletions src/lib/Header.svelte
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
<script lang="ts">
import '@fontsource/zilla-slab/300-italic.css';
export let title: string;
export let description: string;
export let tags: string[] = [];
</script>

<div class="text-center font-thin italic my-8 bg-zinc-100 dark:bg-zinc-900 z-50">
<a
href="/"
class="relative before:absolute before:left-0 before:bottom-0
before:w-full before:h-[2px] before:rounded no-underline
before:bg-red-500 before:transition-transform
before:scale-x-100 before:hover:scale-x-105"
>
Alon Krymgand
</a>
</div>
<header class="flex flex-col items-center mb-4 text-zinc-700 dark:text-zinc-300">
<h1 class="text-center mt-0">{title}</h1>
<div class="font-medium tracking-wider text-md italic text-center">
{description}
</div>

{#if tags.length > 0}
<ul class="flex flex-wrap justify-center mt-1 gap-2">
{#each tags as tag}
<li class="tag m-0">{tag}</li>
{/each}
</ul>
{/if}
</header>
15 changes: 15 additions & 0 deletions src/lib/Title.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<script lang="ts">
import '@fontsource/zilla-slab/300-italic.css';
</script>

<div class="text-center font-thin italic my-8 bg-zinc-100 dark:bg-zinc-900 z-50">
<a
href="/"
class="relative before:absolute before:left-0 before:bottom-0
before:w-full before:h-[2px] before:rounded no-underline
before:bg-red-500 before:transition-transform
before:scale-x-100 before:hover:scale-x-105"
>
Alon Krymgand
</a>
</div>
15 changes: 15 additions & 0 deletions src/lib/interfaces/package.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
export interface Package {
name: string;
title: string;
description: string;
versionSourceControl: 'bzr' | 'fossil' | 'git' | 'hg' | 'svn';
sourceUrl: string;
}

export const packageUrl = (pkg: Package) => {
return 'alon.kr/x/' + pkg.name;
};

export const documentationUrl = (pkg: Package) => {
return 'https://pkg.go.dev/' + packageUrl(pkg);
};
4 changes: 2 additions & 2 deletions src/routes/+layout.svelte
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<script lang="ts">
import '$src/app.css';
import '@fontsource/zilla-slab';
import Header from '$lib/Header.svelte';
import Title from '$src/lib/Title.svelte';
import LoadingBar from '$lib/LoadingBar.svelte';
</script>

<LoadingBar />

<Header />
<Title />

<main class="max-w-3xl px-6 m-auto">
<slot />
Expand Down
11 changes: 2 additions & 9 deletions src/routes/posts/PostLayout.svelte
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<script lang="ts">
import { browser } from '$app/environment';
import Metadata from '$lib/Metadata.svelte';
import Header from '$src/lib/Header.svelte';
import { type Post, toTaglist } from '$src/lib/interfaces/post';
export let post: Post;
Expand All @@ -9,15 +10,7 @@

<Metadata title={post.title} description={post.description} />

<header class="mb-4 text-zinc-700 dark:text-zinc-300">
<h1>{post.title}</h1>
<div class="font-medium tracking-wider text-sm italic">
{post.description}
</div>
<ul class="flex flex-wrap mt-1 gap-2">
{#each toTaglist(post, true) as tag}<li class="tag m-0">{tag}</li>{/each}
</ul>
</header>
<Header title={post.title} description={post.description} tags={toTaglist(post, true)} />

<article class="text-justify">
<slot />
Expand Down
1 change: 1 addition & 0 deletions src/routes/posts/christofides/+page.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
---
layout: post
title: The Christofides Algorithm
description: "Approximating the Metric TSP Problem: An Introduction to Combinatorial Optimization."
published: 2023-05-20
Expand Down
27 changes: 27 additions & 0 deletions src/routes/x/PackageLayout.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<script lang="ts">
import { type Package, packageUrl, documentationUrl } from '$src/lib/interfaces/package';
import Header from '$src/lib/Header.svelte';
import Metadata from '$src/lib/Metadata.svelte';
export let pkg: Package;
export const prerender = true;
</script>

<svelte:head>
<meta name="go-import" content="{packageUrl(pkg)} {pkg.versionSourceControl} {pkg.sourceUrl}" />
</svelte:head>

<Metadata title={pkg.title} description={pkg.description} />

<Header title={pkg.title} description={pkg.description} />

<h2>Get</h2>
<code>go get {packageUrl(pkg)}</code>

<h2>Source</h2>
<p>can be found <a href={pkg.sourceUrl}>here</a>.</p>

<h2>Documentation</h2>
<p>can be found <a href={documentationUrl(pkg)}>here</a>.</p>

<slot />
12 changes: 12 additions & 0 deletions src/routes/x/_PackageLayout.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<!-- This is a workaround, since MDSvex does not officially support
preprocessing (typescript and postcss) in layout files.
So, this layout file does not contain any of that, but it directly imports
one does use it. -->

<script>
import PackageLayout from './PackageLayout.svelte';
</script>

<PackageLayout pkg={$$props}>
<slot />
</PackageLayout>
8 changes: 8 additions & 0 deletions src/routes/x/faststringmap/+page.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
layout: package
name: faststringmap
title: Fast String Map
description: A fast (5x) string keyed read-only map - good for keys using a small set of runes.
sourceUrl: https://github.com/RealA10N/faststringmap
versionSourceControl: git
---

0 comments on commit 94eaf12

Please sign in to comment.