Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Thumbnails on gallery's index
New settings to allow thumbnails in gallery's index.
  • Loading branch information
humitos committed Jun 1, 2015
1 parent 4108cde commit afc8a93
Show file tree
Hide file tree
Showing 4 changed files with 100 additions and 10 deletions.
15 changes: 15 additions & 0 deletions nikola/conf.py.in
Expand Up @@ -645,6 +645,21 @@ COMMENT_SYSTEM_ID = ${COMMENT_SYSTEM_ID}
# Enable comments on picture gallery pages?
# COMMENTS_IN_GALLERIES = False

# Use a thumbnail (defined by ".. previewimage:") in list of galleries
# for each gallery
GALLERIES_USE_THUMBNAIL = True

# Columns of thumbnails list in galleries index
GALLERIES_COLUMNS = 3

# Image to use as thumbnail for those galleries that doesn't have one
# None: show a grey square
# '/url/to/file': show the image in that url
GALLERIES_DEFAULT_THUMBNAIL = None

# HTML title for /GALLERY_FOLDERS/index.html (translatable)
GALLERY_INDEX_TITLE = "galleries"

# What file should be used for directory indexes?
# Defaults to index.html
# Common other alternatives: default.html for IIS, index.php
Expand Down
39 changes: 35 additions & 4 deletions nikola/data/themes/bootstrap/templates/gallery.tmpl
Expand Up @@ -15,11 +15,42 @@
</p>
%endif
%if folders:
<ul>
% for folder, ftitle in folders:
<li><a href="${folder}"><i class="icon-folder-open"></i>&nbsp;${ftitle}</a></li>
% if galleries_use_thumbnail:
% for folder, ftitle, fpost in folders:
% if loop.index % galleries_columns == 0:
<div class="row">
% endif
<div class="span4">
<div class="thumbnail">
<a href="${folder}">
% if fpost and getattr(fpost, 'previewimage', None):
<img src="${folder}${fpost.previewimage}" alt="${ftitle}">
% elif galleries_default_thumbnail:
<img src="${galleries_default_thumbnail}" alt="${ftitle}">
% else:
<div style="height: 250px; background-color: #eee;"></div>
% endif
</a>
<div class="caption">
<h3>${ftitle}</h3>
% if fpost and fpost.description():
<p>${fpost.description()}</p>
% endif
</div>
</div>
</div>
% if loop.index % galleries_columns == (galleries_columns - 1):
</div>
% endif
% endfor
</ul>

% else:
<ul>
% for folder, ftitle in folders:
<li><a href="${folder}"><i class="icon-folder-open"></i>&nbsp;${ftitle}</a></li>
% endfor
</ul>
% endif
%endif

<div id="gallery_container"></div>
Expand Down
39 changes: 35 additions & 4 deletions nikola/data/themes/bootstrap3/templates/gallery.tmpl
Expand Up @@ -15,11 +15,42 @@
</p>
%endif
%if folders:
<ul>
% for folder, ftitle in folders:
<li><a href="${folder}"><i class="glyphicon glyphicon-folder-open"></i>&nbsp;${ftitle}</a></li>
% if galleries_use_thumbnail:
% for folder, ftitle, fpost in folders:
% if loop.index % galleries_columns == 0:
<div class="row">
% endif
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<a href="${folder}">
% if fpost and getattr(fpost, 'previewimage', None):
<img src="${folder}${fpost.previewimage}" alt="${ftitle}">
% elif galleries_default_thumbnail:
<img src="${galleries_default_thumbnail}" alt="${ftitle}">
% else:
<div style="height: 250px; background-color: #eee;"></div>
% endif
</a>
<div class="caption">
<h3>${ftitle}</h3>
% if fpost and fpost.description():
<p>${fpost.description()}</p>
% endif
</div>
</div>
</div>
% if loop.index % galleries_columns == (galleries_columns - 1):
</div>
% endif
% endfor
</ul>

% else:
<ul>
% for folder, ftitle in folders:
<li><a href="${folder}"><i class="glyphicon glyphicon-folder-open"></i>&nbsp;${ftitle}</a></li>
% endfor
</ul>
% endif
%endif

<div id="gallery_container"></div>
Expand Down
17 changes: 15 additions & 2 deletions nikola/plugins/task/galleries.py
Expand Up @@ -87,6 +87,10 @@ def set_site(self, site):
'tzinfo': site.tzinfo,
'comments_in_galleries': site.config['COMMENTS_IN_GALLERIES'],
'generate_rss': site.config['GENERATE_RSS'],
'gallery_index_title': site.config['GALLERY_INDEX_TITLE'],
'galleries_use_thumbnail': site.config['GALLERIES_USE_THUMBNAIL'],
'galleries_columns': site.config['GALLERIES_COLUMNS'],
'galleries_default_thumbnail': site.config['GALLERIES_DEFAULT_THUMBNAIL'],
}

# Verify that no folder in GALLERY_FOLDERS appears twice
Expand Down Expand Up @@ -208,7 +212,9 @@ def gen_tasks(self):
if post:
context["title"] = post.title(lang)
else:
context["title"] = os.path.basename(gallery)
# TODO: make this translatable
context["title"] = self.kw['gallery_index_title']

context["description"] = None

image_name_list = [os.path.basename(p) for p in image_list]
Expand Down Expand Up @@ -237,14 +243,21 @@ def gen_tasks(self):
ft = folder
if not folder.endswith('/'):
folder += '/'
folders.append((folder, ft))
if self.kw['galleries_use_thumbnail']:
folders.append((folder, ft, fpost))
else:
folders.append((folder, ft))

context["folders"] = natsort.natsorted(
folders, alg=natsort.ns.F | natsort.ns.IC)
context["crumbs"] = crumbs
context["permalink"] = self.site.link("gallery", gallery, lang)
context["enable_comments"] = self.kw['comments_in_galleries']
context["thumbnail_size"] = self.kw["thumbnail_size"]
context["galleries_use_thumbnail"] = self.kw["galleries_use_thumbnail"]
context["galleries_columns"] = self.kw["galleries_columns"]
context["galleries_default_thumbnail"] = self.kw["galleries_default_thumbnail"]
context["thumbnail_size"] = self.kw["thumbnail_size"]

if post:
yield {
Expand Down

0 comments on commit afc8a93

Please sign in to comment.