Test Vault Home

Welcome to the comprehensive test vault for Obsidian publishing!

  1. unique - unique filename resolution
  2. folder/source - duplicate filename priority
  3. projectA/README - multiple conflicts across folders
  4. img-test - image resolution
  5. headers - headers and block references
  6. embedding - markdown embeds with duplicates
  7. software - image with same name as note (regression)
  8. scenarios_test - links with dots in filenames (regression)

Media Rendering Tests

  1. mp3 - audio player (mp3 wikilink and markdown embed)

Publishing Features Tests

  1. public - free public page (no paywall)
  2. paid_with_preview - paid content with 2 paragraph preview
  3. paid_with_cut - paid content with --- cut marker
  4. with_layout - custom layout test
  5. toc_test - table of contents (auto/show/hide)
  6. telegram_text - Telegram text post (no media, type: text)
  7. telegram_one_photo - Telegram single photo post (type: photo)
  8. telegram_one_video - Telegram single video post (type: photo, uses sendVideo)
  9. telegram_media_group - Telegram media group (2+ media, type: media_group)
  10. telegram_image_with_emoji - Image with custom emoji (tg_ce_* excluded from media)
  11. telegram_video_with_emoji - Video with custom emoji (ce.trip2g.com/* excluded from media)
  12. cyrillic_названия - Cyrillic in URLs and links
  13. File with spaces - spaces in filenames
  14. code_and_media - code blocks and media embeds
  15. complex_content - comprehensive markdown features
  16. redirect_test - page redirect functionality
  17. slug_relative - relative slug (replaces filename)
  18. slug_absolute - absolute slug (full path override)
  19. slug_with_subdir - slug with subdirectory
  20. slug_cyrillic - cyrillic slug (no transliteration)
  21. slug_spaces - slug with spaces (URL encoded)

JSON Layout Tests

  1. json_layout_test - JSON layout with sidebar (show_sidebar: true)
  2. json_layout_no_sidebar - JSON layout without sidebar (show_sidebar: false)
  3. json_layout_missing_include - JSON layout with missing include_note file

Layout Error Handling

  1. broken_layout_test - page with broken layout (parse error handling)

Subgraph (Premium Course) Tests

  1. premium - premium subgraph home page
  2. Check sidebar: should show premium sidebar for premium pages
  3. signin_wall - sign-in wall test page (free but gated by require_signin subgraph flag)

Frontmatter Patches Tests

  1. patch_tests/simple - simple patch (free: true)
  2. patch_tests/chained - chained patches with priorities
  3. patch_tests/conditional - conditional logic (layout only if missing)
  4. patch_tests/has_layout - conditional no-op (layout exists)
  5. patch_tests/excluded - excluded by exclude_patterns
  6. patch_tests/title_template - title template with meta merge
  7. patch_tests/path_based - jsonnet path-based logic

Multilangual

  1. lang_hub/index - should redirect to lang_hub/english or lang_hub/russian
  2. lang_hub/english - English content
  3. lang_hub/russian - Russian content
  4. lang_hub/german - German content
  5. lang_hub/english_hub - English content but
  6. lang_hub/english_hub_russian - Russian from english_hub

Telegram Post Links

  1. telegram_publish_message_link - note with telegram_publish_message_link (shows TG button)
  2. telegram_publish_message_link_parent - parent with alternatives pointing to TG note

Special Files Tests

  • _banner.md - banner embed (try

    I'm the ROOT banner at /_banner.md

    )
  • _sidebar.md - global sidebar
  • _sidebar_premium.md - subgraph-specific sidebar
  • _index.md in projectA and projectB

Key Test: Duplicate Priority

From folder/source:

  • [[dup]] → /dup.md (root!) ⚠️
  • [[folder/dup]] → /folder/dup.md ✅

From embedding:

  • ![[_banner]] → /_banner.md (root!) ⚠️
  • ![[projectA/_banner]] → /projectA/_banner.md ✅

Expected Behavior

  • Global link resolution with root directory priority
  • Explicit paths (e.g., folder/file) always work
  • Relative paths (./file) for local resolution
  • Subgraphs create separate content spaces with their own sidebars
  • Free content preview works with free_paragraphs and free_cut

Frontmatter Fields Tested

Field Example Purpose
free true No paywall
free_paragraphs 2 Show N paragraphs free
free_cut true Cut at --- marker
title "Page Title" Custom title
description "SEO text" Meta description
subgraphs premium Assign to course
sidebar false / path Show/hide/custom
layout custom/name Custom layout
toc auto/show/hide Table of contents
complexity 0/1/2 or easy/medium/hard Content difficulty
reading_time 5 Minutes to read
telegram_publish_at datetime Telegram post time
telegram_publish_tags [tag1] Telegram groups
hidden true Hide from listing
embed_class alert CSS class for embeds
slug custom-url or /full/path Custom URL (relative or absolute)

I'm the ROOT banner at /_banner.md