## MVP

- [x] Add all element types supported in Obsidian to markdown
- [x] Add rich link previews
- [x] Add RSS
- [x] Add robots.txt
  - [x] AI
  - [x] Search
  - [x] Image
- [x] Typing
- [x] Add sitemap
- [x] Make taxonomies linkable in frontmatter (if a corresponding folder exists)
- [x] Add header metadata (meta tags)
- [x] CSS handling
- [x] Favicon handling
- [x] Docs
- [x] Build action

## V2

- [x] Fallback homepages
- [ ] Create post list element (`#tags/blue`, `@tags/blue`, `~tags/blue`)
- [x] Better favicon and styles handling
- [ ] Ignore README files
- [ ] Add more header metadata
- [ ] Define folder settings
  - [ ] Title
  - [ ] Breadrumb
- [x] Define special page properties
  - [x] Title
  - [x] Description
  - [x] Meta image
  - [x] Date
  - [ ] Modified date
  - [ ] Tags
  - [ ] Author/Authors
- [ ] Make file names kebab-cased for URLs and links
- [ ] Add hidden routes (`$`)
- [ ] Image alt text
- [ ] Code highlighter
- [x] Deploy action (Vercel)
- [ ] Add anchor links for headings
- [ ] Post TOC
- [ ] GitHub-style notes
- [ ] Add in-browser search
- [x] Figure out how to stop components from remounting on every change
- [ ] Make RSS optional
- [ ] Pagination
- [ ] Demote headings global option

## Wish list

- [ ] Automatic file creation
- [ ] Image serving and optimization
- [ ] GUI
- [ ] More deploy actions
- [ ] Optional JSON interactivity (ratings, comments, SubPubHub)
- [ ] Redirects
- [ ] Advanced markdown
  - [ ] Highlight
  - [ ] Sanitize
  - [ ] Tables
  - [ ] Strike
  - [ ] Task lists
  - [ ] Footnotes
  - [ ] Mermaid
  - [ ] Math
  - [ ] Wikilinks

## Ideas

https://github.com/arobase-che/remark-attr
https://github.com/wataru-chocola/remark-definition-list
https://github.com/FinnRG/remark-mentions
https://github.com/remarkjs/remark-toc

- Docusaurus
- MkDocs
- Coolify
- NodeGui

https://www.nngroup.com/articles/breadcrumb-navigation-useful/
https://www.nngroup.com/articles/url-as-ui/

CSS Frameworks:

- Open Props
- Pico
- Milligram
- Spectre

## Docs

Welcome to Vowel! This project is under development.

Vowel is a Really Simple Static Site Generator. Write Markdown files, and Vowel will generate a website for you. Eventually, you will also be able to write a `style.css` file to style your website. When complete, Vowel will generate:

- An RSS feed
- A sitemap
- Rich link previews (internal and external)
- Post lists
- Navigation
- Optimized images
- Metadata
- And more

Each file in Vowel is a page. Index pages are called `home.md`.

```
.
├── home.md
├── settings.md
├── about.md
└── posts/
    ├── home.md
    ├── red-car.md
    ├── blue-true.md
    └── green-van.md
```

In the above project, `/home.md` is the website homepage. `about.md` is `/about`, `/posts/home.md` is the blog homepage, `/blog`, and `/posts/red-car.md` is a blog post, `/posts/red-car`.

Every folder must have an index page. That means that there are two ways to represent a page:

- `/example-page.md`
- `/example-page/home.md`
  Both of the above will generate the `/example-page` URL. You cannot have both files.

At the root of a project, a `settings.md` file defines global configurations, like your site title. It can have the following properties:

- `title`: Website title
- `breadcrumb`: The root breadcrumb

Each folder can also have a `settings.md` file, with the following properties:

- `breadcrumb`: The breadcrumb for the folder
