{"adoption": {"forks": 201, "observed_at": "2026-08-28T04:05:28.950098+00:00", "stars": 1733}, "canonical_url": "https://ross.abutalabs.com/products/markdownxiaoshujiang", "card": {"archived": false, "artifact_type": "application", "description": "小书匠是一款本地优先，去中心化，分布式，支持选择性同步的全平台覆盖知识管理笔记软件。", "domain": ["developer-tools", "text-editors", "cross-platform"], "enriched": true, "function": ["editor", "markdown", "documentation", "file-system", "search-engine"], "health_score": 34, "homepage": "http://soft.xiaoshujiang.com", "language": null, "license": null, "license_family": "other", "maturity": "active", "member_repos": ["suziwen/markdownxiaoshujiang"], "name": "suziwen/markdownxiaoshujiang", "platform": ["windows", "self-hosted", "cross-platform"], "pushed_at": "2025-02-03T06:02:12+00:00", "repo": "suziwen/markdownxiaoshujiang", "stars": 1733, "tags": ["note-taking", "pkms", "local-first", "markdown-editor", "evernote", "wiznote", "dropbox", "webdav", "mindmap", "drawio", "mermaid", "knowledge-management", "selective-sync", "decentralized", "macos", "linux", "android", "ios", "web-server", "docker"], "topics": ["markdown", "editor", "notes", "evernote", "wiz", "dropbox", "mindmap", "drawio", "knowledge-management", "notes-app", "notes-taking-app", "pkms"], "urls": [], "use_cases": ["write and edit markdown notes with vim/emacs keybindings", "manage a personal knowledge base with tags, backlinks, and categories", "sync notes selectively across devices via my own server or webdav", "draw diagrams and mindmaps inside notes with mermaid and drawio", "import and export notes between evernote, wiznote, and markdown files", "take notes offline with local-first storage and version history", "write math formulas and preview them in markdown", "self-host a note server with docker for full-text search"], "what_it_is": "Xiaoshujiang (Story Writer) is a local-first, decentralized note-taking and knowledge management application built around a powerful Markdown editor. It supports multiple storage backends (GitHub, GitLab, Gitee, Dropbox, Evernote, WizNote, WebDAV, local files), selective sync, and runs across web, desktop, and mobile platforms.", "when_to_avoid": ["you need real-time collaborative editing with a team", "you want a simple minimal notes app without a learning curve", "you require an official open-source license or want to self-host the full client from source", "you depend on a polished mobile experience as your primary workflow"], "when_to_choose": ["you want a local-first markdown note app with strong editor features like multi-cursor, regex search, and wysiwyg modes", "you need flexible storage backends including git hosting, evernote, wiznote, and webdav", "you want diagrams, mathjax, and mindmaps embedded in your notes", "you need cross-platform coverage including web, desktop, and mobile", "you prefer decentralized sync you control yourself"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/markdownxiaoshujiang", "repo": "suziwen/markdownxiaoshujiang", "role": "main", "score": 25}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:28.950098+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:31:28.305697+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "04de6feb128a2257704a49197d143c9cd5c16f92aaf626f40fe2d8a727c3c3ad", "fetched_at": "2026-08-28T04:05:28.950098+00:00", "kind": "readme", "missing": false, "url": "https://github.com/suziwen/markdownxiaoshujiang"}, {"content_hash": "dd37c590b4eb7c1cb1c45066163406d6b00d6f5eaef6c740c919beeae7472233", "fetched_at": "2026-08-29T11:08:49.790083+00:00", "kind": "homepage", "missing": false, "url": "http://soft.xiaoshujiang.com"}, {"content_hash": "e9cb87e24dad14bde2a40db43cb121c30163bd270519c3ff6f9ff385988d4ac5", "fetched_at": "2026-08-29T11:08:49.798887+00:00", "kind": "site_page", "missing": false, "url": "https://soft.xiaoshujiang.com/docs"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 4, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4605, "days_push": 576, "days_rel": 576, "gap_med": null, "n_releases_24m": 1}, "score": 25, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}