✨ About page also contains site info
This commit is contained in:
@@ -14,6 +14,11 @@
|
||||
}
|
||||
|
||||
<div class="container mx-auto px-8 pb-8">
|
||||
<h2 class="text-xl flex gap-2 mb-5 px-3">
|
||||
<span class="mdi mdi-account-circle"></span>
|
||||
About me
|
||||
</h2>
|
||||
|
||||
<div class="flex items-center gap-6 mb-8">
|
||||
@if (!string.IsNullOrEmpty(Model.UserPictureUrl))
|
||||
{
|
||||
@@ -33,11 +38,11 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
|
||||
<div class="flex flex-col gap-4">
|
||||
<div class="flex flex-col md:flex-row gap-6">
|
||||
<div class="flex flex-col gap-4 flex-1">
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title"><span class="mdi mdi-home"></span> Info</h2>
|
||||
<h3 class="card-title"><span class="mdi mdi-home"></span> Info</h3>
|
||||
|
||||
<div class="space-y-2">
|
||||
@if (!string.IsNullOrEmpty(Model.UserAccount.Profile?.TimeZone))
|
||||
@@ -154,71 +159,73 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@if (Model.UserAccount.Profile?.Links.Count > 0)
|
||||
{
|
||||
<div>
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<span class="mdi mdi-link-variant"></span> Links
|
||||
</h2>
|
||||
<ul class="list pt-2">
|
||||
@foreach (var link in Model.UserAccount.Profile.Links)
|
||||
{
|
||||
<li class="list-row p-0">
|
||||
<div class="list-col-grow">
|
||||
<div>@(link.Name)</div>
|
||||
<div class="text-xs font-semibold opacity-60">@(link.Url)</div>
|
||||
</div>
|
||||
<a class="btn btn-square btn-ghost" href="@link.Url" target="_blank">
|
||||
<span class="mdi mdi-launch"></span>
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
<div class="flex flex-col gap-4 flex-1">
|
||||
@if (Model.UserAccount.Profile?.Links.Count > 0)
|
||||
{
|
||||
<div>
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">
|
||||
<span class="mdi mdi-link-variant"></span> Links
|
||||
</h3>
|
||||
<ul class="list pt-2">
|
||||
@foreach (var link in Model.UserAccount.Profile.Links)
|
||||
{
|
||||
<li class="list-row p-0">
|
||||
<div class="list-col-grow">
|
||||
<div>@(link.Name)</div>
|
||||
<div class="text-xs font-semibold opacity-60">@(link.Url)</div>
|
||||
</div>
|
||||
<a class="btn btn-square btn-ghost" href="@link.Url" target="_blank">
|
||||
<span class="mdi mdi-launch"></span>
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@if (Model.UserAccount.Contacts.Count > 0)
|
||||
{
|
||||
<div>
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<span class="mdi mdi-link-variant"></span> Links
|
||||
</h2>
|
||||
<ul class="list pt-2">
|
||||
@foreach (var contact in Model.UserAccount.Contacts)
|
||||
{
|
||||
<li class="list-row p-0" x-data="{ content: '@contact.Content' }">
|
||||
<div class="list-col-grow">
|
||||
<div>@(contact.Content)</div>
|
||||
<div class="text-xs font-semibold opacity-60">@(contact.Type.ToString())</div>
|
||||
</div>
|
||||
<button class="btn btn-square btn-ghost" x-clipboard="content">
|
||||
<span class="mdi mdi-content-copy"></span>
|
||||
</button>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
@if (Model.UserAccount.Contacts.Count > 0)
|
||||
{
|
||||
<div>
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">
|
||||
<span class="mdi mdi-contacts"></span> Contacts
|
||||
</h3>
|
||||
<ul class="list pt-2">
|
||||
@foreach (var contact in Model.UserAccount.Contacts)
|
||||
{
|
||||
<li class="list-row p-0" x-data="{ content: '@contact.Content' }">
|
||||
<div class="list-col-grow">
|
||||
<div>@(contact.Content)</div>
|
||||
<div
|
||||
class="text-xs font-semibold opacity-60">@(contact.Type.ToString())</div>
|
||||
</div>
|
||||
<button class="btn btn-square btn-ghost" x-clipboard="content">
|
||||
<span class="mdi mdi-content-copy"></span>
|
||||
</button>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
<div>
|
||||
@if (!string.IsNullOrEmpty(Model.HtmlBio))
|
||||
{
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<span class="mdi mdi-information"></span> Bio
|
||||
</h2>
|
||||
<div class="prose prose-sm max-w-none">
|
||||
@Html.Raw(Model.HtmlBio)
|
||||
<div>
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">
|
||||
<span class="mdi mdi-information"></span> Bio
|
||||
</h3>
|
||||
<div class="prose prose-sm max-w-none">
|
||||
@Html.Raw(Model.HtmlBio)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -227,16 +234,68 @@
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
|
||||
@if (Model.Site != null)
|
||||
{
|
||||
<div class="hero min-h-[50vh]">
|
||||
<div class="hero-content text-center">
|
||||
<div>
|
||||
<div class="text-6xl mb-4">
|
||||
<span class="mdi mdi-account"></span>
|
||||
<div class="container mx-auto px-8 pb-8">
|
||||
<h2 class="text-xl flex gap-2 mb-5 px-3">
|
||||
<span class="mdi mdi-sitemap"></span>
|
||||
About the site
|
||||
</h2>
|
||||
|
||||
<div class="flex flex-col md:flex-row gap-6">
|
||||
<div class="flex flex-col gap-4 flex-1">
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title"><span class="mdi mdi-home"></span> Info</h3>
|
||||
|
||||
<div class="space-y-2">
|
||||
<div class="flex justify-between">
|
||||
<span class="flex gap-2">
|
||||
<span class="mdi mdi-label"></span>
|
||||
Name
|
||||
</span>
|
||||
<span class="text-right">@Model.Site.Name</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="space-y-2">
|
||||
<div class="flex justify-between">
|
||||
<span class="flex gap-2">
|
||||
<span class="mdi mdi-tag"></span>
|
||||
Slug
|
||||
</span>
|
||||
<span class="text-right font-mono">@Model.Site.Slug</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex flex-col gap-4 flex-1">
|
||||
@if (!string.IsNullOrEmpty(Model.Site.Description))
|
||||
{
|
||||
<div class="flex-1">
|
||||
<div class="card bg-base-100 border">
|
||||
<div class="card-body">
|
||||
<h3 class="card-title">
|
||||
<span class="mdi mdi-information"></span> Description
|
||||
</h3>
|
||||
<div class="prose prose-sm max-w-none">
|
||||
@Model.Site.Description
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
<div class="flex-1">
|
||||
<div class="flex flex-col p-5 opacity-80 text-sm">
|
||||
<p>Proudly powered by the Solar Network Pages</p>
|
||||
<p>Hosted on the Solar Network</p>
|
||||
<p class="mt-2">Networking with Cloudflare</p>
|
||||
<p>Therefore, if the site is down, 99% is Cloudflare's fault</p>
|
||||
</div>
|
||||
</div>
|
||||
<h1 class="text-3xl font-bold">User not found</h1>
|
||||
<p class="py-6">The user profile you're trying to access is not found.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,11 +5,15 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||||
<title>@ViewData["Title"]</title>
|
||||
<script type="importmap"></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/@@ryangjchandler/alpine-clipboard@2.x.x/dist/alpine-clipboard.js" defer></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@@mdi/font@7.4.47/css/materialdesignicons.min.css" />
|
||||
|
||||
<link rel="stylesheet" href="~/css/site.dist.css" asp-append-version="true"/>
|
||||
<link rel="stylesheet" href="~/DysonNetwork.Zone.styles.css" asp-append-version="true"/>
|
||||
|
||||
<link rel="icon" type="image/png" href="~/favicon.png" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1000;
|
||||
}
|
||||
.content-main {
|
||||
height: calc(100vh - 64px);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
"name": "dyson-zone",
|
||||
"devDependencies": {
|
||||
"@tailwindcss/cli": "^4.1.17",
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
"@types/bun": "latest",
|
||||
"daisyui": "^5.5.5",
|
||||
"tailwindcss": "^4.1.17",
|
||||
@@ -84,6 +85,8 @@
|
||||
|
||||
"@tailwindcss/oxide-win32-x64-msvc": ["@tailwindcss/oxide-win32-x64-msvc@4.1.17", "", { "os": "win32", "cpu": "x64" }, "sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw=="],
|
||||
|
||||
"@tailwindcss/typography": ["@tailwindcss/typography@0.5.19", "", { "dependencies": { "postcss-selector-parser": "6.0.10" }, "peerDependencies": { "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" } }, "sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg=="],
|
||||
|
||||
"@types/bun": ["@types/bun@1.3.2", "", { "dependencies": { "bun-types": "1.3.2" } }, "sha512-t15P7k5UIgHKkxwnMNkJbWlh/617rkDGEdSsDbu+qNHTaz9SKf7aC8fiIlUdD5RPpH6GEkP0cK7WlvmrEBRtWg=="],
|
||||
|
||||
"@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="],
|
||||
@@ -94,6 +97,8 @@
|
||||
|
||||
"bun-types": ["bun-types@1.3.2", "", { "dependencies": { "@types/node": "*" }, "peerDependencies": { "@types/react": "^19" } }, "sha512-i/Gln4tbzKNuxP70OWhJRZz1MRfvqExowP7U6JKoI8cntFrtxg7RJK3jvz7wQW54UuvNC8tbKHHri5fy74FVqg=="],
|
||||
|
||||
"cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
|
||||
|
||||
"csstype": ["csstype@3.2.3", "", {}, "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ=="],
|
||||
|
||||
"daisyui": ["daisyui@5.5.5", "", {}, "sha512-ekvI93ZkWIJoCOtDl0D2QMxnWvTejk9V5nWBqRv+7t0xjiBXqAK5U6o6JE2RPvlIC3EqwNyUoIZSdHX9MZK3nw=="],
|
||||
@@ -150,6 +155,8 @@
|
||||
|
||||
"picomatch": ["picomatch@2.3.1", "", {}, "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="],
|
||||
|
||||
"postcss-selector-parser": ["postcss-selector-parser@6.0.10", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w=="],
|
||||
|
||||
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
||||
|
||||
"tailwindcss": ["tailwindcss@4.1.17", "", {}, "sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q=="],
|
||||
@@ -162,6 +169,8 @@
|
||||
|
||||
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
||||
|
||||
"util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/core": ["@emnapi/core@1.7.1", "", { "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" }, "bundled": true }, "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg=="],
|
||||
|
||||
"@tailwindcss/oxide-wasm32-wasi/@emnapi/runtime": ["@emnapi/runtime@1.7.1", "", { "dependencies": { "tslib": "^2.4.0" }, "bundled": true }, "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA=="],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"@tailwindcss/cli": "^4.1.17",
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
"@types/bun": "latest",
|
||||
"daisyui": "^5.5.5",
|
||||
"tailwindcss": "^4.1.17"
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');
|
||||
|
||||
@import "tailwindcss";
|
||||
|
||||
@plugin "daisyui";
|
||||
@plugin "@tailwindcss/typography";
|
||||
|
||||
@layer theme, base, components, utilities;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user