🗂️ Obsidian Note Generator

📦 This project is archived — there's a better option now

The CSV importer lives on inside Bases Toolbox, an Obsidian plugin. Its Import CSV as notes panel is a direct descendant of this tool's converter — same column mapping, property types, and date normalization — plus everything a plugin can do that a web page can't:

👉 Get Bases Toolbox

This repo stays up as a read-only reference, and the hosted web version keeps working if you want a no-install, browser-only tool. It just won't be updated.

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.

🌐 Use it online: grub-basket.github.io/CSV-to-Obsidian-Properties-for-Bases — no download needed. Hat tip to @fork-archive-hub, whose fork was quietly serving this on GitHub Pages before the original repo got around to it.

Need to go the other way? Try the companion tool Bases to CSV — a web app that takes a folder of Markdown files and exports a single .csv you can open back in Excel. Handy as an escape hatch if Obsidian ever breaks, since an Obsidian Base is really just a YAML view/query definition — the actual data lives in each note's frontmatter, not in the Base itself — so there's no built-in way to get a plain spreadsheet back out.


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: Status bar reporting rows and included columns, above the download button


Features


File Structure

Keep these files in the same folder:

obsidian-note-generator/
├── obsidian-note-generator.html   ← open this in your browser
├── converter.js                   ← the conversion logic
├── theme-switch.js                ← dark/light theme toggle
├── styles-dark.css                ← dark theme
├── styles-light.css               ← light theme
└── jszip.min.js                   ← bundled locally for offline use

To go fully offline, also remove the Google Fonts @import line at the top of both CSS files. 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 — rows render as live YAML, and the ◀ ▶ buttons step through every row so you can catch 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

Type YAML output Notes
text property: "value" Default. Handles commas and special characters safely.
number property: 1234 Unquoted. Falls back to quoted text if the value isn't numeric.
date property: 2024-03-15 Normalizes multiple input formats to YYYY-MM-DD.
boolean property: true Recognizes true, yes, 1 as true; everything else is false.
list property:
  - "value"
Multi-value list. Cell values are split on semicolons or commas, one list item each.
link property: "[[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 format Example Output
Already correct 2024-03-15 2024-03-15
US (Excel default) 3/15/2024 2024-03-15
European 15-3-2024 or 15.3.2024 2024-03-15
Written month March 15, 2024 2024-03-15
Short month Mar 15 2024 2024-03-15
Excel serial 45366 2024-03-15

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


Tips


Offline Setup

The repo already ships jszip.min.js locally and the HTML references it with a relative path, so offline use works out of the box: download/clone the folder, open obsidian-note-generator.html, done.

Optionally remove the Google Fonts @import line at the top of styles-dark.css and styles-light.css to drop the last external dependency (fonts fall back to your system's monospace / sans-serif).


Example CSV

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


Requirements

Caveats & Disclaimers

Companion Tool — Bases to CSV

This tool gets data into Obsidian. Its companion, Bases to CSV, gets it back out:

🔗 bases-to-csv.netlify.app


Credits

Built Circa

2026.04.03-04

License

MIT. Bundled JSZip is dual-licensed MIT/GPLv3 and used here under MIT.