protect spaces at the start of a line

This commit is contained in:
Edward Betts 2017-02-22 11:04:06 +00:00
parent d652208e94
commit af4d4151d3
2 changed files with 14 additions and 3 deletions

View file

@ -14,6 +14,7 @@ div#text { font-family: Courier; }
{% if doc.type == 'xanadoc' %} {% if doc.type == 'xanadoc' %}
<a href="{{ doc.url }}" class="btn btn-default">fulfil</a> <a href="{{ doc.url }}" class="btn btn-default">fulfil</a>
{% endif %} {% endif %}
<a href="{{ request.url }}/raw" class="btn btn-default">raw</a>
</h1> </h1>
<p><a href="{{ url_for('.home') }}">back to index</a></p> <p><a href="{{ url_for('.home') }}">back to index</a></p>
@ -24,10 +25,10 @@ div#text { font-family: Courier; }
{% for i in line %} {% for i in line %}
{%- if i.highlight -%} {%- if i.highlight -%}
{% if i.highlight != '\n' and i.highlight != '\r\n' %} {% if i.highlight != '\n' and i.highlight != '\r\n' %}
<span class="highlight">{{- i.highlight -}}</span> <span class="highlight">{{- nbsp_at_start(i.highlight) -}}</span>
{% endif %} {% endif %}
{%- else -%} {%- else -%}
{{- i.text -}} {{- nbsp_at_start(i.text) -}}
{%- endif -%} {%- endif -%}
{% endfor %} {% endfor %}
</p> </p>
@ -36,7 +37,7 @@ div#text { font-family: Courier; }
{%- for start, line in iter_lines(doc.text) if line -%} {%- for start, line in iter_lines(doc.text) if line -%}
{# <p data-start="{{ start }}">{% if line != "\n" and line != "\r\n" %}{{ line }}{% else %}&nbsp;{% endif {# <p data-start="{{ start }}">{% if line != "\n" and line != "\r\n" %}{{ line }}{% else %}&nbsp;{% endif
%}</p>#} %}</p>#}
<p data-start="{{ start }}">{{ line }}</p> <p data-start="{{ start }}">{{ nbsp_at_start(line) }}</p>
{%- endfor -%} {%- endfor -%}
{% endif %} {% endif %}
</div> </div>

View file

@ -141,6 +141,15 @@ def view_edl(username, hashid):
def view_item_raw(username, hashid): def view_item_raw(username, hashid):
return view_item(username, hashid, raw=True) return view_item(username, hashid, raw=True)
def nbsp_at_start(text):
''' Protect spaces at the start of a string. '''
space_count = 0
for c in text:
if c != ' ':
break
space_count += 1
return Markup('&nbsp;') * space_count + text[space_count:]
@bp.route('/<username>/<hashid>') @bp.route('/<username>/<hashid>')
def view_item(username, hashid, raw=False): def view_item(username, hashid, raw=False):
if ',' in hashid: if ',' in hashid:
@ -162,6 +171,7 @@ def view_item(username, hashid, raw=False):
span_start=start, span_start=start,
span_length=length, span_length=length,
add_highlight=add_highlight, add_highlight=add_highlight,
nbsp_at_start=nbsp_at_start,
iter_lines=iter_lines) iter_lines=iter_lines)
@bp.route('/<username>/<hashid>/edit', methods=['GET', 'POST']) @bp.route('/<username>/<hashid>/edit', methods=['GET', 'POST'])