obsidian-showcase-vault

Obsidian showcase vault with self-developed plugins, configs, scripts, and templates.

Obsidian Showcase Vault

[中文 | English | Русский]

This is an Obsidian showcase vault demonstrating the use of three self-developed plugins, along with their configurations, scripts, and templates.


Installed Plugins

This vault includes the following community plugins, all developed by @Kevin:

PluginDescription
Buttons PanelCreate customizable button panels for quick access to files, commands, links, and scripts
Music PlayerPlay local music files from the vault in the sidebar
Code ViewerView and edit code files with native syntax highlighting
Fast CopierAdd a copy button next to formatted text (inline code, bold, headings, links, tags, etc.) for instant copying

1. Buttons Panel

Buttons Panel is the core demo plugin of this vault. Through custom scripts, it enables search, keychain management, weather queries, view switching, and more.

Directory Structure

assets/community-plugins/buttons-panel/
├── scripts/          # Executable scripts (14 total)
├── skills/           # AI script writing guide
└── templates/        # Note templates

Script List

🔍 Search & Navigation

ScriptDescription
bp_file-search.jsFile Search — Opens a fuzzy search modal to quickly find files by name and open them in a new tab. Displays file-type icons (📝 Markdown, 🎨 Canvas, 🖼️ images, etc.).
bp_folder-search.jsFolder Search — Opens a fuzzy search modal to quickly locate folders and auto-focus them in the file explorer, with auto-collapse support.

📊 Vault Management

ScriptDescription
bp_folder-tree.jsVault Folder Tree — Generates a tree view of all vault folders with one click, output to Vault Folder Structure.md for easy visualization.

🔑 Keychain Management

ScriptDescription
bp_keychain-list.jsKeychain List — Lists all saved secret keys and their count in the current vault (via Obsidian secretStorage API).
bp_keychain-manage.jsKeychain Manage — Opens a GUI panel for full CRUD operations on secrets: view, add, edit, delete, copy, and batch export. Supports sorting by name/time with masked value previews.
bp_keychain-sync.jsKeychain Sync — Syncs secrets across multiple vaults. The master vault exports all secrets to a JSON file; other vaults import (backup + merge new/updated, no deletion).

🌤️ Utilities

ScriptDescription
bp_qweather-jwt.jsQWeather Query — Queries real-time weather from QWeather API using JWT + Ed25519 authentication. Displays temperature, feels-like, conditions, wind, and humidity with emoji icons. Requires pre-configured API credentials stored in the keychain.
⚠️ Note: The pre-configured API key in this vault is the author's personal key. Please register at QWeather Developer Platform to generate your own. See help/api-reference.md for detailed setup instructions.

🎨 View & Theme

ScriptDescription
bp_switch-light-and-dark.jsToggle Light/Dark Theme — One-click toggle between Obsidian light and dark themes.
bp_switch-to-source-mode.jsSwitch to Source Mode — Switch the current file to Markdown source editing mode.
bp_switch-to-live-preview.jsSwitch to Live Preview — Switch the current file to live preview mode (WYSIWYG).
bp_switch-to-reading-mode.jsSwitch to Reading Mode — Switch the current file to pure reading mode.
bp_switch-view-mode.jsCycle View Mode — Cycle between Reading → Source → Live Preview, with mode notifications.

⚙️ Config Sync

ScriptDescription
bp_hotkeys-sync.jsHotkeys Sync — Copy hotkeys.json from a source vault to multiple target vaults, unifying hotkey configurations across vaults.

AI Script Writing Guide

skills/SKILL.md is a specification for AI coding assistants on how to write scripts for the Buttons Panel plugin. It defines the export format, context API, helper function conventions, and more.

Key conventions:

  • Export via module.exports = { entry, name, description, tags }
  • Access context via this.$context (app, obsidian, notice, requestUrl, etc.)
  • Entry function must be a regular function (not arrow), to ensure correct this binding

Note Templates

The templates/ directory provides two note templates:

TemplatePurpose
Journal.mdDaily journal template
meeting.mdMeeting notes template

2. Music Player

Music Player plays local music files from the vault in the Obsidian sidebar. This vault demonstrates how to use the plugin to manage a music library.

Directory Structure

assets/attachments/music/    # Music file storage

Sample Library

The vault comes with 4 sample tracks (5 audio files), showcasing the plugin's music management capabilities:

SongArtistAlbumFormat
不能说的秘密 (Secret)Jay ChouSecret OSTFLAC
菊花台 (Chrysanthemum Terrace)Jay ChouStill FantasyFLAC
我的梦 (My Dream)Jane Zhang我的梦MP3
Dream It PossibleJane ZhangDream It PossibleMP3

Features

  • Music Library Management: Auto-scans audio files in the vault, supports FLAC, MP3, and more
  • Metadata Parsing: Auto-extracts title, artist, album, year, genre, etc.
  • Lyrics Support: Built-in LRC lyrics display (all sample tracks include full embedded lyrics)
  • Favorites: Mark frequently played tracks as favorites (My Dream and Chrysanthemum Terrace are favorited in the demo)
  • Playback Controls: Volume adjustment (default 30%), playback speed, auto-play, and more
  • Browse by Artist/Album: Tracks are automatically categorized by artist and album

