# subfolio-astro-content

Portfolio content for [subfolio-astro](../subfolio-astro). Each subfolder is a project; structure and metadata are encoded entirely in file names — no database, no config files.

## Adding a project

1. Create a folder: `my-project/`
2. Drop in images and text files
3. Prefix files with `-t-`, `-m-`, or `-b-` to place them in the **top**, **middle**, or **bottom** zone of the page
4. Add a number after the prefix to control sort order within a zone: `-t-01-hero.png`, `-t-02-detail.png`

## Embeds

| Prefix | Zone | Supported types |
|---|---|---|
| `-t-` | Top | `.png`, `.jpg`, `.gif`, `.txt` (Markdown/HTML) |
| `-m-` | Middle | same |
| `-b-` | Bottom | same |

Files without a position prefix appear in the plain file listing.

## Enhancers

Sidecar files that attach metadata. The filename (without extension) is the item they describe.

| Extension | What it does |
|---|---|
| `.info` | Adds a `comment:` to a file or folder |
| `.link` | Replaces a file with an external redirect (`url:`, `target:`) |
| `.pop` | Opens a URL in a popup window (`url:`, `width:`, `height:`) |
| `.cut` | Shortcut to another folder (`name:`, `directory:`) |
| `.ftr` | Feature card — promotes an item with a title, thumbnail, and description |
| `.rss` | Embeds an RSS feed (`feedurl:`, `count:`, `cache:`) |

All enhancer files are YAML, must be **UTF-8 encoded**, and are hidden from plain file listings automatically.

## Folder suffixes

Append to a folder name to change how it renders:

- `foldername.slide` — slideshow view
- `foldername.site` — single mini-site view
- `foldername.oplx` — Oplx project plan view

## Hiding content

- Prefix a folder with `-hidden` or `.` to exclude it from listings
- Hidden folders can still be referenced by `.cut` shortcuts

## Special files

- `-hdr.png` / `-hdr-*.png` — header/hero image for the folder
- `-thumbnails/` — auto-generated thumbnails (managed by the build)
- `-thumbnails-custom/` — manually placed thumbnails for `.ftr` feature cards

## Previewing locally

```sh
# In ../subfolio-astro — set SUBFOLIO_CONTENT_DIR in .env, then:
./dev-content.sh
```

See `examples/` in the Astro project for a fixture that exercises every convention.

## Publishing

Pushing to `main` auto-deploys this content to **[archive.ilano.fyi](https://archive.ilano.fyi)** via
`.github/workflows/deploy-archive.yml` — it builds the public `subfolio-astro`
engine against this private content and ships the result to Cloudflare Pages.
Repo metadata (`.git`, `.github`, `.DS_Store`, the docs) is stripped before build,
so it never reaches the public site. The live site is `noindex` (not crawled).
