# Types: Article to GuidesView (/themes/sdk/reference/content/types-1)

```ts
import { … } from '@poltura/theme-sdk/content';
```

## `Article` [#article]

The blog post a post page shows, with its body and related posts.

<TypeTable type={{"id":{"description":"The post's id.","type":"string","required":true},"title":{"description":"The post's title.","type":"string","required":true},"excerpt":{"description":"A one-paragraph summary, or null.","type":"string | null","required":true},"href":{"description":"The post's page.","type":"string","required":true},"publishedAt":{"description":"When the post was published, as an ISO 8601 string, or null.","type":"string | null","required":true},"cover":{"description":"The cover image, or null.","type":"MediaImageRef | null","required":true},"category":{"description":"The post's category, or null for a post right under the blog.","type":"ArticleCategory | null","required":true},"markdown":{"description":"The post's body in Markdown; render it with `Markdown`.","type":"string","required":true},"publishedLabel":{"description":"The publication date in the page language, such as `12 March 2026`, or null.","type":"string | null","required":true},"headings":{"description":"The body's headings, for an \"On this page\" box.","type":"readonly ContentHeading[]","required":true},"related":{"description":"Other posts to read next.","type":"readonly ArticleSummary[]","required":true}}} />

## `ArticleCategory` [#articlecategory]

A blog category.

<TypeTable type={{"id":{"description":"The category's id.","type":"string","required":true},"name":{"description":"The category's name.","type":"string","required":true},"description":{"description":"A short description, or null.","type":"string | null","required":true},"href":{"description":"The category's page.","type":"string","required":true}}} />

## `ArticlePage` [#articlepage]

One page of blog posts: the blog's landing page or a category's.

<TypeTable type={{"category":{"description":"The category the page shows, or null on the blog's landing page.","type":"ArticleCategory | null","required":true},"categories":{"description":"Every category, on the landing page; empty on a category page.","type":"readonly ArticleCategory[]","required":true},"articles":{"description":"The posts of this page, newest first.","type":"readonly ArticleSummary[]","required":true},"page":{"description":"The page number, from 1.","type":"number","required":true},"pageCount":{"description":"How many pages the list has.","type":"number","required":true},"pageHref":{"description":"The address of another page of the same list.","type":"(page: number) => string","required":true}}} />

## `ArticleSummary` [#articlesummary]

A blog post as cards and lists show it, without its body.

<TypeTable type={{"id":{"description":"The post's id.","type":"string","required":true},"title":{"description":"The post's title.","type":"string","required":true},"excerpt":{"description":"A one-paragraph summary, or null.","type":"string | null","required":true},"href":{"description":"The post's page.","type":"string","required":true},"publishedAt":{"description":"When the post was published, as an ISO 8601 string, or null.","type":"string | null","required":true},"cover":{"description":"The cover image, or null.","type":"MediaImageRef | null","required":true},"category":{"description":"The post's category, or null for a post right under the blog.","type":"ArticleCategory | null","required":true}}} />

## `ContactPageTexts` [#contactpagetexts]

The fixed wording of the contact page, in the page language.

<TypeTable type={{"callToAction":{"description":"The call to action under the heading.","type":"string","required":true},"followUs":{"description":"The heading of the social profiles card.","type":"string","required":true},"followUsDescription":{"description":"The line under that heading.","type":"string","required":true}}} />

## `ContactPageView` [#contactpageview]

Everything the contact page shows: the store's contact details, company, bank account and social links.

<TypeTable type={{"title":{"description":"The page heading in the page language.","type":"string","required":true},"subtitle":{"description":"The line under the heading in the page language.","type":"string","required":true},"contact":{"description":"How shoppers reach the store.","type":"StoreContact","required":true},"company":{"description":"The company behind the store, or null.","type":"StoreCompany | null","required":true},"bankAccount":{"description":"The account bank transfers go to, or null.","type":"BankAccount | null","required":true},"socialLinks":{"description":"The store's social profiles.","type":"readonly SocialLink[]","required":true},"texts":{"description":"The page's fixed wording.","type":"ContactPageTexts","required":true}}} />

## `ContentHeading` [#contentheading]

A heading inside a long text, listed in the "On this page" box.

<TypeTable type={{"id":{"description":"The heading's anchor id, so `#id` jumps to it.","type":"string","required":true},"text":{"description":"The heading text.","type":"string","required":true}}} />

## `FaqGroup` [#faqgroup]

A group of FAQ items under one heading.

