PageSourceSearch

https://utobo.ai/assets/BlogCard-B-WnU4kf.js

js utobo.ai collected 2026-10-05 14:49:50 UTC 1,442 bytes, 1 lines download raw bytes

1import{j as r}from"./query-JLIzAk7-.js";import{L as a}from"./vendor-D0N8-Dov.js";const s=e=>e?e.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():"",l=e=>e?new Date(e).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):"";function n({date:e}){return r.jsxs("div",{className:"mt-4 flex items-center gap-2 text-sm text-muted-foreground",children:[r.jsx("span",{className:"font-medium text-foreground",children:"By utobians"}),r.jsx("span",{children:"·"}),r.jsx("span",{children:l(e)})]})}function i({tag:e,color:t}){return e?r.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide",style:t?{color:t}:void 0,children:e}):null}function d({post:e}){return r.jsxs(a,{to:`/blog/${e.slug}`,className:"group flex flex-col",children:[e.image_url&&r.jsx("div",{className:"mb-4 aspect-video overflow-hidden rounded-2xl bg-muted",children:r.jsx("img",{src:e.image_url,alt:e.title,loading:"lazy",className:"h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"})}),r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsx(i,{tag:e.tag,color:e.tag_color}),r.jsx("h6",{className:"text-lg font-bold leading-snug text-foreground transition-colors group-hover:text-primary",children:e.title}),e.short_intro&&r.jsx("p",{className:"text-sm leading-relaxed text-muted-foreground line-clamp-3",children:s(e.short_intro)}),r.jsx(n,{date:e.published_at})]})]})}export{d as B,i as P,n as a,s};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.