2025-09-07






2025-09-07

JSON srauto generavimas naudojantis astro karkasu

Yo! Sveikas, skaitytojau. Žadėta - ištęsėta. Šiame tinklaraščio įraše pateikiu JSON srauto receptą astro tinklaraščiams.

Trumpa instrukcija

Susidiek vieną srauto generavimui reikiamą programinį paketą. (Šis naudojamas ne šiaip sau, o todėl, jog astro pagal nutylėjimą negeba JSON sraute reprezentuoti HTML kodo, kuris turėtų būti grąžinamas kiekviename tinklaraščio įrašo objekte, kaip content reikšmė)

npm install --save marked

Susikurk naują failą “feed.json.ts” direktorijoje “src/pages”.

Panaudok programinį kodą pateiktą šiek tiek žemiau, iškopijuok ir įklijuok.

import { getCollection } from "astro:content";
import { marked } from "marked"; // install with: npm i marked

export async function GET() {
  const posts = await getCollection("blog");

  const items = posts.map((post) => {
    // Convert raw Markdown body to HTML
    const html =
      marked.parse(post.body ?? "") +
      ' <div id="copyright-artefaktas"><p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><span property="dct:title">Artefaktas.eu</span> is licensed under <a href="http://creativecommons.org/licenses/by-nc-nd/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">CC BY-NC-ND 4.0</a></p> </div>';

    return {
      id: post.id,
      url: `https://artefaktas.eu/blog/${post.id}/`,
      title: post.data.title,
      content_html: html,
      date_published: post.data.pubDate
        ? new Date(post.data.pubDate).toISOString()
        : undefined,
      summary: post.data.description,
    };
  });

  const feed = {
    version: "https://jsonfeed.org/version/1.1",
    title: "Artefaktas.eu",
    home_page_url: "https://artefaktas.eu/",
    feed_url: "https://artefaktas.eu/feed.json",
    description: "Latest posts from artefaktas.eu.",
    items,
  };

  return new Response(JSON.stringify(feed, null, 2), {
    headers: { "Content-Type": "application/feed+json" },
  });
}

Pakeisk kiekvieną rastą artefaktas.eu į savo svetainės adresą ir panaudok build komandą perkurti puslapiams (esant poreikiui bei norint pratęstuoti galima nurodyti http://localhost/feed.json ar panašiai).

#Žymos
#post #artefaktas_eu #personal #opinion #build #javascript #json #feed

Asmeninė nuomonė.

Linktree link: https://linktr.ee/artefaktas

Tinklaraštį galima prenumeruoti net keletu skirtingų būdų:

- Naudojant RSS sklaidos kanalo nuorodą: https://artefaktas.eu/rss.xml

- Naudojantis follow.it forma

Pirkimas - teisė pernaudoti straipsnio turinį savoms reikmėms

Kaina: 3 EUR

Loading More Trees widget…

🔞 Age Verification

Please enter your birth year to continue: