十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Karakeep 如何用列表和智能列表把书签组织成动态视图

Karakeep 如何用列表和智能列表把书签组织成动态视图 Karakeep 如何用列表和智能列表把书签组织成动态视图【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarderKarakeep 中的列表Lists是书签组织的核心层每条保存的内容都可以同时放在多个列表里按项目、主题或读者分组而不需要复制书签。列表分两种——手动列表manual手动往里加书签和智能列表smart由一条保存的搜索查询驱动、自动更新。这篇文章的目标是在你的 Karakeep 实例中创建这两种列表用查询语言设计一个动态视图比如只显示未归档的 AI 标签书签并通过 CLI 与 API 验证列表内容是否符合预期。前提是你已经有一个可访问的 Karakeep 实例。命令行操作部分还需要一个 API key从 Karakeep 的设置页获取文档见 Command Line Tool (CLI)。先弄清两种列表的分工根据 Lists 文档手动列表手工维护的精选集合适合项目、阅读队列或手挑的合集。可以是private只有你自己可见或public分享一个只读链接也可以协作——通过邮件邀请别人以 viewer只浏览或 editor可以加入自己的书签身份参与即使列表共享你个人的状态收藏/归档仍然属于你自己。智能列表由一条保存的搜索查询saved search query驱动、自动更新的列表文档给出的例子是#ai -archived。适合做动态视图例如 Youtube links added last week 或 All reddit links from r/selfhosted 这类会随新书签自动变化的集合。Tags 文档 的建议是标签tags用于宽泛发现列表用于干净的手挑整理标签会跟着书签出现在任何地方而智能列表正好用#tag查询把标签筛选固化成一个视图。用查询语言设计动态视图智能列表的query使用 Karakeep 的搜索查询语言。基本语法规则空格分隔多个条件表示隐式 AND用and/or写显式布尔逻辑用-或!前缀取反例如-is:archived或!is:archived用括号()分组条件注意分组本身不能被取反。与动态视图最相关的一组限定符qualifier如下完整表格见上述文档限定符含义文档示例is:archived已归档书签-is:archivedis:inlist/is:tagged在一个或多个列表 / 带标签的书签is:inlistis:link,is:text,is:media按书签类型过滤is:linkurl:valueURL 子串匹配url:example.comtitle:value标题子串匹配title:example#tag/tag:tag按标签匹配#importantlist:name在指定列表中的书签list:readingafter:date/before:date创建日期在某个日期YYYY-MM-DD之后/之前after:2023-01-01age:time-range按创建时间距今多久单位d/w/m/y/表示最大/最小年龄age:1dage:2wfeed:name从某个 RSS feed 导入的书签feed:Hackernewssource:value按来源过滤api、web、cli、mobile、extension、singlefile、rss、importsource:rss不属于限定符的文本会被当作全文搜索。文档中给出的示例查询可直接照抄到智能列表的query里# 2023 年收藏的、带 important 标签的书签 is:fav after:2023-01-01 before:2023-12-31 #important # 已归档、且在 reading 列表或带 work 标签的书签 is:archived and (list:reading or #work) # 没有标签、也没有放进任何列表的书签 -is:tagged or -is:inlist # 未收藏且未归档的书签 -is:fav -is:archived准备条件安装 CLI 并配置 API keynpm install -g karakeep/cli也可以不改本机环境用 Docker 方式体验docker run --rm ghcr.io/karakeep-app/karakeep-cli:release --help从 Karakeep 设置页拿到 API key 后先验证连接是否正常karakeep --api-key key --server-addr addr whoami其中key换成你的 API keyaddr换成你的服务器地址。文档示例仅为格式参考不是你的实际输出{ id: j29gnbzxxd01q74j2lu88tnb, name: Test User, email: testgmail.com }不想每次传--api-key/--server-addr的话把配置存到$XDG_CONFIG_HOME/karakeep/config.json未设置XDG_CONFIG_HOME时为~/.config/karakeep/config.json{ serverAddr: https://try.karakeep.app, apiKey: mysupersecretkey }优先级规则是命令行选项 环境变量KARAKEEP_API_KEY、KARAKEEP_SERVER_ADDR 配置文件。不提供服务器地址时CLI 默认连接https://cloud.karakeep.app。也可以用karakeep auth init交互式创建或更新这个文件。创建一个智能列表lists create子命令定义在 CLI 源码 apps/cli/src/commands/lists.ts 中官方 CLI 文档的命令帮助里只列出了list/delete/add-bookmark/remove-bookmark如果你的版本帮助里看不到create先跑karakeep lists --help确认。参数说明--name name列表名必填--icon icon列表图标必填取一个 emoji--type typemanual或smart默认manual--query query智能列表的搜索查询smart 列表必填--description description描述--parent-id id父列表 id用于把列表组织成树。按上一步设计的查询创建一个智能列表karakeep lists create --name AI Inbox --icon --type smart --query #ai -archived创建成功时 CLI 会打印新列表的对象失败时打印Failed to create list。同一入口也可以建手动列表——--type省略即为manual且此时不能带--query。如果你走 API 而不是 CLI对应的是POST /lists文档Create a new list。请求体要求name和icontype取manual或smartsmart 列表必须带query、manual 列表不能带query——违反这一点会返回 400文档原文给出的 400 情形就是 smart list missing query, or manual list with a query。成功返回 201 和列表对象其中包含id、type、query等字段401 表示 Bearer token 缺失、无效或过期。把书签加入或移出手动列表手动列表靠显式增删维护。CLI 对应子命令# 把指定书签加入列表 karakeep lists add-bookmark --list listId --bookmark bookmarkId # 从列表移除书签 karakeep lists remove-bookmark --list listId --bookmark bookmarkIdlistId和bookmarkId分别替换为你列表和书签的 id。成功时打印Successfully added bookmark ... to list with id ...之类的确认信息失败时打印对应错误。智能列表不需要也不靠手动增删——它的内容由查询实时算出。验证列表与动态视图验证分三层列表清单与计数karakeep lists list不带--json时CLI 以树形表格列出所有列表列为Id、Name、Description、Bookmarks书签数并顺带打印各列表的书签统计加--json则输出原始 JSON。新建的智能列表应出现在表中且Bookmarks数量就是当前匹配查询的书签数。列表详情karakeep lists get id输出包含Type、Query智能列表的查询、Parent、Public、Role等字段用它确认列表类型和查询内容与你的设计一致。列表内书签智能列表的核心验证点调用GET /lists/{listId}/bookmarks文档Get bookmarks in a list。该接口文档明确说明For smart lists, bookmarks are computed from the lists query.返回 200含bookmarks数组和nextCursor无更多结果时为 null可用作翻页游标。可选查询参数sortOrder按创建时间asc/desc默认desc、limit每页条数、cursor上一页返回的游标、includeContent设为 true 时返回完整正文内容false 时响应更轻。返回 401 是认证问题404 表示列表不存在。动态视图的验证方式新保存的书签如果满足列表查询会出现在该智能列表中不符合的不会。这正是 smart 列表相对手动列表的差异——视图随书签库自动演化而不是靠手工维护。限制与边界查询里括号分组可以嵌套但分组不能被取反查询语言文档明确说明 groups cant be negated。name上限 100 字符description上限 500 字符POST /lists的请求 schema。public 只读分享与 email 协作viewer/editor是文档在手动列表条目下描述的属性智能列表条目没有说明这两点不要假设它们同样可用。CLI 认证三件套API key、服务器地址、配置文件的 JSON 格式必须与 Command Line Tool (CLI) 一致whoami是判断配置是否正确的第一道检查。想进一步自动化例如新书签满足条件时自动归档或进列表文档给出的下一步是规则引擎与 API/Webhooks用 if-this-then-that 风格规则基于元数据或内容自动打标、收藏或把书签路由进列表。【免费下载链接】hoarderA self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search项目地址: https://gitcode.com/GitHub_Trending/ho/hoarder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表