An Obsidian plugin that extracts attendee names from your notes/files and updates the YAML frontmatter with templated links.
Please note: this is a very opinionated plugin. I built this quickly using Cursor to solve a very specific design challenge with how I use Obsidian for tracking meetings at work, and how I'd like Bases to work with my notes moving forward. I have no intentions of adding additional features unless my personal workflow changes. I have added what I believe to be enough configuration that others could use this assuming they have a relatively similar use case they want to solve.
- Automatic Extraction: Extracts attendee names from a specified heading section
- Template Support: Uses customizable templates to format attendee names (e.g.,
[[People/{name}|{name}]]) - YAML Frontmatter Integration: Updates or creates YAML frontmatter properties
- Directory Filtering: Restrict plugin operation to specific directories
- Auto-save Support: Optionally run extraction automatically when files are saved
- Bulk Processing: Process all files in a directory at once
- Flexible Name Parsing: Handles various name formats including roles (e.g., "Name -> Role")
-
Create a markdown file with an "Attendees" section:
--- categories: - "[[Meetings]]" tags: - meetings people: [] --- # Meeting Title ## Attendees - Ryan Morrissey -> SC Mgr - Jane Van Doe -> Ramp - John Smith ## Meeting Notes Your meeting notes here...
-
Use the command palette (
Ctrl/Cmd + Shift + P) and run "Extract Attendees to Frontmatter" -
The frontmatter will be updated:
--- categories: - "[[Meetings]]" tags: - meetings people: - "[[People/Ryan Morrissey|Ryan Morrissey]]" - "[[People/Jane Van Doe|Jan Van Doe]]" - "[[People/John Smith|John Smith]]" ---
Use the "Extract Attendees from All Files" command to process all files in your configured directories at once.
The heading text to search for (default: "Attendees")
The YAML property name to update (default: "people")
Template for formatting each name (default: [[People/{name}|{name}]])
- Use
{name}as a placeholder for the extracted name
Automatically run extraction when files are saved
Comma-separated list of directories to restrict plugin operation
- Leave blank to allow all directories
- Example: "Meetings,Projects"
The plugin extracts names from bullet points under the specified heading:
- Basic format:
- Name→ extracts "Name" - With role:
- Name -> Role→ extracts "Name" - With dash:
- Name - Role→ extracts "Name" - Multiple words:
- First Last -> Role→ extracts "First Last"
The extraction stops at the first non-word character followed by a dash or arrow.
- Copy the plugin folder to your Obsidian vault's
.obsidian/plugins/directory - Enable the plugin in Obsidian settings
- Configure the settings as needed
This plugin is built with TypeScript and uses the Obsidian plugin API.
npm install
npm run buildnpm run devThere should be an entry for every single version. Versions use semantic numbered tags inside square brackets (e.g. tag v0.0.1 will be represented as [0.0.1] in the Changelog), are represented as a second level header, and include the date of the commit in YYYY-MM-DD format (e.g. ## [1.1.1] - 2023-03-05). There will be a single [Unreleased] second level header at the top of the Changelog to track upcoming changes. The latest version always comes first.
Types of changes that are tracked can be chosen from the list below. These are used as level three headers.
Addedfor new features.Changedfor changes in existing functionality.Deprecatedfor soon-to-be removed features.Removedfor now removed features.Fixedfor any bug fixes.Securityin case of vulnerabilities.