Add links

This commit is contained in:
2025-02-12 00:50:54 +09:00
parent 0e7287bca7
commit 1517e6f738
11 changed files with 242 additions and 44 deletions

View File

@@ -30,6 +30,16 @@ let { children } = $props();
blog
</a>
</li>
<li>
<a href="/links" class="flex gap-1 items-end leading-5">
<LuChevronsRight
class={cn("transition-transform",
page.url.pathname === "/links" && "rotate-90",
)}
size=16 />
links
</a>
</li>
</ul>
</nav>
</header>
@@ -41,10 +51,10 @@ let { children } = $props();
<LuCopyleft aria-label="Copyleft" size=12 /> 2024 cannorin. Some rights reserved.
</p>
<p>
The text of this website is licensed under <a class="underline" href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="nofollow noopener noreferrer">CC BY-SA 4.0</a>.
The text of this website is licensed under <a class="underline" href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener noreferrer">CC BY-SA 4.0</a>.
</p>
<p>
Code examples are licensed under the <a class="underline" href="https://spdx.org/licenses/MIT.html" target="_blank" rel="nofollow noopener noreferrer">MIT License</a>.
Code examples are licensed under the <a class="underline" href="https://spdx.org/licenses/MIT.html" target="_blank" rel="noopener noreferrer">MIT License</a>.
</p>
</footer>
</div>

View File

