Fix #497
This commit is contained in:
parent
a53b7908f3
commit
3a9a59b751
4 changed files with 27 additions and 11 deletions
|
@ -60,7 +60,7 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<h2>{{entry.title}}</h2>
|
||||
<h2>{{entry.title|shortentitle(40)}}</h2>
|
||||
<p class="author">
|
||||
{% for author in entry.authors %}
|
||||
<a href="{{url_for('author', book_id=author.id ) }}">{{author.name.replace('|',',')}}</a>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<p class="title">{{entry.title|shortentitle}}</p>
|
||||
<p class="author">
|
||||
{% for author in entry.authors %}
|
||||
<a href="{{url_for('author', book_id=author.id) }}">{{author.name.replace('|',',')}}</a>
|
||||
<a href="{{url_for('author', book_id=author.id) }}">{{author.name.replace('|',',')|shortentitle(30)}}</a>
|
||||
{% if not loop.last %}
|
||||
&
|
||||
{% endif %}
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
</div>
|
||||
<div class="meta">
|
||||
<p class="title">{{entry.title|shortentitle}}</p>
|
||||
<p class="author"><a href="{{url_for('author', book_id=entry.authors[0].id) }}">{{entry.authors[0].name}}</a></p>
|
||||
<p class="author"><a href="{{url_for('author', book_id=entry.authors[0].id) }}">{{entry.authors[0].name|shortentitle(30)}}</a></p>
|
||||
{% if entry.ratings.__len__() > 0 %}
|
||||
<div class="rating">
|
||||
{% for number in range((entry.ratings[0].rating/2)|int(2)) %}
|
||||
|
@ -53,10 +53,10 @@
|
|||
</a>
|
||||
</div>
|
||||
<div class="meta">
|
||||
<p class="title">{{entry.title|truncate(60)}}</p>
|
||||
<p class="title">{{entry.title|shortentitle}}</p>
|
||||
<p class="author">
|
||||
{% for author in entry.authors %}
|
||||
<a href="{{url_for('author', book_id=author.id) }}">{{author.name.replace('|',',')}}</a>
|
||||
<a href="{{url_for('author', book_id=author.id) }}">{{author.name.replace('|',',')|shortentitle(30)}}</a>
|
||||
{% if not loop.last %}
|
||||
&
|
||||
{% endif %}
|
||||
|
|
28
cps/web.py
28
cps/web.py
|
@ -346,12 +346,28 @@ def remote_login_required(f):
|
|||
|
||||
# custom jinja filters
|
||||
@app.template_filter('shortentitle')
|
||||
def shortentitle_filter(s):
|
||||
if len(s) > 60:
|
||||
s = s.split(':', 1)[0]
|
||||
if len(s) > 60:
|
||||
s = textwrap.wrap(s, 60, break_long_words=False)[0] + ' [...]'
|
||||
return s
|
||||
def shortentitle_filter(s,nchar=20):
|
||||
text = s.split()
|
||||
res = "" # result
|
||||
sum = 0 # overall length
|
||||
for line in text:
|
||||
if sum >= 60:
|
||||
res += '...'
|
||||
break
|
||||
# if word longer than 20 chars truncate line and append '...', otherwise add whole word to result
|
||||
# string, and summarize total length to stop at 60 chars
|
||||
if len(line) > nchar:
|
||||
res += line[:(nchar-3)] + '[..] '
|
||||
sum += nchar+3
|
||||
else:
|
||||
res += line + ' '
|
||||
sum += len(line) + 1
|
||||
return res.strip()
|
||||
#if len(s) > 20:
|
||||
# s = s.split(':', 1)[0]
|
||||
# if len(s) > 20:
|
||||
# s = textwrap.wrap(s, 20, break_long_words=True)[0] + ' ...'
|
||||
#return s
|
||||
|
||||
|
||||
@app.template_filter('mimetype')
|
||||
|
|
Loading…
Reference in a new issue