Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@
"/themes/helpers/data/content",
"/themes/helpers/data/date",
"/themes/helpers/data/excerpt",
"/themes/helpers/data/social_accounts",
"/themes/helpers/data/social_url",
"/themes/helpers/data/img_url",
"/themes/helpers/data/link",
Expand Down
1 change: 1 addition & 0 deletions themes/helpers/data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ description: Data helpers are used to output data from your site. Use this refer
| [content](/themes/helpers/data/content/) | Outputs the full post content as HTML |
| [date](/themes/helpers/data/date/) | Outputs the date in a format of your choosing |
| [excerpt](/themes/helpers/data/excerpt/) | Outputs the custom excerpt, or the post content with HTML stripped |
| [social\_accounts](/themes/helpers/data/social_accounts/) | Iterates the connected social accounts on a site or author |
| [social\_url](/themes/helpers/data/social_url/) | Outputs the full URL to a social profile |
| [img\_url](/themes/helpers/data/img_url/) | Outputs the correctly calculated URL for the provided image property |
| [link](/themes/helpers/data/link/) | Creates links with dynamic classes |
Expand Down
77 changes: 77 additions & 0 deletions themes/helpers/data/social_accounts.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
---
title: "social_accounts"
description: 'Usage: `{{#social_accounts @site}}{{/social_accounts}}`'
---

***

`{{#social_accounts}}` is a block helper that iterates over the connected social accounts on a given source object — usually `@site` or an author. The source must be passed as a positional argument.

### Simple Example

Render a row of icons for the social accounts configured under Settings > General > Social accounts:

```handlebars
{{#social_accounts @site}}
<a href="{{href}}" target="_blank" rel="noopener" aria-label="{{name}}">
{{> (concat "icons/" type)}}
</a>
{{/social_accounts}}
```

## Data Variables

When inside a `{{#social_accounts}}` block, the following properties are available for each account:

* **type** (string) - the platform key (e.g. `x`, `bluesky`)
* **href** (string) - the full URL to the profile
* **username** (string) - the raw stored handle or URL fragment
* **name** (string) - the human-readable platform label (e.g. `X`, `Facebook`)

The standard iteration variables are also available:

* **@index** (number) - the 0-based index of the current iteration
* **@number** (number) - the 1-based index of the current iteration
* **@first** (boolean) - true if this is the first iteration
* **@last** (boolean) - true if this is the last iteration
* **@odd** (boolean) - true if the @index is odd
* **@even** (boolean) - true if the @index is even

## Usage

### Per-author accounts

When used inside `{{#foreach authors}}`, pass `this` to iterate the current author’s accounts:

```handlebars
{{#foreach authors}}
<h3>{{name}}</h3>
{{#social_accounts this}}
<a href="{{href}}" aria-label="{{name}}">{{> (concat "icons/" type)}}</a>
{{/social_accounts}}
{{/foreach}}
```

On an author page, the author is named `author`:

```handlebars
{{#social_accounts author}}
<a href="{{href}}" aria-label="{{name}}">{{> (concat "icons/" type)}}</a>
{{/social_accounts}}
```

### \{\{else}} and negation

Like all block helpers, `{{#social_accounts}}` supports an `{{else}}` block, which is executed when there are no connected accounts:

```handlebars
{{#social_accounts @site}}
<a href="{{href}}">{{name}}</a>
{{else}}
<p>No social accounts connected yet.</p>
{{/social_accounts}}
```

## Supported platforms

`x`, `facebook`, `linkedin`, `bluesky`, `threads`, `mastodon`, `tiktok`, `youtube`, `instagram`. Platforms without a value set on the source are skipped.
2 changes: 2 additions & 0 deletions themes/helpers/data/social_url.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ When called inside an author scope (e.g. `{{#author}}` or `{{#foreach authors}}`

Supported platforms: `facebook`, `twitter`, `linkedin`, `threads`, `bluesky`, `mastodon`, `tiktok`, `youtube`, `instagram`. All nine are configurable both per-author (Staff > [user]) and sitewide (Settings > General > Social accounts).

To render a row of icons for every connected platform on a single object, see [`{{#social_accounts}}`](/themes/helpers/data/social_accounts/).
Comment thread
coderabbitai[bot] marked this conversation as resolved.

### Examples

Output the author’s Threads URL, using an `author` block:
Expand Down