explaingit

jiaotangxq/obsidian-theme

14JavaScriptAudience · generalComplexity · 2/5ActiveLicenseSetup · moderate

TLDR

Modular Obsidian home-page dashboard built on the Dataview plugin, with tiles for greetings, habits, journal, gym log, year progress, and quick commands.

Mindmap

mindmap
  root((obsidian-theme))
    Inputs
      Obsidian vault
      Dataview plugin
      JSON data files
    Outputs
      Dashboard home page
      Tile modules
      Stats cards
    Use Cases
      Personal dashboard
      Habit tracking
      Daily journal
    Tech Stack
      JavaScript
      DataviewJS
      Obsidian
      Markdown

Things people build with this

USE CASE 1

Turn an Obsidian vault home page into a personal dashboard with tiles

USE CASE 2

Track habits, sleep, weight, and focus with editable JSON-backed tiles

USE CASE 3

Add a custom dashboard module using the MyDash render helpers

USE CASE 4

Reorder or remove tiles by editing one dataviewjs block

Tech stack

JavaScriptObsidianDataviewMarkdownCSS

Getting it running

Difficulty · moderate Time to first run · 30min

Requires the Dataview plugin with Enable JavaScript Queries on, and folder names cannot be renamed because modules load by relative path.

MIT license, do almost anything with the code as long as you keep the copyright notice.

In plain English

This repository turns the home page of the note-taking app Obsidian into a personal dashboard built out of separate tiles. The README, written in Chinese, lists tiles for a time-of-day greeting, a today's fortune compass with eight trigrams and daily do/don't lists, habit tracking, a year-progress bar, a journal recorder for weight, sleep, and focus, a gym log, recent edits, a canvas list, pinned notes, quick command buttons, and statistics cards for note count and word count. Each tile is one module, and the home page is assembled by listing whichever modules the user wants. The whole thing is built on the Dataview community plugin and does not require any other theme, plugin, or CSS snippet. All colours come from Obsidian's own CSS variables, so the dashboard follows the active theme and switches between light and dark mode automatically. The repository ships sample data so the home page is not empty on first open. The install steps ask the user to install Obsidian, install the Dataview plugin, and turn on its Enable JavaScript Queries setting. There are two ways to set it up: clone the repository and open the cloned folder as a vault, or copy 主页.md plus the 模块, 工具, and Data folders into the root of an existing vault. The README warns that the folder names cannot be changed because modules are loaded by relative path through dv.view(). A directory tree explains the structure. The 主页.md file is just a single dataviewjs block whose only job is to call dv.view() once per module. Each module lives in its own folder under 模块/, with a required view.js for logic and an optional view.css for styles. The 工具/ folder contains larger standalone pages for habits, journal, gym, and so on. The Data/ folder stores each module's state as a plain JSON code block inside a markdown file, so data can be hand-edited, synced, and version-controlled, and a broken view does not lose data. The second half of the README explains how to customise the dashboard: edit 主页.md to add, remove, or reorder dv.view() lines; edit the JSON data files for things like the quote library, quick commands, habits, and tool navigation; change the Obsidian accent colour to recolour everything; or write a new module by adding a folder under 模块/ with a view.js that calls a shared library called MyDash. MyDash exposes theme variables, DOM helpers, JSON read and write functions, and ready-made render components like section, card, ring, progressBar, and heatmap. A pitfalls table flags shared dv.container quirks, Obsidian's button style overrides, SVG sizing, and container-query versus viewport-query gotchas. The licence is MIT.

Copy-paste prompts

Prompt 1
Walk me through cloning JiaoTangXQ/obsidian-theme and opening it as a fresh Obsidian vault, including the Dataview JavaScript Queries setting.
Prompt 2
Show me how to drop the 主页.md, 模块, 工具, and Data folders into my existing Obsidian vault without breaking dv.view() paths.
Prompt 3
Write a new tile module for obsidian-theme that shows my current book reading list, using the MyDash card and section helpers.
Prompt 4
Explain how data is stored in the Data folder as JSON inside markdown code blocks and how to hand-edit a habit log safely.
Prompt 5
Help me change the Obsidian accent colour and CSS variables so the obsidian-theme dashboard matches a custom palette.
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.