Перенёс текст с главной страницы в файл Markdown
This commit is contained in:
parent
2024fa9f4b
commit
0643f48189
5 changed files with 95 additions and 83 deletions
|
|
@ -28,6 +28,13 @@ export async function fetchPostsSorted(postComparer?: PostComparer) {
|
||||||
return sortedPosts;
|
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() {
|
export async function fetchPosts() {
|
||||||
const allPostFiles = import.meta.glob('/src/blogs/*.md');
|
const allPostFiles = import.meta.glob('/src/blogs/*.md');
|
||||||
const iterablePostFiles = Object.entries(allPostFiles);
|
const iterablePostFiles = Object.entries(allPostFiles);
|
||||||
|
|
@ -35,7 +42,7 @@ export async function fetchPosts() {
|
||||||
const allPosts: App.BlogPost[] = await Promise.all(
|
const allPosts: App.BlogPost[] = await Promise.all(
|
||||||
iterablePostFiles.map(async ([filePath, resolver]) => {
|
iterablePostFiles.map(async ([filePath, resolver]) => {
|
||||||
const { metadata }: any = await resolver();
|
const { metadata }: any = await resolver();
|
||||||
const { name } = path.parse(filePath);
|
const name = getFilenameFromPath(filePath);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
slug: name,
|
slug: name,
|
||||||
|
|
|
||||||
39
src/pages/index.md
Normal file
39
src/pages/index.md
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# Кто мы?
|
||||||
|
|
||||||
|
__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).
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
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) };
|
|
||||||
}
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import SocialButton from '$lib/components/SocialButton.svelte';
|
import SocialButton from '$lib/components/SocialButton.svelte';
|
||||||
import SocialHyperlink from '$lib/components/SocialHyperlink.svelte';
|
|
||||||
import { PUBLIC_TS_DISCORD } from '$env/static/public';
|
import { PUBLIC_TS_DISCORD } from '$env/static/public';
|
||||||
import BlogCard, { BlogCardSize } from '$src/lib/components/BlogCard.svelte';
|
import BlogCard, { BlogCardSize } from '$src/lib/components/BlogCard.svelte';
|
||||||
import { page } from '$app/state';
|
import { page } from '$app/state';
|
||||||
|
import type { PageData } from './$types';
|
||||||
|
|
||||||
|
export let data: PageData;
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
|
|
@ -93,80 +95,34 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="flex justify-center bg-slate-50 text-slate-950">
|
<article
|
||||||
<div
|
class="prose
|
||||||
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"
|
sm:prose-xl
|
||||||
>
|
prose-slate
|
||||||
<section id="who-are-we">
|
prose-code:break-words
|
||||||
<h1>Кто мы?</h1>
|
prose-pre:drop-shadow-md
|
||||||
<div class="text-justify">
|
prose-headings:font-disket
|
||||||
<b>Tea Sanctuary</b> — это в первую очередь коллектив друзей, разрабатывающих
|
prose-headings:my-4
|
||||||
проекты для души, для всеобщего пользования и даже на заказ. С
|
prose-headings:font-bold
|
||||||
<b>8 июля 2017 года</b> мы ведём публичную деятельность в сфере разработки ПО и развлечений.
|
prose-headings:text-slate-950
|
||||||
</div>
|
prose-h1:text-2xl
|
||||||
<br />
|
prose-h1:sm:text-4xl
|
||||||
<div class="text-justify">
|
prose-h2:text-xl
|
||||||
<b>Tea Sanctuary</b> — это также и сообщество единомышленников. Любовь к добротным
|
prose-h2:sm:text-3xl
|
||||||
видеоиграм и пассивная агрессия к вычислительной технике у нас в крови. Когда-то сообщество
|
prose-p:text-justify
|
||||||
было закрытым и насчитывало около 50 участников, но впоследствии мы решили его расширить.
|
prose-p:mt-0
|
||||||
Станьте частью коллектива!
|
prose-p:mb-8
|
||||||
</div>
|
bg-slate-50
|
||||||
</section>
|
pt-8
|
||||||
<section id="what-are-we-doing">
|
pb-4
|
||||||
<h1>Что делаем?</h1>
|
text-base
|
||||||
<div class="text-justify">
|
text-slate-950
|
||||||
Наша главная страсть — это, конечно, видеоигры. Мы часто участвуем в так
|
px-2 sm:px-4 sm:text-xl"
|
||||||
называемых "гейм джемах" — конкурсах на разработку игр. Наши игры вы можете
|
>
|
||||||
оценить здесь:
|
<section class="flex max-w-5xl flex-col flex-nowrap mx-auto">
|
||||||
<SocialHyperlink href="https://randomtrash.itch.io">RandomTrash</SocialHyperlink>
|
<svelte:component this={data.content} />
|
||||||
<SocialHyperlink href="https://friendlywithmeat.itch.io/">
|
</section>
|
||||||
FriendlyWithMeat
|
</article>
|
||||||
</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">
|
|
||||||
Не одними играми едины, за нашими плечами есть несколько прикладных программ,
|
|
||||||
созданных под заказ. Про них ничего особо рассказать не можем, но если вам надо
|
|
||||||
что-нибудь сделать — пишите нам!
|
|
||||||
</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>
|
<style>
|
||||||
@import '$src/app.css';
|
@import '$src/app.css';
|
||||||
|
|
|
||||||
17
src/routes/+page.ts
Normal file
17
src/routes/+page.ts
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
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)
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue