J#lUOPJ;Vj#I(msyiw!_!8!*~r|1AXz-KMD5FGF_S0z}juE=ksK$FPr
z1&d6=n}oZS!R}eX;|zGLjbmV~Nw`Ru>4Ft5zJp65S7H)gs*T@)msa?=1Ab}a<$epu
zBxfErz6xQZxgsL>$C|!~n1s{XcrJ@W*eDc5Y04!0Oq{=!{~=r{wr|KJd{-N11u66*
z3cwbT>oo~?vuM~+6;iwzEYZded|?eIahvBNf7#%*3
zRS(z-F7h+W&)&suB^9-%Kl-?`PY%!G{OlE(5Vl((wXzQ`hO5n#ur4kQ_eA+8lfw2T
wk(|G@S?Y{yH0NDkLt#Wf;(f|Me07*qoM6N<$f@1()lK=n!
literal 0
HcmV?d00001
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..df97f6e
--- /dev/null
+++ b/index.html
@@ -0,0 +1,1105 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ L杂货店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/src/affix.js b/js/src/affix.js
new file mode 100644
index 0000000..11a3d39
--- /dev/null
+++ b/js/src/affix.js
@@ -0,0 +1,162 @@
+/* ========================================================================
+ * Bootstrap: affix.js v3.3.5
+ * http://getbootstrap.com/javascript/#affix
+ * ========================================================================
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // AFFIX CLASS DEFINITION
+ // ======================
+
+ var Affix = function (element, options) {
+ this.options = $.extend({}, Affix.DEFAULTS, options)
+
+ this.$target = $(this.options.target)
+ .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
+ .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
+
+ this.$element = $(element)
+ this.affixed = null
+ this.unpin = null
+ this.pinnedOffset = null
+
+ this.checkPosition()
+ }
+
+ Affix.VERSION = '3.3.5'
+
+ Affix.RESET = 'affix affix-top affix-bottom'
+
+ Affix.DEFAULTS = {
+ offset: 0,
+ target: window
+ }
+
+ Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
+ var scrollTop = this.$target.scrollTop()
+ var position = this.$element.offset()
+ var targetHeight = this.$target.height()
+
+ if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
+
+ if (this.affixed == 'bottom') {
+ if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
+ return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
+ }
+
+ var initializing = this.affixed == null
+ var colliderTop = initializing ? scrollTop : position.top
+ var colliderHeight = initializing ? targetHeight : height
+
+ if (offsetTop != null && scrollTop <= offsetTop) return 'top'
+ if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
+
+ return false
+ }
+
+ Affix.prototype.getPinnedOffset = function () {
+ if (this.pinnedOffset) return this.pinnedOffset
+ this.$element.removeClass(Affix.RESET).addClass('affix')
+ var scrollTop = this.$target.scrollTop()
+ var position = this.$element.offset()
+ return (this.pinnedOffset = position.top - scrollTop)
+ }
+
+ Affix.prototype.checkPositionWithEventLoop = function () {
+ setTimeout($.proxy(this.checkPosition, this), 1)
+ }
+
+ Affix.prototype.checkPosition = function () {
+ if (!this.$element.is(':visible')) return
+
+ var height = this.$element.height()
+ var offset = this.options.offset
+ var offsetTop = offset.top
+ var offsetBottom = offset.bottom
+ var scrollHeight = Math.max($(document).height(), $(document.body).height())
+
+ if (typeof offset != 'object') offsetBottom = offsetTop = offset
+ if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
+ if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
+
+ var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
+
+ if (this.affixed != affix) {
+ if (this.unpin != null) this.$element.css('top', '')
+
+ var affixType = 'affix' + (affix ? '-' + affix : '')
+ var e = $.Event(affixType + '.bs.affix')
+
+ this.$element.trigger(e)
+
+ if (e.isDefaultPrevented()) return
+
+ this.affixed = affix
+ this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
+
+ this.$element
+ .removeClass(Affix.RESET)
+ .addClass(affixType)
+ .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
+ }
+
+ if (affix == 'bottom') {
+ this.$element.offset({
+ top: scrollHeight - height - offsetBottom
+ })
+ }
+ }
+
+
+ // AFFIX PLUGIN DEFINITION
+ // =======================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.affix')
+ var options = typeof option == 'object' && option
+
+ if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.affix
+
+ $.fn.affix = Plugin
+ $.fn.affix.Constructor = Affix
+
+
+ // AFFIX NO CONFLICT
+ // =================
+
+ $.fn.affix.noConflict = function () {
+ $.fn.affix = old
+ return this
+ }
+
+
+ // AFFIX DATA-API
+ // ==============
+
+ $(window).on('load', function () {
+ $('[data-spy="affix"]').each(function () {
+ var $spy = $(this)
+ var data = $spy.data()
+
+ data.offset = data.offset || {}
+
+ if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
+ if (data.offsetTop != null) data.offset.top = data.offsetTop
+
+ Plugin.call($spy, data)
+ })
+ })
+
+}(jQuery);
diff --git a/js/src/bootstrap.js b/js/src/bootstrap.js
new file mode 100644
index 0000000..49b9425
--- /dev/null
+++ b/js/src/bootstrap.js
@@ -0,0 +1,44 @@
+/* global NexT: true */
+
+$(document).ready(function () {
+
+ $(document).trigger('bootstrap:before');
+
+ NexT.utils.isMobile() && window.FastClick.attach(document.body);
+
+ NexT.utils.lazyLoadPostsImages();
+
+ NexT.utils.registerBackToTop();
+
+ $('.site-nav-toggle button').on('click', function () {
+ var $siteNav = $('.site-nav');
+ var ON_CLASS_NAME = 'site-nav-on';
+ var isSiteNavOn = $siteNav.hasClass(ON_CLASS_NAME);
+ var animateAction = isSiteNavOn ? 'slideUp' : 'slideDown';
+ var animateCallback = isSiteNavOn ? 'removeClass' : 'addClass';
+
+ $siteNav.stop()[animateAction]('fast', function () {
+ $siteNav[animateCallback](ON_CLASS_NAME);
+ });
+ });
+
+
+ CONFIG.fancybox && NexT.utils.wrapImageWithFancyBox();
+ NexT.utils.embeddedVideoTransformer();
+ NexT.utils.addActiveClassToMenuItem();
+
+
+ // Define Motion Sequence.
+ NexT.motion.integrator
+ .add(NexT.motion.middleWares.logo)
+ .add(NexT.motion.middleWares.menu)
+ .add(NexT.motion.middleWares.postList)
+ .add(NexT.motion.middleWares.sidebar);
+
+ $(document).trigger('motion:before');
+
+ // Bootstrap Motion.
+ CONFIG.motion && NexT.motion.integrator.bootstrap();
+
+ $(document).trigger('bootstrap:after');
+});
diff --git a/js/src/hook-duoshuo.js b/js/src/hook-duoshuo.js
new file mode 100644
index 0000000..ca64dbd
--- /dev/null
+++ b/js/src/hook-duoshuo.js
@@ -0,0 +1,115 @@
+/* global DUOSHUO: true */
+/* jshint camelcase: false */
+
+typeof DUOSHUO !== 'undefined' ?
+ hookTemplate() :
+ ($('#duoshuo-script')[0].onload = hookTemplate);
+
+
+function hookTemplate() {
+ var post = DUOSHUO.templates.post;
+
+ DUOSHUO.templates.post = function (e, t) {
+ var rs = post(e, t);
+ var agent = e.post.agent;
+ var userId = e.post.author.user_id;
+ var admin = '';
+
+ if (userId && (userId == CONFIG.duoshuo.userId)) {
+ admin = '' + CONFIG.duoshuo.author + ' ';
+ }
+
+ if (agent && /^Mozilla/.test(agent)) {
+ rs = rs.replace(/<\/div>/, admin + getAgentInfo(agent) + '
');
+ }
+
+ return rs;
+ };
+}
+
+function getAgentInfo(string) {
+ $.ua.set(string);
+
+ var UNKNOWN = 'Unknown';
+ var sua = $.ua;
+ var separator = isMobile() ? ' ' : ' ';
+ var osName = sua.os.name || UNKNOWN;
+ var osVersion = sua.os.version || UNKNOWN;
+ var browserName = sua.browser.name || UNKNOWN;
+ var browserVersion = sua.browser.version || UNKNOWN;
+ var iconMapping = {
+ os: {
+ android : 'android',
+ linux : 'linux',
+ windows : 'windows',
+ ios : 'apple',
+ 'mac os': 'apple',
+ unknown : 'desktop'
+ },
+ browser: {
+ chrome : 'chrome',
+ chromium : 'chrome',
+ firefox : 'firefox',
+ opera : 'opera',
+ safari : 'safari',
+ ie : 'internet-explorer',
+ wechat : 'wechat',
+ qq : 'qq',
+ unknown : 'globe'
+ }
+ };
+ var osIcon = iconMapping.os[osName.toLowerCase()];
+ var browserIcon = iconMapping.browser[getBrowserKey()];
+
+ return separator +
+ '' +
+ ' ' +
+ osName + ' ' + osVersion +
+ ' ' + separator +
+ '' +
+ ' ' +
+ browserName + ' ' + browserVersion +
+ ' ';
+
+ function getBrowserKey () {
+ var key = browserName.toLowerCase();
+
+ if (key.match(/WeChat/i)) {
+ return 'wechat';
+ }
+
+ if (key.match(/QQBrowser/i)) {
+ return 'qq';
+ }
+
+ return key;
+ }
+
+ function isMobile() {
+ var userAgent = window.navigator.userAgent;
+
+ var isiPad = userAgent.match(/iPad/i) !== null;
+ var mobileUA = [
+ 'iphone', 'android', 'phone', 'mobile',
+ 'wap', 'netfront', 'x11', 'java', 'opera mobi',
+ 'opera mini', 'ucweb', 'windows ce', 'symbian',
+ 'symbianos', 'series', 'webos', 'sony',
+ 'blackberry', 'dopod', 'nokia', 'samsung',
+ 'palmsource', 'xda', 'pieplus', 'meizu',
+ 'midp' ,'cldc' , 'motorola', 'foma',
+ 'docomo', 'up.browser', 'up.link', 'blazer',
+ 'helio', 'hosin', 'huawei', 'novarra',
+ 'coolpad', 'webos', 'techfaith', 'palmsource',
+ 'alcatel', 'amoi', 'ktouch', 'nexian',
+ 'ericsson', 'philips', 'sagem', 'wellcom',
+ 'bunjalloo', 'maui', 'smartphone', 'iemobile',
+ 'spice', 'bird', 'zte-', 'longcos',
+ 'pantech', 'gionee', 'portalmmm', 'jig browser',
+ 'hiptop', 'benq', 'haier', '^lct',
+ '320x320', '240x320', '176x220'
+ ];
+ var pattern = new RegExp(mobileUA.join('|'), 'i');
+
+ return !isiPad && userAgent.match(pattern);
+ }
+}
diff --git a/js/src/motion.js b/js/src/motion.js
new file mode 100644
index 0000000..cbfb824
--- /dev/null
+++ b/js/src/motion.js
@@ -0,0 +1,291 @@
+/* global NexT: true */
+
+$(document).ready(function () {
+ NexT.motion = {};
+
+ var sidebarToggleLines = {
+ lines: [],
+ push: function (line) {
+ this.lines.push(line);
+ },
+ init: function () {
+ this.lines.forEach(function (line) {
+ line.init();
+ });
+ },
+ arrow: function () {
+ this.lines.forEach(function (line) {
+ line.arrow();
+ });
+ },
+ close: function () {
+ this.lines.forEach(function (line) {
+ line.close();
+ });
+ }
+ };
+
+ function SidebarToggleLine(settings) {
+ this.el = $(settings.el);
+ this.status = $.extend({}, {
+ init: {
+ width: '100%',
+ opacity: 1,
+ left: 0,
+ rotateZ: 0,
+ top: 0
+ }
+ }, settings.status);
+ }
+
+ SidebarToggleLine.prototype.init = function () {
+ this.transform('init');
+ };
+ SidebarToggleLine.prototype.arrow = function () {
+ this.transform('arrow');
+ };
+ SidebarToggleLine.prototype.close = function () {
+ this.transform('close');
+ };
+ SidebarToggleLine.prototype.transform = function (status) {
+ this.el.velocity('stop').velocity(this.status[status]);
+ };
+
+ var sidebarToggleLine1st = new SidebarToggleLine({
+ el: '.sidebar-toggle-line-first',
+ status: {
+ arrow: {width: '50%', rotateZ: '-45deg', top: '2px'},
+ close: {width: '100%', rotateZ: '-45deg', top: '5px'}
+ }
+ });
+ var sidebarToggleLine2nd = new SidebarToggleLine({
+ el: '.sidebar-toggle-line-middle',
+ status: {
+ arrow: {width: '90%'},
+ close: {opacity: 0}
+ }
+ });
+ var sidebarToggleLine3rd = new SidebarToggleLine({
+ el: '.sidebar-toggle-line-last',
+ status: {
+ arrow: {width: '50%', rotateZ: '45deg', top: '-2px'},
+ close: {width: '100%', rotateZ: '45deg', top: '-5px'}
+ }
+ });
+
+ sidebarToggleLines.push(sidebarToggleLine1st);
+ sidebarToggleLines.push(sidebarToggleLine2nd);
+ sidebarToggleLines.push(sidebarToggleLine3rd);
+
+ var SIDEBAR_WIDTH = '320px';
+ var SIDEBAR_DISPLAY_DURATION = 200;
+
+ var sidebarToggleMotion = {
+ toggleEl: $('.sidebar-toggle'),
+ sidebarEl: $('.sidebar'),
+ isSidebarVisible: false,
+ init: function () {
+ this.toggleEl.on('click', this.clickHandler.bind(this));
+ this.toggleEl.on('mouseenter', this.mouseEnterHandler.bind(this));
+ this.toggleEl.on('mouseleave', this.mouseLeaveHandler.bind(this));
+
+ $(document)
+ .on('sidebar.isShowing', function () {
+ NexT.utils.isDesktop() && $('body').velocity('stop').velocity(
+ {paddingRight: SIDEBAR_WIDTH},
+ SIDEBAR_DISPLAY_DURATION
+ );
+ })
+ .on('sidebar.isHiding', function () {
+ });
+ },
+ clickHandler: function () {
+ this.isSidebarVisible ? this.hideSidebar() : this.showSidebar();
+ this.isSidebarVisible = !this.isSidebarVisible;
+ },
+ mouseEnterHandler: function () {
+ if (this.isSidebarVisible) {
+ return;
+ }
+ sidebarToggleLines.arrow();
+ },
+ mouseLeaveHandler: function () {
+ if (this.isSidebarVisible) {
+ return;
+ }
+ sidebarToggleLines.init();
+ },
+ showSidebar: function () {
+ var self = this;
+
+ sidebarToggleLines.close();
+
+ this.sidebarEl.velocity('stop').velocity({
+ width: SIDEBAR_WIDTH
+ }, {
+ display: 'block',
+ duration: SIDEBAR_DISPLAY_DURATION,
+ begin: function () {
+ $('.sidebar .motion-element').velocity(
+ 'transition.slideRightIn',
+ {
+ stagger: 50,
+ drag: true,
+ complete: function () {
+ self.sidebarEl.trigger('sidebar.motion.complete');
+ }
+ }
+ );
+ },
+ complete: function () {
+ self.sidebarEl.addClass('sidebar-active');
+ self.sidebarEl.trigger('sidebar.didShow');
+ }
+ }
+ );
+
+ this.sidebarEl.trigger('sidebar.isShowing');
+ },
+ hideSidebar: function () {
+ NexT.utils.isDesktop() && $('body').velocity('stop').velocity({paddingRight: 0});
+ this.sidebarEl.find('.motion-element').velocity('stop').css('display', 'none');
+ this.sidebarEl.velocity('stop').velocity({width: 0}, {display: 'none'});
+
+ sidebarToggleLines.init();
+
+ this.sidebarEl.removeClass('sidebar-active');
+ this.sidebarEl.trigger('sidebar.isHiding');
+
+ //在 post 页面下按下隐藏 sidebar 时如果当前选中的是“站点概览”,将 toc 去除 motion 效果
+ //防止再次打开时会出现在“站点概览”下的 bug
+ if (!!$('.post-toc-wrap')) {
+ if ($('.site-overview').css('display') === 'block') {
+ $('.post-toc-wrap').removeClass('motion-element');
+ }
+ }
+ }
+ };
+ sidebarToggleMotion.init();
+
+ NexT.motion.integrator = {
+ queue: [],
+ cursor: -1,
+ add: function (fn) {
+ this.queue.push(fn);
+ return this;
+ },
+ next: function () {
+ this.cursor++;
+ var fn = this.queue[this.cursor];
+ $.isFunction(fn) && fn(NexT.motion.integrator);
+ },
+ bootstrap: function () {
+ this.next();
+ }
+ };
+
+ NexT.motion.middleWares = {
+ logo: function (integrator) {
+ var sequence = [];
+ var $brand = $('.brand');
+ var $title = $('.site-title');
+ var $subtitle = $('.site-subtitle');
+ var $logoLineTop = $('.logo-line-before i');
+ var $logoLineBottom = $('.logo-line-after i');
+
+ $brand.size() > 0 && sequence.push({
+ e: $brand,
+ p: {opacity: 1},
+ o: {duration: 200}
+ });
+
+ NexT.utils.isMist() && hasElement([$logoLineTop, $logoLineBottom]) &&
+ sequence.push(
+ getMistLineSettings($logoLineTop, '100%'),
+ getMistLineSettings($logoLineBottom, '-100%')
+ );
+
+ hasElement($title) && sequence.push({
+ e: $title,
+ p: {opacity: 1, top: 0},
+ o: { duration: 200 }
+ });
+
+ hasElement($subtitle) && sequence.push({
+ e: $subtitle,
+ p: {opacity: 1, top: 0},
+ o: {duration: 200}
+ });
+
+ if (sequence.length > 0) {
+ sequence[sequence.length - 1].o.complete = function () {
+ integrator.next();
+ };
+ $.Velocity.RunSequence(sequence);
+ } else {
+ integrator.next();
+ }
+
+
+ function getMistLineSettings (element, translateX) {
+ return {
+ e: $(element),
+ p: {translateX: translateX},
+ o: {
+ duration: 500,
+ sequenceQueue: false
+ }
+ };
+ }
+
+ /**
+ * Check if $elements exist.
+ * @param {jQuery|Array} $elements
+ * @returns {boolean}
+ */
+ function hasElement ($elements) {
+ $elements = Array.isArray($elements) ? $elements : [$elements];
+ return $elements.every(function ($element) {
+ return $.isFunction($element.size) && $element.size() > 0;
+ });
+ }
+ },
+
+ menu: function (integrator) {
+ $('.menu-item').velocity('transition.slideDownIn', {
+ display: null,
+ duration: 200,
+ complete: function () {
+ integrator.next();
+ }
+ });
+ },
+
+ postList: function (integrator) {
+ var $post = $('.post');
+ var hasPost = $post.size() > 0;
+
+ hasPost ? postMotion() : integrator.next();
+
+ function postMotion () {
+ var postMotionOptions = window.postMotionOptions || {
+ stagger: 100,
+ drag: true
+ };
+ postMotionOptions.complete = function () {
+ integrator.next();
+ };
+
+ $post.velocity('transition.slideDownIn', postMotionOptions);
+ }
+ },
+
+ sidebar: function (integrator) {
+ if (CONFIG.sidebar.display === 'always') {
+ NexT.utils.displaySidebar();
+ }
+ integrator.next();
+ }
+ };
+
+});
diff --git a/js/src/post-details.js b/js/src/post-details.js
new file mode 100644
index 0000000..156b697
--- /dev/null
+++ b/js/src/post-details.js
@@ -0,0 +1,140 @@
+/* global NexT: true */
+
+$(document).ready(function () {
+
+ initScrollSpy();
+ NexT.utils.needAffix() && initAffix();
+ initTOCDimension();
+
+ function initScrollSpy () {
+ var tocSelector = '.post-toc';
+ var $tocElement = $(tocSelector);
+ var activeCurrentSelector = '.active-current';
+
+ $tocElement
+ .on('activate.bs.scrollspy', function () {
+ var $currentActiveElement = $(tocSelector + ' .active').last();
+
+ removeCurrentActiveClass();
+ $currentActiveElement.addClass('active-current');
+ })
+ .on('clear.bs.scrollspy', removeCurrentActiveClass);
+
+ $('body').scrollspy({ target: tocSelector });
+
+ function removeCurrentActiveClass () {
+ $(tocSelector + ' ' + activeCurrentSelector)
+ .removeClass(activeCurrentSelector.substring(1));
+ }
+ }
+
+ function initAffix () {
+ var headerHeight = $('.header-inner').height();
+ var footerOffset = parseInt($('.main').css('padding-bottom'), 10);
+ var sidebarTop = headerHeight + 10;
+
+ $('.sidebar-inner').affix({
+ offset: {
+ top: sidebarTop,
+ bottom: footerOffset
+ }
+ });
+
+ $(document)
+ .on('affixed.bs.affix', function () {
+ updateTOCHeight(document.body.clientHeight - 100);
+ });
+ }
+
+ function initTOCDimension () {
+ var updateTOCHeightTimer;
+
+ $(window).on('resize', function () {
+ updateTOCHeightTimer && clearTimeout(updateTOCHeightTimer);
+
+ updateTOCHeightTimer = setTimeout(function () {
+ var tocWrapperHeight = document.body.clientHeight - 100;
+
+ updateTOCHeight(tocWrapperHeight);
+ }, 0);
+ });
+
+ // Initialize TOC Height.
+ updateTOCHeight(document.body.clientHeight - 100);
+
+ // Initialize TOC Width.
+ var scrollbarWidth = NexT.utils.getScrollbarWidth();
+ $('.post-toc').css('width', 'calc(100% + ' + scrollbarWidth + 'px)');
+ }
+
+ function updateTOCHeight (height) {
+ height = height || 'auto';
+ $('.post-toc').css('max-height', height);
+ }
+
+});
+
+$(document).ready(function () {
+ var html = $('html');
+ var TAB_ANIMATE_DURATION = 200;
+ var hasVelocity = $.isFunction(html.velocity);
+
+ $('.sidebar-nav li').on('click', function () {
+ var item = $(this);
+ var activeTabClassName = 'sidebar-nav-active';
+ var activePanelClassName = 'sidebar-panel-active';
+ if (item.hasClass(activeTabClassName)) {
+ return;
+ }
+
+ var currentTarget = $('.' + activePanelClassName);
+ var target = $('.' + item.data('target'));
+
+ hasVelocity ?
+ currentTarget.velocity('transition.slideUpOut', TAB_ANIMATE_DURATION, function () {
+ target
+ .velocity('stop')
+ .velocity('transition.slideDownIn', TAB_ANIMATE_DURATION)
+ .addClass(activePanelClassName);
+ }) :
+ currentTarget.animate({ opacity: 0 }, TAB_ANIMATE_DURATION, function () {
+ currentTarget.hide();
+ target
+ .stop()
+ .css({'opacity': 0, 'display': 'block'})
+ .animate({ opacity: 1 }, TAB_ANIMATE_DURATION, function () {
+ currentTarget.removeClass(activePanelClassName);
+ target.addClass(activePanelClassName);
+ });
+ });
+
+ item.siblings().removeClass(activeTabClassName);
+ item.addClass(activeTabClassName);
+ });
+
+ $('.post-toc a').on('click', function (e) {
+ e.preventDefault();
+ var targetSelector = NexT.utils.escapeSelector(this.getAttribute('href'));
+ var offset = $(targetSelector).offset().top;
+
+ hasVelocity ?
+ html.velocity('stop').velocity('scroll', {
+ offset: offset + 'px',
+ mobileHA: false
+ }) :
+ $('html, body').stop().animate({
+ scrollTop: offset
+ }, 500);
+ });
+
+ // Expand sidebar on post detail page by default, when post has a toc.
+ NexT.motion.middleWares.sidebar = function () {
+ var $tocContent = $('.post-toc-content');
+
+ if (CONFIG.sidebar.display === 'post' || CONFIG.sidebar.display === 'always') {
+ if ($tocContent.length > 0 && $tocContent.html().trim().length > 0) {
+ NexT.utils.displaySidebar();
+ }
+ }
+ };
+});
diff --git a/js/src/schemes/pisces.js b/js/src/schemes/pisces.js
new file mode 100644
index 0000000..07d5682
--- /dev/null
+++ b/js/src/schemes/pisces.js
@@ -0,0 +1,5 @@
+$(document).ready(function () {
+ var sidebarTop = $('.header-inner').height() + 10;
+
+ $('#sidebar').css({ 'margin-top': sidebarTop }).show();
+});
diff --git a/js/src/scrollspy.js b/js/src/scrollspy.js
new file mode 100644
index 0000000..f5c5c6c
--- /dev/null
+++ b/js/src/scrollspy.js
@@ -0,0 +1,182 @@
+/* ========================================================================
+* Bootstrap: scrollspy.js v3.3.2
+* http://getbootstrap.com/javascript/#scrollspy
+* ========================================================================
+* Copyright 2011-2015 Twitter, Inc.
+* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+* ======================================================================== */
+
+/**
+ * Custom by iissnan
+ *
+ * - Add a `clear.bs.scrollspy` event.
+ * - Esacpe targets selector.
+ */
+
+
++function ($) {
+ 'use strict';
+
+ // SCROLLSPY CLASS DEFINITION
+ // ==========================
+
+ function ScrollSpy(element, options) {
+ this.$body = $(document.body)
+ this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
+ this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
+ this.selector = (this.options.target || '') + ' .nav li > a'
+ this.offsets = []
+ this.targets = []
+ this.activeTarget = null
+ this.scrollHeight = 0
+
+ this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
+ this.refresh()
+ this.process()
+ }
+
+ ScrollSpy.VERSION = '3.3.2'
+
+ ScrollSpy.DEFAULTS = {
+ offset: 10
+ }
+
+ ScrollSpy.prototype.getScrollHeight = function () {
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+ }
+
+ ScrollSpy.prototype.refresh = function () {
+ var that = this
+ var offsetMethod = 'offset'
+ var offsetBase = 0
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
+
+ if (!$.isWindow(this.$scrollElement[0])) {
+ offsetMethod = 'position'
+ offsetBase = this.$scrollElement.scrollTop()
+ }
+
+ this.$body
+ .find(this.selector)
+ .map(function () {
+ var $el = $(this)
+ var href = $el.data('target') || $el.attr('href')
+ var $href = /^#./.test(href) && $(NexT.utils.escapeSelector(href)) // Need to escape selector.
+
+ return ($href
+ && $href.length
+ && $href.is(':visible')
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
+ })
+ .sort(function (a, b) { return a[0] - b[0] })
+ .each(function () {
+ that.offsets.push(this[0])
+ that.targets.push(this[1])
+ })
+
+
+ }
+
+ ScrollSpy.prototype.process = function () {
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
+ var scrollHeight = this.getScrollHeight()
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
+ var offsets = this.offsets
+ var targets = this.targets
+ var activeTarget = this.activeTarget
+ var i
+
+ if (this.scrollHeight != scrollHeight) {
+ this.refresh()
+ }
+
+ if (scrollTop >= maxScroll) {
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
+ }
+
+ if (activeTarget && scrollTop < offsets[0]) {
+ $(this.selector).trigger('clear.bs.scrollspy') // Add a custom event.
+ this.activeTarget = null
+ return this.clear()
+ }
+
+ for (i = offsets.length; i--;) {
+ activeTarget != targets[i]
+ && scrollTop >= offsets[i]
+ && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
+ && this.activate(targets[i])
+ }
+ }
+
+ ScrollSpy.prototype.activate = function (target) {
+ this.activeTarget = target
+
+ this.clear()
+
+ var selector = this.selector +
+ '[data-target="' + target + '"],' +
+ this.selector + '[href="' + target + '"]'
+
+ var active = $(selector)
+ .parents('li')
+ .addClass('active')
+
+ if (active.parent('.dropdown-menu').length) {
+ active = active
+ .closest('li.dropdown')
+ .addClass('active')
+ }
+
+ active.trigger('activate.bs.scrollspy')
+ }
+
+ ScrollSpy.prototype.clear = function () {
+ $(this.selector)
+ .parentsUntil(this.options.target, '.active')
+ .removeClass('active')
+ }
+
+
+ // SCROLLSPY PLUGIN DEFINITION
+ // ===========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.scrollspy')
+ var options = typeof option == 'object' && option
+
+ if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.scrollspy
+
+ $.fn.scrollspy = Plugin
+ $.fn.scrollspy.Constructor = ScrollSpy
+
+
+ // SCROLLSPY NO CONFLICT
+ // =====================
+
+ $.fn.scrollspy.noConflict = function () {
+ $.fn.scrollspy = old
+ return this
+ }
+
+
+ // SCROLLSPY DATA-API
+ // ==================
+
+ $(window).on('load.bs.scrollspy.data-api', function () {
+ $('[data-spy="scroll"]').each(function () {
+ var $spy = $(this)
+ Plugin.call($spy, $spy.data())
+ })
+ })
+
+}(jQuery);
diff --git a/js/src/utils.js b/js/src/utils.js
new file mode 100644
index 0000000..473f5d9
--- /dev/null
+++ b/js/src/utils.js
@@ -0,0 +1,207 @@
+/* global NexT: true */
+
+NexT.utils = NexT.$u = {
+ /**
+ * Wrap images with fancybox support.
+ */
+ wrapImageWithFancyBox: function () {
+ $('.content img').not('.group-picture img').each(function () {
+
+ var $image = $(this);
+ var imageTitle = $image.attr('title');
+ var $imageWrapLink = $image.parent('a');
+
+ if ($imageWrapLink.size() < 1) {
+ $imageWrapLink = $image.wrap(' ').parent('a');
+ }
+
+ $imageWrapLink.addClass('fancybox');
+ $imageWrapLink.attr('rel', 'group');
+
+ if (imageTitle) {
+ $imageWrapLink.append('
' + imageTitle + '
');
+ $imageWrapLink.attr('title', imageTitle); //make sure img title tag will show correctly in fancybox
+ }
+ });
+
+ $('.fancybox').fancybox({
+ helpers: {
+ overlay: {
+ locked: false
+ }
+ }
+ });
+ },
+
+ lazyLoadPostsImages: function () {
+ $('#posts').find('img').lazyload({
+ placeholder: '/images/loading.gif',
+ effect: 'fadeIn'
+ });
+ },
+
+ registerBackToTop: function () {
+ var THRESHOLD = 50;
+ var $top = $('.back-to-top');
+
+ $(window).on('scroll', function () {
+ $top.toggleClass('back-to-top-on', window.pageYOffset > THRESHOLD);
+ });
+
+ $top.on('click', function () {
+ $('body').velocity('scroll');
+ });
+ },
+
+ /**
+ * Transform embedded video to support responsive layout.
+ * @see http://toddmotto.com/fluid-and-responsive-youtube-and-vimeo-videos-with-fluidvids-js/
+ */
+ embeddedVideoTransformer: function () {
+ var $iframes = $('iframe');
+
+ // Supported Players. Extend this if you need more players.
+ var SUPPORTED_PLAYERS = [
+ 'www.youtube.com',
+ 'player.vimeo.com',
+ 'player.youku.com',
+ 'music.163.com',
+ 'www.tudou.com'
+ ];
+ var pattern = new RegExp( SUPPORTED_PLAYERS.join('|') );
+
+ $iframes.each(function () {
+ var iframe = this;
+ var $iframe = $(this);
+ var oldDimension = getDimension($iframe);
+ var newDimension;
+
+ if (this.src.search(pattern) > 0) {
+
+ // Calculate the video ratio based on the iframe's w/h dimensions
+ var videoRatio = getAspectRadio(oldDimension.width, oldDimension.height);
+
+ // Replace the iframe's dimensions and position the iframe absolute
+ // This is the trick to emulate the video ratio
+ $iframe.width('100%').height('100%')
+ .css({
+ position: 'absolute',
+ top: '0',
+ left: '0'
+ });
+
+
+ // Wrap the iframe in a new which uses a dynamically fetched padding-top property
+ // based on the video's w/h dimensions
+ var wrap = document.createElement('div');
+ wrap.className = 'fluid-vids';
+ wrap.style.position = 'relative';
+ wrap.style.marginBottom = '20px';
+ wrap.style.width = '100%';
+ wrap.style.paddingTop = videoRatio + '%';
+
+ // Add the iframe inside our newly created
+ var iframeParent = iframe.parentNode;
+ iframeParent.insertBefore(wrap, iframe);
+ wrap.appendChild(iframe);
+
+ // Additional adjustments for 163 Music
+ if (this.src.search('music.163.com') > 0) {
+ newDimension = getDimension($iframe);
+ var shouldRecalculateAspect = newDimension.width > oldDimension.width ||
+ newDimension.height < oldDimension.height;
+
+ // 163 Music Player has a fixed height, so we need to reset the aspect radio
+ if (shouldRecalculateAspect) {
+ wrap.style.paddingTop = getAspectRadio(newDimension.width, oldDimension.height) + '%';
+ }
+ }
+ }
+ });
+
+ function getDimension($element) {
+ return {
+ width: $element.width(),
+ height: $element.height()
+ };
+ }
+
+ function getAspectRadio(width, height) {
+ return height / width * 100;
+ }
+ },
+
+ /**
+ * Add `menu-item-active` class name to menu item
+ * via comparing location.path with menu item's href.
+ */
+ addActiveClassToMenuItem: function () {
+ var path = window.location.pathname;
+ path = path === '/' ? path : path.substring(0, path.length - 1);
+ $('.menu-item a[href="' + path + '"]').parent().addClass('menu-item-active');
+ },
+
+ hasMobileUA: function () {
+ var nav = window.navigator;
+ var ua = nav.userAgent;
+ var pa = /iPad|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP|IEMobile|Symbian/g;
+
+ return pa.test(ua);
+ },
+
+ isTablet: function () {
+ return window.screen.width < 992 && window.screen.width > 767 && this.hasMobileUA();
+ },
+
+ isMobile: function () {
+ return window.screen.width < 767 && this.hasMobileUA();
+ },
+
+ isDesktop: function () {
+ return !this.isTablet() && !this.isMobile();
+ },
+
+ /**
+ * Escape meta symbols in jQuery selectors.
+ *
+ * @param selector
+ * @returns {string|void|XML|*}
+ */
+ escapeSelector: function (selector) {
+ return selector.replace(/[!"$%&'()*+,.\/:;<=>?@[\\\]^`{|}~]/g, '\\$&');
+ },
+
+ displaySidebar: function () {
+ if (!this.isDesktop() || this.isPisces()) {
+ return;
+ }
+ $('.sidebar-toggle').trigger('click');
+ },
+
+ isMist: function () {
+ return CONFIG.scheme === 'Mist';
+ },
+
+ isPisces: function () {
+ return CONFIG.scheme === 'Pisces';
+ },
+
+ getScrollbarWidth: function () {
+ var $div = $('
').addClass('scrollbar-measure').prependTo('body');
+ var div = $div[0];
+ var scrollbarWidth = div.offsetWidth - div.clientWidth;
+
+ $div.remove();
+
+ return scrollbarWidth;
+ },
+
+ /**
+ * Affix behaviour for Sidebar.
+ *
+ * @returns {Boolean}
+ */
+ needAffix: function () {
+ return this.isPisces();
+ }
+};
diff --git a/placeholder b/placeholder
deleted file mode 100644
index e69de29..0000000
diff --git a/search.xml b/search.xml
new file mode 100644
index 0000000..d2609f6
--- /dev/null
+++ b/search.xml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+ http://www.usuallight.com/2017/01/18/howwrite/
+ 最近想着手写写技术博客,在网上了解了下如何去写好一篇技术博客,我总结了下觉得有两点说得挺好:
+
+技术博客不是写过程,而是写总结。
+技术博客是文章,应该过滤掉个人感情色彩,用陈述语气进行描述,因为读者想了解的是技术本身,而不是作者的个人感受。
+
+学习了大牛们的技术博客后,加上我个人的理解,我觉得写一篇技术博客应该具备以下的点:
+
+主题:明确博客主题,全文围绕主题展开,一文只论一题,若涉及其它主题则另开新篇博文进行描述。
+开篇:由于个人喜好原因,我觉得文章开篇可适当讲述下主题背景原因,从背景原因开启一篇文章。(个人认为会给读者像是在听故事的感觉)
+内容:接下来就是总结内容了,可以针对不同方案,总结利弊等。内容尽量以图形进行表达,少用文字和代码。
+待完善的点(可选):不足之处,还能完善或者解决的地方。
+源码(可选):若能提供源码,可放上自己的github链接。
+参考链接:支持原创,引用到的文章注明出处。
+
+]]>
+
+
+
+
+ http://www.usuallight.com/2017/01/10/assetbundle/
+ 此文只针对打包的策略作分析
+整包 散包 Assets:
+
+material
+texture
+model1
+model2
+effect1
+effect2
+common
+
+
+motion
+
+
+
+Resources:
+
+shader
+script
+setting
+navdata
+audio
+model
+effect
+ui
+img
+atlas
+other
+
+]]>
+
+
+
+
+ http://www.usuallight.com/2016/08/12/blog-hexo/
+ 简介用Hexo搭建网站主要就是两个配置文件,一个站点配置文件(/_config.yml),另一个是主题配置文件(/themes/[themefolder]/_config.yml),配置好这两个配置文件基本就可以了,剩下的都只是一些安装和部署。
+
+Hexo 官方链接:https://hexo.io/zh-cn/
+基本配置
+扩展功能
+添加rss
+npm install hexo-generator-feed --save
+
+站内搜索
+npm install hexo-generator-search --save
+ 配置站点文件:
+search:
+path: search.xml
+field: post
+
+Github托管
+npm install hexo-deployer-git --save
+ 配置站点文件:
+deploy:
+type: git
+repository: https://github.com/monkeylight/monkeylight.github.io.git
+branch: master
+
+
+常用命令
+生成静态文件(public文件夹)
+hexo generate/-g
+
+清除缓存文件(db.json)和已生成的静态文件(public文件夹)
+hexo clean
+
+启动本地服务器
+hexo server
+
+部署网站到托管平台
+hexo deploy/-d
+
+新建文章
+hexo new [layout] <title>
+ layout有三种:post(博客)/ page(页面)/ draft(草稿)
+ 例如,新建一个“关于”页:
+hexo new page about
+
+
+NexT主题 官方链接:http://theme-next.iissnan.com/
+主题主要是一些配置信息的设置,官方文档里说得很详细,根据自己喜好和需要配置即可。但我在使用过程中遇到了一些问题,官方文档里没提及,在这分享一下:
+
+官方推荐的Swiftype搜索用不了,据说是Switftype开始收费的原因,所以不支持了(-.- 只是听说)。 解决方法: 见上方Hexo页–>扩展功能–>站内搜索
+
+about页面使用无序列表没有小圆圈标识。 解决方法: 添加自定义样式,在配置文件/themes/next/source/css/_custom/custom.styl中添加代码:
+ul { list-style-type: circle; }
+
+
+环境共享 单纯地用hexo部署网站,会有几个问题:
+
+每次部署都会覆盖上一次的内容,上次的提交记录会被清除!这不方便我查看历史记录
+共享配置环境的问题,我总不能每次换个地方都要重新配置一次hexo环境吧,那多恶心。
+
+针对以上问题,我首先想到的是在Github上用多一个仓库来存储hexo的配置环境,一个用来手动提交网站配置和博客内容,一个用来一健部署托管后台。后来在网上看到更机智的,就是用一个仓库多分支就行了,没必要多仓库。
+域名 域名方面有两个选择:
+
+直接使用github的二级域名(username.github.io),免费!
+自己买个域名。买吧,感觉多爽,哈哈。
+
+个人域名
+域名购买(我是在godaddy买的,这个看你喜好吧)
+绑定github: 在hexo/source文件夹下新建文件:CNAME(无后缀名),添加内容:yourwebsite.com
+配置DNS,可以在godaddy的dns管理中配置,也可以用 DNSPod 来管理更快和稳定。配置项:
+添加两条A记录分别指向Github服务器:
+添加一条CNAME记录指向你用hexo部署的Githubt仓库(例如我的:monkeylight.github.io):
+
+
+
+
+附:monkeylight.github.io 这个的是我的hexo环境配置,有兴趣的可以参考看看
+]]>
+
+
+
+
+
diff --git a/tags/assetbundle/index.html b/tags/assetbundle/index.html
new file mode 100644
index 0000000..bbd27e1
--- /dev/null
+++ b/tags/assetbundle/index.html
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
标签: assetbundle | L杂货店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/blog/index.html b/tags/blog/index.html
new file mode 100644
index 0000000..a4d0540
--- /dev/null
+++ b/tags/blog/index.html
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
标签: blog | L杂货店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/hexo/index.html b/tags/hexo/index.html
new file mode 100644
index 0000000..1611f62
--- /dev/null
+++ b/tags/hexo/index.html
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
标签: hexo | L杂货店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/index.html b/tags/index.html
new file mode 100644
index 0000000..01131ca
--- /dev/null
+++ b/tags/index.html
@@ -0,0 +1,722 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tags | L杂货店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tags/unity/index.html b/tags/unity/index.html
new file mode 100644
index 0000000..da07598
--- /dev/null
+++ b/tags/unity/index.html
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
标签: unity | L杂货店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git "a/tags/\345\206\231\344\275\234/index.html" "b/tags/\345\206\231\344\275\234/index.html"
new file mode 100644
index 0000000..ef70f6e
--- /dev/null
+++ "b/tags/\345\206\231\344\275\234/index.html"
@@ -0,0 +1,745 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
标签: 写作 | L杂货店
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uploads/avatar.jpg b/uploads/avatar.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..bd50d8ac5f9ebbf78b92f1d062de4fcae89bbb53
GIT binary patch
literal 34017
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
literal 0
HcmV?d00001
diff --git a/vendors/fancybox/source/blank.gif b/vendors/fancybox/source/blank.gif
new file mode 100644
index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66
GIT binary patch
literal 43
scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_
literal 0
HcmV?d00001
diff --git a/vendors/fancybox/source/fancybox_loading.gif b/vendors/fancybox/source/fancybox_loading.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a03a40c097ee728709f65d4ea7397903a389d484
GIT binary patch
literal 6567
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
literal 0
HcmV?d00001
diff --git a/vendors/fancybox/source/fancybox_loading@2x.gif b/vendors/fancybox/source/fancybox_loading@2x.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9205aeb09fffa6b571b4c6beee30b18400829c03
GIT binary patch
literal 13984
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