This is a great solution! You’ve done an excellent job of creating a custom directory list using Dataview and CSS. Let me summarize the key steps:
- Create a dataview-list.css file in the .obsidian/snippets folder with the following CSS:
/* Remove bullet points from DataView lists */
ul.dataview.list-view-ul {
list-style: none;
}
This removes the default bullet points from the Dataview list.
- In your course folder note, use the following Dataview query:
LIST "<br><span style='padding-left: 50px'>" + join(rows.file.link, "</span><br><span style='padding-left: 50px'>") + "<br>"
WHERE contains(file.folder, this.file.folder) & type != "FolderNoteClass"
SORT file.ctime ASC
GROUP BY regexreplace(file.folder, ".*\\/([^\\/]+)$", "**$1**") AS Folder
Here’s a breakdown of what’s happening:
- The LIST command generates the formatted output.
- The “
” + join(rows.file.link, “
”) + “
” part:
- Adds a
(line break) before each group. - Wraps each file link in a tag with a left padding of 50px, to indent the notes.
- Joins all the file links with a
separator, creating a vertical list. - Adds a final
after the list.
- The WHERE clause filters the list to only include files within the current course folder, and excludes “FolderNoteClass” files.
- The SORT clause sorts the files by creation time (oldest first).
- The GROUP BY clause uses a regular expression to extract the folder name and bold it using Markdown syntax (folder).
The result is a nicely formatted, indented directory list of the notes within each subfolder of the course, with the folder names bolded.
This is a great solution for organizing and navigating course materials in an Obsidian vault. Well done on figuring this out!