Properly handle newlines and missing titles #20
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Textareas can return their content with DOS-style
\r\n
line endings. This happens in Chrome on OSX, among many other browsers and platforms. This makes the.md
files rather cumbersome to work with in vim and other tools.When editing, jingo currently splits the file content on
\n
newlines and then joins them again to a single blob. This loses existing newline data for.md
files which use\n
-style line endings, which happens to be most of them. Try editing README.md for an example.This commit converts all line endings to
\n
on creation or the next edit of an existing file, preserving all newlines. It also allows jingo to properly edit existing Unix-style markdown files by less-destructively reading the file input.The 2 followup commits allow you to add other markdown files without proper titles to jingo, as in the case of migrating from gollum. This is accomplished by checking for a jingo-formatted title line, making sure the first line of content does not get clobbered when editing, and using the filename for a title where appropriate. Subsequent edits prepend the jingo-formatted title to the file if necessary while staying compatible with other tools.