惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
GbyAI
GbyAI
P
Proofpoint News Feed
B
Blog
MyScale Blog
MyScale Blog
V
V2EX
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
量子位
Jina AI
Jina AI
博客园 - 叶小钗
Recent Announcements
Recent Announcements
有赞技术团队
有赞技术团队
罗磊的独立博客
L
LangChain Blog
I
InfoQ
云风的 BLOG
云风的 BLOG
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
人人都是产品经理
人人都是产品经理
小众软件
小众软件
V
Visual Studio Blog
月光博客
月光博客
The Cloudflare Blog
雷峰网
雷峰网

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - djakish/obsidian-taqta
wasdwasdwasd · 2026-06-22 · via Hacker News: Show HN

Taqta (Kazakh: тақта, "board") is an Are.na-style visual pinboard inside Obsidian. Collect images, video, links and text as square blocks organised into channels — each channel is a single Obsidian note, so everything stays local, portable, syncable and version-controllable.

Not affiliated with are.na — Taqta is a local, offline workspace inspired by Are.na. It does not sync with the are.na service.

Taqta — channels, the square-block grid, and the block detail view

Features

  • Home — every channel as an equal-size card: name + stats (block count, last updated) on the left, a strip of content previews on the right.
  • Channel — a grid of square blocks. The first cell is the add box: drop or choose files, paste a URL (image, video or link), or type text.
  • Square blocks — any media is fitted to the square with object-fit: contain: a tall image fills the height, a wide one fills the width — never cropped, stretched, or overflowing.
  • Real media — paste a URL and the media is downloaded into your assets folder, with the title/headline pulled and the original URL kept as the source. Uses yt-dlp when available (Instagram, TikTok, YouTube, X, Reddit, Vimeo, …), falling back to Open Graph scraping.
  • Block detail — rename, add alt text, edit tags, see source / format / file size, download the original, or delete.
  • Tags & filtering — hidden per-block tags; click chips on a channel to filter. Optional lightweight auto-tagging from title + domain.
  • Reorder — drag blocks to reorder; order is persisted to the channel file.
  • Export — one click writes a flat CSV + JSON next to the channel.
  • Native & cross-platform — pure TypeScript, no native deps, themed entirely by your active Obsidian theme. Works on desktop and mobile.

Data model

No separate database. Each channel is one markdown file:

---
taqta-channel: true
title: reno
created: 2026-06-01T10:00:00.000Z
updated: 2026-06-22T12:30:00.000Z
blocks:
  - id: lz3k9a2b
    type: image
    title: curtains
    source: https://instagram.com/p/…
    asset: Taqta/Assets/lz3k9a2b.jpg
    alt: linen curtains in afternoon light
    tags: [interior, curtains, instagram]
    width: 1080
    height: 1350
    fileSize: 217088
    contentType: image/jpeg
    created: 2026-06-01T10:00:00.000Z
---
Free-form channel description goes here.

The order of the blocks array is the display order. Reads/writes go through Obsidian's official processFrontMatter API. Why frontmatter and not SQLite / a table / one big JSON? The file stays a real, navigable Obsidian note (graph, links, body description), the data is structured enough for arrays + multi-line text + nested fields, and it syncs and diffs cleanly. Use Export when you want a flat table for spreadsheets or scripts.

Media extraction (yt-dlp)

When a URL is pasted, the fetcher first tries a locally installed yt-dlp — the de-facto media downloader that already supports Instagram, TikTok, YouTube, X/Twitter, Reddit, Vimeo and ~1800 sites, so real videos (not just a preview thumbnail) get saved, and new platforms are supported automatically as yt-dlp adds them.

  • Install it: brew install yt-dlp / pipx install yt-dlp / winget install yt-dlp. ffmpeg is recommended for high-res merges; Taqta prefers single-file formats so it works without ffmpeg for most social media.
  • Desktop only: yt-dlp runs as a subprocess (unavailable on mobile). There, and when yt-dlp isn't installed, Taqta falls back to the Open Graph preview.
  • Set the binary path and verify it in Settings → Taqta → Media download → Check.
  • For login-walled sites (e.g. Instagram), set Cookies from browser (chrome / safari / firefox / edge / brave).

Adding resolvers

Without yt-dlp, resolvers in src/resolvers/ read Open Graph / Twitter card tags. To add a custom one, implement Resolver and register it before the catch-all generic resolver in src/resolvers/index.ts#rebuild(). Download, asset storage, dimensions and tagging are handled centrally.

Install (development)

npm install
npm run build        # outputs main.js

Copy main.js, manifest.json, and styles.css into your vault at <vault>/.obsidian/plugins/taqta/, then enable Taqta in Settings → Community plugins. For live development use npm run dev (watch) and symlink the folder into your vault.

Open with the ribbon grid icon or the command Taqta: Open home.

Settings

  • Channels folder / Assets folder — where notes and downloaded media live (default Taqta/Channels and Taqta/Assets).
  • Preview thumbnails — how many previews show on a channel card.
  • Suggest tags automatically — derive tags from title + domain on add.
  • Use yt-dlp / yt-dlp path / Cookies from browser — real media extraction (with a Check button to verify the binary).
  • User-Agent — sent when fetching link metadata.

License

MIT © djakish