Configuration
Configure your Telar site through the _config.yml file in your repository root.
Site Settings
Basic site information and appearance:
# Site Settings
title: Your Narrative Title
description: A brief description of your narrative exhibition
baseurl: "/repository-name" # For GitHub Pages subdirectory
url: "https://username.github.io"
author: Your Name
email: your-email@example.com
telar_theme: "paisajes" # Options: paisajes, neogranadina, santa-barbara, austin, or custom
logo: "" # Path to logo image (optional)
telar_language: "en" # Options: "en" (English), "es" (Español)
baseurl vs. url
- url: Your site’s base domain
- baseurl: Path after domain (use
""for root domain, or/repo-namefor GitHub Pages)
Examples:
# GitHub Pages subdirectory
url: "https://username.github.io"
baseurl: "/telar-site"
# Result: https://username.github.io/telar-site
# Custom domain at root
url: "https://mysite.org"
baseurl: ""
# Result: https://mysite.org
Site Logo
Add a logo to replace the site title in the navigation header:
logo: "/components/images/my-logo.png"
- Place your logo image in
components/images/ - Leave empty (
logo: "") to display the site title as text instead - Recommended dimensions: max 80px tall, 200-300px wide
- Supports PNG, JPG, SVG formats
Theme Selection
Telar includes 4 preset themes:
telar_theme: "paisajes" # Options: paisajes, neogranadina, santa-barbara, austin, or custom
Available Themes
- paisajes (default): Terracotta and olive
- neogranadina: Burgundy and gold
- santa-barbara: Teal and coral
- austin: Burnt orange and slate blue
See Customization: Themes for details and creating custom themes.
Multilingual Interface
Telar v0.4.0+ supports multilingual user interfaces in English and Spanish:
telar_language: "en" # Options: "en" (English), "es" (Español)
This controls the language of all interface elements, including navigation, buttons, labels, error messages, and instructions.
What Gets Translated
The telar_language setting changes the language of:
- Navigation menu: Home, Objects, Stories, Glossary, About
- Button labels: Copy, Back, Learn More, Go Deeper, etc.
- Metadata fields: Creator, Period, Medium, Location, Credit, etc.
- Error messages: All IIIF warnings, validation errors, and configuration issues
- Story interface: Step indicators, panel headers, coordinate tool
- Object pages: IIIF manifest labels, coordinate identification instructions
- Glossary: Panel headers, navigation elements
What Stays in Your Language
The telar_language setting does not translate your content:
- Story narratives and panel text (markdown files you create)
- Object descriptions and metadata (CSV data you provide)
- Glossary definitions
- About page content
- Site title and description
If you need a fully bilingual site with content in multiple languages, you’ll need to create separate Telar sites for each language.
IIIF Metadata Language Detection
When Telar auto-extracts metadata from IIIF manifests, it respects your telar_language setting:
- For English sites (
en): Prioritizes English metadata, falls back to other languages if unavailable - For Spanish sites (
es): Prioritizes Spanish metadata, falls back to English, then other languages
This ensures that object metadata appears in your preferred language when available from the source institution.
Google Sheets Integration
Manage content via Google Sheets instead of editing CSV files directly:
google_sheets:
enabled: true
shared_url: "https://docs.google.com/spreadsheets/d/YOUR_SPREADSHEET_ID/edit?usp=sharing"
published_url: "https://docs.google.com/spreadsheets/d/e/YOUR_PUBLISHED_ID/pubhtml"
Setup Steps
- Get the template: Duplicate the template at bit.ly/telar-template
- Share your sheet: Set to “Anyone with the link (Viewer access)”
- Publish your sheet: File → Share → Publish to web
- Paste both URLs into
_config.yml - Set
enabled: true - Commit changes
Automated fetching:
- GitHub Pages: GitHub Actions automatically discovers tab GIDs and fetches CSVs
- Local development: Run
python3 scripts/fetch_google_sheets.pybefore building
Both URLs are required. The shared URL is for viewing, the published URL is for automated fetching.
See Google Sheets Workflow for complete setup instructions.
Story Interface Settings
Control how stories display and behave:
story_interface:
show_story_steps: true # Set to false to hide "Step X" overlay
include_demo_content: false # Set to true to enable demo stories
show_object_credits: true # Set to false to hide credits badge on objects
show_story_steps
Controls whether the “Step X” indicator appears in the top-left corner of story viewers.
true(default): Shows “Step 1”, “Step 2”, etc. in the viewerfalse: Hides the step indicators for a cleaner, more immersive experience
This is purely visual - users can still navigate through steps normally.
include_demo_content
Enable pre-built demonstration stories that showcase Telar’s features:
false(default): Site contains only your contenttrue: Adds tutorial and example stories to your site
Demo stories appear alongside your own content with a “Demo content” badge. They’re automatically fetched during the build process and matched to your site’s language.
When to enable:
- Learning how to structure stories
- Testing Telar features without creating content
- Showing stakeholders what Telar can do
When to disable:
- Publishing your final production site
- Testing only your own content
See Demo Content for complete details on available demos.
show_object_credits
Controls the credit attribution badge on object pages:
true(default): Shows credit badge on all objects with credit informationfalse: Hides the credit badge (credit info still accessible via metadata table)
The credit badge displays in the top-right corner of object images, showing attribution from the credit field in your objects.csv.
Advanced Settings
The following settings are pre-configured and typically don’t need modification unless you’re doing advanced customization.
Do Not Edit The Telar
_config.ymlincludes a line: “PLEASE DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING”. The sections below this line are configured automatically and rarely need changes.
Collections
Jekyll collections define content types:
collections:
stories:
output: true
permalink: /stories/:name/
objects:
output: true
permalink: /objects/:name/
glossary:
output: true
permalink: /glossary/:name/
pages:
output: true
permalink: /:name/
# Collections Directory
collections_dir: _jekyll-files
You typically don’t need to modify collection settings unless doing advanced customization.
The collections_dir setting tells Jekyll where to find auto-generated working files.
Defaults
Layout defaults for each collection:
defaults:
- scope:
path: ""
type: "stories"
values:
layout: "story"
- scope:
path: ""
type: "objects"
values:
layout: "object"
- scope:
path: ""
type: "glossary"
values:
layout: "glossary"
- scope:
path: ""
type: "pages"
values:
layout: "user-page"
Build Settings
Standard Jekyll build configuration:
markdown: kramdown
permalink: pretty
exclude:
- Gemfile
- Gemfile.lock
- node_modules
- vendor
- .github
- README.md
- docs/
- scripts/
# Tell Jekyll not to expect dates for collections
future: true
show_drafts: false
Plugins
Required plugin:
plugins:
- jekyll-seo-tag
Installed automatically when you run bundle install.
Telar Version
Version information (updated automatically during releases):
telar:
version: "0.6.1-beta"
release_date: "2025-11-28"
Full Example
Here’s a complete _config.yml example:
# Site Settings
title: Colonial Textiles
description: An exhibition of colonial-era textiles from the Americas
baseurl: "/colonial-textiles"
url: "https://username.github.io"
author: Jane Smith
email: jane@example.com
telar_theme: "paisajes"
logo: ""
telar_language: "en"
# Story Interface Settings
story_interface:
show_story_steps: true
show_object_credits: true
include_demo_content: false
# Google Sheets Integration (optional)
google_sheets:
enabled: true
shared_url: "https://docs.google.com/spreadsheets/d/ABC123/edit?usp=sharing"
published_url: "https://docs.google.com/spreadsheets/d/e/XYZ789/pubhtml"
#
# PLEASE DO NOT EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING
#
# Collections
collections:
stories:
output: true
permalink: /stories/:name/
objects:
output: true
permalink: /objects/:name/
glossary:
output: true
permalink: /glossary/:name/
pages:
output: true
permalink: /:name/
collections_dir: _jekyll-files
# Build Settings
markdown: kramdown
permalink: pretty
exclude:
- Gemfile
- Gemfile.lock
- node_modules
- vendor
- .github
- README.md
- docs/
- scripts/
# Defaults
defaults:
- scope:
path: ""
type: "stories"
values:
layout: "story"
- scope:
path: ""
type: "objects"
values:
layout: "object"
- scope:
path: ""
type: "glossary"
values:
layout: "glossary"
- scope:
path: ""
type: "pages"
values:
layout: "user-page"
future: true
show_drafts: false
# Telar Settings
telar:
version: "0.6.1-beta"
release_date: "2025-11-28"
# Plugins
plugins:
- jekyll-seo-tag