obsidian-formfire/README.md
tolvitty cb4d30ad05 docs: add README with badges and MIT license
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 19:54:30 +01:00

140 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div align="center">
# Formfire
**Structured data input for Obsidian — forms that create notes or update frontmatter.**
[![GitHub License](https://img.shields.io/github/license/tolvitty/obsidian-formfire)](LICENSE)
[![Obsidian](https://img.shields.io/badge/Obsidian-Plugin-7C3AED?logo=obsidian&logoColor=white)](https://obsidian.md)
[![Version](https://img.shields.io/badge/version-0.1.0-blue)](manifest.json)
[![TypeScript](https://img.shields.io/badge/TypeScript-strict-3178C6?logo=typescript&logoColor=white)](tsconfig.json)
---
</div>
<div align="center">
## Overview
</div>
Formfire brings **structured data input** to Obsidian. Define custom forms with a visual builder, then use them to create new notes or update existing frontmatter — no manual YAML editing required.
Part of the **Fire-Suite** concept: closing the *Input* gap in the Input → Observe → Output workflow.
<div align="center">
## Features
</div>
### 13 Field Types
| Field | Description |
|-------|-------------|
| **Text** | Single-line text input |
| **Textarea** | Multi-line text with resizable area |
| **Number** | Numeric input with validation |
| **Toggle** | Boolean on/off switch |
| **Date** | Date picker with today as default |
| **Time** | Time picker (HH:MM) |
| **Dropdown** | Single-select from predefined options |
| **Tags** | Multi-select with chip UI |
| **Note Link** | Autocomplete from vault files |
| **Folder Picker** | Autocomplete from vault folders |
| **Rating** | 15 star rating |
| **Slider** | Range input with configurable min/max/step |
| **Color** | Color picker |
### Two Output Modes
- **Create** — Generate a new note with frontmatter and a body template
- **Update** — Modify frontmatter of an existing note (active file or prompt)
### Visual Form Builder
- Drag & drop field reordering
- Side-by-side live preview
- Undo / Redo with keyboard shortcuts (`Ctrl+Z`, `Ctrl+Shift+Z`)
- Per-field type configuration (options, min/max/step, folder restrictions)
### Template Engine
Use `{{fieldId}}` variables in file names and body templates, plus built-in variables:
- `{{date}}` — current date (YYYY-MM-DD)
- `{{time}}` — current time (HH:MM)
- `{{datetime}}` — current date and time
### Import & Export
Share forms as JSON files — individually or all at once. Imported forms receive fresh UUIDs to prevent collisions.
<div align="center">
## Installation
</div>
### Manual
1. Download the latest release (`main.js`, `manifest.json`, `styles.css`)
2. Create a folder `<vault>/.obsidian/plugins/formfire/`
3. Place the files in that folder
4. Enable the plugin in **Settings → Community Plugins**
### Build from Source
```bash
git clone https://github.com/tolvitty/obsidian-formfire.git
cd obsidian-formfire
npm install
npm run build
```
Copy `main.js`, `manifest.json`, and `styles.css` into your vault's plugin folder.
<div align="center">
## Usage
</div>
1. Open **Settings → Formfire** to create your first form
2. Use the **Command Palette** (`Ctrl+P`) → *Formfire: Open Form* to fill it out
3. Alternatively, click the **ribbon icon** or use the **sidebar view**
Each form gets its own direct-access command for quick launching.
<div align="center">
## Access Points
</div>
| Method | Description |
|--------|-------------|
| **Command Palette** | `Formfire: Open Form` or per-form commands |
| **Ribbon Icon** | Quick access from the left sidebar |
| **Sidebar View** | Persistent form list panel |
| **Settings Tab** | Full form management with builder |
<div align="center">
## Development
</div>
```bash
npm run dev # Watch mode with hot reload
npm run build # Production build
```
<div align="center">
## License
</div>
[MIT](LICENSE) © tolvitty