Compare commits

..

No commits in common. "0643f481896624228c73f394e500a316ae4406ba" and "ddd73c1412a7aa94be7c7cc4af69b9e89bf49386" have entirely different histories.

7 changed files with 87 additions and 137 deletions

18
package-lock.json generated
View file

@ -1228,7 +1228,6 @@
"integrity": "sha512-44Mm5csR4mesKx2Eyhtk8UVrLJ4c04BT2wMTfYGKJMOkUqpHP5KLL2DPV0hXUA4t4+T3ZYe0aBygd42lVYv2cA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@standard-schema/spec": "^1.0.0",
"@sveltejs/acorn-typescript": "^1.0.5",
@ -1291,6 +1290,7 @@
"integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"debug": "^4.3.7"
},
@ -1594,7 +1594,6 @@
"integrity": "sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"undici-types": "~6.20.0"
}
@ -1612,7 +1611,6 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@ -1789,7 +1787,6 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"caniuse-lite": "^1.0.30001688",
"electron-to-chromium": "^1.5.73",
@ -1973,6 +1970,7 @@
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
@ -2088,7 +2086,6 @@
"integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
@ -3341,7 +3338,6 @@
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@ -3369,7 +3365,6 @@
}
],
"license": "MIT",
"peer": true,
"dependencies": {
"nanoid": "^3.3.8",
"picocolors": "^1.1.1",
@ -3510,7 +3505,6 @@
"integrity": "sha512-lc6npv5PH7hVqozBR7lkBNOGXV9vMwROAPlumdBkX0wTbbzPu/U1hk5yL8p2pt4Xoc+2mkT8t/sow2YrV/M5qg==",
"dev": true,
"license": "MIT",
"peer": true,
"bin": {
"prettier": "bin/prettier.cjs"
},
@ -3527,7 +3521,6 @@
"integrity": "sha512-yViK9zqQ+H2qZD1w/bH7W8i+bVfKrD8GIFjkFe4Thl6kCT9SlAsXVNmt3jCvQOCsnOhcvYgsoVlRV/Eu6x5nNw==",
"dev": true,
"license": "MIT",
"peer": true,
"peerDependencies": {
"prettier": "^3.0.0",
"svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0"
@ -3887,7 +3880,6 @@
"integrity": "sha512-2Mo/AfObaw9zuD0u1JJ7sOVzRCGcpETEyDkLbtkcctWpCMCIyT0iz83xD8JT29SR7O4SgswuPRIDYReYF/607A==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@ampproject/remapping": "^2.3.0",
"@jridgewell/sourcemap-codec": "^1.5.0",
@ -4040,8 +4032,7 @@
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.0.9.tgz",
"integrity": "sha512-12laZu+fv1ONDRoNR9ipTOpUD7RN9essRVkX36sjxuRUInpN7hIiHN4lBd/SIFjbISvnXzp8h/hXzmU8SQQYhw==",
"dev": true,
"license": "MIT",
"peer": true
"license": "MIT"
},
"node_modules/tapable": {
"version": "2.2.1",
@ -4119,7 +4110,6 @@
"integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
"dev": true,
"license": "Apache-2.0",
"peer": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@ -4263,7 +4253,6 @@
"integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"esbuild": "^0.25.0",
"fdir": "^6.4.4",
@ -4339,6 +4328,7 @@
"integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==",
"dev": true,
"license": "MIT",
"peer": true,
"workspaces": [
"tests/deps/*",
"tests/projects/*"

View file

@ -28,13 +28,6 @@ export async function fetchPostsSorted(postComparer?: PostComparer) {
return sortedPosts;
};
// rndtrash: пришлось заменить `path.parse`, так как на стороне клиента его больше не реализуют
function getFilenameFromPath(path: string) {
const file = path.split("/").pop();
const dot = file?.lastIndexOf('.') ?? -1;
return dot === -1 ? file : file?.substring(0, file.lastIndexOf('.'));
}
export async function fetchPosts() {
const allPostFiles = import.meta.glob('/src/blogs/*.md');
const iterablePostFiles = Object.entries(allPostFiles);
@ -42,7 +35,7 @@ export async function fetchPosts() {
const allPosts: App.BlogPost[] = await Promise.all(
iterablePostFiles.map(async ([filePath, resolver]) => {
const { metadata }: any = await resolver();
const name = getFilenameFromPath(filePath);
const { name } = path.parse(filePath);
return {
slug: name,

View file

@ -1,39 +0,0 @@
# Кто мы?
__Tea Sanctuary__ — это в первую очередь коллектив друзей, разрабатывающих
проекты для души, для всеобщего пользования и даже на заказ. С
__8 июля 2017 года__ мы ведём публичную деятельность в сфере разработки ПО и развлечений.
__Tea Sanctuary__ — это также и сообщество единомышленников. Любовь к добротным
видеоиграм и пассивная агрессия к вычислительной технике у нас в крови. Когда-то сообщество
было закрытым и насчитывало около 50 участников, но впоследствии мы решили его расширить.
Станьте частью коллектива!
# Что делаем?
Наша главная страсть — это, конечно, видеоигры. Мы часто участвуем в так
называемых "гейм джемах" — конкурсах на разработку игр. Наши игры вы можете
оценить здесь: [RandomTrash](https://randomtrash.itch.io)
[FriendlyWithMeat](https://friendlywithmeat.itch.io).
Также мы ведём работу над нашим первым полноценным игровым проектом.
Следите за новостями в нашем [сообществе](https://teasanctuary.ru/discord)!
Отдельные участники нашего коллектива занимаются модификацией существующих игр,
добавляя в них новый контент. Например, __MegaZerg__ создаёт оригинальные карты
для такой бессмертной классики, как __Counter-Strike 1.6__ и __Half-Life Deathmatch__,
и выкладывает их на ресурс GameBanana: [kemist](https://gamebanana.com/members/2971042)
Мы размещаем игровые сервера, как постоянные, так и временные для различных событий.
Например, у нас есть сервер [Tea Sanctuary HLDM](https://hl.teasanctuary.ru),
где вы можете ознакомиться с новыми картами от всего сообщества Half-Life.
Не одними играми едины, за нашими плечами есть несколько прикладных программ,
созданных под заказ. Про них ничего особо рассказать не можем, но если вам надо
что-нибудь сделать — пишите нам!
# Как с вами связаться?
Общие вопросы можно задавать в [сообществе Tea Sanctuary](https://teasanctuary.ru/discord).
Там же можете написать личное сообщение администраторам.
Наши соцсети и почту для более важных обращений можно найти на странице [Контакты](/contact).

View file

@ -0,0 +1,7 @@
import { fetchPostsSorted, sortPostsByPostAndUpdateDate } from "$src/lib/util/Blogs";
const LATEST_POSTS_COUNT = 3;
export async function load() {
return { posts: (await fetchPostsSorted(sortPostsByPostAndUpdateDate)).slice(0, LATEST_POSTS_COUNT) };
}

View file

@ -1,11 +1,9 @@
<script lang="ts">
import SocialButton from '$lib/components/SocialButton.svelte';
import SocialHyperlink from '$lib/components/SocialHyperlink.svelte';
import { PUBLIC_TS_DISCORD } from '$env/static/public';
import BlogCard, { BlogCardSize } from '$src/lib/components/BlogCard.svelte';
import { page } from '$app/state';
import type { PageData } from './$types';
export let data: PageData;
</script>
<svelte:head>
@ -95,34 +93,80 @@
</div>
</section>
<article
class="prose
sm:prose-xl
prose-slate
prose-code:break-words
prose-pre:drop-shadow-md
prose-headings:font-disket
prose-headings:my-4
prose-headings:font-bold
prose-headings:text-slate-950
prose-h1:text-2xl
prose-h1:sm:text-4xl
prose-h2:text-xl
prose-h2:sm:text-3xl
prose-p:text-justify
prose-p:mt-0
prose-p:mb-8
bg-slate-50
pt-8
pb-4
text-base
text-slate-950
px-2 sm:px-4 sm:text-xl"
>
<section class="flex max-w-5xl flex-col flex-nowrap mx-auto">
<svelte:component this={data.content} />
</section>
</article>
<section class="flex justify-center bg-slate-50 text-slate-950">
<div
class="flex w-5xl max-w-screen flex-col flex-nowrap gap-12 p-2 px-2 pt-12 pb-12 text-base sm:text-xl"
>
<section id="who-are-we">
<h1>Кто мы?</h1>
<div class="text-justify">
<b>Tea Sanctuary</b> &mdash; это в первую очередь коллектив друзей, разрабатывающих
проекты для души, для всеобщего пользования и даже на заказ. С
<b>8 июля 2017 года</b> мы ведём публичную деятельность в сфере разработки ПО и развлечений.
</div>
<br />
<div class="text-justify">
<b>Tea Sanctuary</b> &mdash; это также и сообщество единомышленников. Любовь к добротным
видеоиграм и пассивная агрессия к вычислительной технике у нас в крови. Когда-то сообщество
было закрытым и насчитывало около 50 участников, но впоследствии мы решили его расширить.
Станьте частью коллектива!
</div>
</section>
<section id="what-are-we-doing">
<h1>Что делаем?</h1>
<div class="text-justify">
Наша главная страсть &mdash; это, конечно, видеоигры. Мы часто участвуем в так
называемых "гейм джемах" &mdash; конкурсах на разработку игр. Наши игры вы можете
оценить здесь:
<SocialHyperlink href="https://randomtrash.itch.io">RandomTrash</SocialHyperlink>
<SocialHyperlink href="https://friendlywithmeat.itch.io/">
FriendlyWithMeat
</SocialHyperlink>. Также мы ведём работу над нашим первым полноценным игровым
проектом. Следите за новостями в нашем
<SocialHyperlink href={PUBLIC_TS_DISCORD}>сообществе</SocialHyperlink>!
</div>
<br />
<div class="text-justify">
Отдельные участники нашего коллектива занимаются модификацией существующих игр,
добавляя в них новый контент. Например, <b>MegaZerg</b> создаёт оригинальные карты
для такой бессмертной классики, как Counter-Strike 1.6, и выкладывает их на ресурс
GameBanana:
<SocialHyperlink href="https://gamebanana.com/members/2971042">
kemist
</SocialHyperlink>
</div>
<br />
<div class="text-justify">
Мы размещаем игровые сервера, как постоянные, так и временные для различных событий.
Например, у нас есть сервер
<SocialHyperlink href="https://hl.teasanctuary.ru">
Tea Sanctuary HLDM
</SocialHyperlink>, где вы можете ознакомиться с новыми картами от всего сообщества
Half-Life.
</div>
<br />
<div class="text-justify">
Не одними играми едины, за нашими плечами есть несколько прикладных программ,
созданных под заказ. Про них ничего особо рассказать не можем, но если вам надо
что-нибудь сделать &mdash; пишите нам!
</div>
</section>
<section id="how-can-you-contact-us">
<h1>Как с вами связаться?</h1>
<div class="text-justify">
Общие вопросы можно задавать в
<SocialHyperlink href={PUBLIC_TS_DISCORD}>
сообществе Tea Sanctuary
</SocialHyperlink>. Там же можете написать личное сообщение администраторам.
</div>
<br />
<div class="text-justify">
Наши соцсети и почту для более важных обращений можно найти на странице
<SocialHyperlink href="/contact">Контакты</SocialHyperlink>.
</div>
</section>
</div>
</section>
<style>
@import '$src/app.css';

View file

@ -1,17 +0,0 @@
import { fetchPostsSorted, sortPostsByPostAndUpdateDate } from "$src/lib/util/Blogs";
const LATEST_POSTS_COUNT = 3;
export async function load() {
let md: any
try {
md = await import("$src/pages/index.md");
} catch (ex) {
throw "Не удалось найти текст для главной страницы";
}
console.log("TEST", md.default);
return {
content: md.default,
posts: (await fetchPostsSorted(sortPostsByPostAndUpdateDate)).slice(0, LATEST_POSTS_COUNT)
};
}

View file

@ -1,6 +1,5 @@
<script lang="ts">
import WarningBlock from '$lib/components/WarningBlock.svelte';
import SocialHyperlink from '$src/lib/components/SocialHyperlink.svelte';
</script>
<section class="hero flex shrink-0 flex-col items-center justify-center gap-5 overflow-hidden p-4">
@ -17,33 +16,6 @@
<WarningBlock>Страница находится в разработке!</WarningBlock>
<section class="flex justify-center">
<div
class="flex w-5xl max-w-screen flex-col flex-nowrap gap-12 p-2 px-2 pt-12 pb-12 text-base sm:text-xl"
>
<section>
На данный момент вы можете связаться с администрацией сайта и участниками команды через
<SocialHyperlink href="https://teasanctuary.ru/discord">
нашу гильдию в Discord
</SocialHyperlink>:
</section>
<iframe
src="https://discord.com/widget?id=1176141874390638662&theme=dark"
title="Виджет Discord"
width="350"
height="350"
class="mx-auto"
allowtransparency
frameborder="0"
sandbox="allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts"
></iframe>
<section>
Вы также можете ознакомиться с социальными сетями каждого отдельного участника команды
на странице <SocialHyperlink href="/team">Команда</SocialHyperlink>.
</section>
</div>
</section>
<style>
@import '$src/app.css';
</style>