Skip to content
Markdown · one theme · zero dependencies · MIT

Beautiful documentation, powered by Markdown.

Write a folder of Markdown. Pholio builds the site: static HTML, one theme in light and dark, search that runs in the browser. PHP at build time, nothing at run time.

$ curl -fsSL pholio.lukaloehr.com/install.sh | sh
docs/index.md→ /docs

The docs on this site, and the Markdown they are built from. Click around.

Dependencies
0
no Composer, no npm
Runtime
PHP 8.2
at build time only
Themes
1
light and dark
Interface
EN · DE
English and German
Write

Markdown, plus a few tags.

---
title: Exporting a report
description: How to save a report as a file.
---

Open the report, then choose **Export** in the toolbar.

<Callout type="warn" title="Large reports">
Exports over 10 MB are zipped.
</Callout>

<Steps>
<Step>Pick a format: CSV or PDF.</Step>
<Step>Choose where to save it.</Step>
</Steps>

```bash title="Terminal"
report export --format csv
```
  • Components as tags
    Callouts, cards, tabs, steps, file trees and type tables, written inline.
  • Highlighted at build time
    Code titles, line numbers and code tabs. No highlighter in the browser.
  • Search in the browser
    A prebuilt index, queried in a Web Worker. No backend, no service.
  • Light and dark
    One theme with both schemes, a sidebar, a table of contents and shortcuts.
  • Fails loud
    An unknown component, icon or language stops the build with file and line.
  • Static output
    Plain files for any host, with a ready .htaccess for Apache.
AI visibility

Readable by agents, too.

Assistants and coding agents read your docs as Markdown, not as HTML they have to scrape. Every Pholio build publishes it, with nothing to maintain by hand.

  • Every page as Markdown
    A clean twin next to each page: getting-started.md.
  • llms.txt and llms-full.txt
    An index of every page, and every page in one file: llms.txt, llms-full.txt.
  • skill.md and an agent card
    A skill that tells agents how to read the docs, listed with its digest, plus an A2A agent card.
  • Discovery headers
    Every response, 404s included, sends Link and X-Llms-Txt pointing at the files above.
  • Markdown on request
    Pages answer Accept: text/markdown and assistants like ChatGPT and Claude with the Markdown twin.
  • Copy page menu
    Next to every page title: copy the page as Markdown, or open it in ChatGPT or Claude.
  • Agent score 100/100
    These docs pass every check of verify/agent-score.mjs, modelled on mint score.
# Pholio
 
> Pholio turns a folder of Markdown into a documentation site: static HTML, one theme in light and dark, search in the browser. Plain PHP 8.2 at build time, zero dependencies, MIT.
 
## Notes for agents
 
Install Pholio with `curl -fsSL https:/​/​pholio.lukaloehr.com/​install.sh | sh`. Pages below are the Markdown twins of the HTML docs; prefer them.
 
## Pholio
 
- [Pholio](https:/​/​pholio.lukaloehr.com/​docs/​index.md): Beautiful documentation, powered by Markdown. One polished theme, fast search, zero dependencies.
- [Getting started](https:/​/​pholio.lukaloehr.com/​docs/​getting-started.md): Install Pholio, create a project, write a page, build and preview the site.
- [Content format](https:/​/​pholio.lukaloehr.com/​docs/​content-format.md): The Markdown Pholio accepts, the component tags it understands and the meta.json tree files.
> Documentation index: https:/​/​pholio.lukaloehr.com/​docs/​llms.txt, a list of every page in this documentation.
 
# Getting started
 
> Install Pholio, create a project, write a page, build and preview the site.
 
## Requirements
 
- PHP 8.2 or newer, command line, with `mbstring` and `ctype`.
- PCRE2 10.43 or newer is recommended for full syntax highlighting. It is bundled
with PHP (`php -r 'echo PCRE_VERSION;'`). On an older PCRE2 the build still
succeeds; the few grammar patterns that need lookbehinds of variable length are
switched off, and Pholio warns once per affected grammar that some syntax
Same URL, Markdown for agents
$ curl -H "Accept: text/markdown" https://pholio.lukaloehr.com/docs/getting-started
Try it

Five commands.

The installer downloads the release from GitHub, checks it against SHA256SUMS, checks PHP and PCRE2, and links pholio into ~/.local/bin. Requires PHP 8.2+ with mbstring and ctype. Or download v0.1.0 directly.

Terminal
$ curl -fsSL https://pholio.lukaloehr.com/install.sh | shcurl -fsSL pholio.lukaloehr.com/install.sh | sh
$ pholio init my-docs
$ cd my-docs
$ pholio dev     # http://127.0.0.1:8080
$ pholio build   # static site in public/