{ "_about": [ "The cases every implementation of the note grammar is tested against.", "One file, read by four test suites: core (derive.rs), the server (checklist.py, tags.py, helpers.py), the web (markdown.ts, colors.ts) and, for the tint, Android (DerivedTint.kt, which pins the same values by hand).", "A difference between any two implementations is a note that changes shape when it syncs. Add a case here, not to one suite.", "Lives under core/ because core is the definition, and because core/ is in the desktop, Android and server file sets, so changing a case reruns every suite that reads it.", "display_titles: a note's name is its first line that says anything once a task marker is stripped, cut to 200 characters (not bytes). Lines split on \\n alone, as the grammar does everywhere.", "recurrences: the repeat rules a reminder can carry, as stored. The server, the core and the web's editor each hold the list; Android's picker pins it by hand, as it does the tint.", "Tag cases are plain text on purpose. The web's renderer lets `code` and **bold** claim a `#` first, which the derivers do not; that is a rendering choice, not grammar, and is tested where it lives." ], "task_lines": [ { "line": "- [ ] milk", "item": { "checked": false, "text": "milk" } }, { "line": "- [x] milk", "item": { "checked": true, "text": "milk" } }, { "line": "- [X] milk", "item": { "checked": true, "text": "milk" } }, { "line": "* [ ] star bullet", "item": { "checked": false, "text": "star bullet" } }, { "line": " - [ ] indented", "item": { "checked": false, "text": "indented" } }, { "line": "\t- [ ] tab indent", "item": { "checked": false, "text": "tab indent" } }, { "line": "- [ ] two spaces after the bullet", "item": { "checked": false, "text": "two spaces after the bullet" } }, { "line": "- [ ]", "item": { "checked": false, "text": "" } }, { "line": "- [ ] ", "item": { "checked": false, "text": "" } }, { "line": "- [ ] trailing space kept ", "item": { "checked": false, "text": "trailing space kept " } }, { "line": "- [ ]x", "item": null }, { "line": "-[ ] x", "item": null }, { "line": "+ [ ] plus bullet", "item": null }, { "line": "- [y] x", "item": null }, { "line": "- [ ] x", "item": null }, { "line": "text - [ ] x", "item": null }, { "line": "- milk", "item": null }, { "line": "", "item": null } ], "rendered_items": [ { "text": "milk", "checked": false, "line": "- [ ] milk" }, { "text": "milk", "checked": true, "line": "- [x] milk" }, { "text": "", "checked": false, "line": "- [ ]" }, { "text": "", "checked": true, "line": "- [x]" } ], "tags": [ { "body": "#todo buy milk", "tags": ["todo"] }, { "body": "buy #milk and #eggs", "tags": ["milk", "eggs"] }, { "body": "#Todo and #todo", "tags": ["Todo"] }, { "body": "line one\n#two", "tags": ["two"] }, { "body": "#tag, and #more.", "tags": ["tag", "more"] }, { "body": "#x-y_z9", "tags": ["x-y_z9"] }, { "body": "#café #über", "tags": ["café", "über"] }, { "body": "(#todo)", "tags": [] }, { "body": "end.#tag", "tags": [] }, { "body": "https://x.com/#section", "tags": [] }, { "body": "#tag#more", "tags": ["tag"] }, { "body": "a#b", "tags": [] }, { "body": "x-#tag", "tags": [] }, { "body": "##x", "tags": [] }, { "body": "#1st", "tags": [] }, { "body": "#2024", "tags": [] }, { "body": "#_x", "tags": [] }, { "body": "# heading", "tags": [] }, { "body": "see https://x.com/page#frag", "tags": [] }, { "body": "", "tags": [] } ], "lifts": [ { "body": "#todo\nreorganize the homepage", "standalone": ["todo"], "inline": [], "lifted": "reorganize the homepage" }, { "body": "buy milk #grocery", "standalone": [], "inline": ["grocery"], "lifted": "buy milk #grocery" }, { "body": "first\n\n#todo\n\nsecond", "standalone": ["todo"], "inline": [], "lifted": "first\n\nsecond" }, { "body": "#todo\ncall #todo later", "standalone": [], "inline": ["todo"], "lifted": "call #todo later" }, { "body": "#a #b", "standalone": [], "inline": ["a", "b"], "lifted": "#a #b" }, { "body": "```\n# comment #todo\n```", "standalone": [], "inline": ["todo"], "lifted": "```\n# comment #todo\n```" }, { "body": "(#todo)\nnotes", "standalone": [], "inline": [], "lifted": "(#todo)\nnotes" } ], "display_titles": [ { "body": "", "title": "" }, { "body": "\n\n Shopping \nmilk", "title": "Shopping" }, { "body": "- [ ] milk\n- [x] eggs", "title": "milk" }, { "body": "- [ ]\n- [ ] bread", "title": "bread" }, { "body": " \n\t\nlate start", "title": "late start" }, { "body": "one\r\ntwo", "title": "one" }, { "body": "a\rb\nc", "title": "a\rb" }, { "body": "a\u2028b\nc", "title": "a\u2028b" }, { "body": "ééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé", "title": "éééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééééé" } ], "recurrences": ["daily", "weekly", "monthly", "yearly"], "tint": { "keys": ["red", "orange", "yellow", "green", "teal", "blue", "purple", "pink", "gray"], "hashes": [ { "id": "00000000-0000-0000-0000-000000000000", "hash": 3192360657, "color": "purple" }, { "id": "11111111-1111-1111-1111-111111111111", "hash": 1031130113, "color": "blue" }, { "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", "hash": 4043892016, "color": "orange" }, { "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "hash": 1533351232, "color": "orange" } ], "names": [ { "name": "todo", "color": "pink" }, { "name": "grocery", "color": "blue" }, { "name": "work", "color": "green" }, { "name": "home", "color": "gray" }, { "name": "ideas", "color": "green" }, { "name": "reading", "color": "gray" }, { "name": "urgent", "color": "red" } ] } }