text: TEST_DATA = [
      {
          "Date": "11/13/2021",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "understood that X does Y",
          "Valid": True,
          "LinkMarkdown": "[Python slots, slots, and object layout](https://www.youtube.com/watch?v=Iwf17zsDAnY)",
      },
      {
          "Date": "11/14/2021",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "Second note here",
          "Valid": True,
          "LinkMarkdown": "[Python slots, slots, and object layout](https://www.youtube.com/watch?v=Iwf17zsDAnY)",
      },
      {
          "Date": "11/14/2021",
          "Category": "Books",
          "Sub-category": "Software engineering",
          "Title": "The Pragmatic Programmer",
          "Activity": "ch. 1",
          "Link": "https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/",
          "Notes": "note 1 here",
          "Valid": True,
          "LinkMarkdown": "[The Pragmatic Programmer](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/)",
      },
      {
          "Date": "11/15/2021",
          "Category": "Books",
          "Sub-category": "Software engineering",
          "Title": "The Pragmatic Programmer",
          "Activity": "ch. 2",
          "Link": "https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/",
          "Notes": "note 2 here too",
          "Valid": True,
          "LinkMarkdown": "[The Pragmatic Programmer](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/)",
      },
      {
          "Date": "11/16/2021",
          "Category": "Books",
          "Sub-category": "Software engineering",
          "Title": "Clean Code",
          "Activity": "",
          "Link": "",
          "Notes": "",
          "Valid": True,
          "LinkMarkdown": "Clean Code",
      },
      {
          "Date": "12/1/2021",
          "Category": "Documentation",
          "Sub-category": "Python",
          "Title": "The Python Tutorial",
          "Activity": "Sections 1-4",
          "Link": "https://docs.python.org/3/tutorial/index.html",
          "Notes": "",
          "Valid": True,
          "LinkMarkdown": "[The Python Tutorial](https://docs.python.org/3/tutorial/index.html)",
      },
      {
          "Date": "12/2/2021",
          "Category": "Books",
          "Sub-category": "Software engineering",
          "Title": "Clean Code",
          "Activity": "ch. 2-10",
          "Link": "http://invalid-link",
          "Notes": "",
          "Valid": True,
          "LinkMarkdown": "Clean Code",
      },
      {
          "Date": "12/2/2021",
          "Category": "Books",
          "Sub-category": "",
          "Title": "Clean Coder",
          "Activity": "",
          "Link": "",
          "Notes": "book note",
          "Valid": True,
      },
      {
          "Date": "6/1/2021",
          "Category": "Category after empty",
          "Sub-category": "Comes after empty",
          "Title": "Python/C API Reference Manual Cat + Sub-cat",
          "Activity": "",
          "Link": "https://docs.python.org/3/c-api/index.html",
          "Notes": "",
          "Valid": True,
      },
      {
          "Date": "6/2/2021",
          "Category": "Category after empty",
          "Sub-category": "",
          "Title": "Python/C API Reference Manual No Sub-category",
          "Activity": "",
          "Link": "https://docs.python.org/3/c-api/index.html",
          "Notes": "",
          "Valid": True,
      },
      {
          "Date": "6/5/2021",
          "Category": "",
          "Sub-category": "",
          "Title": "Python/C API Reference Manual Top Level",
          "Activity": "",
          "Link": "https://docs.python.org/3/c-api/index.html",
          "Notes": "",
          "Valid": True,
      },
      {
          "Date": "6/5/2021",
          "Category": "",
          "Sub-category": "Sub-category without category",
          "Title": "Python/C API Reference Manual No Category",
          "Activity": "",
          "Link": "https://docs.python.org/3/c-api/index.html",
          "Notes": "",
          "Valid": True,
      },
      {
          "Date": "12/3/2021",
          "Category": "Articles",
          "Sub-category": "",
          "Title": "",
          "Activity": "",
          "Link": "",
          "Notes": "",
          "Valid": False,
      },
      {
          "Date": "12/3/2021",
          "Category": "Articles",
          "Sub-category": "Software engineering",
          "Title": "",
          "Activity": "ch. 3",
          "Link": "https://docs.python.org/3/c-api/index.html",
          "Notes": "note",
          "Valid": False,
      },
      {
          "Date": "",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "Section 2",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "note not rendered",
          "Valid": False,
      },
      {
          "Date": "10/3/2020",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "Section 2",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "note not rendered",
          "Valid": True,
      },
      {
          "Date": "9/4/2020",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "Section 2",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "note not rendered",
          "Valid": True,
      },
      {
          "Date": "8/24/2019",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "Section 2",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "note not rendered",
          "Valid": True,
      },
      {
          "Date": "2/24/2018",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "Section 2",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "note not rendered",
          "Valid": True,
      },
      {
          "Date": "3/5/2018",
          "Category": "Articles",
          "Sub-category": "Python",
          "Title": "Python slots, slots, and object layout",
          "Activity": "Section 2",
          "Link": "https://www.youtube.com/watch?v=Iwf17zsDAnY",
          "Notes": "note not rendered",
          "Valid": True,
      },
  ]
  