Skip to content

Ignore empty lines in indent filter #681#685

Merged
davidism merged 2 commits intopallets:masterfrom
jkfran:master
Jul 7, 2017
Merged

Ignore empty lines in indent filter #681#685
davidism merged 2 commits intopallets:masterfrom
jkfran:master

Conversation

@jkfran
Copy link
Copy Markdown
Contributor

@jkfran jkfran commented Feb 28, 2017

Ignore empty lines in indent filter #681

@ThiefMaster
Copy link
Copy Markdown
Member

Could you please rebase the PR? Generally it's a good idea to use separate branches based off upstream/master for PRs instead of doing the changes in your own master branch.

While this can be done when merging a PR, sometimes people merge using a merge commit instead of rebase/squash and in that case the extra noise would remain in the upstream history forever.

Comment thread jinja2/filters.py Outdated
rv = (u'\n' + indention).join(s.splitlines())
lines = s.splitlines()
rv = lines.pop(0) + u'\n'
rv += u'\n'.join([indention + l if l else l for l in lines])

This comment was marked as off-topic.

@jkfran
Copy link
Copy Markdown
Contributor Author

jkfran commented Feb 28, 2017

Hello @ThiefMaster thank you!
I'm sorry for the merge commits. What do you think now?

Copy link
Copy Markdown
Member

@ThiefMaster ThiefMaster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd really like to see some unit tests for this. An optional argument to the filter to keep the old behavior would be nice too - while I don't see any good reason for that behavior people might want it for some reason I can't imagine right now.

Comment thread jinja2/filters.py Outdated
rv = (u'\n' + indention).join(s.splitlines())
lines = s.splitlines()
rv = lines.pop(0) + u'\n'
rv += u'\n'.join([indention + line if line else line for line in lines])

This comment was marked as off-topic.

This comment was marked as off-topic.

@ThiefMaster
Copy link
Copy Markdown
Member

Could you add an entry to the changelog file? The PR looks good so far (not a fan of the all-lowercase-no-underscore naming of the argument but the existing one uses the same scheme it's consistent).

@davidism davidism self-requested a review April 5, 2017 20:46
Comment thread jinja2/filters.py Outdated
rv = (u'\n' + indention).join(s.splitlines())
else:
lines = s.splitlines()
rv = lines.pop(0) + u'\n'

This comment was marked as off-topic.

Comment thread jinja2/filters.py Outdated
else:
lines = s.splitlines()
rv = lines.pop(0) + u'\n'
rv += u'\n'.join(indention + line if line else line for line in lines)

This comment was marked as off-topic.

Comment thread tests/test_filters.py Outdated
tmpl = env.from_string('{{ foo|indent(2) }}|{{ foo|indent(2, true) }}')
text = '\n'.join([' '.join(['foo', 'bar'] * 2)] * 2)
tmpl = env.from_string('{{ foo|indent(2) }}|'
'{{ foo|indent(2, true, true) }}')

This comment was marked as off-topic.

Comment thread tests/test_filters.py Outdated
assert out == ('foo bar foo bar\n foo bar foo bar| '
'foo bar foo bar\n foo bar foo bar')
assert out == ('foo bar\n\n foo baz\n foo bar\n\n foo baz| '
'foo bar\n \n foo baz\n foo bar\n \n foo baz')

This comment was marked as off-topic.

Comment thread jinja2/filters.py Outdated


def do_indent(s, width=4, indentfirst=False):
def do_indent(s, width=4, indentfirst=False, indentblanklines=False):

This comment was marked as off-topic.

This comment was marked as off-topic.

jkfran and others added 2 commits July 7, 2017 10:23
add test for single line
update changelog
@davidism davidism merged commit e276843 into pallets:master Jul 7, 2017
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 13, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants