fixup! diigo-cache: RSS in diigo's export shape, from cached items
A diigo note item's body (note_content) renders first, as a Highlight: line, as the export does: the 6 "export has notes, cache none" items from the comparison were notes whose bodies the cache had all along. Generated-by: Claude Opus 5.5
This commit is contained in:
1 parent
81f91a6747
commit
cbde0dfbd3
2 files changed
+10
-2
No files matched your search
@@ -24,14 +24,16 @@ const list = (v: unknown): Record<string, unknown>[] => (Array.isArray(v) ? (v a
|
||||
* `Tags:a,b;Description:…;Annotations and Sticky notes:…` — tags
|
||||
* comma-separated (`no_tag` when none), then each highlight as
|
||||
* `Highlight:<text>\n` followed by its sticky notes, one
|
||||
* `Sticky notes:<text>\n` each (notes may span lines)
|
||||
* `Sticky notes:<text>\n` each (notes may span lines). A diigo *note*
|
||||
* item's body (`note_content`) comes first, as a `Highlight:` line.
|
||||
*/
|
||||
export function itemDescription(item: Item): string {
|
||||
const tags = str(item.tags) || "no_tag";
|
||||
const body = str(item.note_content) ? `Highlight:${str(item.note_content)}\n` : "";
|
||||
const notes = list(item.annotations)
|
||||
.map((a) => `Highlight:${str(a.content)}\n${list(a.stickyNotes).map((n) => `Sticky notes:${str(n.content)}\n`).join("")}`)
|
||||
.join("");
|
||||
return `Tags:${tags};Description:${str(item.description)};Annotations and Sticky notes:${notes}`;
|
||||
return `Tags:${tags};Description:${str(item.description)};Annotations and Sticky notes:${body}${notes}`;
|
||||
}
|
||||
|
||||
/** one `<item>`: title, link, packed description. The title is whole
|
||||
|
||||
@@ -21,6 +21,12 @@ describe("itemDescription", () => {
|
||||
);
|
||||
});
|
||||
|
||||
it("renders a note item's body as a Highlight line, as diigo's export does", () => {
|
||||
expect(itemDescription({ type_name: "note", tags: "", description: "", note_content: "the note", annotations: [] })).toBe(
|
||||
"Tags:no_tag;Description:;Annotations and Sticky notes:Highlight:the note\n",
|
||||
);
|
||||
});
|
||||
|
||||
it("says no_tag when there are no tags, and leaves empty parts empty", () => {
|
||||
expect(itemDescription({ tags: "", description: "", annotations: [] })).toBe(
|
||||
"Tags:no_tag;Description:;Annotations and Sticky notes:",
|
||||
|
||||
Reference in new issue
Block a user