Markata-go supports multiple authors with rich metadata including roles, bios, avatars, and social links. This guide covers how to configure authors and reference them in your posts.

Quick Start

1. Configure Authors

Add authors to your markata-go.toml:

[markata-go.authors]

[markata-go.authors.authors.waylon]
name = "Waylon Walker"
role = "author"
url = "https://waylonwalker.com"
avatar = "/images/waylon.jpg"
bio = "Python and Go developer"
active = true
default = true

[markata-go.authors.authors.guest]
name = "Guest Writer"
role = "editor"
bio = "Occasional contributor"
guest = true
active = true

2. Reference Authors in Posts

---
title: My Post
authors:
  - waylon
  - guest
---

Author Configuration

Author Fields

Field Type Description
name string Required - Display name
role string Simple role label (author, editor, etc.)
bio string Short biography
avatar string Avatar image URL or path
url string Personal website URL
email string Contact email
social map Social media links
default bool Default author for posts without explicit authors
guest bool Guest author flag
active bool Whether author is currently active

Default Author

Set default = true on one author. Posts without an explicit authors frontmatter field will automatically use this author:

[markata-go.authors.authors.waylon]
name = "Waylon Walker"
default = true

Author Pages

Generate individual author profile pages:

[markata-go.authors]
generate_pages = true
url_pattern = "/authors/{id}/"

Frontmatter

Simple Format

Reference authors by ID:

---
title: My Post
authors:
  - waylon
  - guest
---

Extended Format

Specify per-post roles and details:

---
title: Collaborative Post
authors:
  - id: waylon
    role: author
    details: wrote the introduction
  - id: codex
    role: pair programmer
    details: wrote the code examples
---

Key Aliases

Use convenient aliases for common keys:

---
authors:
  - name: waylon     # same as id: waylon
    title: author    # same as role: author
    description: wrote it  # same as details: ...
---

Legacy Format

The older single-author format still works:

---
title: My Post
author: waylon
---

Template Access

In templates, access author data:

{% for author in post.author_objects %}
  <span>{{ author.name }}</span>
  {% if author.role %}({{ author.role }}){% endif %}
{% endfor %}

Available author properties: - id, name, bio, email, avatar, url - role - Simple role label - role_display - Pre-computed display string - guest, active, default - social - Map of platform -> URL - contributions - CReDiT taxonomy roles - details - Per-post contribution details

Role System

Simple Roles

Use the role field for blog-friendly roles:

[markata-go.authors.authors.waylon]
name = "Waylon Walker"
role = "author"

Common roles: author, editor, reviewer, photographer, illustrator, translator

CReDiT Roles

For academic-style contribution tracking, use contributions:

[markata-go.authors.authors.waylon]
name = "Waylon Walker"
contributions = ["Conceptualization", "Software", "Writing"]

Examples

Multiple Authors with Different Roles

---
title: Building a CLI Tool
authors:
  - id: waylon
    role: author
    details: wrote the core implementation
  - id: kimmi
    role: reviewer
    details: reviewed and tested
---

Mixed Author Types

---
title: Guest Post
authors:
  - waylon  # uses default role from config
  - id: guest-writer
    role: guest author
    details: wrote this guest post
---

Editorial credits and revision history

The default byline keeps writers prominent and groups editing/reviewing roles below them. The first editor is displayed by name; additional editors are stacked behind a disclosure with all contributor names and roles.

Use Editorial history to show recorded reviews, GitHub file diffs, and lazily loaded inline source changes. Humans and agents can use the editorial authoring commands to commit selected edits and record their attribution automatically.