diff --git a/layout/_partial/after-footer.ejs b/layout/_partial/after-footer.ejs index ed61ed2..537d644 100644 --- a/layout/_partial/after-footer.ejs +++ b/layout/_partial/after-footer.ejs @@ -1,5 +1,4 @@ <%- js('/js/jquery-2.0.3.min') %> -<%- js('/js/share') %> <%- js('/js/lazyload.min') %> <% if (theme.subtitle.enable){ %> -<%- js('js/ayer') %> +<%- js('dist/main') %> <% if (theme.image_viewer){ %> <%- partial('viewer') %> diff --git a/layout/_partial/head.ejs b/layout/_partial/head.ejs index ec39af0..321a6ce 100644 --- a/layout/_partial/head.ejs +++ b/layout/_partial/head.ejs @@ -23,7 +23,7 @@ <% if (theme.favicon){ %> <% } %> - <%- css('css/main') %> + <%- css('dist/main') %> <% if (theme.progressBar){ %> <% } %> diff --git a/package.json b/package.json index cb66615..0f7d023 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "1.0.0", "description": "a clean and elegant theme for hexo.", "scripts": { - "dev": "parcel serve source-src/main.js -d source/css", - "build": "parcel build source-src/main.js -d source/css --no-source-maps" + "dev": "parcel serve source-src/main.js -d source/dist", + "build": "parcel build source-src/main.js -d source/dist --no-source-maps" }, "source": "source-src/main.js", "repository": { @@ -29,4 +29,4 @@ "postcss-modules": "^1.5.0" }, "dependencies": {} -} +} \ No newline at end of file diff --git a/source/js/ayer.js b/source-src/js/ayer.js similarity index 72% rename from source/js/ayer.js rename to source-src/js/ayer.js index 10264d2..1819519 100644 --- a/source/js/ayer.js +++ b/source-src/js/ayer.js @@ -1,21 +1,21 @@ (function ($) { // Search - var $searchWrap = $('.search-form-wrap'), + let $searchWrap = $('.search-form-wrap'), isSearchAnim = false, searchAnimDuration = 200; - var startSearchAnim = function () { + const startSearchAnim = () => { isSearchAnim = true; }; - var stopSearchAnim = function (callback) { + const stopSearchAnim = (callback) => { setTimeout(function () { isSearchAnim = false; callback && callback(); }, searchAnimDuration); }; - $('.nav-item-search').on('click', function () { + $('.nav-item-search').click(() => { if (isSearchAnim) return; startSearchAnim(); $searchWrap.addClass('on'); @@ -24,15 +24,15 @@ }); }); - $(document).mouseup(function (e) { - var _con = $('.local-search'); + $(document).mouseup((e) => { + const _con = $('.local-search'); if (!_con.is(e.target) && _con.has(e.target).length === 0) { $searchWrap.removeClass('on'); } }); - // 移动设备侦测 - var isMobile = { + // Mobile Detect + const isMobile = { Android: function () { return navigator.userAgent.match(/Android/i); }, @@ -53,28 +53,21 @@ } }; - // 建议在移动端不初始化,其实 /search.xml 文件还挺大的, - if ($('.local-search').size()) { - $.getScript('/js/search.js', function () { - searchFunc("/search.xml", 'local-search-input', 'local-search-result'); - }); - } - // Share $('.share-outer').click(() => $('.share-wrap').fadeToggle()) - // lazyload + // Lazyload $("img.lazy").lazyload({ effect: "fadeIn" }); - // justifiedGallery + // JustifiedGallery $('#gallery').justifiedGallery({ rowHeight: 200, margins: 5 }); - // scroll down + // ScrollDown $(document).ready(function ($) { $('.anchor').click(function (e) { e.preventDefault(); @@ -82,22 +75,22 @@ }); }); - // To top - (function ($) { + // To Top + (() => { // When to show the scroll link // higher number = scroll link appears further down the page - var upperLimit = 1000; + const upperLimit = 1000; // Our scroll link element - var scrollElem = $('#totop'); + const scrollElem = $('#totop'); // Scroll to top speed - var scrollSpeed = 1600; + const scrollSpeed = 1600; // Show and hide the scroll to top link based on scroll position scrollElem.hide(); $('.content').scroll(function () { - var scrollTop = $('.content').scrollTop(); + const scrollTop = $('.content').scrollTop(); if (scrollTop > upperLimit) { $(scrollElem).stop().fadeTo(200, .6); // fade back in } else { @@ -109,10 +102,10 @@ $(scrollElem).click(function () { $('.content').animate({ scrollTop: 0 }, scrollSpeed); return false; }); - })(jQuery); + })(); - // Mobile nav - var $content = $('.content'), + // Mobile Nav + const $content = $('.content'), $sidebar = $('.sidebar'); $('.navbar-toggle').on('click', function () { @@ -120,7 +113,7 @@ $sidebar.toggleClass('on'); }); - $($content).on('click', function () { + $content.click(() => { $content.removeClass('on'); $sidebar.removeClass('on'); }); @@ -130,33 +123,33 @@ $sidebar.addClass('on'); } - // reward - $('#reward-btn').on('click', function () { + // Reward + $('#reward-btn').click(() => { $('#reward').fadeIn(150) $('#mask').fadeIn(150) }); - $('#reward .close, #mask').on('click', function () { + $('#reward .close, #mask').click(() => { $('#mask').fadeOut(100) $('#reward').fadeOut(100) }) - // darkmode - if(sessionStorage.getItem('darkmode')==1){ + // DarkMode + if (sessionStorage.getItem('darkmode') == 1) { $('body').addClass('darkmode') $('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line') - }else{ + } else { $('body').removeClass('darkmode') $('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line') } - $('#todark').click(()=>{ - if(sessionStorage.getItem('darkmode')==1){ + $('#todark').click(() => { + if (sessionStorage.getItem('darkmode') == 1) { $('body').removeClass('darkmode') $('#todark i').removeClass('ri-sun-line').addClass('ri-moon-line') sessionStorage.removeItem('darkmode') - }else{ + } else { $('body').addClass('darkmode') $('#todark i').removeClass('ri-moon-line').addClass('ri-sun-line') - sessionStorage.setItem('darkmode',1) + sessionStorage.setItem('darkmode', 1) } }) })(jQuery); diff --git a/source/js/share.js b/source-src/js/share.js similarity index 88% rename from source/js/share.js rename to source-src/js/share.js index 2485062..16a72b0 100644 --- a/source/js/share.js +++ b/source-src/js/share.js @@ -9,19 +9,13 @@ function generate(url, opts) { } function showWX() { - let $wx = $('.wx-share-modal') - let $mask = $('#share-mask') - $wx.addClass('in') - $wx.addClass('ready') - $mask.show() + $('.wx-share-modal').addClass('in ready') + $('#share-mask').show() } function hideWX() { - let $wx = $('.wx-share-modal') - let $mask = $('#share-mask') - $wx.removeClass('in') - $wx.removeClass('ready') - $mask.hide() + $('.wx-share-modal').removeClass('in ready') + $('#share-mask').hide() } function handleClick(type, opts) { @@ -44,10 +38,9 @@ function handleClick(type, opts) { } } -let init = function () { +const share_init = () => { let $sns = document.querySelectorAll('.share-sns'); if (!$sns || $sns.length === 0) return; - let sUrl = window.location.href; let sTitle = document.querySelector('title').innerHTML; let $img = document.querySelectorAll('.article-entry img'); @@ -55,7 +48,6 @@ let init = function () { if ((sPic !== '') && !/^(http:|https:)?\/\//.test(sPic)) { sPic = window.location.origin + sPic } - $sns.forEach(($em) => { $em.onclick = (e) => { let type = $em.getAttribute('data-type') @@ -72,4 +64,4 @@ let init = function () { document.querySelector('.modal-close').onclick = hideWX } -init() \ No newline at end of file +share_init() \ No newline at end of file diff --git a/source-src/main.js b/source-src/main.js index a3f9587..919dae8 100644 --- a/source-src/main.js +++ b/source-src/main.js @@ -1 +1,3 @@ -import './css/style.styl' \ No newline at end of file +import './css/style.styl' +import './js/ayer' +import './js/share' \ No newline at end of file diff --git a/source/css/main.js b/source/css/main.js deleted file mode 100644 index 42c8363..0000000 --- a/source/css/main.js +++ /dev/null @@ -1,5 +0,0 @@ -parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c1e3?e(n).stop().fadeTo(200,.6):e(n).stop().fadeTo(200,0)}),e(n).click(function(){return e(".content").animate({scrollTop:0},1600),!1});var s=e(".content"),r=e(".sidebar");e(".navbar-toggle").on("click",function(){s.toggleClass("on"),r.toggleClass("on")}),s.click(function(){s.removeClass("on"),r.removeClass("on")}),window.matchMedia("(min-width: 768px)").matches&&(s.addClass("on"),r.addClass("on")),e("#reward-btn").click(function(){e("#reward").fadeIn(150),e("#mask").fadeIn(150)}),e("#reward .close, #mask").click(function(){e("#mask").fadeOut(100),e("#reward").fadeOut(100)}),1==sessionStorage.getItem("darkmode")?(e("body").addClass("darkmode"),e("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line")):(e("body").removeClass("darkmode"),e("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line")),e("#todark").click(function(){1==sessionStorage.getItem("darkmode")?(e("body").removeClass("darkmode"),e("#todark i").removeClass("ri-sun-line").addClass("ri-moon-line"),sessionStorage.removeItem("darkmode")):(e("body").addClass("darkmode"),e("#todark i").removeClass("ri-moon-line").addClass("ri-sun-line"),sessionStorage.setItem("darkmode",1))})}(jQuery); +},{}],"BNiz":[function(require,module,exports) { +function e(e,t){e=e.replace(/<%-sUrl%>/g,encodeURIComponent(t.sUrl)).replace(/<%-sTitle%>/g,t.sTitle).replace(/<%-sDesc%>/g,t.sDesc).replace(/<%-sPic%>/g,encodeURIComponent(t.sPic));window.open(e)}function t(){$(".wx-share-modal").addClass("in ready"),$("#share-mask").show()}function s(){$(".wx-share-modal").removeClass("in ready"),$("#share-mask").hide()}function r(s,r){"weibo"===s?e("http://service.weibo.com/share/share.php?url=<%-sUrl%>&title=<%-sTitle%>&pic=<%-sPic%>",r):"qq"===s?e("http://connect.qq.com/widget/shareqq/index.html?url=<%-sUrl%>&title=<%-sTitle%>&source=<%-sDesc%>",r):"douban"===s?e("https://www.douban.com/share/service?image=<%-sPic%>&href=<%-sUrl%>&name=<%-sTitle%>&text=<%-sDesc%>",r):"qzone"===s?e("http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=<%-sUrl%>&title=<%-sTitle%>&pics=<%-sPic%>&summary=<%-sDesc%>",r):"facebook"===s?e("https://www.facebook.com/sharer/sharer.php?u=<%-sUrl%>",r):"twitter"===s?e("https://twitter.com/intent/tweet?text=<%-sTitle%>&url=<%-sUrl%>&via=<%-config.url%>",r):"google"===s?e("https://plus.google.com/share?url=<%-sUrl%>",r):"weixin"===s&&t()}var c=function(){var e=document.querySelectorAll(".share-sns");if(e&&0!==e.length){var t=window.location.href,c=document.querySelector("title").innerHTML,o=document.querySelectorAll(".article-entry img").length?document.querySelector(".article-entry img").getAttribute("src"):"";""===o||/^(http:|https:)?\/\//.test(o)||(o=window.location.origin+o),e.forEach(function(e){e.onclick=function(s){r(e.getAttribute("data-type"),{sUrl:t,sPic:o,sTitle:c,sDesc:c})}}),document.querySelector("#mask").onclick=s,document.querySelector(".modal-close").onclick=s}};c(); +},{}],"epB2":[function(require,module,exports) { +"use strict";require("./css/style.styl"),require("./js/ayer"),require("./js/share"); +},{"./css/style.styl":"MiQR","./js/ayer":"jSg4","./js/share":"BNiz"}]},{},["epB2"], null) \ No newline at end of file