Kādas lapas šeit var taisīt

Šis karkass (Astro SSR + Node API + SQLite) ļauj veidot 7 lapu tipus. Katram zemāk ir dzīvs piemērs un koda fragments, lai redzi, kur to taisīt.

Serveris

Node v22.22.3 · režīms production · 0 lapas · 0 API endpointi · 0 markdown faili

Apskatīt serveri un saturu →

1. Statiska lapa

Vienkārša HTML lapa bez servera loģikas. Ātrākā, labākā SEO. Piemēri: par mums, kontakti, cenas.

📄 src/pages/index.astro

---
import Layout from "../components/Layout.astro";
---
<Layout title="Par mums">
  <h1>Sveiki!</h1>
  <p>Šis ir statisks saturs.</p>
</Layout>
Sākumlapa / →

2. Markdown-vadīta lapa

Saturs no .md faila — rediģē bez koda. Ideāli blogam, dokumentācijai, lapām, ko pārvalda satura cilvēks.

📄 src/content/blog/*.md + src/pages/demo/blogs.astro

---
import { getCollection } from "astro:content";
const posts = await getCollection("blog");
---
{posts.map(p => <a href={"/blog/" + p.id}>{p.data.title}</a>)}
Blogs (piemērs) →

3. Dinamiska lapa (SSR)

Lapa, kuras saturs atkarīgs no URL vai datubāzes. Piemērs: rezultāta lapa /result/[id], profila lapa, produkta lapa.

📄 src/pages/result/[id].astro

---
const { id } = Astro.params;
const row = db.select().from(sessions)
  .where(eq(sessions.id, id)).get();
if (!row) return new Response(null, { status: 404 });
---
<h1>{row.name}</h1>
Rezultāta lapa →

4. Forma → apstrāde

Lapa ar formu, kas sūta datus uz API, saglabā DB un pāradresē. Piemērs: kalkulators, reģistrācija, aptauja, pasūtījums.

📄 src/components/CalculatorForm.astro → /api/calculate

const res = await fetch("/api/calculate", {
  method: "POST",
  body: JSON.stringify(payload),
});
const { redirectUrl } = await res.json();
window.location.href = redirectUrl;
Demo kalkulators →

5. API endpoints (JSON)

Servera loģika bez UI — atgriež JSON. Piemērs: dati mobilai aplikācijai, webhooks, integrācijas, AI izsaukumi.

📄 src/pages/api/*.ts

export const GET: APIRoute = async () => {
  return new Response(JSON.stringify({ ok: true }), {
    headers: { "Content-Type": "application/json" },
  });
};
GET /api/admin-stats →

6. Aizsargāta lapa (admin)

Lapa aiz autentifikācijas. Piemērs: admin panelis, lietotāja konts, maksas saturs. Šeit ar ADMIN_SECRET (vai oauth2-proxy).

📄 src/pages/admin/index.astro + src/lib/auth.ts

const ok = isAdminAuthorized(Astro.request);
if (!ok) return <p>Nav autorizēts.</p>;
// rāda statistiku no DB
Admin panelis →

7. Daudzvalodu saturs

Saturs vairākās valodās no markdown (lv/en/ru). Karkasā jau ir promptu sagataves pa valodām — to pašu var lapām.

📄 src/content/prompts/{lv,en,ru}.md

const { lang } = Astro.params; // lv | en | ru
const entry = await getEntry("prompts", lang);
<article set:html={entry.body} />
Skatīt saturu →