Press site for @smenor
Find a file
2026-07-09 20:32:56 +00:00
_gallery Welcome to your site 2026-07-09 20:32:56 +00:00
_music Welcome to your site 2026-07-09 20:32:56 +00:00
_theme Welcome to your site 2026-07-09 20:32:56 +00:00
actions Welcome to your site 2026-07-09 20:32:56 +00:00
events Welcome to your site 2026-07-09 20:32:56 +00:00
journal Welcome to your site 2026-07-09 20:32:56 +00:00
media-index Welcome to your site 2026-07-09 20:32:56 +00:00
people Welcome to your site 2026-07-09 20:32:56 +00:00
podcast Welcome to your site 2026-07-09 20:32:56 +00:00
publications Welcome to your site 2026-07-09 20:32:56 +00:00
reading Welcome to your site 2026-07-09 20:32:56 +00:00
.gitignore Welcome to your site 2026-07-09 20:32:56 +00:00
.press Welcome to your site 2026-07-09 20:32:56 +00:00
index.md Welcome to your site 2026-07-09 20:32:56 +00:00
privacy.md Welcome to your site 2026-07-09 20:32:56 +00:00
README.md Welcome to your site 2026-07-09 20:32:56 +00:00

Your Press Site

This repo is your website. Edit the markdown files, push, and your site updates automatically.

Publishing

Write .md files in this repo. The directory structure becomes your site structure:

index.md              → yoursite.com/
about.md              → yoursite.com/about
projects/
  index.md            → yoursite.com/projects/
  sweetgrass.md       → yoursite.com/projects/sweetgrass

Edit in the Forgejo web editor, or clone the repo and push from any text editor. It's just text files.

Pages

Every .md file becomes a page. The first # Heading becomes the page title. Add frontmatter for more control:

---
title: My Page
description: A short description for search and social sharing
date: 2026-03-01
draft: true
---

Page content here.

Pages named index.md or README.md become the directory's landing page. Top-level pages and directories appear in the navigation automatically.

Media

Drop files in a directory and push. The asset pipeline uploads them to the CDN and replaces each with a markdown companion:

  • Images (jpg, png, webp, svg, gif) → gallery with CSS grid
  • Audio (m4a, mp3, ogg, wav) → playlist with players
  • Video (mp4, webm, mov) → video players

Each companion is a .md file with the CDN URL in frontmatter and a description in the body. Edit it to add titles, dates, and credits.

Inline galleries

Embed a gallery in any page:

photos/
  _sunset.md
  _garden.md
page.md         ← contains: ![My photos](photos)

The ![My photos](photos) line renders as an inline gallery. Same works for audio playlists. You can control the order:

![gallery](photos pin: sunset pin: garden sort: newest limit: 6)

pin: name pins items to the front. sort: newest orders the rest. limit: N caps the total. :shuffle randomizes.

Collections

A directory of markdown files with a collection: true index becomes a collection — events, people, albums, products, anything. Each .md file in the directory is an item. The index page lists them all as cards.

events/
  index.md          ← collection index
  spring-concert.md ← an event
  fall-workshop.md  ← another event

The collection index controls sorting and layout:

---
title: Events
collection: true
sort: date
layout: list
---

Upcoming events and gatherings.

Each item uses frontmatter for its metadata:

---
title: Spring Concert
date: 2026-05-15
time: "19:00"
location: The Rialto, Tucson AZ
link: https://tickets.example.com/spring
image: concert.jpg
---

A night of music under the stars.

The card renders whatever fields are present — date, time, location, image, link. Leave out what you don't need.

Sort options

  • items: — explicit list of filenames in the order you want them (cleanest for hand-ordered collections, unlisted items appear at the end)
  • sort: date — chronological (events, blog posts)
  • sort: order — manual ordering (add order: 1 to item frontmatter)
  • sort: title — alphabetical

Layout options

  • layout: list — items stacked vertically, separated by lines (default)
  • layout: grid — responsive card grid (good for people, albums, products)

What works as a collection

Anything that's a directory of similar things:

  • Events — date, time, location, ticket link
  • People / team — name, role, photo, bio
  • Albums / discography — title, date, cover art, tracks
  • Products — title, price, images
  • Blog posts — date, author, summary
  • Job listings — title, location, deadline
  • Books — title, cover, publisher, purchase link

Same pattern, same frontmatter, same cards. The styling makes them look different; the structure is the same.

Languages

Set the site language in your root index.md:

---
title: My Site
language: en
---

For multilingual content, add language variants with a suffix:

about.md            ← default language
about.mi.md         ← te reo Māori version
about.es.md         ← Spanish version

Press detects the language from the filename suffix and sets <html lang>, formats dates in the correct language, and links variants together with hreflang for search engines.

Supported date languages: English, te reo Māori, French, Spanish. More can be added.

Customization

Special files (all optional):

  • _logo.svg (or .png, .jpg) — site logo in the nav bar
  • _title.md — content shown below the nav on every page
  • _footer.md — content shown in the footer of every page
  • _background.jpg (or .svg, .png) — page background image
  • _theme/custom.css (variables), style.css, template.html, print.css

Styling your site

Your site has a _theme/custom.css file with CSS variables that control colors, fonts, and spacing. Open it — each variable is documented. Uncomment a line, change the value, push:

:root {
  --accent: #8B4513;
  --font-body: "Palatino", serif;
}

Your whole site updates. Dark mode, responsive layout, and print styles adjust automatically. Delete custom.css to revert to defaults (it's in git, so you can always get it back).

For deeper changes, create _theme/style.css to replace the base stylesheet entirely, or _theme/template.html for the page structure. Your copies take precedence over the defaults.

Feeds

Your site has two RSS feeds: feed.xml for new content and changes.xml for all updates. Every page also has its own changelog feed. Media directories get podcast-ready feeds with enclosures.

Annotated media (groundwork)

For tutorials, screencasts, podcasts, or any media-backed content, add media and chapters to frontmatter:

---
media: walkthrough.mp4
chapters:
  - time: "0:00"
    title: Introduction
  - time: "2:15"
    title: Getting started
  - time: "5:30"
    title: Advanced topics
---

# My Tutorial

![My Tutorial](walkthrough.mp4)

## Introduction

The transcript goes here. Use `<details>` for expandable depth:

<details>
<summary>Step by step</summary>

1. First do this
2. Then do that

</details>

The transcript is the primary content — skimmable, searchable, accessible. The media is linked: chapters appear in the player and headings link to timestamps. A table of contents is generated automatically.

Unpublished files

Files and directories starting with _ are not published to the rendered site. They stay in the repo but press skips them.

_BUILDING.md    ← internal docs, in the repo but not on the web
_drafts/        ← a whole directory of work-in-progress
_NOT_PUBLISHED  ← name it obviously if you like

This is how press keeps internal docs, drafts, and repo scaffolding out of the rendered site. The special files under Customization (_logo.svg, _title.md, _footer.md, _theme/) are the exception — press reads those for site configuration even though they start with _.

Local notes

Files prefixed with __ (double underscore) are git-ignored. Use them for local drafts and notes that shouldn't be published or even committed:

__notes.md      ← your scratch pad, never committed
__ideas.md      ← future plans, stays local

Printing

Every page is designed to print well. The print layout shows the page URL for provenance.