Skip to main content

Documentation Index

Fetch the complete documentation index at: https://voyage-theme.fasil.in/llms.txt

Use this file to discover all available pages before exploring further.

The journal is the editorial counterweight to the catalog. Voyager ships two templates — a blog index and an article detail page — both styled in the same restrained editorial vocabulary as the rest of the storefront. Each is a JSON template wrapping a single section.

Blog index — templates/blog.json

{
  "sections": {
    "main": { "type": "main-blog", "settings": {} }
  },
  "order": ["main"]
}
The main-blog section renders the blog title, an optional intro, and a paginated grid of article cards.
eyebrow
text
default:"Journal"
Small tracked-out label above the blog title.
intro
textarea
Optional paragraph between the title and the article grid.

Grid

columns
select
default:"2"
Options: 1, 2, 3. Two columns is the editorial default — generous, magazine-spread.
per_page
range
default:"9"
Articles per page. Min 3, max 24, step 3.

Card content

Each article card carries — in this order — featured image, published date eyebrow, title, excerpt, author, and a “Read more” link. Every element is toggleable.
show_image
checkbox
default:"true"
show_date
checkbox
default:"true"
show_excerpt
checkbox
default:"true"
Truncates article.excerpt_or_content to 28 words.
show_author
checkbox
default:"false"

Pagination

When the blog spans multiple pages, a “Previous · Page X of Y · Next” footer appears below the grid. Uses Shopify’s standard paginate Liquid tag.

Empty state

When the blog has no published articles, the section renders a single “No articles yet.” line.

Article detail — templates/article.json

{
  "sections": {
    "main": { "type": "main-article", "settings": {} }
  },
  "order": ["main"]
}
The main-article section renders a single full article — breadcrumb, title, optional author, featured image, body, tags, social share row, and comments (when enabled in admin).
show_breadcrumb
checkbox
default:"true"
Renders [Blog title] · [Published date] above the article title.

Title

article.title is always rendered, untruncated. Required by the Shopify Theme Store article requirements.

Author

show_author
checkbox
default:"false"
When on, displays “By [First] [Last]” beneath the title.
show_image
checkbox
default:"true"
Renders article.image at 2000px wide, eagerly loaded for LCP.

Body

article.content rendered as rich text (.rte class for prose styling — paragraphs, lists, blockquotes, inline images).

Tags

show_tags
checkbox
default:"true"
Renders tags as links to [blog]/tagged/[tag-handle] — the standard Shopify tag filter URL.

Social share

show_share
checkbox
default:"true"
Renders Twitter / Facebook / Pinterest share links. Each opens in a new tab with the article URL pre-filled.

Comments

When the blog has comments enabled in admin, the article renders:
  1. A “[N] comments” header
  2. A success message when a comment was just posted (or a “submitted for review” note if the blog is moderated)
  3. A paginated list of approved comments (10 per page)
  4. A comment form — name, email, body, submit
The form uses Shopify’s new_comment form helper, including built-in error rendering.

Structured data

Both templates emit JSON-LD:
  • Blog index — inherits the site-wide WebSite schema from theme.liquid.
  • Article detail — emits Article (headline, URL, datePublished, dateModified, image, description, author, publisher) and BreadcrumbList (Home › Blog › Article).
Article schema unlocks the rich-card treatment in Google Discover and the article-with-image snippet in search results.

Two blogs, one article template

Shopify supports multiple blogs (Journal, Press, Notes). All blogs share templates/blog.json and all articles share templates/article.json unless you create alternate templates (for example blog.press.json) in the code editor and assign them in the blog or article admin page.

What’s next

Main blog section

The blog section’s full schema in reference form.

Main article section

The article section’s full schema.