Last active
June 24, 2018 02:46
-
-
Save fengkx/66dbdfca6579d77dc6a46eadc11c431b to your computer and use it in GitHub Desktop.
Valine Next主题 themes/next/layout/_macro
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{% macro render(post, is_index, post_extra_class) %} | |
{% set headlessPost = Array.prototype.indexOf.call(['quote', 'picture'], post.type) > -1 %} | |
{% set post_class = 'post post-type-' + post.type | default('normal') %} | |
{% set post_class = post_class + ' ' + post_extra_class | default('') %} | |
{% if post.sticky > 0 %} | |
{% set post_class = post_class + ' ' + 'post-sticky' %} | |
{% endif %} | |
<article class="{{ post_class }}" itemscope itemtype="http://schema.org/Article"> | |
<link itemprop="mainEntityOfPage" href="{{ config.url }}{{ url_for(post.path) }}"> | |
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person"> | |
<meta itemprop="name" content="{{ theme.author }}"> | |
<meta itemprop="description" content="{{ theme.signature }}"> | |
<meta itemprop="image" content="{{ url_for( theme.avatar | default(theme.images + '/avatar.gif') ) }}"> | |
</span> | |
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization"> | |
<meta itemprop="name" content="{{ config.title }}"> | |
</span> | |
{% if not headlessPost %} | |
<header class="post-header"> | |
{# Not to show title for quote posts that do not have a title #} | |
{% if not (is_index and post.type === 'quote' and not post.title) %} | |
<{% if theme.seo %}h2{% else %}h1{% endif %} class="post-title" itemprop="name headline">{# | |
#}{# Link posts #}{# | |
#}{% if post.link %} | |
{% if post.sticky > 0 %} | |
{{ post.sticky }} | |
<span class="post-sticky-flag" title="{{ __('post.sticky') }}"> | |
<i class="fa fa-thumb-tack"></i> | |
</span> | |
{% endif %} | |
<a class="post-title-link post-title-link-external" target="_blank" href="{{ url_for(post.link) }}" itemprop="url"> | |
{{ post.title or post.link }} | |
<i class="fa fa-external-link"></i> | |
</a> | |
{% else %}{# | |
#}{% if is_index %} | |
{% if post.sticky > 0 %} | |
<span class="post-sticky-flag" title="{{ __('post.sticky') }}"> | |
<i class="fa fa-thumb-tack"></i> | |
</span> | |
{% endif %} | |
<a class="post-title-link" href="{{ url_for(post.path) }}" itemprop="url">{# | |
#}{{ post.title | default(__('post.untitled'))}}{# | |
#}</a>{# | |
#}{% else %}{{ post.title }}{% endif %}{# | |
#}{% endif %}{# | |
#}</{% if theme.seo %}h2{% else %}h1{% endif %}> | |
{% endif %} | |
<div class="post-meta"> | |
<span class="post-time"> | |
{% if theme.post_meta.created_at %} | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-calendar-o"></i> | |
</span> | |
{% if theme.post_meta.item_text %} | |
<span class="post-meta-item-text">{{ __('post.posted') }}</span> | |
{% endif %} | |
<time title="{{ __('post.created') }}" itemprop="dateCreated datePublished" datetime="{{ moment(post.date).format() }}"> | |
{{ date(post.date, config.date_format) }} | |
</time> | |
{% endif %} | |
{% if theme.post_meta.created_at and theme.post_meta.updated_at %} | |
<span class="post-meta-divider">|</span> | |
{% endif %} | |
{% if theme.post_meta.updated_at %} | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-calendar-check-o"></i> | |
</span> | |
{% if theme.post_meta.item_text %} | |
<span class="post-meta-item-text">{{ __('post.modified') }}</span> | |
{% endif %} | |
<time title="{{ __('post.modified') }}" itemprop="dateModified" datetime="{{ moment(post.updated).format() }}"> | |
{{ date(post.updated, config.date_format) }} | |
</time> | |
{% endif %} | |
</span> | |
{% if post.categories and post.categories.length and theme.post_meta.categories %} | |
<span class="post-category" > | |
{% if theme.post_meta.created_at or theme.post_meta.updated_at %} | |
<span class="post-meta-divider">|</span> | |
{% endif %} | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-folder-o"></i> | |
</span> | |
{% if theme.post_meta.item_text %} | |
<span class="post-meta-item-text">{{ __('post.in') }}</span> | |
{% endif %} | |
{% for cat in post.categories %} | |
<span itemprop="about" itemscope itemtype="http://schema.org/Thing"> | |
<a href="{{ url_for(cat.path) }}" itemprop="url" rel="index"> | |
<span itemprop="name">{{ cat.name }}</span> | |
</a> | |
</span> | |
{% set cat_length = post.categories.length %} | |
{% if cat_length > 1 and loop.index !== cat_length %} | |
{{ __('symbol.comma') }} | |
{% endif %} | |
{% endfor %} | |
</span> | |
{% endif %} | |
{% if post.comments %} | |
{% if (theme.duoshuo and theme.duoshuo.shortname) or theme.duoshuo_shortname %} | |
<span class="post-comments-count"> | |
<span class="post-meta-divider">|</span> | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-comment-o"></i> | |
</span> | |
<a href="{{ url_for(post.path) }}#comments" itemprop="discussionUrl"> | |
<span class="post-comments-count ds-thread-count" data-thread-key="{{ post.path }}" itemprop="commentCount"></span> | |
</a> | |
</span> | |
{% elseif theme.facebook_comments_plugin.enable %} | |
<span class="post-comments-count"> | |
<span class="post-meta-divider">|</span> | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-comment-o"></i> | |
</span> | |
<a href="{{ url_for(post.path) }}#comments" itemprop="discussionUrl"> | |
<span class="post-comments-count fb-comments-count" data-href="{{ post.permalink }}" itemprop="commentCount">0</span> comments | |
</a> | |
</span> | |
{% elseif theme.disqus.enable and theme.disqus.count %} | |
<span class="post-comments-count"> | |
<span class="post-meta-divider">|</span> | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-comment-o"></i> | |
</span> | |
<a href="{{ url_for(post.path) }}#comments" itemprop="discussionUrl"> | |
<span class="post-comments-count disqus-comment-count" | |
data-disqus-identifier="{{ post.path }}" itemprop="commentCount"></span> | |
</a> | |
</span> | |
{% elseif theme.hypercomments_id %} | |
<!--noindex--> | |
<span class="post-comments-count"> | |
<span class="post-meta-divider">|</span> | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-comment-o"></i> | |
</span> | |
<a href="{{ url_for(post.path) }}#comments" itemprop="discussionUrl"> | |
<span class="post-comments-count hc-comment-count" data-xid="{{ post.path }}" itemprop="commentsCount"></span> | |
</a> | |
</span> | |
<!--/noindex--> | |
{% elseif theme.changyan.enable and theme.changyan.appid and theme.changyan.appkey %} | |
<span class="post-comments-count"> | |
<span class="post-meta-divider">|</span> | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-comment-o"></i> | |
</span> | |
{% if is_post() %} | |
<a href="{{ url_for(post.path) }}#SOHUCS" itemprop="discussionUrl"> | |
<span id="changyan_count_unit" class="post-comments-count hc-comment-count" data-xid="{{ post.path }}" itemprop="commentsCount"></span> | |
</a> | |
{% else %} | |
<a href="{{ url_for(post.path) }}#SOHUCS" itemprop="discussionUrl"> | |
<span id="url::{{ post.permalink }}" class="cy_cmt_count" data-xid="{{ post.path }}" itemprop="commentsCount" ></span> | |
</a> | |
{% endif %} | |
{% elseif theme.valine.enable and theme.valine.appid and theme.valine.appkey %} | |
<span class="post-comments-count"> | |
<span class="post-meta-divider">|</span> | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-comment-o"></i> | |
</span> | |
<a href="{{ url_for(post.path) }}#comments" itemprop="discussionUrl"> | |
<span class="post-comments-count valine-comment-count" data-xid="{{ url_for(post.path) }}" itemprop="commentCount"></span> | |
</a> | |
</span> | |
{% endif %} | |
{% endif %} {# if post.comments #} | |
{# LeanCould PageView #} | |
{% if theme.leancloud_visitors.enable %} | |
<span id="{{ url_for(post.path) }}" class="leancloud_visitors" data-flag-title="{{ post.title }}"> | |
<span class="post-meta-divider">|</span> | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-eye"></i> | |
</span> | |
{% if theme.post_meta.item_text %} | |
<span class="post-meta-item-text">{{__('post.visitors')}} </span> | |
{% endif %} | |
<span class="leancloud-visitors-count"></span> | |
</span> | |
{% endif %} | |
{% if not is_index and theme.busuanzi_count.enable and theme.busuanzi_count.page_pv %} | |
<span class="post-meta-divider">|</span> | |
<span class="page-pv">{{ theme.busuanzi_count.page_pv_header }} | |
<span class="busuanzi-value" id="busuanzi_value_page_pv" ></span>{{ theme.busuanzi_count.page_pv_footer }} | |
</span> | |
{% endif %} | |
{% if theme.post_wordcount.wordcount or theme.post_wordcount.min2read %} | |
<div class="post-wordcount"> | |
{% if theme.post_wordcount.wordcount %} | |
{% if not theme.post_wordcount.separated_meta %} | |
<span class="post-meta-divider">|</span> | |
{% endif %} | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-file-word-o"></i> | |
</span> | |
{% if theme.post_wordcount.item_text %} | |
<span class="post-meta-item-text">{{ __('post.wordcount') }}</span> | |
{% endif %} | |
<span title="{{ __('post.wordcount') }}"> | |
{{ wordcount(post.content) }} | |
</span> | |
{% endif %} | |
{% if theme.post_wordcount.wordcount and theme.post_wordcount.min2read %} | |
<span class="post-meta-divider">|</span> | |
{% endif %} | |
{% if theme.post_wordcount.min2read %} | |
<span class="post-meta-item-icon"> | |
<i class="fa fa-clock-o"></i> | |
</span> | |
{% if theme.post_wordcount.item_text %} | |
<span class="post-meta-item-text">{{ __('post.min2read') }}</span> | |
{% endif %} | |
<span title="{{ __('post.min2read') }}"> | |
{{ min2read(post.content) }} 分钟 | |
</span> | |
{% endif %} | |
</div> | |
{% endif %} | |
{% if post.description and (not theme.excerpt_description or not is_index) %} | |
<div class="post-description"> | |
{{ post.description }} | |
</div> | |
{% endif %} | |
</div> | |
</header> | |
{% endif %} | |
<div class="post-body{% if theme.han %} han-init-context{% endif %}" itemprop="articleBody"> | |
{# Gallery support #} | |
{% if post.photos and post.photos.length %} | |
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery"> | |
{% set COLUMN_NUMBER = 3 %} | |
{% for photo in post.photos %} | |
{% if loop.index0 % COLUMN_NUMBER === 0 %}<div class="post-gallery-row">{% endif %} | |
<a class="post-gallery-img fancybox" | |
href="{{ url_for(photo) }}" rel="gallery_{{ post._id }}" | |
itemscope itemtype="http://schema.org/ImageObject" itemprop="url"> | |
<img src="{{ url_for(photo) }}" itemprop="contentUrl"/> | |
</a> | |
{% if loop.index0 % COLUMN_NUMBER === 2 %}</div>{% endif %} | |
{% endfor %} | |
{# Append end tag for `post-gallery-row` when (photos size mod COLUMN_NUMBER) is less than COLUMN_NUMBER #} | |
{% if post.photos.length % COLUMN_NUMBER > 0 %}</div>{% endif %} | |
</div> | |
{% endif %} | |
{% if is_index %} | |
{% if post.description and theme.excerpt_description %} | |
{{ post.description }} | |
<!--noindex--> | |
<div class="post-button text-center"> | |
<a class="btn" href="{{ url_for(post.path) }}"> | |
{{ __('post.read_more') }} » | |
</a> | |
</div> | |
<!--/noindex--> | |
{% elif post.excerpt %} | |
{{ post.excerpt }} | |
<!--noindex--> | |
<div class="post-button text-center"> | |
<a class="btn" href="{{ url_for(post.path) }}{% if theme.scroll_to_more %}#{{ __('post.more') }}{% endif %}" rel="contents"> | |
{{ __('post.read_more') }} » | |
</a> | |
</div> | |
<!--/noindex--> | |
{% elif theme.auto_excerpt.enable %} | |
{% set content = post.content | striptags %} | |
{{ content.substring(0, theme.auto_excerpt.length) }} | |
{% if content.length > theme.auto_excerpt.length %}...{% endif %} | |
<!--noindex--> | |
<div class="post-button text-center"> | |
<a class="btn" href="{{ url_for(post.path) }}{% if theme.scroll_to_more %}#{{ __('post.more') }}{% endif %}" rel="contents"> | |
{{ __('post.read_more') }} » | |
</a> | |
</div> | |
<!--/noindex--> | |
{% else %} | |
{% if post.type === 'picture' %} | |
<a href="{{ url_for(post.path) }}">{{ post.content }}</a> | |
{% else %} | |
{{ post.content }} | |
{% endif %} | |
{% endif %} | |
{% else %} | |
{{ post.content }} | |
{% endif %} | |
</div> | |
<div> | |
{% if not is_index %} | |
{% include 'wechat-subscriber.swig' %} | |
{% endif %} | |
</div> | |
<div> | |
{% if not is_index %} | |
{% include 'reward.swig' %} | |
{% endif %} | |
</div> | |
<div> | |
{% if not is_index %} | |
{% include 'post-copyright.swig' with { post: post } %} | |
{% endif %} | |
</div> | |
<footer class="post-footer"> | |
{% if post.tags and post.tags.length and not is_index %} | |
<div class="post-tags"> | |
{% for tag in post.tags %} | |
<a href="{{ url_for(tag.path) }}" rel="tag"># {{ tag.name }}</a> | |
{% endfor %} | |
</div> | |
{% endif %} | |
{% if not is_index %} | |
{% if theme.rating.enable or (theme.vkontakte_api.enable and theme.vkontakte_api.like) or (theme.facebook_sdk.enable and theme.facebook_sdk.like_button) %} | |
<div class="post-widgets"> | |
{% if theme.rating.enable %} | |
<div class="wp_rating"> | |
<div id="wpac-rating"></div> | |
</div> | |
{% endif %} | |
{% if (theme.vkontakte_api.enable and theme.vkontakte_api.like) or (theme.facebook_sdk.enable and theme.facebook_sdk.like_button) %} | |
<div class="social-like"> | |
{% if theme.vkontakte_api.enable and theme.vkontakte_api.like %} | |
<div class="vk_like"> | |
<span id="vk_like"></span> | |
</div> | |
{% endif %} | |
{% if theme.facebook_sdk.enable and theme.facebook_sdk.like_button %} | |
<div class="fb_like"> | |
<div class="fb-like" data-layout="button_count" data-share="true"></div> | |
</div> | |
{% endif %} | |
</div> | |
{% endif %} | |
</div> | |
{% endif %} | |
{% endif %} | |
{% if not is_index and (post.prev or post.next) %} | |
<div class="post-nav"> | |
<div class="post-nav-next post-nav-item"> | |
{% if post.next %} | |
<a href="{{ url_for(post.next.path) }}" rel="next" title="{{ post.next.title }}"> | |
<i class="fa fa-chevron-left"></i> {{ post.next.title }} | |
</a> | |
{% endif %} | |
</div> | |
<span class="post-nav-divider"></span> | |
<div class="post-nav-prev post-nav-item"> | |
{% if post.prev %} | |
<a href="{{ url_for(post.prev.path) }}" rel="prev" title="{{ post.prev.title }}"> | |
{{ post.prev.title }} <i class="fa fa-chevron-right"></i> | |
</a> | |
{% endif %} | |
</div> | |
</div> | |
{% endif %} | |
{% set isLast = loop.index % page.per_page === 0 %} | |
{% if is_index and not isLast %} | |
<div class="post-eof"></div> | |
{% endif %} | |
</footer> | |
</article> | |
{% endmacro %} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment