This commit is contained in:
parent
f30e079bbe
commit
38df3907c6
6
astro.config.js
Normal file
6
astro.config.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import { defineConfig } from "astro/config";
|
||||||
|
import tailwindcss from "@tailwindcss/vite";
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
vite: { plugins: [tailwindcss()] },
|
||||||
|
});
|
@ -1,10 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
import { defineConfig } from "astro/config";
|
|
||||||
import tailwind from "@tailwindcss/vite";
|
|
||||||
|
|
||||||
// https://astro.build/config
|
|
||||||
export default defineConfig({
|
|
||||||
vite: {
|
|
||||||
plugins: [tailwind()],
|
|
||||||
},
|
|
||||||
});
|
|
10
package.json
10
package.json
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "lua.re",
|
"name": "lua.re",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "0.0.0",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "astro dev",
|
"dev": "astro dev",
|
||||||
"build": "astro check && astro build",
|
"build": "astro check && astro build",
|
||||||
@ -9,10 +8,11 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/check": "^0.9.4",
|
"@astrojs/check": "^0.9.4",
|
||||||
|
"@fontsource/faustina": "^5.2.6",
|
||||||
"@fontsource/source-serif-4": "^5.2.8",
|
"@fontsource/source-serif-4": "^5.2.8",
|
||||||
"@tailwindcss/vite": "^4.1.8",
|
"@tailwindcss/vite": "^4.1.11",
|
||||||
"astro": "^5.8.1",
|
"astro": "^5.12.9",
|
||||||
"tailwindcss": "^4.1.8",
|
"tailwindcss": "^4.1.11",
|
||||||
"typescript": "^5.8.3"
|
"typescript": "^5.9.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1112
pnpm-lock.yaml
generated
1112
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 8.9 KiB |
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
@ -1,6 +0,0 @@
|
|||||||
export function classes(...s: (string | false | null | undefined)[]) {
|
|
||||||
return s
|
|
||||||
.flatMap((s) => (s ? s : "").split(" "))
|
|
||||||
.filter((s) => s)
|
|
||||||
.join(" ");
|
|
||||||
}
|
|
@ -1,14 +1,15 @@
|
|||||||
---
|
---
|
||||||
import "../styles/index.css";
|
import "./index.css";
|
||||||
import "@fontsource/source-serif-4/latin.css";
|
import icon from "@assets/icon.png";
|
||||||
import "@fontsource/source-serif-4/latin-italic.css";
|
import favicon16x16 from "@assets/favicon-16x16.png";
|
||||||
|
import favicon32x32 from "@assets/favicon-32x32.png";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
title?: string;
|
title?: string;
|
||||||
className?: string;
|
class?: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
const { title, className } = Astro.props;
|
const { title, class: className } = Astro.props;
|
||||||
---
|
---
|
||||||
|
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
@ -16,24 +17,10 @@ const { title, className } = Astro.props;
|
|||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width" />
|
<meta name="viewport" content="width=device-width" />
|
||||||
|
|
||||||
<link rel="icon" href="/favicon.ico?v=2" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
<link
|
<link rel="icon" type="image/png" sizes="16x16" href={favicon16x16.src} />
|
||||||
rel="icon"
|
<link rel="icon" type="image/png" sizes="32x32" href={favicon32x32.src} />
|
||||||
type="image/png"
|
<link rel="apple-touch-icon" sizes="180x180" href={icon.src} />
|
||||||
sizes="16x16"
|
|
||||||
href="/favicon-16x16.png?v=2"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
rel="icon"
|
|
||||||
type="image/png"
|
|
||||||
sizes="32x32"
|
|
||||||
href="/favicon-32x32.png?v=2"
|
|
||||||
/>
|
|
||||||
<link
|
|
||||||
rel="apple-touch-icon"
|
|
||||||
sizes="180x180"
|
|
||||||
href="/apple-touch-icon.png?v=2"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<script
|
<script
|
||||||
is:inline
|
is:inline
|
||||||
|
27
src/layouts/index.css
Normal file
27
src/layouts/index.css
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
@import "tailwindcss";
|
||||||
|
@import "@fontsource/faustina/latin";
|
||||||
|
@import "@fontsource/faustina/latin-italic";
|
||||||
|
|
||||||
|
@theme {
|
||||||
|
--font-serif: Faustina, ui-serif, Georgia, Cambria, "Times New Roman", Times,
|
||||||
|
serif;
|
||||||
|
|
||||||
|
--color-white: hsl(0, 0%, 99.3%);
|
||||||
|
--color-black: hsl(60 2.5% 23.3%);
|
||||||
|
--color-paper: hsl(8, 68%, 98.4%);
|
||||||
|
|
||||||
|
--text-base: 14px;
|
||||||
|
--text-sm: 0.85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
@apply bg-paper text-black text-base font-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
@apply hover:underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
font-family: inherit;
|
||||||
|
}
|
@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
import Layout from "../layouts/index.astro";
|
|
||||||
---
|
|
||||||
|
|
||||||
<Layout>
|
|
||||||
<main class="max-w-prose mx-auto p-4 sm:p-8">
|
|
||||||
<h1><strong>Not found</strong></h1>
|
|
||||||
<p><a href="/" class="text-pink-400">Home</a></p>
|
|
||||||
</main>
|
|
||||||
</Layout>
|
|
@ -1,56 +1,35 @@
|
|||||||
---
|
---
|
||||||
import Layout from "../layouts/index.astro";
|
import Layout from "@layouts/index.astro";
|
||||||
|
|
||||||
// const socials = [
|
const links = {
|
||||||
// ["Bluesky", "bs/lua.re", "https://bsky.app/profile/lua.re"],
|
git: { alt: "Git", href: "https://git.lua.re/" },
|
||||||
// ["GitHub", "gh/luaneko", "https://github.com/luaneko"],
|
twt: { alt: "Twitter", href: "https://twitter.com/luanekos" },
|
||||||
// ];
|
mail: { alt: "Email", href: "mailto:lumi(at)lua.re" },
|
||||||
|
// bsky: { alt: "Bluesky", href: "https://bsky.app/profile/lua.re" },
|
||||||
const links = [
|
};
|
||||||
["Twitter", "twt", "https://twitter.com/luanekos"],
|
|
||||||
["Bluesky", "bsky", "https://bsky.app/profile/lua.re"],
|
|
||||||
["Gitea", "git", "https://git.lua.re/"],
|
|
||||||
["Memos", "memo", "https://memo.lua.re/"],
|
|
||||||
["AFFiNE", "docs", "https://docs.lua.re/"],
|
|
||||||
].sort(([_a, a], [_b, b]) => a.length - b.length || a.localeCompare(b));
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<Layout>
|
<Layout class="max-w-screen-sm mx-auto p-8">
|
||||||
<div class="max-w-screen-sm mx-auto p-8">
|
<main class="px-4 py-3 bg-white rounded shadow-xs leading-tight">
|
||||||
<pre
|
<pre>{
|
||||||
class="leading-snug px-5 py-4 bg-white rounded-lg border-gray-100 shadow-xs">
|
` ∧...∧ 𝜗𝜚
|
||||||
∧.,,∧ 𝜗𝜚
|
( ̳• · • ̳) ᭢
|
||||||
( ̳• · • ̳) ᭢
|
/ づ `}<a href={links.twt.href} title={links.twt.alt}>awa {`⋆.⁺₊`}</a>{
|
||||||
/ づ <a class="mail font-serif"><em><strong class="font-semibold">lumi</strong><span class="at"> at </span>lua.re</em></a> ₊˚.⋆⁺₊
|
}</pre>
|
||||||
<!--
|
</main>
|
||||||
{socials.map(([name, text, href]) => (
|
<footer class="my-3 text-sm">
|
||||||
<>・:。<small><a href={href} title={name}>{text}</a></small>
|
{
|
||||||
</s>))} -->
|
Object.entries(links).map(([name, { alt, href }], i) => [
|
||||||
🍡 🌸 🎀 🌙
|
i ? " · " : "",
|
||||||
</pre>
|
<a href={href} title={alt} set:text={name} />,
|
||||||
<p class="my-2">
|
])
|
||||||
<small
|
}
|
||||||
>{
|
</footer>
|
||||||
links.map(([name, sub, href], i) => (
|
|
||||||
<>
|
<script>
|
||||||
{i ? " · " : ""}
|
for (const link of document.querySelectorAll(`a[href^="mailto:"]`)) {
|
||||||
<a href={href} title={name}>
|
const href = link.attributes.getNamedItem("href")!;
|
||||||
{sub}
|
href.value = href.value.replace("(at)", "@");
|
||||||
</a>
|
}
|
||||||
</>
|
</script>
|
||||||
))
|
|
||||||
}</small
|
|
||||||
>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</Layout>
|
</Layout>
|
||||||
|
|
||||||
<script>
|
|
||||||
// don't scrape my email please
|
|
||||||
const node = document.querySelector(`.mail`);
|
|
||||||
|
|
||||||
if (node) {
|
|
||||||
node.querySelector(`.at`)?.replaceWith("@");
|
|
||||||
node.setAttribute("href", `mailto:${node.textContent}`);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
@import "tailwindcss";
|
|
||||||
|
|
||||||
@theme {
|
|
||||||
--font-serif:
|
|
||||||
"Source Serif 4", ui-serif, Georgia, Cambria, "Times New Roman", Times,
|
|
||||||
serif;
|
|
||||||
|
|
||||||
--color-bg: #fff8f7;
|
|
||||||
--color-white: #fffefe;
|
|
||||||
--color-pink: #f3d0d7;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
@apply bg-bg font-serif;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
@apply hover:underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
font-family: inherit;
|
|
||||||
}
|
|
@ -1,3 +1,12 @@
|
|||||||
{
|
{
|
||||||
"extends": "astro/tsconfigs/strict"
|
"extends": "astro/tsconfigs/strict",
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": ".",
|
||||||
|
"paths": {
|
||||||
|
"@assets/*": ["src/assets/*", "public/*"],
|
||||||
|
"@layouts/*": ["src/layouts/*"],
|
||||||
|
"@components": ["src/components/*"],
|
||||||
|
"@pages": ["src/pages/*"]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user