Configuration

Plugin config at .obsidian/plugins/music-player/data.json. Key settings:

SettingValueDescription
musicFolder""Music folder path (empty = scan entire vault)
volume0.3Default volume (0–1)
playbackRate1Playback speed multiplier
autoPlayOnOpenfalseAuto-play on startup

3. Code Viewer

Code Viewer allows viewing and editing code files directly in Obsidian with native syntax highlighting.

Features

  • Multi-language Support: 40+ programming languages and config file formats
  • Line Numbers: Enabled by default for easy code navigation
  • Edit Mode: Edit code files directly in Obsidian, opened in the current tab

Supported File Types

The following file extensions have syntax highlighting enabled:

CategoryExtensions
Python.py
JavaScript / TypeScript.js, .jsx, .mjs, .cjs, .ts, .tsx
Web.html, .css, .scss, .less, .vue, .svelte
Shell Scripts.sh, .bash, .zsh, .fish, .bat, .cmd, .ps1, .psm1
Backend Languages.go, .rs, .rb, .php, .pl, .kt, .swift, .dart
C Family.c, .cpp, .cc, .h, .hpp, .cs
Config Files.json, .json5, .jsonc, .yml, .yaml, .toml, .ini, .conf, .env, .xml
Data / Query.sql, .graphql, .gql
IaC.tf, .tfvars, .hcl, .proto
Other.lua, .gd, .gdshader, .r

Configuration

Plugin config at .obsidian/plugins/code-viewer/data.json. Key settings:

SettingValueDescription
showLineNumberstrueShow line numbers
enableEdittrueAllow editing code files
editOpenMode"current"Open in current tab when editing

4. Fast Copier

Fast Copier adds a copy button next to formatted text — inline code, bold, italic, highlights, headings, tags, links, and more — in both Editing and Reading modes. Click the button to copy the content instantly, with no external dependencies.

Features

  • Copy Buttons on Formatted Text: Works with inline code, bold, italic, underline, strikethrough, highlights, headings, tags, internal links, and external links
  • Dual-Mode Support: Functions in both Editing (source) and Reading (live preview/preview) modes, with a unified toggle list
  • Unified Content-Type Settings: Enable/disable each content type via a checkbox list — no need to edit regex or CSS selectors
  • Command Toggle: Use the "Toggle show/hide copy button" command to show or hide all copy buttons at once
  • Custom Icon: Choose the icon used for the copy button
  • Copy Notification: Optionally show a notice after copying
  • Zero Dependencies: Uses only the Obsidian API at runtime
  • Multi-language UI: Supports English, 中文, and Русский

Configuration

Plugin config at .obsidian/plugins/fast-copier/data.json. Key settings:

SettingDefaultDescription
Content typesAll enabledCheckbox list controlling which types show a copy button
Copy button iconcopyIcon used for the copy button
Show copy noticetrueWhether to show a notice after copying

Note: Button visibility is controlled by a command, not a setting.


Vault Directory Overview

.
├── .obsidian/                       # Obsidian config directory
│   └── plugins/                     # Installed plugins
│       ├── buttons-panel/           # Buttons Panel plugin
│       ├── music-player/            # Music Player plugin
│       ├── code-viewer/             # Code Viewer plugin
│       └── fast-copier/             # Fast Copier plugin
├── assets/
│   ├── attachments/
│   │   └── music/                   # Music files (5 sample tracks)
│   └── community-plugins/
│       └── buttons-panel/
│           ├── scripts/             # Buttons Panel scripts (14)
│           ├── skills/              # AI script writing guide
│           └── templates/           # Note templates
├── help/
│   ├── api-reference.md             # External API reference (English)
│   ├── api-reference-zh.md          # External API reference (Chinese)
│   └── api-reference-ru.md          # External API reference (Russian)
├── README.md                        # English (this file)
├── README.ru.md                     # Russian
├── README.zh.md                     # Chinese

Requirements

  • Obsidian >= 1.13.4
  • All plugins must be enabled in Community Plugins

Getting Started

  1. Clone this vault and open it with Obsidian
  2. Enable Buttons Panel, Music Player, Code Viewer, and Fast Copier in Community Plugins settings
  3. Buttons Panel: Configure the script folder path to assets/community-plugins/buttons-panel/scripts in plugin settings, then add script buttons in the panel
  4. Music Player: Place music files anywhere in the vault (or in assets/attachments/music/); the plugin auto-scans and shows the player in the sidebar
  5. Code Viewer: Click any code file (e.g., .js, .py) in the vault to view and edit with syntax highlighting
  6. Fast Copier: A copy button appears next to supported formatted text (inline code, bold, # Headings, #tags, [[links]], etc.); click it to copy. Use the "Toggle show/hide copy button" command to show/hide all buttons, and customize content types in Settings → Fast Copier

License

This project is for learning and reference. Feel free to modify and use.

Related

How to Install

  1. Download the ZIP or clone the repository
  2. Open the folder as a vault in Obsidian (File → Open Vault)
  3. Obsidian will prompt you to install required plugins

Stats

Stars

0

Forks

0

Last updated 20d ago

Categories