Parse all top-level elements rather than just paragraphs
IDLENGTH -> KEYLENGTH
Use the post's ID in the key

This ensures no duplicates on archive pages.
Add attributes to each top-level item
Add encoding before parsing
Treat newlines as spaces
Remove blank "words"
Ignore non-elements/strings

Sometimes a DOMText will slip through, and we can't add attributes there.