siyuan-note/siyuan · warning
The doc in the user guide does not support sharing to the…
Error message
The doc in the user guide does not support sharing to the community
What it means
Export2Liandi refuses to share documents that live in the built-in user-guide notebook, returning localized message 204 ('The doc in the user guide does not support sharing to the community'). Sharing guide content to the community endpoint was intentionally disabled (issue #8388).
Solutions
- Copy the content into a personal notebook and share it from there
- Client-side: filter out the user-guide notebook before offering the share action
- Scripts: skip boxes for which IsUserGuide returns true
Defensive patterns
Strategy: validation
Validate before calling
if model.IsUserGuide(boxID) {
// hide or disable the share-to-community action for guide docs
} Try / catch
if err := model.Export2Liandi(id); err != nil {
if err.Error() == model.Conf.Language(204) {
// guide doc: inform user to copy content to a personal notebook
}
} Prevention
- Filter the user-guide notebook out of bulk share operations
- Copy guide content into personal notebooks before sharing
- Localize the handling on message 204 rather than raw error text
When it happens
Trigger: Invoking export/share-to-liandi on any doc whose box passes IsUserGuide(tree.Box), i.e. the SiYuan user guide notebook.
Common situations: User browses the built-in user guide and tries the share-to-community action; scripts that iterate all notebooks hit the guide notebook.
Related errors
- Conf.Language(204)
- code block has no code node
- Conf.Language(115)
- Conf.Language(115) (Pandoc binary invalid)
- Conf.Language(14)
AI-assisted analysis of siyuan-note/siyuan@afa823b6b4 (2026-08-18).
Data as JSON: /api/errors/3bf3d1532865e183.
Report an issue: GitHub.
Appendix: source
Thrown at kernel/model/export.go:391
} else {
zipPath = "/export/csv/" + url.PathEscape(filepath.Base(absZipPath))
}
return nil
})
return
}
func Export2Liandi(id string) (err error) {
err = withExportReadLockByBlockID(id, func() error {
tree, loadErr := LoadTreeByBlockID(id)
if loadErr != nil {
logging.LogErrorf("load tree by block id [%s] failed: %s", id, loadErr)
return loadErr
}
if IsUserGuide(tree.Box) {
// Doc in the user guide no longer supports one-click sending to the community https://github.com/siyuan-note/siyuan/issues/8388
return errors.New(Conf.Language(204))
}
assets := getAssetsLinkDests(tree.Root, false)
embedAssets := getQueryEmbedNodesAssetsLinkDests(tree.Root)
assets = append(assets, embedAssets...)
assets = gulu.Str.RemoveDuplicatedElem(assets)
_, err = uploadAssets2Cloud(assets, bizTypeExport2Liandi, false)
if err != nil {
return err
}
msgId := util.PushMsg(Conf.Language(182), 15000)
defer util.PushClearMsg(msgId)
// 判断帖子是否已经存在,存在则使用更新接口
const liandiArticleIdAttrName = "custom-liandi-articleid"
const liandiArticleIdAttrNameOld = "custom-liandi-articleId" // 兼容旧属性名
foundArticle := falseView on GitHub (pinned to afa823b6b4)