<TypeTable type={{"id":{"description":"The group's id.","type":"string","required":true},"title":{"description":"The group's heading.","type":"string","required":true},"items":{"description":"Its questions, in the merchant's order.","type":"readonly FaqItem[]","required":true}}} />

## `FaqItem` [#faqitem]

One question and its answer on the FAQ page.

<TypeTable type={{"id":{"description":"The item's id.","type":"string","required":true},"question":{"description":"The question.","type":"string","required":true},"answer":{"description":"The answer in Markdown; render it with `Markdown`.","type":"string","required":true}}} />

## `Guide` [#guide]

A how-to guide the merchant wrote, shown on its own page and on the products it belongs to.

<TypeTable type={{"id":{"description":"The guide's id.","type":"string","required":true},"title":{"description":"The guide's title.","type":"string","required":true},"excerpt":{"description":"A one-paragraph summary, or null.","type":"string | null","required":true},"body":{"description":"The guide's body in Markdown; render it with `Markdown`.","type":"string","required":true},"href":{"description":"The guide's own page, or null for a guide that has none.","type":"string | null","required":true},"publishedAt":{"description":"When the guide was published, as an ISO 8601 string, or null.","type":"string | null","required":true},"attachments":{"description":"Files and links attached to the guide.","type":"readonly GuideAttachment[]","required":true}}} />

## `GuideAttachment` [#guideattachment]

A file or link attached to a guide, such as a manual or a driver.

<TypeTable type={{"id":{"description":"The attachment's id.","type":"string","required":true},"kind":{"description":"Whether it is a file or a link.","type":"GuideAttachmentKind","required":true},"title":{"description":"The attachment's title.","type":"string","required":true},"description":{"description":"A short description, or null.","type":"string | null","required":true},"url":{"description":"Where the file downloads from or the link goes.","type":"string","required":true},"mimeType":{"description":"The file's MIME type, or null for a link.","type":"string | null","required":true},"sizeBytes":{"description":"The file size in bytes, or null for a link.","type":"number | null","required":true},"version":{"description":"The version the file is for, or null.","type":"string | null","required":true},"platform":{"description":"The operating system the file is for, or null.","type":"string | null","required":true},"architecture":{"description":"The processor architecture the file is for, or null.","type":"string | null","required":true},"language":{"description":"The language the file is in: a language code such as `hu`, `multi` for several languages, or null.","type":"string | null","required":true},"checksum":{"description":"The file's SHA-256 checksum, or null.","type":"string | null","required":true}}} />

## `GuideAttachmentKind` [#guideattachmentkind]

Whether a guide attachment is a file to download or a link to follow.

```ts
type GuideAttachmentKind = 'file' | 'link'
```

## `GuideCategory` [#guidecategory]

A guide category of the help centre.

<TypeTable type={{"id":{"description":"The category's id.","type":"string","required":true},"name":{"description":"The category's name.","type":"string","required":true},"description":{"description":"A short description, or null.","type":"string | null","required":true},"href":{"description":"The category's page.","type":"string","required":true}}} />

## `GuidePage` [#guidepage]

The guide a guide page shows, with its category, headings and related guides.

<TypeTable type={{"id":{"description":"The guide's id.","type":"string","required":true},"title":{"description":"The guide's title.","type":"string","required":true},"excerpt":{"description":"A one-paragraph summary, or null.","type":"string | null","required":true},"body":{"description":"The guide's body in Markdown; render it with `Markdown`.","type":"string","required":true},"href":{"description":"The guide's own page, or null for a guide that has none.","type":"string | null","required":true},"publishedAt":{"description":"When the guide was published, as an ISO 8601 string, or null.","type":"string | null","required":true},"attachments":{"description":"Files and links attached to the guide.","type":"readonly GuideAttachment[]","required":true},"category":{"description":"The guide's category, or null for a guide right under the help centre.","type":"GuideCategory | null","required":true},"headings":{"description":"The body's headings, for an \"On this page\" box.","type":"readonly ContentHeading[]","required":true},"related":{"description":"Other guides to read next.","type":"readonly Guide[]","required":true}}} />

## `GuidesView` [#guidesview]

The guides a help centre page lists: every category on the landing page, or one category's guides.

<TypeTable type={{"category":{"description":"The category the page shows, or null on the help centre's landing page.","type":"GuideCategory | null","required":true},"categories":{"description":"Every category, on the landing page; empty on a category page.","type":"readonly GuideCategory[]","required":true},"guides":{"description":"The guides the page lists.","type":"readonly Guide[]","required":true}}} />
