preserve new lines in code when parsing books
decode file paths to enable folders
empty/new books are handled
fix newline bug. shorten persistence debounce