🎉 New Features
Obsidian Markdown Export
- Wiki-links conversion — Same-domain
[text](url) → [[slug|text]] for Obsidian compatibility
- Relative asset paths — Absolute paths rewritten as relative to
.md file location
- Tags in frontmatter —
--obsidian-tags "tag1,tag2" adds YAML frontmatter tags
- CLI flags —
--obsidian-wiki-links, --obsidian-tags, --obsidian-relative-assets
Vault Auto-Detect & Quick-Save
- 4-tier vault detection — CLI
--vault > env OBSIDIAN_VAULT > config file > auto-scan upward for .obsidian/app.json
- Quick-save mode —
--obsidian --quick-save bypasses TUI, saves directly to {vault}/_inbox/YYYY-MM-DD-slug.md
- Rich metadata — Extended YAML frontmatter with
readingTime, language, wordCount, contentType, status for Dataview queries
- Obsidian URI — Opens saved notes in Obsidian via
obsidian://open?vault=...&file=... (Linux, fire-and-forget)
🐛 Bug Fixes
| Bug |
Severity |
Fix |
completions subcommand requires --url |
Medium |
required_unless_present=subcommand |
Frontmatter closing --- delimiter malformed |
Medium |
fm.trim_end() + explicit newline |
| Wiki-links corrupt embedded images |
Medium |
Regex alternation to skip images |
| Relative paths not converted to wiki-links |
Medium |
Handle root-relative paths (/path/to/page) |
| HttpClient missing redirect policy |
High |
.redirect(wreq::redirect::Policy::limited(10)) |
📦 New Dependencies
| Crate |
Version |
Purpose |
whatlang |
0.18 |
Language detection (pure Rust, ~81KB) |
urlencoding |
2.1 |
URL encoding for Obsidian URI |
slug |
0.1 |
URL slug generation for filenames |
pathdiff |
0.2 |
Cross-platform relative paths |
🧪 Testing
- 20/20 real-world tests passing across 6 different websites
- 361 unit tests passing (36 new for Obsidian features)
- 0 clippy warnings
- Verified against: books.toscrape.com, quotes.toscrape.com, webscraper.io, web-scraping.dev, scrapethissite.com, qwen-code-docs
📝 Documentation
- New
docs/OBSIDIAN.md — Complete Obsidian integration reference
- Updated
README.md — Obsidian features, usage examples, badges
- Updated
CHANGELOG.md — v1.1.0 release notes
- Updated
docs/CLI.md — Obsidian flags reference
- Updated
DEVELOPMENT.md — Latest achievements, test counts
💡 Usage Examples
# Quick-save to detected vault
rust_scraper --url https://example.com --obsidian --quick-save
# Full Obsidian mode
rust_scraper --url https://example.com \
--vault ~/Obsidian/MyVault \
--obsidian-wiki-links \
--obsidian-tags "rust,web,scraping" \
--obsidian-relative-assets
# Set vault via environment variable
export OBSIDIAN_VAULT=~/Obsidian/MyKnowledge
rust_scraper --url https://example.com --obsidian --quick-save
What's Changed
- feat(v1.3): SPA detection warning + JsRenderer trait stub by @XaviCode1000 in #20
- feat(obsidian): vault auto-detect, quick-save and rich metadata by @XaviCode1000 in #24
Full Changelog: v1.0.7...v1.1.0