@@ -46,32 +46,32 @@ export const snapshot: Snapshot<SnapshotData> = {
<nav>
<ul class="flex flex-row flex-nowrap items-center gap-4 text-sm">
<li>
<a href="https://keybase.io/cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://keybase.io/cannorin" target="_blank" rel="noopener noreferrer">
<SiKeybase title="Keybase" />
</a>
</li>
<li>
<a href="https://x.com/cannorin3" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://x.com/cannorin3" target="_blank" rel="noopener noreferrer">
<SiX title="X (Twitter)" />
</a>
</li>
<li>
<a href="https://misskey.cannorin.net/@cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://misskey.cannorin.net/@cannorin" target="_blank" rel="noopener noreferrer">
<SiMisskey title="Misskey" />
</a>
</li>
<li>
<a href="https://www.twitch.tv/cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://www.twitch.tv/cannorin" target="_blank" rel="noopener noreferrer">
<SiTwitch title="Twitch" />
</a>
</li>
<li>
<a href="https://discord.com/users/497190979216867329" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://discord.com/users/497190979216867329" target="_blank" rel="noopener noreferrer">
<SiDiscord title="Discord" />
</a>
</li>
<li>
<a href="https://steamcommunity.com/id/cannorin/" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://steamcommunity.com/id/cannorin/" target="_blank" rel="noopener noreferrer">
<SiSteam title="Steam" />
</a>
</li>

View File

@@ -8,15 +8,17 @@ let { data } = $props();
</script>
<main class={cn(limitWidth, "flex flex-col items-center gap-12 lg:gap-16")}>
<h1 class="sr-only">Blog</h1>
<div class="flex flex-col gap-6 w-full max-w-[720px]">
{#each data.posts as post}
{@const date = new Date(post.date)}
<article>
<h1 class="text-lg">
<h2 class="text-lg">
<a href="/blog/{post.slug}" style="view-transition-name: article-{post.slug}-title">
{post.title}
</a>
</h1>
</h2>
<div class="text-xs flex flex-wrap-reverse justify-between" style="view-transition-name: article-{post.slug}-meta">
<ul class="flex gap-3">
<li class="text-primary font-bold">#{post.category}</li>

View File

@@ -59,24 +59,24 @@ import Card from "./card.svelte";
<h3 id="works">つくったもの・関わったもの</h3>
<ul>
<li><a href="https://github.com/ocsigen/ts2ocaml" target="_blank" rel="nofollow noopener noreferrer">ts2ocaml</a>, <a href="https://github.com/CoreTweet/CoreTweet" target="_blank" rel="nofollow noopener noreferrer">CoreTweet</a> (作者)</li>
<li><a href="https://github.com/fsprojects/FSharpPlus" target="_blank" rel="nofollow noopener noreferrer">FSharpPlus</a>, <a href="https://github.com/ionide/Ionide-vim" target="_blank" rel="nofollow noopener noreferrer">Ionide-vim</a> (メンテナ)</li>
<li><a href="https://xn--pckjp4dudxftf.xn--tckwe/" target="_blank" rel="nofollow noopener noreferrer">ゴーストクラブ.コム</a>, <a href="https://www.0b4k3.com" target="_blank" rel="nofollow noopener noreferrer">0b4k3.com</a> (インフラ構築・実装)</li>
<li><a href="https://github.com/ocsigen/ts2ocaml" target="_blank" rel="noopener noreferrer">ts2ocaml</a>, <a href="https://github.com/CoreTweet/CoreTweet" target="_blank" rel="noopener noreferrer">CoreTweet</a> (作者)</li>
<li><a href="https://github.com/fsprojects/FSharpPlus" target="_blank" rel="noopener noreferrer">FSharpPlus</a>, <a href="https://github.com/ionide/Ionide-vim" target="_blank" rel="noopener noreferrer">Ionide-vim</a> (メンテナ)</li>
<li><a href="https://xn--pckjp4dudxftf.xn--tckwe/" target="_blank" rel="noopener noreferrer">ゴーストクラブ.コム</a>, <a href="https://www.0b4k3.com" target="_blank" rel="noopener noreferrer">0b4k3.com</a> (インフラ構築・実装)</li>
<li>
他にもコンパイラやパッケージマネージャに対するデカめの PR を通したことがあります (<a href="https://github.com/fable-compiler/Fable/pull/2618" target="_blank" rel="nofollow noopener noreferrer">fable-compiler/Fable#2618</a>,
<a href="https://github.com/ocaml/opam/pull/5171" target="_blank" rel="nofollow noopener noreferrer">ocaml/opam#5171</a>,
<a href="https://github.com/rescript-lang/rescript/pull/5364" target="_blank" rel="nofollow noopener noreferrer">rescript-lang/rescript#5364</a>, ...)
他にもコンパイラやパッケージマネージャに対するデカめの PR を通したことがあります (<a href="https://github.com/fable-compiler/Fable/pull/2618" target="_blank" rel="noopener noreferrer">fable-compiler/Fable#2618</a>,
<a href="https://github.com/ocaml/opam/pull/5171" target="_blank" rel="noopener noreferrer">ocaml/opam#5171</a>,
<a href="https://github.com/rescript-lang/rescript/pull/5364" target="_blank" rel="noopener noreferrer">rescript-lang/rescript#5364</a>, ...)
</li>
</ul>
<h3 id="contact">連絡先</h3>
<ul>
<li>チューターやバグ修正など、カジュアルな案件は <a href="https://github.com/sponsors/cannorin" target="_blank" rel="nofollow noopener noreferrer">GitHub Sponsors</a> をご利用ください。</li>
<li>チューターやバグ修正など、カジュアルな案件は <a href="https://github.com/sponsors/cannorin" target="_blank" rel="noopener noreferrer">GitHub Sponsors</a> をご利用ください。</li>
<li>
ウェブサイト構築など、大規模な案件についてのご連絡は <a href="https://keybase.io/cannorin" target="_blank" rel="nofollow noopener noreferrer">Keybase</a>,
<a href="https://discord.com/users/497190979216867329" target="_blank" rel="nofollow noopener noreferrer">Discord</a>,
または contact(atmark)cannorin.net までお願いします。
ウェブサイト構築など、大規模な案件についてのご連絡は <a href="https://keybase.io/cannorin" target="_blank" rel="noopener noreferrer">Keybase</a>,
<a href="https://discord.com/users/497190979216867329" target="_blank" rel="noopener noreferrer">Discord</a>,
または <a href="mailto:contact@cannorin.net">contact@cannorin.net</a> までお願いします。
</li>
<li>なお、現在特に転職の予定はありません。</li>
</ul>

View File

@@ -22,17 +22,17 @@ let { more, ...rest }: Pick<CardProps, "more" | "class"> = $props();
{#snippet links()}
<li>
<a href="https://github.com/cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://github.com/cannorin" target="_blank" rel="noopener noreferrer">
<SiGithub title="GitHub" />
</a>
</li>
<li>
<a href="https://qiita.com/cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://qiita.com/cannorin" target="_blank" rel="noopener noreferrer">
<SiQiita title="Qiita" />
</a>
</li>
<li>
<a href="https://zenn.dev/cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://zenn.dev/cannorin" target="_blank" rel="noopener noreferrer">
<SiZenn title="Zenn" />
</a>
</li>

View File

@@ -0,0 +1,186 @@
<script lang="ts">
import { limitWidth } from "$lib/constants";
import { cn } from "$lib/utils";
import type { Snippet } from "svelte";
const categories = [
{ type: "mine" },
{ type: "friend", text: "友人のサイト" },
{ type: "favorite", text: "お気に入り" },
] as const;
const sites: {
href: string;
name: string;
type: (typeof categories)[number]["type"];
description?: string | Snippet;
}[] = [
{
href: "https://zkillboard.com/character/96980978/",
name: "zKillboard",
type: "mine",
description: zkillboard,
},
{
href: "https://cannorin.fanbox.cc/",
name: "pixiv FANBOX",
type: "mine",
description:
"5年ほど前に、ここで日記を書いていた時期がありました。気軽な投げ銭用として残してあります。",
},
{
href: "https://note.com/cannorin",
name: "note",
type: "mine",
description:
"音楽関係・VRChat関係の書き物を置こうかと思って作りましたが、今後はこっちのサイトでやりそうです。",
},
{
href: "https://speakerdeck.com/cannorin",
name: "Speaker Deck",
type: "mine",
description:
"昔作ったスライドがいくつか置いてあります。今後はこっちのサイトに置くと思います。",
},
{
href: "https://tohlpeaks.party/",
name: "FATAL WOVND",
type: "friend",
},
{
href: "https://sno2wman.net/",
name: "SnO2WMaN.net",
type: "friend",
},
{
href: "https://www.umsu.de/trees/",
name: "Tree Proof Generator",
type: "favorite",
description:
"古典命題論理・古典述語論理・一部の正規様相論理について、論理式の証明もしくは反例モデルを出してくれるサイトです。",
},
{
href: "https://hferee.github.io/UIML/demo.html",
name: "Uniform interpolant calculator",
type: "favorite",
description:
"直観主義命題論理と一部の様相論理(チョイスが謎すぎる)上で、論理式の一様補間を計算してくれるサイトです。",
},
{
href: "http://forkinganddividing.com/",
name: "Map of the Universe",
type: "favorite",
description:
"モデル理論の道具 (forking and dividing) でいろんな理論を見た図が描かれてるサイトです。",
},
{
href: "https://sharplab.io/",
name: "SharpLab",
type: "favorite",
description:
"C# や F# などの .NET 言語でコードを書いて、その逆アセンブル結果を見られるサイトです。",
},
];
</script>
{#snippet zkillboard()}
<a href="https://www.eveonline.com/" target="_blank" rel="noopener noreferrer">EVE Online</a> をやっていた頃の私のキルボード(戦績表)です。
もう忙しくて全然遊べていない……
{/snippet}
<main class={cn(limitWidth, "flex flex-col items-center gap-6 lg:gap-8")}>
<h1 class="sr-only">Links</h1>
<section class="w-full !max-w-[720px] prose prose-sm prose-light">
<h2 class="text-xl">その他のリンク</h2>
<p>他のページで紹介していない各種アカウント・ページを載せています。</p>
<nav>
<ul class="space-y-2">
{#each sites.filter((s) => s.type === "mine") as site}
<li>
<a href={site.href} target="_blank" rel="noopener noreferrer">{site.name}</a>
{#if site.description}
<div class="text-xs">
{#if typeof site.description === "string"}
{site.description}
{:else}
{@render site.description()}
{/if}
</div>
{/if}
</li>
{/each}
</ul>
</nav>
</section>
<section class="w-full !max-w-[720px] prose prose-sm prose-light">
<h2 class="text-xl">おすすめのサイト</h2>
<p>私の友人のウェブサイトや、個人的に気に入っているウェブサイトを紹介しています。</p>
{#each categories as category}
{#if category.type !== "mine" && sites.filter((s) => s.type === category.type).length > 0}
<nav>
<h3 class="text-base font-bold text-primary">{category.text}</h3>
<ul class="space-y-2">
{#each sites.filter((s) => s.type === category.type) as site}
<li>
<div class="flex flex-wrap items-center gap-x-1">
<a href={site.href} target="_blank" rel="noopener noreferrer">{site.name}</a>
{#if !site.description}
<span class="text-xs text-muted">({new URL(site.href).hostname})</span>
{/if}
</div>
{#if site.description}
<div class="text-xs">
{#if typeof site.description === "string"}
{site.description}
{:else}
{@render site.description()}
{/if}
</div>
{/if}
</li>
{/each}
</ul>
</nav>
{/if}
{/each}
</section>
<aside class="w-full !max-w-[720px] prose prose-sm">
<p>何かありましたら下記までご連絡ください。相互リンクも募集中ですウェブサイトとブログのみ受け付けています。SNSのプロフィールページは受け付けていないのであしからず……</p>
<nav>
<ul class="not-prose text-primary underline font-medium flex flex-wrap gap-x-4">
<li>
<a href="https://keybase.io/cannorin" target="_blank" rel="noopener noreferrer">
KeyBase
</a>
</li>
<li>
<a href="https://x.com/cannorin3" target="_blank" rel="noopener noreferrer">
X (Twitter)
</a>
</li>
<li>
<a href="https://misskey.cannorin.net/@cannorin" target="_blank" rel="noopener noreferrer">
Misskey
</a>
</li>
<li>
<a href="https://discord.com/users/497190979216867329" target="_blank" rel="noopener noreferrer">
Discord
</a>
</li>
<li>
<a href="mailto:contact@cannorin.net">contact@cannorin.net</a>
</li>
</ul>
</nav>
</aside>
</main>

View File

@@ -21,12 +21,12 @@ let { more, ...rest }: Pick<CardProps, "more" | "class"> = $props();
{#snippet links()}
<li>
<a href="https://orcid.org/0009-0009-3946-4260" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://orcid.org/0009-0009-3946-4260" target="_blank" rel="noopener noreferrer">
<SiOrcid title="ORCiD" />
</a>
</li>
<li>
<a href="https://www.researchgate.net/profile/Yuta-Sato-22" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://www.researchgate.net/profile/Yuta-Sato-22" target="_blank" rel="noopener noreferrer">
<SiResearchgate title="ResearchGate" />
</a>
</li>

View File

@@ -47,10 +47,10 @@ import Card from "./card.svelte";
<p>普段の DJ の際は、以下の機材を持ち込んでいます。あまりサイズは取りませんが、ブースに置くスペースがあるとうれしいです。なお、CDJ + USB のオーソドックスなプレイもできます。</p>
<ul>
<li><a href="https://www.allen-heath.com/hardware/xone-series/xonek2/" target="_blank" rel="nofollow noopener noreferrer">Allen & Heath Xone:K2</a> (4ch MIDI コントローラ)</li>
<li><a href="https://evo.audio/products/audio-interfaces/evo-4/overview/" target="_blank" rel="nofollow noopener noreferrer"> Audient EVO 4</a> (AIF, フォンから RCA に変換)</li>
<li><a href="https://mixxx.org/" target="_blank" rel="nofollow noopener noreferrer">Mixxx</a> (DJ ソフトウェア)</li>
<li><a href="https://www.audio-technica.co.jp/product/ATH-M50x" target="_blank" rel="nofollow noopener noreferrer">audio-technica ATH-M50x</a></li>
<li><a href="https://www.allen-heath.com/hardware/xone-series/xonek2/" target="_blank" rel="noopener noreferrer">Allen & Heath Xone:K2</a> (4ch MIDI コントローラ)</li>
<li><a href="https://evo.audio/products/audio-interfaces/evo-4/overview/" target="_blank" rel="noopener noreferrer"> Audient EVO 4</a> (AIF, フォンから RCA に変換)</li>
<li><a href="https://mixxx.org/" target="_blank" rel="noopener noreferrer">Mixxx</a> (DJ ソフトウェア)</li>
<li><a href="https://www.audio-technica.co.jp/product/ATH-M50x" target="_blank" rel="noopener noreferrer">audio-technica ATH-M50x</a></li>
<li>オヤイデ d+ classB RCA ケーブル</li>
<li>ートPC</li>
</ul>
@@ -81,14 +81,14 @@ import Card from "./card.svelte";
</ul>
</li>
<li>
<a href="https://oooto.otherman-records.com/4/" target="_blank" rel="nofollow noopener noreferrer">大音4</a> (中野 ヘビーシックゼロ)
<a href="https://oooto.otherman-records.com/4/" target="_blank" rel="noopener noreferrer">大音4</a> (中野 ヘビーシックゼロ)
<ul>
<li>サブフロアのキュレーションも担当しました。</li>
</ul>
</li>
<li><a href="https://x.com/cannorin3/status/1800402487771549782" target="_blank" rel="nofollow noopener noreferrer">4KICKS FOR GEEKS #4</a> (心斎橋 夜来香)</li>
<li><a href="https://x.com/cannorin3/status/1655598762822365189" target="_blank" rel="nofollow noopener noreferrer">embodiment</a> (心斎橋 夜来香)</li>
<li><a href="https://x.com/tohlpeaks/status/1570381932365434880" target="_blank" rel="nofollow noopener noreferrer">miracle☆sugar - sato♡shin &amp; TohLPeaks Release Party</a> (難波 ベアーズ)</li>
<li><a href="https://x.com/cannorin3/status/1800402487771549782" target="_blank" rel="noopener noreferrer">4KICKS FOR GEEKS #4</a> (心斎橋 夜来香)</li>
<li><a href="https://x.com/cannorin3/status/1655598762822365189" target="_blank" rel="noopener noreferrer">embodiment</a> (心斎橋 夜来香)</li>
<li><a href="https://x.com/tohlpeaks/status/1570381932365434880" target="_blank" rel="noopener noreferrer">miracle☆sugar - sato♡shin &amp; TohLPeaks Release Party</a> (難波 ベアーズ)</li>
<li>
and more...
<ul>
@@ -101,9 +101,9 @@ import Card from "./card.svelte";
<p>
ブッキングや音楽制作などのご連絡は
<a href="https://discord.com/users/497190979216867329" target="_blank" rel="nofollow noopener noreferrer">Discord</a>,
<a href="https://x.com/cannorin3" target="_blank" rel="nofollow noopener noreferrer">Twitter (X)</a>,
または contact(atmark)cannorin.net までお願いします。
<a href="https://discord.com/users/497190979216867329" target="_blank" rel="noopener noreferrer">Discord</a>,
<a href="https://x.com/cannorin3" target="_blank" rel="noopener noreferrer">Twitter (X)</a>,
または <a href="mailto:contact@cannorin.net">contact@cannorin.net</a> までお願いします。
</p>
<a href="/" class="back mt-8 text-foreground no-underline font-normal">

View File

@@ -22,17 +22,17 @@ let { more, ...rest }: Pick<CardProps, "more" | "class"> = $props();
{#snippet links()}
<li>
<a href="https://cannorin.bandcamp.com/" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://cannorin.bandcamp.com/" target="_blank" rel="noopener noreferrer">
<SiBandcamp title="Bandcamp" />
</a>
</li>
<li>
<a href="https://soundcloud.com/cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://soundcloud.com/cannorin" target="_blank" rel="noopener noreferrer">
<SiSoundcloud title="Soundcloud" />
</a>
</li>
<li>
<a href="https://mixcloud.com/cannorin" target="_blank" rel="nofollow noopener noreferrer">
<a href="https://mixcloud.com/cannorin" target="_blank" rel="noopener noreferrer">
<SiMixcloud title="Mixcloud" />
</a>
</li>

View File

@@ -38,7 +38,7 @@ let copied = $state(false);
<section id="about" class="prose !w-full !min-w-full sect">
<h2>あるびのすきーとは?</h2>
<p>
あるびのすきーは「シンプル」と「かわいい」をテーマにした <a href="https://misskey-hub.net/ja/" target="_blank" rel="nofollow noopener noreferrer">Misskey</a> インスタンスです。
あるびのすきーは「シンプル」と「かわいい」をテーマにした <a href="https://misskey-hub.net/ja/" target="_blank" rel="noopener noreferrer">Misskey</a> インスタンスです。
</p>
<ul>

View File

@@ -1,7 +1,7 @@
## 利用規約
<aside class="text-xs text-muted-foreground">
この利用規約の内容は、hota さんが運営する Mastodon インスタンスの <a href="https://wiki.maud.io/ja/mastodon/about" target="_blank" rel="nofollow noopener noreferrer">:don: 利用規約</a> を元にしています!
この利用規約の内容は、hota さんが運営する Mastodon インスタンスの <a href="https://wiki.maud.io/ja/mastodon/about" target="_blank" rel="noopener noreferrer">:don: 利用規約</a> を元にしています!
</aside>
### はじめに
@@ -132,11 +132,11 @@
管理者の連絡先として利用可能な経路の一覧です。信頼できる経路を選択してください。また、可能な限り連絡者とアカウントが同一人物であることを確認できる手段を推奨しています。
- Keybase <a href="https://keybase.io/cannorin" target="_blank" rel="nofollow noopener noreferrer">@cannorin</a>
- Keybase <a href="https://keybase.io/cannorin" target="_blank" rel="noopener noreferrer">@cannorin</a>
- おそらく最もセキュア。
- 当サーバーの <a href="https://misskey.cannorin.net/@admin" target="_blank">@admin</a> または <a href="https://misskey.cannorin.net/@cannorin" target="_blank">@cannorin</a>
- 公開範囲をダイレクトにしてください。
- Discord <a href="https://discord.com/users/497190979216867329" target="_blank" rel="nofollow noopener noreferrer">@cannorin</a>
- Discord <a href="https://discord.com/users/497190979216867329" target="_blank" rel="noopener noreferrer">@cannorin</a>
- フレンドを送ってからDMを送信してください。
- X (Twitter) <a href="https://x.com/cannorin3" target="_blank" rel="nofollow noopener noreferrer">@cannorin3</a>
- X (Twitter) <a href="https://x.com/cannorin3" target="_blank" rel="noopener noreferrer">@cannorin3</a>
- 通知を見落としがちなのであんまり推奨しないです。