🗂️ Obsidian Note Generator

A lightweight, offline-capable browser tool that converts CSV or TSV spreadsheet data into Obsidian-ready .md files with YAML frontmatter — one file per row, downloaded as a ZIP.

No install. No account. No internet required once saved locally. Open the HTML file and go.


Screenshots

1. CSV Input — paste or drop your file

Screenshot: CSV input area with drag-and-drop zone and paste textarea

2. Column Configuration — rename properties, set types, pick the filename column

Screenshot: Column mapping table showing property name fields, type dropdowns, and filename radio buttons

3. Live Preview — see the exact YAML frontmatter before generating

Screenshot: Preview box showing color-coded YAML frontmatter for the first row

4. Output — a ZIP of .md files ready to drop into your vault

Screenshot: File explorer showing the unzipped .md files


Features


File Structure

Keep these three files in the same folder:

obsidian-note-generator/
├── obsidian-note-generator.html   ← open this in your browser
├── styles.css                     ← stylesheet
└── jszip.min.js                   ← bundled locally for offline use

To go fully offline, also remove the Google Fonts @import line at the top of styles.css. The fallback fonts are monospace and sans-serif (Courier New / Arial on Windows, Menlo / Helvetica on Mac).


Usage

1. Open obsidian-note-generator.html in any modern browser.

2. Load your data — either drag your .csv or .tsv file onto the drop zone, or paste the raw CSV text directly.

3. Configure columns — for each column detected from your header row:

4. Check the preview — the first row renders as live YAML so you can catch any issues before generating.

5. Click Download — a obsidian-notes.zip file downloads containing one .md file per row.

6. Unzip into your vault — drop the files into the relevant folder in Obsidian.


Data Types

TypeYAML outputNotes
textproperty: "value"Default. Handles commas and special characters safely.
numberproperty: 1234Unquoted. Falls back to quoted text if the value isn't numeric.
dateproperty: 2024-03-15Normalizes multiple input formats to YYYY-MM-DD.
booleanproperty: trueRecognizes true, yes, 1 as true; everything else is false.
listproperty:
  - "value"
Multi-value list. Each CSV cell becomes a single-item list.
linkproperty: "[[value]]"Wraps the value in Obsidian internal link syntax.

Date Normalization

When a column is set to date, the tool attempts to parse and reformat to YYYY-MM-DD:

Input formatExampleOutput
Already correct2024-03-152024-03-15
US (Excel default)3/15/20242024-03-15
European15-3-2024 or 15.3.20242024-03-15
Written monthMarch 15, 20242024-03-15
Short monthMar 15 20242024-03-15
Excel serial453662024-03-15

If the value can't be parsed, it's passed through as-is rather than corrupted.


Tips


Offline Setup

  1. Download jszip.min.js from:
    https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js
    
  2. Place it in the same folder as the HTML file.
  3. In obsidian-note-generator.html, change:
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
    
    to:
    <script src="jszip.min.js"></script>
    
  4. Optionally remove the @import line at the top of styles.css to drop the Google Fonts dependency too.

Example CSV

See sample-accounts.csv for a ready-to-use test file.


Requirements

Caveats & Disclaimers

Credits

Built circa

2026.04.03-04