Full Code of jozhn/Bigfa for AI

master 87e9b5d42302 cached
16 files
95.0 KB
31.8k tokens
9 symbols
1 requests
Download .txt
Repository: jozhn/Bigfa
Branch: master
Commit: 87e9b5d42302
Files: 16
Total size: 95.0 KB

Directory structure:
gitextract_gerh_fs1/

├── 404.php
├── LICENSE
├── README.md
├── archive.php
├── category.php
├── comments.php
├── footer.php
├── functions.php
├── header.php
├── index.php
├── page-category.php
├── page.php
├── post.php
├── search.php
├── sidebar.php
└── static/
    └── css/
        └── style.css

================================================
FILE CONTENTS
================================================

================================================
FILE: 404.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<?php $this->need('header.php'); ?>

<div class="layoutSingleColumn layoutSingleColumn-wide">
    <div class="section-header no-underline u-textAlignCenter" style="padding: 80px 0">
    <svg version="1.1" id="error" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="352px" viewBox="0 0 2524 1024" enable-background="new 0 0 2524 1024" xml:space="preserve">
      <path class="svgpath" data-index="path_0" fill="#272636" d="M725.313734 100.777216l0 476.13413c0 14.228755 1.999081 23.988976 5.879651 29.280661s11.171337 7.878732 21.754708 7.878732l28.927882 0C803.513091 613.600367 814.684428 626.770785 815.625172 653.346808l0 139.818098c0 24.341755-12.347267 38.100138-37.159394 41.392742C762.355535 836.439136 752.242536 839.378962 748.12678 843.494718S741.89435 857.488287 741.89435 873.128158l0 81.256775c1.881488 28.927882-11.524116 44.097382-39.981626 45.508498L466.256316 999.893431c-16.580616 0-27.28158-2.822232-32.33808-8.58429S426.27469 973.317409 426.27469 954.502526L426.27469 883.476344c0-19.285255-3.645384-32.690859-11.053744-40.334405S395.11254 831.853009 376.768029 831.853009L107.95039 831.853009c-32.102894 0-54.798346-6.820395-67.851171-20.343592S20.461185 774.585209 20.461185 741.541571c0-44.097382 5.291686-78.552136 15.875057-103.364263 12.817639-30.809371 49.85944-82.667892 110.890216-155.693156l174.978411-210.138723c87.724391-105.245751 152.518144-172.273771 194.263666-201.201654 18.814883-12.817639 41.627928-23.401011 68.556729-31.750115S637.118971 27.046394 660.637575 27.046394c22.930638 0 39.511254 5.762058 49.624254 17.168581S725.313734 74.553973 725.313734 100.777216zM436.03491 458.377584 436.03491 424.628388c0-41.392742-11.524116-61.97152-34.454754-61.97152-17.403767 0-33.749196 9.407441-48.918695 28.222324L246.474966 521.054662C215.665595 559.1548 200.378503 586.553973 200.378503 603.016996c0 11.994488 6.467616 19.638034 19.285255 23.048232s44.80294 5.879651 95.720717 7.290767l54.445567 0.705558c23.401011 0 39.276068-2.587046 47.507579-7.878732s13.052825-15.757464 14.463941-31.397336C434.623794 569.502986 436.03491 524.112081 436.03491 458.377584z"></path>
    <path class="svgpath" data-index="path_1" fill="#272636" d="M1260.009187 74.553973c62.912265 0 123.590262 15.404685 181.916399 46.214056 79.022508 41.392742 138.054203 102.893891 177.095085 184.621038 28.927882 59.737253 43.391824 123.355076 43.391824 190.853468 0 123.11989-47.037207 223.897106-141.229215 302.449242-72.08452 59.737253-154.28204 89.60588-246.710152 89.60588-101.953147 0-188.736794-33.278824-260.468535-99.954065C929.102435 709.909049 886.651355 604.898484 886.651355 473.547083c0-128.17639 38.805696-228.71842 116.417088-301.743684C1071.507579 107.009646 1157.115296 74.553973 1260.009187 74.553973zM1244.251723 279.871383c-42.686266 0-64.088195 36.336243-64.088195 108.891135 0 95.132751 18.109325 180.505282 54.445567 256.352779 14.228755 29.398254 33.278824 44.097382 57.150207 44.097382 41.745521 0 62.677079-36.924208 62.677079-110.890216 0-41.392742-4.468535-85.607717-13.405604-132.644924s-20.343592-85.372531-34.101975-114.770785C1291.759302 298.333486 1270.827745 281.282499 1244.251723 279.871383z"></path>
    <path class="svgpath" data-index="path_2" fill="#272636" d="M2406.541112 100.777216l0 476.13413c0 14.228755 1.999081 23.988976 5.879651 29.280661S2423.592099 614.07074 2434.175471 614.07074l28.927882 0c21.637115-0.470372 32.808452 12.582453 33.749196 39.276068l0 139.818098c0 24.341755-12.347267 38.100138-37.159394 41.392742-16.110243 1.881488-26.223243 4.821314-30.338999 8.937069s-6.23243 13.993569-6.23243 29.633441l0 81.256775c1.881488 28.927882-11.524116 44.097382-39.981626 45.508498l-235.656408 0c-16.580616 0-27.28158-2.822232-32.33808-8.58429s-7.525953-17.991732-7.525953-36.806615L2107.61966 883.476344c0-19.285255-3.645384-32.690859-11.053744-40.334405S2076.339917 831.853009 2057.877814 831.853009l-268.700046 0c-32.102894 0-54.798346-6.820395-67.851171-20.343592s-19.638034-36.806615-19.638034-69.967846c0-44.097382 5.291686-78.552136 15.875057-103.364263 12.817639-30.809371 49.85944-82.667892 110.890216-155.693156l174.978411-210.138723c87.724391-105.245751 152.518144-172.273771 194.263666-201.201654 18.814883-12.817639 41.627928-23.401011 68.556729-31.750115s51.976114-12.347267 75.494718-12.347267c22.930638 0 39.511254 5.762058 49.624254 17.168581S2406.541112 74.553973 2406.541112 100.777216zM2117.144695 458.377584 2117.144695 424.628388c0-41.392742-11.524116-61.97152-34.454754-61.97152-17.403767 0-33.749196 9.407441-48.918695 28.222324l-106.068902 130.175471C1896.892972 559.1548 1881.488287 586.553973 1881.488287 603.016996c0 11.994488 6.467616 19.638034 19.285255 23.048232s44.80294 5.879651 95.720717 7.290767l54.445567 0.705558c23.401011 0 39.276068-2.587046 47.507579-7.878732s13.052825-15.757464 14.463941-31.397336C2115.851171 569.502986 2117.144695 524.112081 2117.144695 458.377584z"></path>
    </svg>
    </div>
</div>

<?php $this->need('footer.php'); ?>


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# Bigfa
A theme for Typecho

DEMO:https://jozhn.com

![Snipaste_2019-10-29_18-27-57.png](https://i.loli.net/2019/10/29/q7Pwy5c1x2pdGve.png)

## 环境要求
- PHP >= 5.6.0
- Typecho >= 1.1

## 下载启用
- Star本项目,Code - Download Zip,解压并重命名为`Bigfa`
- 上传至usr/themes文件夹下,后台启用并填好主题设置
- 关闭Typecho垃圾评论过滤(否则可能会导致无法评论)

## 必需插件
[Viewscounter](https://github.com/mierhuo/Typecho-ViewsCounter)(统计文章浏览数)

## 已知Bug
若某分类下无文章的话,其分类页面的分类名称与slug均无输出,这是Typecho一直没有解决的问题,暂时无解。

## 主题设置
- 侧边栏的缩略图来自文章里的附件中第一张图片,请先在后台设置默认缩略图
- 关于页面和分类页面需要手动选择模板新建页面
- 分类的缩略图请自己上传到`Bigfa/img/category/`目录下,并命名为目录的slug+`.jpg`
- 头像和logo在后台设置

## 主题特点
- `Highlight.js` 代码高亮
- `MathJax` 数学公式
- `lately.js` [文章时间](https://github.com/Tokinx/lately)
- 静态资源CDN设置
- 分类页面(新建页面选择模板即可)

## 更新记录

> 2022.07.11

v2.1

- 增加归档页面

> 2019.10.29

v2.0

- 添加首页文章缩略图
- CSS样式大改
- AJAX动态加载文章列表

> 2019.1.26

v1.4

- 无文章缩略图的最后一个版本
- 浏览次数插件更新为viewscounter,不会报错
- 增加MathJax

> 2018.9.1

v1.3

- 完善各种功能的后台开关
- 解决instantclick和APlayer冲突
- 还没写完,待发布

> 2018.5.29

v1.2

- 整理优化CSS
- 完善按钮样式
- 修复图片不显示的bug
- 完善后台设置


> 2018.5.11

v1.1 

- 完善Markdown样式
- 代码高亮改为Highlight.js
- 修复safari无法显示blockquote

> 2018.4.19 

v1.0

- 基础版


================================================
FILE: archive.php
================================================
<?php
/**
* 归档页面
*
* @package archive
*/
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
$this->need('header.php');
?>


<div class="layoutSingleColumn">
    <div class="u-paddingTop50">
        <?php
            $stat = Typecho_Widget::widget('Widget_Stat');
            Typecho_Widget::widget('Widget_Contents_Post_Recent', 'pageSize='.$stat->publishedPostsNum)->to($archives);
            $year=0; $mon=0; $i=0; $j=0;
            $output = '';
            while($archives->next()){
                $year_tmp = date('Y',$archives->created);
                $mon_tmp = date('m',$archives->created);
                $y=$year; $m=$mon;
                //每年开始
                if ($year_tmp != $year)
                {
                    $output .= '</div>';
                    $output .= '<div class="list list--archive">';
                    $output .= '<h2 class="archive-year JiEun">'.date('Y',$archives->created).'</h2>';
                }
                //每月开始
                if($mon_tmp != $mon)
                {
                    $output .= '</ul>';
                    $output .= '<h3 class="month-title JiEun">'.date('Y - m',$archives->created).'</h3>';
                    $output .= '<ul class="archive-list">';
                }
                //每篇文章
                $output .= '<li class="archive-item"><a class="archive-item-title" href="'.$archives->permalink .'">'. $archives->title 
                .'</a><div class="archive-item-meta JiEun">'.ViewsCounter_Plugin::getViews().' reads / '.$archives->commentsNum.' responses</div></li>'; 
            }
            $output .= '</ul>';
            echo $output;
        ?>
        </div>
	</div>
</div>

<?php $this->need('footer.php'); ?>

================================================
FILE: category.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<?php $this->need('header.php');  $this->widget('Widget_Metas_Category_List')->to($categorys);?>

<header class="collectionHeader">
	<div class="layoutSingleColumn layoutSingleColumn--wide u-flex">
		<div class="collectionHeader-logo u-flex0">
			<img class="collectionHeader-logoImage" src="<?php $this->options->themeUrl('img/category/'); ?><?php echo $this->categories[0]['slug'] . '.jpg'; ?>">
		</div>
		<div class="collectionHeader-nameAndDescription u-flex1">
			<h1 class="collectionHeader-name"><?php $this->category(',',false); ?></h1>
			<div class="collectionHeader-description">
				<p><?php echo $this->getDescription(); ?></p>
			</div>        
		</div>
	</div>
</header>

<ul class="collectionHeader-navList layoutSingleColumn layoutSingleColumn--wide">
  <li class="collectionHeader-navItem">
    <a class="link link--darken u-accentColor--textDarken u-baseColor--link" href=" "> </a>
  </li>
</ul>

<div class="layoutMultiColumn-container">
  <div class="layoutMultiColumn layoutMultiColumn--primary">
      <div class="blockGroup">
          <?php $views=0; while($this->next()):?>
				<article class="block--list" itemscope="itemscope" itemtype="http://schema.org/Article">
					<div class="block-content">
						<h2 class="block-title" itemprop="headline">
							<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
						</h2>
                      <div class="block-snippet" itemprop="about">
                        <?php $this->excerpt(80,'...'); ?>
                      </div>
						<div class="block-postMeta">
							<?php echo ViewsCounter_Plugin::getViews(); ?>次浏览<?php $views+=ViewsCounter_Plugin::getViews(); ?>
							<span class="middotDivider"></span>
							<time class="lately-a" datetime="<?php $this->date('Y-m-d H:i:s'); ?>" itemprop="datePublished"><?php $this->date('Y年m月d日');?></time>
						</div>
					</div>
					<?php if(thumb($this->cid,1)!=null): ?>
					<a class="block-image" aria-label="<?php $this->title() ?>" href="<?php $this->permalink() ?>" style="background-image: url(<?php echo thumb($this->cid,1); ?>);"></a>
					<?php endif; ?>
				</article>
          <?php endwhile; ?>
       </div>
  </div>

  <div class="layoutMultiColumn layoutMultiColumn--secondary">
    <div class="js-sidebar u-paddingTop50">
        <div class="widget-card">
            <div class="widget-card-imageWrapper">
                <img class="widget-card-image" width="32" height="32" src="<?php $this->options->themeUrl('img/category/'); ?><?php echo $this->categories[0]['slug'] . '.jpg'; ?>">
            </div>
            <div class="widget-card-content"><?php echo $this->category(',',false); ?></div>
            <div class="widget-card-description">
                <p><?php echo $this->getDescription(); ?></p>
            </div>
            <div class="widget-card-info">
                <p class="widget-card-infoTitle">posts</p><?php if($this->categories[0]['count']==NULL){echo 0;}else{echo $this->categories[0]['count'];} ?>
                <p class="widget-card-infoTitle">views</p><?php echo $views; ?>
            </div>
        </div>
    </div>
  </div>
</div>

<?php $this->need('footer.php'); ?>


================================================
FILE: comments.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>

<?php
function threadedComments($comments, $options) {
    $commentClass = '';
    if ($comments->authorId) {
        if ($comments->authorId == $comments->ownerId) {
            $commentClass .= ' comment-by-author';
        } else {
            $commentClass .= ' comment-by-user';
        }
    }

    $commentLevelClass = $comments->levels > 0 ? ' comment-child' : ' comment-parent';
    $depth = $comments->levels +1;

    if ($comments->url) {
        $author = '<a href="' . $comments->url . '"target="_blank"' . ' rel="external nofollow">' . $comments->author . '</a>';
    } else {
        $author = $comments->author;
    }
?>

<li id="li-<?php $comments->theId(); ?>" class="comment comment-body<?php
if ($depth > 1 && $depth < 3) {
    echo ' children ';
    $comments->levelsAlt('comment-level-odd', ' comment-level-even');
}
else if( $depth > 2){
    echo ' comment-child2';
    $comments->levelsAlt(' comment-level-odd', ' comment-level-even');
}
else {
    echo ' comment-parent';
}

$comments->alt(' comment-odd', ' comment-even');
?>">
    <div id="<?php $comments->theId(); ?>">
        <?php
            $host = 'https://secure.gravatar.com';
            $url = '/avatar/';
            $size = '80';
            $default = 'mm';
            $rating = Helper::options()->commentsAvatarRating;
            $hash = md5(strtolower($comments->mail));
            $avatar = $host . $url . $hash . '?s=' . $size . '&r=' . $rating . '&d=' . $default;
        ?>
        <div class="comment-block" onclick="">
            <div class="comment-info u-flex">
				<div class="comment-avatar u-flex0">
					<img class="avatar" src="<?php echo $avatar ?>" width="<?php echo $size ?>" height="<?php echo $size ?>" />
               </div>
				<div class="comment-meta u-flex1 u-flexColumn">
					<div class="comment-author" itemprop="author">
						<a href="" rel="external nofollow" class="url"><?php echo $author; ?></a>
						<span class="comment-reply-link u-cursorPointer"><?php $comments->reply('回复'); ?></span>
					</div>
					<div class="comment-time" itemprop="datePublished" datetime="<?php $comments->date(); ?>"><?php $comments->date('M j, Y'); ?></div>
				</div>
            </div>
            <div class="comment-content" itemprop="description">
                <?php echo getCommentAt($comments->coid) ?><?php $comments->content(); ?>
            </div>
        </div>
    </div>
    <?php if ($comments->children) { ?>
        <div class="comment">
            <?php $comments->threadedComments($options); ?>
        </div>
    <?php } ?>
</li>
<?php } ?>

<div id="comments">
    <?php $this->comments()->to($comments); ?>
    <?php if ($comments->have()): ?>
    <h3 class="responses-title"><?php $this->commentsNum(_t('Comments : %d ')); ?></h3>
    
    <?php $comments->listComments(); ?>

	<div class="lists-navigator clearfix">
    <?php $comments->pageNav('←','→','2','...'); ?>
	</div>
    
    <?php endif; ?>

    <?php if($this->allow('comment')): ?>
    <div id="<?php $this->respondId(); ?>" class="respond">
    
        <h3 id="response" class="comments-title"><?php _e('发表留言'); ?></h3>

        <form method="post" action="<?php $this->commentUrl() ?>" id="comment-form" class="responsesForm" role="form">
            <p class="comment-note">人生在世,错别字在所难免,无需纠正。</p>
            <?php if($this->user->hasLogin()): ?>
            <p><?php _e('登录身份: '); ?><a href="<?php $this->options->profileUrl(); ?>"><?php $this->user->screenName(); ?></a>. <a href="<?php $this->options->logoutUrl(); ?>" title="Logout"><?php _e('退出'); ?> &raquo;</a></p>
            <?php else: ?>
            <p  class="comment-form-author comment-form-input">
                <label for="author"><?php _e('称呼'); ?></label>
                <input type="text" name="author" id="author" class="inputGroup" value="<?php $this->remember('author'); ?>" required />
            </p>
            <p  class="comment-form-email comment-form-input">
                <label for="mail"<?php if ($this->options->commentsRequireMail): ?><?php endif; ?>><?php _e('Email'); ?></label>
                <input type="text" name="mail" id="mail" class="inputGroup" value="<?php $this->remember('mail'); ?>"<?php if ($this->options->commentsRequireMail): ?> required<?php endif; ?> />
            </p>
            <p  class="comment-form-url comment-form-input">
                <label for="url"<?php if ($this->options->commentsRequireURL): ?><?php endif; ?>><?php _e('网站'); ?></label>
                <input type="text" name="url" id="url" class="inputGroup" placeholder="<?php _e('http://'); ?>" value="<?php $this->remember('url'); ?>"<?php if ($this->options->commentsRequireURL): ?> required<?php endif; ?> />
            </p>
            <?php endif; ?>
            <p class="comment-form-comment comment-form-input">
                <label for="textarea"><?php _e('内容'); ?></label>
                <textarea rows="8" cols="50" name="text" id="comment" class="inputGroup inputTextarea" required ><?php $this->remember('text'); ?></textarea>
            </p>
            <p class="form-submit">
                <button type="submit" id="submit" class="inputSubmit">Post Comment</button><?php $comments->cancelReply(); ?>
            </p>
			
        </form>
    </div>
    <?php else: ?>
    <h3><?php _e('评论已关闭'); ?></h3>
    <?php endif; ?>
</div>




================================================
FILE: footer.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>

<?php if ($this->is('index')) : ?>
   <footer class="layoutSingleColumn layoutSingleColumn--wide footer" role="contentinfo"> 
    <div class="site-info JiEun">
     <p><?php $this->options->siteDescript(); ?>&nbsp;&nbsp;&nbsp;&nbsp;Theme <a href="https://github.com/jozhn/Bigfa" target="_blank">Bigfa</a>
		by <a href="https://jozhn.com/" target="_blank"><span class="cute">Jozhn</span></a>.
		&nbsp;&nbsp;&nbsp;&nbsp; 
		<a href="http://www.miitbeian.gov.cn"  target="_blank"><?php echo $this->options->beian;?></a>
		&nbsp;&nbsp;&nbsp;&nbsp;
		<a href="https://console.upyun.com/register/?invite=rJoBowTv-" target="_blank" style="vertical-align:top"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE2LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IuWbvuWxgl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB3aWR0aD0iMTExcHgiIGhlaWdodD0iMzhweCIgdmlld0JveD0iMCAwIDExMSAzOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTExIDM4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTEpIj4KCTxwYXRoIGZpbGw9IiMwMEEwRkYiIGQ9Ik0zMC44LDQuMUwzMC44LDQuMUwzMC44LDQuMUwzMC44LDQuMUwzMC44LDQuMWMtMC43LTAuNS0xLjQtMS0yLjItMS40QzI4LjEsMi40LDI3LjQsMi41LDI3LDNsLTQuNyw2LjIKCQlMMjIsOS42Yy0wLjUsMC43LTEuMywxLTIuMSwxSDE5Yy0yLjMsMC4xLTQuNiwxLjMtNi4xLDMuM2MtMS4yLDEuNi0xLjgsMy41LTEuNyw1LjRjMCwwLjMsMC4yLDAuNjAxLDAuNSwwLjgKCQlDMTIuMywyMC40LDEyLjgsMjEsMTMsMjEuN2MwLjIsMS4xLTAuNSwyLjEtMS41LDIuMzk5QzEwLjMsMjQuNSw5LDIzLjcsOC43LDIyLjVjLTAuMi0wLjcsMC0xLjMsMC40LTEuOGMwLjItMC4zLDAuMy0wLjYwMSwwLjMtMQoJCWMtMC4yLTIuNCwwLjQtNC45LDItN2MyLTIuNiw1LTQsOC4xLTRjMC42LDAsMS4xLTAuMywxLjUtMC44bDQuMy01LjdjMC4zLTAuNCwwLjEtMS4xLTAuNC0xLjJDMTcuNy0xLDkuNywxLjQsNC44LDcuNwoJCWMtNi4yLDguMS00LjcsMTkuOCwzLjQsMjYuMUM5LDM0LjQsOS43LDM0LjksMTAuNiwzNS40YzAuNSwwLjMsMS4yLDAuMTk5LDEuNi0wLjMwMWw0LjctNi4xOTlsMC4zLTAuNGMwLjUtMC43LDEuMy0xLDIuMS0xaDAuOQoJCWMyLjMtMC4xLDQuNi0xLjMsNi4xLTMuM2MxLjItMS42MDEsMS44LTMuNSwxLjctNS40YzAtMC4zLTAuMi0wLjYtMC41LTAuOGMtMC42LTAuMy0xLjEtMC45LTEuMy0xLjZjLTAuMi0xLjEsMC41LTIuMSwxLjUtMi40CgkJYzEuMi0wLjQsMi41LDAuNCwyLjgsMS42YzAuMiwwLjcsMCwxLjMtMC40LDEuOGMtMC4yLDAuMy0wLjMsMC42LTAuMywxYzAuMiwyLjQtMC40LDQuOS0yLDdjLTIsMi42LTUsNC04LjEsNAoJCWMtMC42LDAtMS4xLDAuMy0xLjUsMC44TDE0LDM1LjZjLTAuMywwLjQtMC4xLDEuMTAxLDAuNCwxLjJjNy4yLDIuMTAxLDE1LjMtMC4zLDIwLjEtNi43QzQwLjcsMjIsMzksMTAuMywzMC44LDQuMXoiLz4KCTxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDQzIDgpIj4KCQk8cGF0aCBmaWxsPSIjMDBBMEZGIiBkPSJNMTguNiwyVjEuNkMxOC42LDEuMiwxOC4zLDEsMTgsMUgzLjVDMy4yLDEsMi45LDEuMywyLjksMS42djAuOWMwLDAuMywwLjMsMC42LDAuNiwwLjZoMTIuMwoJCQljMC40LDAsMC42MDEsMC4zLDAuNjAxLDAuN0MxNi4xLDYuMSwxNSwxMC40LDExLjYsMTQuNWMtMC4yLDAuMy0wLjcsMC4zLTAuOSwwQzcuOSwxMC45LDcsNy4yLDYuOCw1LjhDNi43LDUuNSw2LjUsNS4zLDYuMiw1LjMKCQkJSDUuN0g1LjNDNSw1LjMsNC43LDUuNiw0LjgsNmMwLjMsMS42LDEuMyw1LjksNC43LDEwYzAuMiwwLjIsMC4yLDAuNiwwLDAuOGMtNCwzLjctNy43LDQuNS05LDQuN2MtMC4zLDAtMC41LDAuMy0wLjUsMC42VjIzCgkJCWMwLDAuMywwLjMsMC42LDAuNiwwLjZjMS41LTAuMTk5LDUuNy0xLjEsMTAuMi01LjNjMC4yLTAuMiwwLjYtMC4yLDAuOCwwYzIuMiwyLDUsNCw4LjgsNS4yYzAuMywwLjEsMC42LTAuMSwwLjY5OS0wLjRsMC4zMDEtMC44CgkJCWMwLjEtMC4zLTAuMTAxLTAuNi0wLjQtMC43Yy0zLjUtMS4xLTYtMi44OTktOC00LjY5OWMtMC4yLTAuMi0wLjItMC42MDEsMC0wLjgwMUMxOC41LDkuNCwxOC42LDIuMywxOC42LDJ6Ii8+CgkJPHBhdGggZmlsbD0iIzAwQTBGRiIgZD0iTTI4LjYsMC4xSDI3LjdjLTAuMywwLTAuNjAxLDAuMy0wLjYwMSwwLjZ2My4xYzAsMC4zLTAuMywwLjYtMC42LDAuNmgtMi4xQzI0LjEsNC40LDIzLjgsNC43LDIzLjgsNXYwLjkKCQkJYzAsMC4zLDAuMywwLjYsMC42MDEsMC42aDIuMWMwLjMsMCwwLjYsMC4zLDAuNiwwLjZ2NC41YzAsMC4zMDEtMC4zLDAuNjAxLTAuNiwwLjYwMWgtMi4xYy0wLjMwMSwwLTAuNjAxLDAuMy0wLjYwMSwwLjZ2MC45CgkJCWMwLDAuMywwLjMsMC42LDAuNjAxLDAuNmgyLjFjMC4zLDAsMC42LDAuMywwLjYsMC42MDF2NC4zYzAsMC44OTktMC4zOTksMi4zOTktMi42OTksMi42Yy0wLjMwMSwwLTAuNSwwLjMtMC41LDAuNjAxVjIzCgkJCWMwLDAuMywwLjMsMC42LDAuNiwwLjZjMi4zLTAuMTk5LDQuNy0xLjUsNC43LTQuNjk5VjE0LjZjMC0wLjMsMC4zLTAuNiwwLjYtMC42aDEuOWMwLjMsMCwwLjYtMC4zLDAuNi0wLjZ2LTAuOQoJCQljMC0wLjMtMC4zLTAuNi0wLjYtMC42aC0xLjljLTAuMywwLTAuNi0wLjMwMS0wLjYtMC42MDFWNi44YzAtMC4zLDAuMy0wLjYsMC42LTAuNmgxLjljMC4zLDAsMC42LTAuMywwLjYtMC42VjQuNwoJCQljMC0wLjMtMC4zLTAuNi0wLjYtMC42aC0xLjljLTAuMywwLTAuNi0wLjMtMC42LTAuNlYwLjZDMjkuMiwwLjMsMjksMC4xLDI4LjYsMC4xeiIvPgoJCTxwYXRoIGZpbGw9IiMwMEEwRkYiIGQ9Ik0zMy4yLDIyLjhjMCwwLjMsMC4zLDAuNjAxLDAuNiwwLjYwMWg2LjVjMi45LDAsNS4yLTIuMiw1LjItNVY0LjdjMC0wLjMtMC4zLTAuNi0wLjYtMC42SDMzLjgKCQkJYy0wLjMsMC0wLjYsMC4zLTAuNiwwLjZWMjIuOHogTTQwLjQsMjEuNGgtNC41QzM1LjYsMjEuNCwzNS4zLDIxLjEsMzUuMywyMC44di02LjJjMC0wLjMsMC4zLTAuNiwwLjYwMS0wLjZINDMKCQkJYzAuMywwLDAuNiwwLjMsMC42LDAuNlYxOC40QzQzLjYsMjAuMSw0Mi4xLDIxLjQsNDAuNCwyMS40eiBNNDMuNiw2Ljd2NC43YzAsMC4zLTAuMywwLjYtMC42LDAuNmgtNy4xCgkJCUMzNS42LDEyLDM1LjMsMTEuNywzNS4zLDExLjRWNi43YzAtMC4zLDAuMy0wLjYsMC42MDEtMC42SDQzQzQzLjMsNi4yLDQzLjYsNi40LDQzLjYsNi43eiIvPgoJCTxwYXRoIGZpbGw9IiMwMEEwRkYiIGQ9Ik00Mi4xLDBoLTUuOGMtMC4zLDAtMC42LDAuMy0wLjYsMC42djAuOWMwLDAuMywwLjMsMC42LDAuNiwwLjZoNS44QzQyLjQsMi4xLDQyLjcsMS44LDQyLjcsMS41VjAuNgoJCQlDNDIuNywwLjMsNDIuNSwwLDQyLjEsMHoiLz4KCQk8cGF0aCBmaWxsPSIjMDBBMEZGIiBkPSJNNjQuMiwwLjloLTEyYy0wLjMsMC0wLjYwMSwwLjMtMC42MDEsMC42djAuOUM1MS42LDIuNyw1MS45LDMsNTIuMiwzaDEyYzAuMywwLDAuNi0wLjMsMC42LTAuNlYxLjUKCQkJQzY0LjgsMS4yLDY0LjUsMC45LDY0LjIsMC45eiIvPgoJCTxwYXRoIGZpbGw9IiMwMEEwRkYiIGQ9Ik01OS4xLDExLjJoOC40YzAuMywwLDAuNi0wLjMsMC42LTAuNlY5LjdjMC0wLjMtMC4zLTAuNi0wLjYtMC42SDQ4LjlDNDguNiw5LjEsNDguMyw5LjQsNDguMyw5Ljd2MC45CgkJCWMwLDAuMywwLjMsMC42LDAuNjAxLDAuNkg1NC42YzAuNSwwLDAuNywwLjUsMC41LDAuODk5TDUxLjMsMTljLTAuMSwwLjItMC4yLDAuMy0wLjIsMC41Yy0wLjMsMC45LTAuMTk5LDEuOSwwLjQsMi43CgkJCXMxLjYsMS4zOTksMi43LDEuMzk5SDY0LjZjMC41LDAsMC45LTAuMTk5LDEuMTAxLTAuNnMwLjMtMC45LDAuMS0xLjNMNjMuNCwxN2MtMC4xMDEtMC4zLTAuNS0wLjQtMC44MDEtMC4ybC0wLjgsMC40CgkJCWMtMC4zLDAuMS0wLjM5OSwwLjUtMC4yLDAuOGwxLjQsMi44YzAuMiwwLjQtMC4xLDAuOC0wLjUsMC44aC04LjNjLTAuNCwwLTAuOC0wLjE5OS0xLTAuNUM1My4xLDIxLDUyLjksMjAuNyw1MywyMC4zCgkJCWMwLTAuMSwwLTAuMSwwLjEtMC4yTDU3LjcsMTJDNTgsMTEuNSw1OC41LDExLjIsNTkuMSwxMS4yeiIvPgoJPC9nPgo8L2c+Cjwvc3ZnPgoK" width="50px" height="25px" style="vertical-align:top"></a></p>
    </div>
   </footer> 
<?php else: ?>
<footer class="footer--empty"></footer>
<?php endif; ?>
  </div> <!-- 对应site-main surface-container -->
<div class="loadingBar"></div>
<?php $this->footer(); ?>
	<?php if ($this->options->highlightjs == 'able'):?>
	<script type="text/javascript" src="https://cdn.bootcss.com/highlight.js/9.12.0/highlight.min.js" data-no-instant></script>
	<?php endif; ?>
    <script>
		//ajax加载文章
		var current_page = 1;
		function load_more_post(){
			current_page ++;
			var load_post_url = window.location.href + "page/" + current_page + "/?load_type=ajax";
			$.get(load_post_url,function(html){
				console.log('加载:'+load_post_url);
				$('#blockGroup').append($(html));
			})
		}
		//highlightjs
		<?php if ($this->options->highlightjs == 'able'):?>
		$("pre code").each(function(i, block) {hljs.highlightBlock(block);});
		<?php endif; ?>
    </script>
</body>
</html>


================================================
FILE: functions.php
================================================
<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;

function themeConfig($form) {
    $siteUrl = Helper::options()->siteUrl;
	
	//昵称
    $nickname = new Typecho_Widget_Helper_Form_Element_Text('nickname', NULL, 'Admin', _t('侧边栏显示的昵称'), _t('显示在头像右侧'));
    $form->addInput($nickname);
	
	//头像
    $avatarUrl = new Typecho_Widget_Helper_Form_Element_Text('avatarUrl', NULL, 'https://secure.gravatar.com/avatar/1485e8f004168924938e9bd96c4ff904?s=80&r=X&d=mm', _t('首页头像地址'), _t('将显示在首页侧边栏,如/usr/themes/Bigfa/img/head.jpg 或 https://xxx.com/xxx.jpg'));
    $form->addInput($avatarUrl);
	
	//个人描述
    $descript = new Typecho_Widget_Helper_Form_Element_Text('descript', NULL, 'computer loser', _t('个人描述'), _t('将显示在侧边栏的昵称下方'));
    $form->addInput($descript);
	
	//网站logo
    $logoUrl = new Typecho_Widget_Helper_Form_Element_Text('logoUrl', NULL, 'https://secure.gravatar.com/avatar/1485e8f004168924938e9bd96c4ff904?s=80&r=X&d=mm', _t('网站Logo地址'), _t('将显示在网站左上角'));
    $form->addInput($logoUrl);

    //站点信息
    $siteDescript = new Typecho_Widget_Helper_Form_Element_Text('siteDescript', NULL, 'blog since 2015', _t('站点信息'), _t('将显示在底栏如:blog since 2015'));
    $form->addInput($siteDescript);
	
	//文章默认缩略图
	$thumUrl = new Typecho_Widget_Helper_Form_Element_Text('thumUrl', NULL, '', _t('文章默认缩略图地址'), _t('侧边栏文章默认缩略图地址'));
    $form->addInput($thumUrl);
	
    //设置图片CDN替换规则
    $to_replace = new Typecho_Widget_Helper_Form_Element_Text('to_replace', NULL, '', _t('图片CDN替换前地址'), _t('如http://xxx.com'));
    $form->addInput($to_replace);
    $replace_to = new Typecho_Widget_Helper_Form_Element_Text('replace_to', NULL, '', _t('图片替换后地址'),_t('如https://cdn.xxx.com或//cdn.xxx.com'));
    $form->addInput($replace_to);
	
    //静态资源CDN设置
    $next_cdn = new Typecho_Widget_Helper_Form_Element_Text('next_cdn', NULL, $siteUrl, _t('CDN 镜像地址'), _t('静态文件 CDN 镜像加速地址,加速js和css<br>格式参考:'.$siteUrl.'<br>不用请留空或者保持默认'));
    $form->addInput($next_cdn);
	
    //图片cdn后缀
    $cdnSuffix = new Typecho_Widget_Helper_Form_Element_Text('cdnSuffix', NULL, '', _t('图片cdn后缀'), _t('图片CDN链接后缀 如:!sidebar'));
    $form->addInput($cdnSuffix);

	//Highlightjs
    $highlightjs = new Typecho_Widget_Helper_Form_Element_Radio('highlightjs',
        array('able' => _t('启用'),
            'disable' => _t('禁止'),
        ),
        'able', _t('Highlightjs代码高亮设置'), _t('默认启用'));
    $form->addInput($highlightjs);
	
	//开启APlayer
    $aplayer = new Typecho_Widget_Helper_Form_Element_Radio('aplayer',
        array('able' => _t('启用'),
            'disable' => _t('禁止'),
        ),
        'disable', _t('APlayer设置'), _t('默认禁止'));
    $form->addInput($aplayer);
	
	//开启Valine
    $valine = new Typecho_Widget_Helper_Form_Element_Radio('valine',
        array('able' => _t('启用'),
            'disable' => _t('禁止'),
        ),
        'disable', _t('Valine设置'), _t('默认禁止,若启用请先在评论处插入Valine代码'));
    $form->addInput($valine);
	
	//备案号
	$beian = new Typecho_Widget_Helper_Form_Element_Text('beian', NULL, $siteUrl, _t('备案号'), _t('填写备案号'));
    $form->addInput($beian);
	
	//统计代码
	$Analytics = new Typecho_Widget_Helper_Form_Element_Textarea('Analytics', NULL, NULL, _t('统计代码'), _t('填写你从谷歌Analytics或百度统计获取到的代码,需要script标签'));
    $form->addInput($Analytics);
}

function themeInit($archive) {
    if ($archive->is('index')) {
        $archive->parameter->pageSize = 8; // 自定义条数
    }
    if ($archive->is('categoty')) {
        $archive->parameter->pageSize = 1000; // 自定义条数
    }
}

function parseContent($obj){
    $options = Typecho_Widget::widget('Widget_Options');
    $obj->content = preg_replace("/<a href=\"([^\"]*)\">/i", "<a href=\"\\1\" target=\"_blank\">", $obj->content);
    echo trim($obj->content);
}

function thumb($cid,$isIndex) {
	$options = Typecho_Widget::widget('Widget_Options');
	if (empty($imgurl)) {
		if(!empty($options->thumUrl) && $options->thumUrl)
			$imgurl = $options->thumUrl;
		else
			$imgurl = 'https://cdn.jozhn.cn/usr/themes/Bigfa/img/default.jpg';
	}
	 $db = Typecho_Db::get();
	 $rs = $db->fetchRow($db->select('table.contents.text')
		->from('table.contents')
		->where('table.contents.type = ?', 'attachment')
		->where('table.contents.parent= ?', $cid)
		->order('table.contents.cid', Typecho_Db::SORT_ASC)
		->limit(1));
	if(isset($rs['text'])){
		$img = unserialize($rs['text']);
		return $options->next_cdn . $img['path'];
	}else{
		if(!$isIndex)
			return $imgurl;
		else
			return null;
	}
}

function getPostCount()
{
    $archives = Typecho_Widget::widget('Widget_Archive');
    // 获取文章数目
    $count = 0;
    while ($archives->next()):
        $count++;
    endwhile;
    return $count;
}

function is_mobile()
{
    $user_agent     = $_SERVER['HTTP_USER_AGENT'];
    $mobile_browser = array(
        "mqqbrowser", //手机QQ浏览器
        "opera mobi", //手机opera
        "juc", "iuc", //uc浏览器
        "fennec", "ios", "applewebKit/420", "applewebkit/525", "applewebkit/532", "ipad", "iphone", "ipaq", "ipod",
        "iemobile", "windows ce", //windows phone
        "240x320", "480x640", "acer", "android", "anywhereyougo.com", "asus", "audio", "blackberry",
        "blazer", "coolpad", "dopod", "etouch", "hitachi", "htc", "huawei", "jbrowser", "lenovo",
        "lg", "lg-", "lge-", "lge", "mobi", "moto", "nokia", "phone", "samsung", "sony",
        "symbian", "tablet", "tianyu", "wap", "xda", "xde", "zte",
    );
    $is_mobile = false;
    foreach ($mobile_browser as $device) {
        if (stristr($user_agent, $device)) {
            $is_mobile = true;
            break;
        }
    }
    return $is_mobile;
}

function getCommentAt($coid){
    $db   = Typecho_Db::get();
    $prow = $db->fetchRow($db->select('parent')
        ->from('table.comments')
        ->where('coid = ? AND status = ?', $coid, 'approved'));
    $parent = $prow['parent'];
    if ($parent != "0") {
        $arow = $db->fetchRow($db->select('author')
            ->from('table.comments')
            ->where('coid = ? AND status = ?', $parent, 'approved'));
        $author = $arow['author'];
        $href   = '<a href="#comment-'.$parent.'" class="cute atreply">@'.$author.'</a>';
        //$href = '@'.$author;
        return $href;
    } else {
        return '';
    }
}

function getAvatar($size){
	$host = 'https://secure.gravatar.com';
	$url = '/avatar/';
	$default = 'mm';
	$rating = Helper::options()->commentsAvatarRating;
	$hash = md5(strtolower($comments->mail));
	$avatar = $host . $url . $hash . '?s=' . $size . '&r=' . $rating . '&d=' . $default;
}

================================================
FILE: header.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit;
//当cdn加速开启时候定义cdn的地址
if (!empty($this->options->next_cdn) && $this->options->next_cdn){
    define('__TYPECHO_THEME_URL__', Typecho_Common::url(__TYPECHO_THEME_DIR__ . '/' . basename(dirname(__FILE__)) , $this->options->next_cdn));
}
?>
<?php //如果是ajax方式的请求就直接退出此页面使得该页面为空 ?>
<?php if(isset($_GET['load_type']) and $_GET['load_type'] == 'ajax'):  ?>
    <?php return; //完成ajax方式返回,退出此页面?>
<?php endif ?>

<!DOCTYPE HTML>
<html  lang="zh-CN">
<head>
    <meta http-equiv="Content-Type" charset="<?php $this->options->charset(); ?>">
    <meta name="baidu-site-verification" content="Md1b0xdKNB" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title><?php $this->archiveTitle(array('category' => _t('%s'), 'search' => _t('Search Results for "%s"'), 'tag' => _t('%s'), 'author' => _t('%s的文章')), '', ' - '); ?><?php $this->options->title(); ?></title>
  	<!-- jquery、valine、highlight.css、style.css -->
  	<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js" data-no-instant></script>
  	<?php if ($this->options->valine=='able') : ?>
  	<script src="//cdn1.lncld.net/static/js/3.0.4/av-min.js"></script>
  	<script src='//unpkg.com/valine/dist/Valine.min.js'></script>
  	<?php endif; ?>
    <!-- require APlayer -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
    <script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
    <!-- require MetingJS -->
    <script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>
    <?php if ($this->options->aplayer == 'able'):?>
    <script>
    if (typeof aplayers !== 'undefined'){
      for (var i = 0; i < aplayers.length; i++) {
        try {aplayers[i].destroy()} catch(e){}
      }
    }
    </script>
    <?php endif; ?>
  	
    <link rel="stylesheet" href="<?php $this->options->themeUrl('static/css/style.css'); ?>">
  	<link rel="stylesheet" type="text/css" href="https://cdn.bootcss.com/highlight.js/9.12.0/styles/github.min.css" />

    <?php if($this->options->Analytics): ?>
    <?php $this->options->Analytics(); ?>
    <?php endif; ?>
    
    <!-- 通过自有函数输出HTML头部信息 -->
    <?php $this->header(); ?>
</head>

<body class="is-enableBrandingButtons is-js">
  <div class="site-main surface-container"> 
    <div class="butterBar"><p class="butterBar-message"></p></div> 
   
   <header class="metabar metabar--bordered metabar--top u-clearfix"> 
    <div class="metabar-block u-floatLeft" itemprop="publisher" itemscope="" itemtype="https://schema.org/Organization"> 
		<h1 class="site-title u-floatLeft" itemprop="logo" itemscope="" itemtype="https://schema.org/ImageObject"> 
			<a href="<?php $this->options->siteUrl(); ?>" class="logo" title="<?php $this->options->title(); ?>"> 
				<img src="<?php echo $this->options->logoUrl; ?>" width="38" />
				<span class="u-textScreenReader"><?php $this->options->title(); ?></span>
			</a>
		</h1> 
		<meta itemprop="name" content="<?php $this->options->title(); ?>" /> 
		<meta itemprop="url" content="<?php $this->options->siteUrl(); ?>" /> 
    </div> 
    <div class="metabar-block metabar-center"> 
		 <nav class="navTabs navTabs--metabar navTabs--narrow" itemtype="http://schema.org/SiteNavigationElement" itemscope=""> 
			 <div class="layoutSingleColumn layoutSingleColumn--wide">
				  <ul class="subnav-ul">
					<?php //如果是首页才显示菜单if ($this->is('index')) : ?>
					<?php $this->widget('Widget_Contents_Page_List')->parse('<li class="subnav-li"><a class="subnav-item" href="{permalink}">{title}</a></li>'); ?>
					<?php //endif; ?>
				  </ul>
			 </div>
		</nav> 
    </div> 
    <div class="metabar-block u-floatRight"> 
     <form id="search" class="metabar-predictiveSearch search-form" action="<?php $this->options->siteUrl(); ?>" role="search" method="GET"> 
        <label title="Search <?php $this->options->title(); ?>"> 
        <svg xmlns="http://www.w3.org/2000/svg" style="display:none;">
          <symbol viewBox="0 0 25 25" id="svg-search">
            <title>svg-search</title>
            <path d="M20.067 18.933l-4.157-4.157c.837-1.032 1.34-2.345 1.34-3.776 0-3.314-2.686-6-6-6s-6 2.686-6 6 2.686 6 6 6c1.43 0 2.744-.503 3.776-1.34l4.157 4.157c.113.113.27.183.442.183.345 0 .625-.28.625-.625 0-.173-.07-.33-.183-.442zM6.5 11c0-2.62 2.13-4.75 4.75-4.75S16 8.38 16 11s-2.13 4.75-4.75 4.75S6.5 13.62 6.5 11z"
            />
          </symbol>
        </svg>
        <svg viewBox="0 0 25 25" width="25" height="25" class="svgIcon">
            <use class="svgIcon-use" xlink:href="#svg-search">
            </use>
        </svg>
         <input id="input" class="textInput textInput--dark textInput--rounded" name="s" type="text" required="true" placeholder="Search <?php $this->options->title(); ?>" /> 
  	   </label>
     </form> 
    </div> 
   </header>

    
    


================================================
FILE: index.php
================================================
<?php
/**
 * Bigfa by <a href="https://jozhn.com">Jozhn</a>
 *
 * @package Bigfa
 * @author Jozhn
 * @version 2.0
 * @link https://jozhn.com
 */
if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>

<?php if(isset($_GET['load_type']) and $_GET['load_type'] == 'ajax'):  ?>
	<?php while($this->next()): ?>
		<article class="block--list" itemscope="itemscop" itemtype="http://schema.org/BlogPosting">
			<div class="block-content">
				<h2 class="block-title" itemprop="headline">
					<a itemtype="url" href="<?php $this->permalink() ?>">
						<?php $this->title() ?>
					</a>
				</h2>
				<div class="block-snippet" itemprop="about">
				<?php $this->excerpt(80,'...'); ?>
			  </div>
				<div class="block-postMeta">
					<a href="<?php $this->permalink() ?>"  rel="category tag"><?php $this->category(','); ?></a>
					<span class="middotDivider"></span>
					<time itemprop="datePublished" datetime="<?php $this->date('Y-m-d H:i:s'); ?>"><?php $this->date('Y-m-d H:i:s');?></time>
				</div>
			</div>
			<?php if(thumb($this->cid,1)!=null): ?>
			<a class="block-image" aria-label="<?php $this->title() ?>" href="<?php $this->permalink() ?>" style="background-image: url(<?php echo thumb($this->cid,1); ?>);"></a>
			<?php endif; ?>
		</article>
	<?php endwhile; ?>
	<?php return; ?>
<?php endif ?>
		
<?php
$this->need('header.php');
?>
	
 <div class="layoutMultiColumn-container u-paddingTop50">
	<div class="layoutMultiColumn layoutMultiColumn--primary">
		<div class="widget-title u-xs-hide">
		 最新文章
		</div>
	   <div class="blockGroup" id="blockGroup">
          <?php while ($this->next()): ?>
			<article class="block--list" itemscope="itemscope" itemtype="http://schema.org/Article">
				<div class="block-content">
					<h2 class="block-title" itemprop="headline">
						<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
					</h2>
					<div class="block-snippet" itemprop="about">
						<?php $this->excerpt(80,'...'); ?>
					</div>
					<div class="block-postMeta">
						<a href="<?php $this->permalink() ?>"  rel="category tag"><?php $this->category(','); ?></a>
						<span class="middotDivider"></span>
						<time itemprop="datePublished" datetime="<?php $this->date('Y-m-d H:i:s'); ?>"><?php $this->date('Y-m-d');?></time>
					</div>
				</div>
				<?php if(thumb($this->cid,1)!=null): ?>
				<a class="block-image" aria-label="<?php $this->title() ?>" href="<?php $this->permalink() ?>" style="background-image: url(<?php echo thumb($this->cid,1); ?>);"></a>
				<?php endif; ?>
           </article>
          <?php endwhile; ?>
       </div>

		<div class="block-more">
           <button id="show-more" onclick ="load_more_post()" class="button button--primary button--small">加载更多</button>
		</div>

    </div>

<?php if(!is_mobile()): $this->need('sidebar.php'); endif;?>

</div>

<?php $this->need('footer.php'); ?>


================================================
FILE: page-category.php
================================================
<?php
/**
* 分类合集页面
*
* @package custom
*/
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
$this->need('header.php');
?>

<div class="list--collection layoutSingleColumn">
	<?php $this->widget('Widget_Metas_Category_List')->to($categorys);?>
    <?php if ($categorys->have()): ?>
    <?php while($categorys->next()): ?>
    <div class="list list--borderedBottom">
        <a class="listItem u-flex" href="<?php $categorys->permalink();?>">
            <img class="list-avatar u-flex0" src="<?php $this->options->themeUrl('img/category/');?><?php echo $categorys->slug().'.jpg'; ?>" width="40" height="40">
            <div class="list-meta u-flex1"> 
	            <div class="list-title"><?php $categorys->name();?></div>
	            <div class="list-description"><?php echo $categorys->description(); ?></div>
            </div>
        </a>
    </div>
    <?php endwhile; ?>
    <?php endif; ?>
</div>

<?php $this->need('footer.php'); ?>

================================================
FILE: page.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<?php $this->need('header.php'); ?>

<div class="layoutSingleColumn">
    <article class="u-paddingTop50" itemscope="itemscope" itemtype="http://schema.org/Article">
	<header class="entry-header">
	<h2 class="entry-title" itemprop="headline"><?php $this->title() ?></h2>
	<div class="entry-meta">
		<time class="lately-a"  datetime="<?php $this->date('Y-m-d H:i:s'); ?>" itemprop="datePublished"><?php $this->date('Y年m月d日');?></time>
	</div>
	</header>
	<div class="grap" itemprop="articleBody">
		<?php parseContent($this); ?>
	</div>
    </article>

    <?php $this->need('comments.php'); ?>

</div><!-- end #main-->

<?php $this->need('footer.php'); ?>

================================================
FILE: post.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<?php $this->need('header.php'); ?>

<?php
	$host = 'https://secure.gravatar.com';
	$url = '/avatar/';
	$size = '80';
	$default = 'mm';
	$rating = Helper::options()->commentsAvatarRating;
	$mail = $this->author->mail;
	$hash = md5(strtolower($mail));
	$avatar = $host . $url . $hash . '?s=' . $size . '&r=' . $rating . '&d=' . $default;
?>
		
<div class="layoutSingleColumn">
    <article class="u-paddingTop50" itemscope="itemscope" itemtype="http://schema.org/Article">
		<header class="entry-header">
		<h2 class="entry-title" itemprop="headline"><?php $this->title() ?></h2>
		<div class="entry-meta">
			<time class="lately-a" datetime="<?php $this->date('Y-m-d H:i:s'); ?>" itemprop="datePublished"><?php $this->date('Y年m月d日');?></time>
			<span class="middotDivider"></span>
			<a href="<?php $this->permalink(); ?>"><?php $this->category(','); ?></a>
		</div>
		</header>

		<meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="<?php $this->permalink(); ?>"/>

		<div class="grap" itemprop="articleBody">
			<?php parseContent($this); ?>
		</div>
        
		<div class="u-flexTop u-xs-flexColumn u-xs-textAlignCenter elevateAuthorCard u-marginBottom30">
			<img src="<?php echo $avatar ?>" class="avatar avatar-128 photo" height="128" width="128">
			<div class="u-marginLeft25 u-xs-marginAuto JiEun">
				<h3><?php $this->author() ?></h3>
				<p><?php $this->options->descript(); ?></p>                
			</div>
		</div>
    </article>

    <?php $this->need('comments.php'); ?>

</div><!-- end #main-->

<?php $this->need('footer.php'); ?>


================================================
FILE: search.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>
<?php $this->need('header.php'); ?>

</br>
<div class="u-size640 u-centered is-underMetabar">
    <form action="<?php $this->options->siteUrl(); ?>" role="search" method="GET">
        <input class="js-searchInput textInput textInput--jumbo textInput--underlined textInput--marginBottom10" name="s" type="search" value="<?php echo $this->archiveTitle('','',''); ?>" placeholder="Search <?php $this->options->title(); ?>">
    </form>
    <div class="label label--smaller u-clearfix">
            <div class="u-floatLeft"><?php echo $this->archiveTitle('','',''); ?>的搜索结果</div>
    </div>
    <div class="blockGroup">
    <?php while($this->next()):?>
        <article class="block--list" itemscope="itemscope" itemtype="http://schema.org/Article">
				<div class="block-content">
					<h2 class="block-title" itemprop="headline">
						<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>
					</h2>
					<div class="block-snippet" itemprop="about">
						<?php $this->excerpt(80,'...'); ?>
					</div>
					<div class="block-postMeta">
						<a href="<?php $this->permalink() ?>"  rel="category tag"><?php $this->category(','); ?></a>
						<span class="middotDivider"></span>
						<time itemprop="datePublished" datetime="<?php $this->date('Y-m-d H:i:s'); ?>"><?php $this->date('Y年m月d日');?></time>
					</div>
				</div>
				<?php if(thumb($this->cid,1)!=null): ?>
				<a class="block-image" aria-label="<?php $this->title() ?>" href="<?php $this->permalink() ?>" style="background-image: url(<?php echo thumb($this->cid,1); ?>);"></a>
				<?php endif; ?>
           </article>
    <?php endwhile; ?>
  </div>

  <div class="lists-navigator clearfix">
      <?php $this->pageNav('←','→','2','...'); ?>
  </div>
</div>

<footer class="footer--empty"></footer>

<div class="loadingBar"></div>

    <script src="https://cdn.bootcss.com/instantclick/3.0.0/instantclick.min.js" data-no-instant></script>
    <script data-no-instant>
	InstantClick.on('change', function(isInitialLoad) {
        $.lately({
            'target' : '.lately-a,.lately-b,.lately-c'
        });
      });
    InstantClick.init('mousedown');
    </script>
</body>
</html>

================================================
FILE: sidebar.php
================================================
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>

    <div class="layoutMultiColumn layoutMultiColumn--secondary">
      <div class="widget"> 
       <div class="widget-title">
        关于博主
       </div> 
       <div class="widget-card"> 
        <div class="widget-card-imageWrapper"> 
			<a href=" " data-action="imageZoomIn">
				<img src="<?php echo $this->options->avatarUrl; ?>" title="查看博主照片" aria-label="查看博主照片" data-action="imageZoomIn" class="avatar" width="32" height="32" />
			</a> 
        </div> 
        <div class="widget-card-content"><?php $this->options->nickname(); ?></div> 
        <div class="widget-card-description"> 
			<p><?php $this->options->descript(); ?></p> 
			<p class="cute"><a href="<?php $this->options->siteUrl('/about'); ?>">More ..</a></p>
        </div> 
       </div> 
      </div>

      <div class="widget"> 
       <div class="widget-title">
        Posts
       </div> 
       <ul class="list--withIcon list">

		<?php foreach (ViewsCounter_Plugin::getMostViewed() as $post): ?>
		<li class="list-item">
			<div class="list-itemImage">
				<img class="image--outlined" src="<?php echo thumb($post['cid'],0);?><?php $this->options->cdnSuffix(); ?>"/>
			</div>
			<div class="list-itemInfo">
				<h4 class="list-itemTitle">
					<a href="<?php echo $post['permalink'];?>"><?php echo $post['title'];?></a>
				</h4>
				<p class="list-itemDescription JiEun">
					<?php echo $post['categories'][0]['name'];?>
					<span class="middotDivider"></span>
					<?php echo $post['commentsNum'];?> replies
				</p>
			</div>
		 </li>
		<?php endforeach; ?>

       </ul>
      </div>
        <!-- 侧边栏方形 -->
        <ins class="adsbygoogle"
             style="display:block"
             data-ad-client="ca-pub-4265152453568998"
             data-ad-slot="2323869371"
             data-ad-format="auto"
             data-full-width-responsive="true"></ins>
        <script>
             (adsbygoogle = window.adsbygoogle || []).push({});
        </script>
    </div>
	


================================================
FILE: static/css/style.css
================================================
@font-face{font-family:Tisa Pro;src:url(6f72dd000aeeeb67887b210058793f0638c0c5a55e20360887e4b1301620f4c-webfont.woff2) format('woff2'),url(6f72dd000aeeeb67887b210058793f0638c0c5a55e20360887e4b1301620f4c-webfont.woff) format('woff');font-weight:400;font-style:normal}.JiEun{font-family:Tisa Pro}.svgIcon--21px{height:21px;line-height:21px}a,abbr,acronym,address,applet,big,blockquote,body,caption,cite,code,dd,del,dfn,div,dl,dt,em,fieldset,figure,font,form,h1,h2,h3,h4,h5,h6,html,iframe,ins,kbd,label,legend,li,object,ol,p,pre,q,s,samp,small,span,strike,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,tt,ul,var{border:0;font-family:inherit;font-size:100%;font-style:inherit;font-weight:inherit;margin:0;outline:0;padding:0;vertical-align:baseline}html{box-sizing:border-box;-webkit-box-sizing:border-box;font-size:100%;overflow-y:scroll;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;overflow-x:hidden}button,input,textarea{-webkit-appearance:none;outline:0;-webkit-tap-highlight-color:transparent;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,STHeiti,WenQuanYi Micro Hei,Helvetica,Arial,sans-serif;font-size:16px}button:focus,input:focus,textarea:focus{outline:0}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default;border:0}body{line-height:1.8;color:rgba(0,0,0,.8);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,STHeiti,WenQuanYi Micro Hei,Helvetica,Arial,sans-serif;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-moz-font-feature-settings:"liga" on}article,aside,details,figcaption,figure,footer,header,main,nav,section{display:block}abbr[title]{border-bottom:1px dotted}dfn{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}ol,ul{list-style:none}table{display:block;width:100%;overflow:auto;border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;font-weight:400}th,thead,tr{margin:0;padding:0;outline:0;border:0;vertical-align:baseline;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit}.grap table tr{background-color:#fff;border-top:1px solid #c6cbd1}.grap table tr:nth-child(2n){background-color:#f6f8fa}.grap table td,.grap table th{padding:6px 13px;border:1px solid #dfe2e5}.grap table th{font-weight:600}td,th{padding:0}small{font-size:80%}blockquote:after,blockquote:before,q:after,q:before{content:""}blockquote,q{-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;quotes:none}blockquote{border-left:3px solid rgba(0,0,0,.8);font-weight:400;letter-spacing:.01rem;margin:30px 0;padding-left:20px}blockquote small{float:right;margin-top:25px;color:rgba(0,0,0,.44);font-style:italic}a:active,a:hover{outline:0}pre{padding:17px;font:14px/22px courier new;position:relative;margin:40px 0;background-color:#f8f8f8}code,pre{white-space:pre-wrap;word-wrap:break-word;border-radius:3px}code{padding:2px;background-color:#eee;word-break:break-word;letter-spacing:0;font:14px/26px courier new}pre code{padding:0;background-color:#fff;border-radius:0}img{max-width:100%;height:auto}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}a,button,input{-webkit-tap-highlight-color:transparent}figcaption{-webkit-nbsp-mode:normal}a{color:inherit;text-decoration:none}input[disabled]{cursor:default;color:rgba(0,0,0,.8);background-color:rgba(0,0,0,.05)}audio:not([controls]){display:none;height:0}[hidden],template{display:none}svg:not(:root){overflow:hidden}.screen-reader-text{position:absolute;left:-9999px;top:-9999px}.wp-caption{max-width:100%}.cute{color:#9f2850}.bordered{border:1px solid rgba(0,0,0,.15)}.svgIcon{vertical-align:middle}.avatar-image--roundedRectangle{border-radius:3px}.u-floatLeft{float:left}.u-floatRight{float:right}.u-preventScroll{height:100%;overflow:hidden}.u-block{display:block}.u-hide{display:none}.u-clearfix:after,.u-clearfix:before{display:table;content:" "}.u-clearfix:after{clear:both}.u-overflowHidden{overflow:hidden}.u-textMuted{color:rgba(0,0,0,.3)}.u-textAlignCenter{text-align:center}.u-textAlignRight{text-align:right}.u-textAlignLeft{text-align:left}.u-centered{margin-left:auto;margin-right:auto}.u-borderBox{box-sizing:border-box}.u-size640{max-width:640px}.u-textScreenReader{color:hsla(0,0%,100%,0);height:1px;overflow:hidden;pointer-events:none;position:absolute;width:1px}.u-flex{display:-webkit-box;display:-ms-flexbox;display:flex}.u-flex0{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.u-flex1{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.u-flexCenter{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.u-flexColumn{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.u-flexColumn,.u-flexTop{display:-webkit-box;display:-ms-flexbox;display:flex}.u-flexTop{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.u-flexWrap{-ms-flex-wrap:wrap;flex-wrap:wrap}.u-textColorNormal{color:rgba(0,0,0,.44);fill:rgba(0,0,0,.44)}.u-textUnderline{text-decoration:underline}.u-backgroundGrayLightest{background-color:#fafafa}.u-backgroundWhite{background-color:#fff}.u-justifyContentSpaceBetween{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.u-backgroundCover{background-origin:border-box;background-position:50%;background-size:cover}.u-relative{position:relative}.u-absolute{position:absolute}.u-foreground{position:relative;z-index:2}.u-marginAuto{margin-left:auto;margin-right:auto}.u-fontSizeSmaller{font-size:14px}.u-fontSizeSmallest{font-size:12px}.u-borderBottomLighter{border-bottom:1px solid rgba(0,0,0,.1);margin-bottom:40px}.u-borderBottomLight{border-bottom:1px solid rgba(0,0,0,.08)}.u-paddingLeft15{padding-left:15px}.u-paddingLeft20{padding-left:20px}.u-paddingRight20{padding-right:20px}.u-paddingTop5{padding-top:5px}.u-paddingTop10{padding-top:10px}.u-paddingTop20{padding-top:20px}.u-paddingTop30{padding-top:30px}.u-paddingTop50{padding-top:50px}.u-paddingTop70{padding-top:70px}.u-paddingTop80{padding-top:80px}.u-paddingBottom10{padding-bottom:10px}.u-paddingBottom30{padding-bottom:30px}.u-paddingBottom50{padding-bottom:50px}.u-marginLeft10{margin-left:10px}.u-marginLeft20{margin-left:20px}.u-marginLeft25{margin-left:25px}.u-marginLeft40{margin-left:40px}.u-marginRight5{margin-right:5px}.u-marginRight10{margin-right:10px}.u-marginRight20{margin-right:20px}.u-marginTop5{margin-top:5px}.u-marginTop30{margin-top:30px}.u-paddingBottom20{padding-bottom:20px}.u-marginBottom30{margin-bottom:30px}.u-marginBottom50{margin-bottom:50px}@media (max-width:600px){.u-xs-hide{display:none}.u-xs-flexWrap{-ms-flex-wrap:wrap;flex-wrap:wrap}}.sectionLayout--insetColumn{max-width:780px;width:90%;margin-right:auto;margin-left:auto}.sectionLayout--insetColumn.widthBeaty{max-width:840px}.sectionLayout--outsetColumn{max-width:880px;width:90%;margin-right:auto;margin-left:auto}.layoutSingleColumn{margin-left:auto;margin-right:auto;max-width:780px;width:90%}.layoutSingleColumn--wide{max-width:1000px}.layoutMultiColumn{box-sizing:border-box}.layoutMultiColumn-container{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:1000px;width:90%;margin-left:auto;margin-right:auto}.layoutMultiColumn--primary{width:65%;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.layoutMultiColumn--secondary{width:35%;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.layoutMultiColumn--primary+.layoutMultiColumn--secondary{padding-left:40px}@media all and (max-width:900px){.xs-layoutSingleColumn--wide{width:auto}.layoutMultiColumn-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.layoutMultiColumn--primary,.layoutMultiColumn--secondary{width:100%}.layoutMultiColumn--primary+.layoutMultiColumn--secondary{padding-left:0}}@-webkit-keyframes a{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}40%{-webkit-transform:translateX(0);transform:translateX(0)}60%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes a{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}40%{-webkit-transform:translateX(0);transform:translateX(0)}60%{-webkit-transform:translateX(0);transform:translateX(0)}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@-webkit-keyframes b{0%{opacity:0}to{opacity:1}}@keyframes b{0%{opacity:0}to{opacity:1}}.colonel{font-size:16px;color:rgba(0,0,0,.84)}.colonel ol,.colonel p,.colonel ul{margin-bottom:1.1em}.colonel del{text-decoration:none;background-image:linear-gradient(180deg,rgba(0,0,0,.8) 20%,rgba(0,0,245,0) 0,transparent 75%,rgba(0,0,0,.8) 76%);background-position:0 .56em;background-repeat:repeat-x;background-size:1px 6px}.colonel strong{background-color:transparent;background-image:linear-gradient(rgba(12,242,143,.2),rgba(12,242,143,.2))}.colonel blockquote{margin-left:-23px;color:rgba(0,0,0,.7);font-size:16px}.colonel blockquote.colonel--pullquote{border-left:0;font-size:22px;font-style:italic;margin-left:0;color:rgba(0,0,0,.6)}.colonel a{text-decoration:underline}.colonel a:hover{color:#9f2850}.colonel li{margin-left:30px;margin-bottom:4px;padding-top:2px;font-size:16px}.colonel li:before{content:"鈥�";box-sizing:border-box;font-size:14px;margin-left:-58px;padding-right:15px;display:inline-block;text-align:right;width:58px;color:#9f2850}.colonel ol{counter-reset:a}.colonel ol>li:before{content:counter(a,decimal) ".";counter-increment:a;padding-right:12px;color:rgba(0,0,0,.84)}.colonel h3{font-size:22px;color:rgba(0,0,0,.6);font-weight:700}.colonel h3,.colonel h4{margin-top:1.8em;margin-bottom:.6em}.colonel h4{font-size:20px;color:rgba(0,0,0,.44)}.colonel hr{margin-top:42px;margin-bottom:52px;display:block;height:3px;width:26px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);position:relative;background-color:rgba(0,0,0,.44);border-radius:999em;border:0}.colonel--figure{margin:40px -50px}.colonel--figure.withBeauty{margin-left:-50px;margin-right:-50px}.colonel--figure .imageCaption{font-size:12px;color:rgba(0,0,0,.6);text-align:right;margin-left:100px;margin-right:50px;margin-top:8px}@media (max-width:600px){.colonel--figure{margin-bottom:20px;margin-left:0;margin-right:0}.colonel--figure .imageCaption{margin-right:0;margin-left:30px}}.grap--figure{margin-bottom:20px}.grap--figure .imageCaption{font-size:12px;color:rgba(0,0,0,.44);text-align:center}.mixtapeImage{float:right;width:160px;height:160px;margin:-24px -24px -24px 48px;background-size:cover;background-repeat:no-repeat;background-position:50%}.graf--mixtapeEmbed a{text-decoration:none!important}.graf--mixtapeEmbed a:hover{color:inherit}.graf--mixtapeEmbed{position:relative;overflow:hidden;max-height:280px;padding:24px;box-sizing:border-box;color:rgba(0,0,0,.6);box-shadow:0 1px 4px rgba(0,0,0,.04),inset 0 0 0 1px rgba(0,0,0,.09);border-radius:3px;margin:20px 0}.markup--mixtapeEmbed-strong{color:rgba(0,0,0,.8);display:block;margin-bottom:8px;font-size:18px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.markup--em{display:block;font-size:14px;line-height:1.6;font-style:normal!important}.markup--meta{font-size:12px;color:rgba(0,0,0,.8)}@media screen and (max-width:640px){.graf--mixtapeEmbed{padding:12px}.mixtapeImage{display:none}}.metabar{height:65px;line-height:65px;background-color:#fff;position:relative}.metabar--bordered{box-shadow:0 0 1px rgba(0,0,0,.15)}.single .metabar--bordered{box-shadow:none}.metabar--shadowed{box-shadow:0 0 15px rgba(0,0,0,.08)}.metabar-block{pointer-events:auto}.metabar-center{position:absolute;left:0;right:0}.metabar-predictiveSearch{margin-right:10px;position:relative;display:inline-block}.metabar-predictiveSearch .svgIcon{margin-right:-33px;fill:rgba(0,0,0,.54);position:relative;cursor:pointer}.metabar-predictiveSearch:hover .svgIcon{fill:rgba(0,0,0,.84)}.metabar-predictiveSearch .textInput{height:37px;padding-left:36px;vertical-align:middle;display:inline-block;width:0;transition:.5s;border:0;cursor:pointer}.metabar-predictiveSearch .textInput:focus{width:200px;cursor:text}.navTabs--metabar{text-align:left}.subnav-li{margin-right:20px}.subnav-li,.subnav-ul{display:inline-block}.subnav-ul:hover .subnav-item:not(:hover){color:rgba(0,0,0,.3)}.subnav-item{color:rgba(0,0,0,.68);display:inline-block;font-size:14px;transition:color .5s ease-in-out 0s}@media screen and (max-width:1000px){.navTabs--metabar{margin-top:65px;border-bottom:1px solid #f0f0f0;border-top:1px solid #f0f0f0;background-color:#fafafa;line-height:32px}.subnav-item{font-size:12px}.metabar--spacer{height:99px}}@media screen and (max-width:640px){.metabar-predictiveSearch{display:none!important}.metabar{background-image:none}}.site-title{line-height:1}.logo{z-index:1;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important;padding-left:10px;position:relative;height:65px}.trackedPost{background-color:#fff;box-shadow:0 0 25px rgba(0,0,0,.075);padding:15px 50px 50px;border-radius:3px}.trackedPost .postArticle-title{margin-bottom:10px}@media (max-width:600px){.trackedPost{box-shadow:none;padding:0}}.narrot-item{margin-bottom:2px}.narrot-image{border-radius:3px}.narrot-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.narrot-title:hover{color:#9f2850}.narrot-title--hero{font-size:18px;color:rgba(0,0,0,.44);margin-bottom:10px}.relatedTopics{border-top:1px solid rgba(0,0,0,.05);margin-top:10px;padding-top:10px}.relatedTopics-prefix{color:rgba(0,0,0,.44)}.relatedTopics a:hover{text-decoration:underline}.col{min-height:1px;padding-left:20px;padding-right:20px;position:relative}.col,.container,.row{box-sizing:border-box}.form-hint{color:rgba(0,0,0,.54);font-size:16px}.form-row{margin:30px 0}.row:after{clear:both}.row:after,.row:before{content:" ";display:table}.sectionItem{width:218px;height:210px;border:1px solid rgba(0,0,0,.1);margin-left:15px;margin-right:15px;margin-bottom:30px}.sectionItem-image{background-size:cover;background-position:50%}.sectionItem-title{font-size:18px;font-weight:700}.sectionItem img{display:block}.postArticle-meta{position:absolute;top:36px;right:0;height:85px;line-height:36px;width:85px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.postArticle-meta .day{bottom:-4px;position:absolute;right:0}.postArticle-meta time{color:#333;font-size:40px;font-weight:700;line-height:36px}.postArticle-meta .month{left:0;position:absolute;top:0}.postArticle-meta:after{background-color:#0f2540;content:"";display:block;height:118px;position:absolute;right:42px;top:-16px;-webkit-transform:rotate(45deg);transform:rotate(45deg);width:1px}.postArticle-header{padding-top:150px;padding-bottom:20px;position:relative}.postArticle-title{font-size:32px;line-height:1.4;font-weight:600}.postArticle-subtitle{font-size:24px;color:#9ea0a6;line-height:1.2}@media (max-width:600px){.postArticle-header{padding-top:50px}.postArticle-title{font-size:24px}.postArticle-subtitle{font-size:18px}.postArticle-meta{display:none}}.nazar-boob .nazar-articleItem{width:480px;height:360px}.nazar-boob .nazar-articleImage{height:280px}.nazar-boob .nazar-articleTitle{top:300px}.nazar-articleWrapper{-moz-box-pack:justify;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.nazar-articleItem{width:316px;border:1px solid rgba(0,0,0,.1);border-radius:2px;background-color:#fff;height:260px;position:relative;display:inline-block;margin-bottom:25px;box-sizing:border-box}.nazar-articleTitle{font-size:18px;font-weight:700;position:absolute;right:15px;top:200px;left:15px}.nazar-articleTitle h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nazar-articleImage{position:absolute;left:0;top:0;right:0;height:180px;background-size:cover;background-position:50%}@media (max-width:600px){.nazar-articleItem{width:100%;height:220px}.nazar-articleImage{height:160px}.nazar-articleTitle{top:173px}}.lockedPostHeader{color:rgba(0,0,0,.54);font-size:14px}.site-info{line-height:1.4;background-image:url(china.svg);background-position:100%;background-repeat:no-repeat;background-size:30px auto}.footer{border-top:1px solid rgba(0,0,0,.05);padding:10px 0 15px;color:rgba(0,0,0,.58);font-size:14px}.footer--empty{padding-top:100px}.entry-header{margin-bottom:20px}.entry-header .entry-title{font-size:32px;font-weight:700;line-height:1.3;margin-bottom:5px}.butterBar{left:50%;margin-left:-320px;max-width:640px;position:fixed;text-align:center;top:0;width:58%;z-index:2;-webkit-transform:translateY(-100px);transform:translateY(-100px);transition:visibility 0s linear .7s,opacity .7s ease 0s,-webkit-transform .7s ease 0s;transition:transform .7s ease 0s,visibility 0s linear .7s,opacity .7s ease 0s;transition:transform .7s ease 0s,visibility 0s linear .7s,opacity .7s ease 0s,-webkit-transform .7s ease 0s;visibility:hidden}.butterBar.is-active{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);transition-delay:0s;visibility:visible}.butterBar-message{background:hsla(0,0%,100%,.97);border-bottom-left-radius:4px;border-bottom-right-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.25),0 0 1px rgba(0,0,0,.35);display:inline-block;font-size:14px;margin-bottom:0;padding:12px 25px}.butterBar--error .butterBar-message{background-color:#cc5454;color:#fff}.butterBar--success .butterBar-message{background-color:#5cb85c;color:#fff}@media screen and (max-width:640px){.butterBar{margin-left:5%;width:90%;left:0}}.loadingBar{background-color:#9f2850;display:none;height:2px;left:0;position:fixed;top:0;transform:translateX(100%);-webkit-transform:translateX(100%);z-index:3;width:100%}.is-loadingApp .loadingBar{-webkit-animation:a 1s ease-in-out infinite;animation:a 1s ease-in-out infinite;-webkit-animation-delay:.8s;animation-delay:.8s;display:block}.middotDivider{margin-left:5px;margin-right:5px}.middotDivider:before{content:'\00B7'}.block--list{padding-top:40px;padding-bottom:40px;line-height:1.1;display:-webkit-box;display:-ms-flexbox;display:flex}.block--list:last-child{border-bottom:0}.block-image{background-color:#f0f0f0;background-origin:border-box;background-position:50%;background-size:cover;display:block;position:relative;box-sizing:border-box}.block--list .block-image{height:134px;margin:2px 0 0 20px;width:155px;border:1px solid rgba(0,0,0,.15);-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.block--list .block-image:hover{border-color:rgba(0,0,0,.66)}.block--list .block-content{margin:4px 0 0;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.block--list.block--withoutImage .block-content{margin-right:0}.block-title{font-size:22px;line-height:1.3;margin-left:-1.2px;font-weight:600}.block-snippet{color:rgba(0,0,0,.55);line-height:1.6;margin:5px 0 10px -.9px}.block-postMeta{color:rgba(0,0,0,.54);font-size:14px;margin-top:10px}.block-postMeta a:hover{color:rgba(0,0,0,.84);text-decoration:underline}.block-list.block--withoutImage .block-content{margin-right:0}.block-more{margin-bottom:40px;margin-top:40px}@media (max-width:991px){.block--list{padding-top:25px;padding-bottom:25px}.block--list .block-image{height:100px;width:100px}.block--list .block-content{margin-right:0}.block-title{font-size:20px}}@media (max-width:767px){.block--list .block-image{height:90px;width:90px;display:none}.block-title{font-size:18px}.block-snippet{font-size:14px}}.hero{text-align:center}.hero--collection{margin-bottom:25px}.hero-title{font-size:32px;line-height:1.2}.hero-logo{max-width:400px;max-height:200px}.hero-description{color:rgba(0,0,0,.6);font-size:18px;word-break:break-word;word-wrap:break-word}.hero--standalone{padding:40px 0}.hero--profile{text-align:left;padding:30px 0}.hero-avatar .instagram-avatar{border-radius:100%;width:100px;height:100px}.button{display:inline-block;position:relative;height:37px;padding:0 16px;color:rgba(0,0,0,.54);background:#fff;font-size:14px;text-align:center;text-decoration:none;cursor:pointer;border:1px solid rgba(0,0,0,.15);white-space:nowrap;text-rendering:auto;box-sizing:border-box;border-radius:999em}.is-enableBrandingButtons .button{border-radius:4px}.button--chromeless{border:0;padding:0}.button.is-active>.button-activeState,.button>.button-defaultState{display:inline}.button.is-active>.button-defaultState,.button>.button-activeState{display:none}.button--small{height:32px;line-height:31px;padding:0 14px;font-size:12px}.button--small:hover{color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.15)}.button--primary{color:#9f2850;border-color:#9f2850}.button--primary .svgIcon{fill:#9f2850}.button--primary:hover{color:#862244;border-color:#862244;fill:#862244}.list--collection{padding:40px 0}.list{padding:15px 0;position:relative;overflow:hidden}.list--borderedBottom{border-bottom:1px solid rgba(0,0,0,.05)}.list--borderedBottom:last-child{border-bottom:0}.list-avatar{margin-right:15px;border-radius:3px;width:40px;height:40px}.list-title{font-size:14px;font-weight:700;line-height:1.4}.list-description{font-size:12px;color:rgba(0,0,0,.44)}.list-action{position:absolute;right:0;top:14px}.list--withIcon .button--circle{float:left;width:40px;height:40px;line-height:1;background-color:hsla(0,0%,100%,.97);border-color:rgba(0,0,0,.05)}.list--withIcon .button--circle:focus,.list--withIcon .button--circle:hover{border-color:rgba(0,0,0,.15)}.list--withIcon .list-itemInfo{margin-left:55px;padding-bottom:18px}.list-item{border-top:1px solid hsla(0,0%,100%,.2);padding:40px 0 35px}.list--withIcon .list-item{padding:0;border:0;margin-top:18px;line-height:1.4}.list-itemImage{float:left}.list-itemImage img{height:40px;width:40px;border-radius:100%;border:1px solid rgba(0,0,0,.15);display:block}.list--withIcon .list-itemTitle{color:rgba(0,0,0,.8);font-size:14px;max-width:96%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-itemDescription{color:rgba(0,0,0,.3);font-size:14px;margin-bottom:0;margin-right:20px}.list--withIcon .list-index{color:rgba(0,0,0,.8);font-size:12px;font-weight:700}.date-nav-item{color:rgba(0,0,0,.44);font-size:12px;padding-top:8px}.date-nav-item:hover{color:rgba(0,0,0,.8)}.month-title{font-family:Tisa Pro;font-weight:200;font-size:18px;padding-bottom:15px}.month-title:hover:after{background-color:#9f2850}.archive-list{padding-bottom:50px;border-top:1px solid #eee}.archive-year{font-size:42px;padding-bottom:15px;color:rgba(0,0,0,.44);font-family:Tisa Pro;font-weight:200}.archive-item{padding:10px 15px;font-size:18px;border-bottom:1px solid #eee}.archive-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.archive-item-title:hover{color:#9f2850}.archive-item-meta{color:rgba(0,0,0,.44);font-size:12px;font-family:Tisa Pro;font-weight:200}.list-archive-wrapper{padding:30px 0}.entry-meta{font-size:14px;color:rgba(0,0,0,.6)}.entry-meta a{transition:.5s}.entry-meta a:hover{color:#9f2850}.segment{background-color:#fafafa;padding:120px 0 90px}.segment.segment--noline{background-color:#fff}.content--center{text-align:center}.content__headline,.content__subline{font-size:28px;font-weight:700;line-height:1.14;margin-bottom:10px;vertical-align:baseline}.content__subline{color:#8f8f8;font-weight:100}.using__intro{margin-bottom:90px}.using__row{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.using__col{-ms-flex-item-align:start;align-self:flex-start;box-sizing:border-box;display:block;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-negative:1;flex-shrink:1;min-height:1px;overflow:hidden;padding-left:15px;padding-right:15px;width:25%}.using__client{background-color:#fff;border-radius:3px;box-shadow:0 1px 20px 0 rgba(0,0,0,.05);height:0;margin-bottom:30px;padding:0 0 100%;position:relative}.using__client-name{font-size:15px;font-weight:700;line-height:1;position:relative;text-align:center;vertical-align:baseline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.using__client-logo{height:80px;width:80px;margin-bottom:15px}.using__client-inner{-webkit-box-align:center;-ms-flex-align:center;align-items:center;bottom:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column wrap;flex-flow:column wrap;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;left:0;padding:10px;position:absolute;right:0;top:0}@media (max-width:800px){.using__col{width:33.333333%}}@media (max-width:480px){.using__col{width:50%;padding-left:7.5px;padding-right:7.5px}}.container{margin:0 auto;max-width:1320px;padding:0 15px}@media (min-width:340px){.container{max-width:1350px;padding:0 30px}}@media (min-width:720px){.container{max-width:1410px;padding:0 60px}}@media (min-width:1080px){.container{max-width:1470px;padding:0 90px}}.movies{padding:15px 0}.movies-header{padding:0 10px}.movies ul{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.movies li{width:20%;padding:10px;box-sizing:border-box}.movies li .movie-title{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;color:rgba(0,0,0,.44);padding-top:4px}.movies li:hover .movie-title{color:#9f2850}.movies li .rating{background:#f88e00 none repeat scroll 0 0;border-radius:50px;bottom:5%;color:#fff;font-size:12px;height:30px;line-height:30px;position:absolute;right:5%;text-align:center;width:30px}.movies li .movie-image{height:260px;-webkit-animation:b 1s;animation:b 1s;-webkit-backface-visibility:hidden;backface-visibility:hidden}.movies li.book{width:20%}.movies li.book .movie-image{height:180px}@media (max-width:960px){.movies li{width:25%}.movies li .movie-image{height:235px}}@media (max-width:640px){.movies li{width:33.3333%}.movies li .movie-image{height:200px}}@media (max-width:480px){.movies li{width:50%}}.collectionHeader{padding:50px 0 30px}.single .collectionHeader{padding-bottom:50px}.collectionHeader--bordered{border-bottom:1px solid rgba(0,0,0,.05)}.collectionHeader-logo{width:92px;padding-right:20px}.collectionHeader-logoImage{width:92px}.collectionHeader-name{font-size:32px;line-height:1.2;padding:5px 0}.collectionHeader-description{font-size:20px;color:rgba(0,0,0,.6);line-height:1.4}.collectionHeader-nav{display:-webkit-box;display:-ms-flexbox;display:flex;height:37px;padding:20px 0}.collectionHeader+.collectionHeader-navList{padding-top:0}.collectionHeader-navList{padding-bottom:20px;padding-top:20px;border-bottom:1px solid rgba(0,0,0,.05);border-bottom-color:rgba(0,0,0,.15)}.collectionHeader-navItem{color:rgba(0,0,0,.6);display:inline-block;font-size:14px;margin-right:10px;text-transform:uppercase;letter-spacing:1px}.collectionHeader-navItem.is-active{color:rgba(0,0,0,.8)}.collectionHeader-inner{position:relative}@media (max-width:700px){.collectionHeader-overlayBackground{padding:80px 0}.collectionHeader-name{font-size:24px}.collectionHeader-description{font-size:16px}}.tagHeader{padding:30px 0}.tagHeader-prefix{letter-spacing:1px;text-transform:uppercase;font-size:12px;color:rgba(0,0,0,.44)}.tagHeader-title{font-size:32px}@media (max-width:600px){.tagHeader-title{font-size:24px}}.is-zoomActive .surface-container{-webkit-filter:blur(8px);filter:blur(8px)}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;text-align:center;z-index:2}.overlay-img-wrap{padding:30px 0 0;display:none;margin-top:30px;position:relative;opacity:0;transition:.5s}.overlay-img-wrap.is-finieshed{display:inline-block;opacity:1}.zoomImgPre{position:absolute;background-color:transparent;border:0;top:50%;left:-60px;cursor:pointer}.zoomImgPre .svgIcon{fill:rgba(0,0,0,.3)}.zoomImgNext{position:absolute;background-color:transparent;border:0;top:50%;right:-60px;cursor:pointer}.zoomImgNext .svgIcon{fill:rgba(0,0,0,.3)}.zoomImgNext:hover .svgIcon,.zoomImgPre:hover .svgIcon{fill:rgba(0,0,0,.6)}.zoomImgClose{background-color:transparent;border:0;color:#ccc;font-size:40px;line-height:1;position:absolute;right:10px;top:10px;cursor:pointer}.zoomImgClose:hover{color:rgba(0,0,0,.8)}.zoomNav-item{display:inline-block;height:10px;width:10px;border-radius:100%;margin:3px;cursor:pointer;background-color:#ccc}.zoomNav-item.is-active{background-color:#9f2850}.widget-card{padding-top:15px}.widget-card .favteam{height:auto;margin-right:5px}.widget-card-imageWrapper{display:inline-block;margin-right:10px;vertical-align:middle}.widget-card-imageWrapper img{display:block;border-radius:3px}.widget-card-content{display:inline-block;vertical-align:middle;color:rgba(0,0,0,.6)}.widget-card-description{color:rgba(0,0,0,.6);padding-top:10px;font-size:14px;margin-bottom:15px}.widget-card-info{font-size:14px}.widget-card-infoTitle{text-transform:uppercase;letter-spacing:1px;color:rgba(0,0,0,.6);font-size:12px}.widget-card-info .svgIcon{fill:rgba(0,0,0,.6)}.widget-card-info .svgIcon:hover{fill:rgba(0,0,0,.8)}.widget-title{border-bottom:1px solid rgba(0,0,0,.05);color:rgba(0,0,0,.6);font-size:14px;letter-spacing:1px;line-height:20px;padding-bottom:8px}.widget{margin-bottom:40px}.widget-topic-list{padding-top:15px}.widget-topic-image{border-radius:3px 0 0 3px;width:30px;height:30px;position:absolute;left:0;top:0}.widget-topic-item{padding:4px 10px;display:inline-block;background:#fafafa;border:1px solid #f0f0f0;margin-right:8px;margin-bottom:8px;border-radius:3px;color:rgba(0,0,0,.54);font-size:12px;position:relative}.widget-topic-item.widthImage{padding-left:40px}.widget-topic-item:hover{color:rgba(0,0,0,.8)}.responses-title{font-weight:700;padding:10px;border-bottom:1px solid rgba(0,0,0,.05)}.responses-title-supplemental{background-color:#fafafa;font-size:12px;color:rgba(0,0,0,.44);padding:18px}.commentnav{padding-top:30px;margin-bottom:0}.comment-block{padding:15px 0;border-bottom:1px solid rgba(0,0,0,.05)}.comment-avatar{margin-right:12px;width:40px;height:40px}.comment-avatar .avatar{border-radius:100%;width:40px;height:40px}.comment-meta{line-height:1.4;font-size:14px}.comment-author{color:#9f2850}.comment-time{font-size:12px;color:rgba(0,0,0,.6)}.comment-content{margin-top:5px;font-size:14px;color:rgba(0,0,0,.66)}.comment-content .svgIcon{height:14px;width:14px;margin-right:4px}.atreply{float:left;margin-right:5px}.comment-content p{margin-bottom:5px}.comment-reply-link{float:right;background-color:#9f2850;color:#fff;padding:3px 8px;font-size:12px;line-height:1;border-radius:3px;display:none;cursor:pointer}.comment-block:hover .comment-reply-link{display:block}@media screen and (max-width:640px){.comment-block{padding:15px 0}.comment-reply-link{display:block}}.wp-smiley{width:24px;height:auto!important;max-height:none!important}.add-smily{background:#fff;border:0;cursor:pointer}.add-smily .wp-smiley{width:24px;margin-right:5px}.children{margin-left:50px}.responsesForm p{margin-bottom:15px}.responsesForm label{display:block;color:rgba(0,0,0,.6);font-size:14px;cursor:pointer}.responsesForm .inputGroup{width:240px;height:36px}.responsesForm .required{font-size:12px;color:rgba(0,0,0,.3)}.respond{padding:30px 0}.comments-title{font-size:18px;color:rgba(0,0,0,.6);margin-bottom:20px}.cnav-item{font-size:14px;color:rgba(0,0,0,.6);cursor:pointer;line-height:32px;fill:rgba(0,0,0,.6)}.cnav-item:hover{color:rgba(0,0,0,.8);fill:rgba(0,0,0,.8)}.cnav-item.disabled{cursor:default;opacity:.25;pointer-events:none}.cnav-item .svgIcon{-webkit-transform:translate3d(0,-1px,0);transform:translate3d(0,-1px,0)}.pingback{padding:25px 0;color:rgba(0,0,0,.6);border-bottom:1px solid rgba(0,0,0,.05)}.inputSubmit{display:inline-block;background-color:#292929;border:1px solid #292929;border-radius:4px;padding:4px 20px;color:hsla(0,0%,100%,.97);font-family:Tisa Pro;font-weight:200;cursor:pointer}.inputSubmit:hover{border-color:#727171;background-color:#727171}.inputGroup{border:1px solid rgba(0,0,0,.15);padding:3px 15px;border-radius:3px;height:30px;box-sizing:border-box}.inputGroup.inputTextarea{resize:none;width:100%;height:200px;padding:15px}@media (max-width:600px){.responsesForm .inputGroup{width:100%}.inputSubmit{width:100%;box-sizing:border-box;text-align:center}}#cancel-comment-reply-link{font-size:14px;color:#cc5454!important;margin-left:15px}.label{color:rgba(0,0,0,.44);line-height:1.4}.label--smaller{padding:8px 0}.textInput{background-color:#fff;font-size:14px;border:1px solid rgba(0,0,0,.15)}.textInput--rounded{border-radius:999em}.chartPage-verticalDivider{border-right:1px solid rgba(0,0,0,.44);display:inline-block;height:25px;margin:2px 10px 0;vertical-align:top}.comment-note{font-size:12px;color:rgba(0,0,0,.6)}.wp-smiley{transition:.5s}.wp-smiley:hover{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}.textInput--jumbo{font-size:50px;font-style:normal;font-weight:300;height:80px;letter-spacing:0;padding:0;width:100%;border:0;border-bottom:1px solid rgba(0,0,0,.05)}.archive-comments-count{font-size:12px;color:rgba(0,0,0,.44);text-align:right}.supplementalPostContent{padding:10px 0}.c-n{border:1px solid #9f2850;border-radius:999em;display:inline-block;font-size:11px;line-height:1;margin-left:4px;padding:1px 6px;vertical-align:1px}.yumi-articleWrapper{padding-top:50px;-moz-box-pack:justify;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.yumi-articleItem{width:312px;margin-bottom:30px;height:260px;border:1px solid rgba(0,0,0,.1);background-color:#fff}.yumi-articleTitle{font-size:18px;font-weight:700;height:80px;line-height:80px;padding-left:20px;padding-right:20px}.yumi-articleTitle a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.yumi-articleImage{background-origin:border-box;background-position:50%;background-size:cover;height:180px;display:block}@media (max-width:600px){.yumi-articleItem{width:100%}}.block-empty{padding-top:50px;padding-bottom:50px;color:rgba(0,0,0,.44)}.elevate-container{max-width:1150px;margin-left:auto;margin-right:auto;position:relative}.elevateSidebar{left:0;margin-top:30px;position:absolute;top:210px;width:140px;z-index:2}@media (max-width:1200px){.elevateSidebar{display:none}}.elevateCoverShadow{box-shadow:0 8px 16px 0 rgba(0,0,0,.08)}.elevatePost-item{border-bottom:1px solid #eee;padding:8px 0}.elevatePost-item h4{font-size:12px;font-weight:700}.elevatePost-item h4:hover{color:#9f2850}.elevatePost-item .meta{font-size:12px;color:rgba(0,0,0,.44)}.elevateFixed{position:fixed;top:30px;width:140px}.elevateAuthorCard{padding-top:30px;margin-top:15px;border-top:1px solid #eee}.elevateAuthorCard .avatar{border-radius:100%;width:80px;height:80px}.elevateAuthorCard h3{font-size:24px;margin-top:15px;line-height:1}.elevateAuthorCard p{font-size:18px;color:rgba(0,0,0,.6)}.elevate-recirc{box-sizing:border-box;padding:10px;width:33.33333%}.elevate-recirc .elevate-recirc-img{transition:.5s;display:block;overflow:hidden}.elevate-recirc img{transition:.5s;display:block}.elevate-recirc:hover .elevate-recirc-img{-webkit-transform:scale(.96);transform:scale(.96)}.elevate-recirc:hover .img{-webkit-transform:scale(1.1);transform:scale(1.1)}.elevate-recirc h4{font-size:18px;line-height:1.3;margin-bottom:4px;margin-top:10px}.elevate-recirc h4:hover{color:#9f2850}.elevate-recirc .meta{font-size:14px}.elevateBottomRecirc{padding-top:10px;padding-bottom:30px}.elevateRecirc-title{font-size:24px;padding-left:50px}.locationPostContent .elevate-recirc{width:50%}.locationPostContent .elevateRecirc-title{padding-top:15px;padding-bottom:15px}@media (max-width:600px){.elevate-recirc{padding:0;width:100%;margin-bottom:15px}.elevate-recirc .meta,.elevate-recirc h4{padding-left:5%;padding-right:5%}.elevateRecirc-title{padding-left:5%;font-size:18px;margin-bottom:10px}.elevateBottomRecirc{padding-bottom:10px}.u-xs-paddingTop10{padding-top:10px!important}.locationPostContent .elevate-recirc{width:auto}.locationPostContent .elevateRecirc-title{text-align:center;padding-left:0;padding-bottom:0}}.using__themes{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-wrap:wrap;flex-wrap:wrap}.using__theme{width:333px;margin-bottom:40px}.using__theme img{border-radius:3px}.using__theme h3{color:rgba(0,0,0,.6);font-size:18px;margin-bottom:8px}.using__theme .selection{display:-webkit-box;display:-ms-flexbox;display:flex}.using__theme .selection a{border:1px solid #9f2850;font-size:12px;border-radius:999em;line-height:1;padding:3px 10px;color:#9f2850;margin-right:6px}.using__theme .selection a:hover{background-color:#9f2850;color:#fff}@media (max-width:600px){.segment{padding-top:60px;padding-bottom:30px}.using__intro{margin-bottom:45px}.container{padding-left:5%;padding-right:5%}.content__headline,.content__subline{font-size:20px}.using__theme{display:block;width:auto;margin:15px 0}}.footer-msg{font-size:14px;color:rgba(0,0,0,.6)}.author-social{position:absolute;right:0}.inputGroup{transition:.5s}.inputGroup:focus{border-color:#9f2850}.footerBar{box-shadow:0 -3px 10px 0 rgba(0,0,0,.08);transition:1s;-webkit-transform:translateZ(0);transform:translateZ(0);border-bottom:1px solid rgba(0,0,0,.05);background-color:#fff;position:fixed;bottom:0;left:0;right:0;-webkit-animation:pop-upwards 1s;animation:pop-upwards 1s}.footerBar.bangbang{-webkit-transform:translate3d(0,200px,0);transform:translate3d(0,200px,0)}.footerBar .inner{padding:25px 20px;max-width:833px;margin-left:auto;margin-right:auto}.ins-images{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.ins-images .ins-item{width:31.5%;margin-bottom:30px}.ins-images .ins-image{background-size:cover;box-sizing:border-box;padding-bottom:80%;background-position:50%}.ins-images .ins-caption{font-size:12px;color:rgba(0,0,0,.5);margin-top:8px}@media (max-width:600px){.footerBar .inner{padding:10px;line-height:1.4;font-size:12px}.u-xs-marginLeft0{margin-left:0!important}.u-xs-marginLeft10{margin-left:10px!important}.ins-images .ins-item{width:100%;margin-bottom:30px}}.clearfix:after,.clearfix:before{display:table;content:''}.clearfix:after{clear:both}.clearfix{zoom:1}.lists-navigator{margin:30px 0 35px}.onelist-page .lists-navigator{margin:35px 0}.lists-navigator ol{margin:0;padding:0 10px;list-style:none;text-align:center}.lists-navigator ol li{display:inline-block;color:#5f5f5f}.lists-navigator ol li a{padding:0 20px;color:#5f5f5f;font-size:14px}.lists-navigator ol li.current a{color:#eb5055}@media (max-width:880px){.lists-navigator{margin:25px 0 30px}}.grap ol,.grap p,.grap ul{margin-bottom:20px}.grap strong{font-weight:700}.grap em{font-style:italic}.grap a{color:#4482f9;text-decoration:none;font-weight:700}.grap a .svgIcon{margin-right:4px}.grap li{margin-bottom:9pt;margin-left:30px;padding-top:2px}.grap li:before{display:inline-block;box-sizing:border-box;margin-left:-58px;padding-right:15px;width:58px;content:"鈥�";text-align:right;font-size:14px}.grap ol{counter-reset:a}.grap ol>li:before{padding-right:9pt;content:counter(a,decimal) ".";counter-increment:a}.grap h2:before,.grap h3:before,.grap h4:before,.grap h5:before{position:absolute;top:-4px;left:-.7em;color:#f05f70;content:"#";font-weight:400;font-size:1.2em}.grap h2,.grap h3,.grap h4,.grap h5{position:relative;margin-top:24px;margin-bottom:1pc;margin:1em 0;font-weight:400;font-size:22px}.grap h1:before{position:absolute;top:-4px;left:-.7em;color:#f05f70;content:"#";font-weight:700;font-size:1.2em}.grap h1{position:relative;margin-top:24px;margin-bottom:1pc;margin:1em 0;padding-bottom:.3em;border-bottom:1px solid #eaecef;font-weight:700;font-size:22px}.grap hr{display:block;margin-top:52px;margin-bottom:42px;border:0;text-align:center}.grap hr:before{position:relative;top:-30px;display:inline-block;margin-left:.6em;color:rgba(0,0,0,.6);content:'...';letter-spacing:.6em;font-size:28px}.grap--figure{margin-bottom:20px}.grap--figure .imageCaption{color:rgba(0,0,0,.44);text-align:center;font-size:9pt}
Download .txt
gitextract_gerh_fs1/

├── 404.php
├── LICENSE
├── README.md
├── archive.php
├── category.php
├── comments.php
├── footer.php
├── functions.php
├── header.php
├── index.php
├── page-category.php
├── page.php
├── post.php
├── search.php
├── sidebar.php
└── static/
    └── css/
        └── style.css
Download .txt
SYMBOL INDEX (9 symbols across 2 files)

FILE: comments.php
  function threadedComments (line 4) | function threadedComments($comments, $options) {

FILE: functions.php
  function themeConfig (line 4) | function themeConfig($form) {
  function themeInit (line 78) | function themeInit($archive) {
  function parseContent (line 87) | function parseContent($obj){
  function thumb (line 93) | function thumb($cid,$isIndex) {
  function getPostCount (line 119) | function getPostCount()
  function is_mobile (line 130) | function is_mobile()
  function getCommentAt (line 154) | function getCommentAt($coid){
  function getAvatar (line 173) | function getAvatar($size){
Condensed preview — 16 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (103K chars).
[
  {
    "path": "404.php",
    "chars": 5048,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\n<?php $this->need('header.php'); ?>\n\n<div class=\"layoutSingleColumn"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 1140,
    "preview": "# Bigfa\nA theme for Typecho\n\nDEMO:https://jozhn.com\n\n![Snipaste_2019-10-29_18-27-57.png](https://i.loli.net/2019/10/29/q"
  },
  {
    "path": "archive.php",
    "chars": 1706,
    "preview": "<?php\n/**\n* 归档页面\n*\n* @package archive\n*/\nif (!defined('__TYPECHO_ROOT_DIR__')) exit;\n$this->need('header.php');\n?>\n\n\n<di"
  },
  {
    "path": "category.php",
    "chars": 3221,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\n<?php $this->need('header.php');  $this->widget('Widget_Metas_Categ"
  },
  {
    "path": "comments.php",
    "chars": 5400,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\n\n<?php\nfunction threadedComments($comments, $options) {\n    $commen"
  },
  {
    "path": "footer.php",
    "chars": 7144,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\n\n<?php if ($this->is('index')) : ?>\n   <footer class=\"layoutSingleC"
  },
  {
    "path": "functions.php",
    "chars": 6444,
    "preview": "<?php\nif (!defined('__TYPECHO_ROOT_DIR__')) exit;\n\nfunction themeConfig($form) {\n    $siteUrl = Helper::options()->siteU"
  },
  {
    "path": "header.php",
    "chars": 5011,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit;\n//当cdn加速开启时候定义cdn的地址\nif (!empty($this->options->next_cdn) && $this->op"
  },
  {
    "path": "index.php",
    "chars": 2939,
    "preview": "<?php\r\n/**\r\n * Bigfa by <a href=\"https://jozhn.com\">Jozhn</a>\r\n *\r\n * @package Bigfa\r\n * @author Jozhn\r\n * @version 2.0\r"
  },
  {
    "path": "page-category.php",
    "chars": 963,
    "preview": "<?php\r\n/**\r\n* 分类合集页面\r\n*\r\n* @package custom\r\n*/\r\nif (!defined('__TYPECHO_ROOT_DIR__')) exit;\r\n$this->need('header.php');\r"
  },
  {
    "path": "page.php",
    "chars": 708,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\n<?php $this->need('header.php'); ?>\n\n<div class=\"layoutSingleColumn"
  },
  {
    "path": "post.php",
    "chars": 1642,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\n<?php $this->need('header.php'); ?>\n\n<?php\n\t$host = 'https://secure"
  },
  {
    "path": "search.php",
    "chars": 2264,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\r\n<?php $this->need('header.php'); ?>\r\n\r\n</br>\r\n<div class=\"u-size64"
  },
  {
    "path": "sidebar.php",
    "chars": 2010,
    "preview": "<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>\n\n    <div class=\"layoutMultiColumn layoutMultiColumn--secondary\">\n "
  },
  {
    "path": "static/css/style.css",
    "chars": 40279,
    "preview": "@font-face{font-family:Tisa Pro;src:url(6f72dd000aeeeb67887b210058793f0638c0c5a55e20360887e4b1301620f4c-webfont.woff2) "
  }
]

About this extraction

This page contains the full source code of the jozhn/Bigfa GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 16 files (95.0 KB), approximately 31.8k tokens, and a symbol index with 9 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!