+
+ A simple, delicate, and modern theme for the static site generator Hexo.
+
+Preview |
+Documentation |
+Download
+
+
+
+
+
+### :cd: Installation
+
+Download & extract or `git clone` Icarus from GitHub to your blog's theme folder, and that's it!
+
+```shell
+git clone https://github.com/ppoffice/hexo-theme-icarus.git themes/icarus
+```
+
+Once started, Icarus will remind you of any missing dependencies and configuration files.
+
+### :gift: Features
+
+**Extensive Plugin Support**
+
+Icarus includes plentiful search, comment, sharing and other plugins out of the box. You can choose any of them to enrich your
+blog experience, or build your own plugin easily referring to the existing Icarus plugins.
+
+Comment plugins
+
+- [Changyan](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Comment/changyan-comment-plugin/)
+- [Disqus](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Comment/disqus-comment-plugin/)
+- [Facebook](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Comment/facebook-comment-plugin/)
+- [Gitment](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Comment/gitment-comment-plugin/)
+- [Isso](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Comment/isso-comment-plugin/)
+- [LiveRe](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Comment/livere-comment-plugin/)
+- [Valine](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Comment/valine-comment-plugin/)
+
+Search plugins
+
+- [Insight Search](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Search/insight-search-plugin/)
+- [Google Custom Search Engine](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Search/google-cse-plugin/)
+- [Baidu Site Search](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Search/baidu-search-plugin/)
+
+Share plugins
+
+- [AddThis](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Share/addthis-share-plugin/)
+- [AddToAny](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Share/addtoany-share-plugin/)
+- [Baidu Share](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Share/baidu-share-plugin/)
+- [Share.js](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Share/share-js-share-plugin/)
+- [ShareThis](http://ppoffice.github.io/hexo-theme-icarus/Plugins/Share/sharethis-share-plugin/)
+
+Other plugins
+
+- [Hexo Tag Plugin](http://ppoffice.github.io/hexo-theme-icarus/Configuration/Posts/hexo-built-in-tag-helpers/)
+- [lightGallery & Justified Gallery](http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/gallery-plugin/)
+- [MathJax](http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/mathjax-plugin/)
+- [Site Analytics](http://ppoffice.github.io/hexo-theme-icarus/Plugins/General/site-analytics-plugin/)
+
+**Rich Code Highlight Theme Choices**
+
+Icarus directly import code highlight themes from the [highlight.js](https://highlightjs.org/) package, and makes more than
+70 highlight themes available to you.
+
+
+
+
+
+
+
+
+
+**Elastic Theme Configuration**
+
+In addition to the minimalistic and easy-to-understand configuration design, Icarus allows you to set configurations on a
+per-page basis with the ability to merge and override partial configurations.
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/category.ejs b/src/main/resources/templates/themes/icarus/layout/category.ejs
new file mode 100644
index 000000000..911443593
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/category.ejs
@@ -0,0 +1,14 @@
+
+
+
+
+
+<%- partial('index', { page }) %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/comment/changyan.ejs b/src/main/resources/templates/themes/icarus/layout/comment/changyan.ejs
new file mode 100644
index 000000000..eaddb6b95
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/comment/changyan.ejs
@@ -0,0 +1,14 @@
+<% if (!has_config('comment.appid') || !has_config('comment.conf')) { %>
+
+ You forgot to set the appid or conf for Changyan. Please set it in _config.yml.
+
+<% } else { %>
+
+
+
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/comment/disqus.ejs b/src/main/resources/templates/themes/icarus/layout/comment/disqus.ejs
new file mode 100644
index 000000000..f36876d67
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/comment/disqus.ejs
@@ -0,0 +1,22 @@
+<% if (has_config('comment.shortname')) { %>
+
+<% } %>
+
+ <% if (!has_config('comment.shortname')) { %>
+
+ You forgot to set the shortname for Disqus. Please set it in _config.yml.
+
+ <% } %>
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/comment/facebook.ejs b/src/main/resources/templates/themes/icarus/layout/comment/facebook.ejs
new file mode 100644
index 000000000..f3c7c6929
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/comment/facebook.ejs
@@ -0,0 +1,8 @@
+
+
diff --git a/src/main/resources/templates/themes/icarus/layout/comment/gitment.ejs b/src/main/resources/templates/themes/icarus/layout/comment/gitment.ejs
new file mode 100644
index 000000000..1dfe34eef
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/comment/gitment.ejs
@@ -0,0 +1,23 @@
+<% if (!has_config('comment.owner') || !has_config('comment.repo') || !has_config('comment.client_id') ||
+ !has_config('comment.client_secret')) { %>
+
+ You forgot to set the owner, repo, client_id, or client_secret for Gitment.
+ Please set it in _config.yml.
+
+<% } else { %>
+
+
+
+
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/comment/isso.ejs b/src/main/resources/templates/themes/icarus/layout/comment/isso.ejs
new file mode 100644
index 000000000..f0942e3df
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/comment/isso.ejs
@@ -0,0 +1,10 @@
+<% if (!has_config('comment.url')) { %>
+
+ You forgot to set the url for Isso. Please set it in _config.yml.
+
+ <%- js(cdn('outdatedbrowser', '1.1.5', 'outdatedbrowser/outdatedbrowser.min.js')) %>
+
+ <% } %>
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/plugin/progressbar.ftl b/src/main/resources/templates/themes/icarus/layout/plugin/progressbar.ftl
new file mode 100644
index 000000000..680eacd8c
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/plugin/progressbar.ftl
@@ -0,0 +1,27 @@
+<% if (head && plugin !== false) { %>
+<%- js(cdn('pace-js', '1.0.2', 'pace.min.js')) %>
+
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/post.ejs b/src/main/resources/templates/themes/icarus/layout/post.ejs
new file mode 100644
index 000000000..56fa8fb03
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/post.ejs
@@ -0,0 +1 @@
+<%- partial('common/article', {post: page, index: false}) %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/search/baidu.ejs b/src/main/resources/templates/themes/icarus/layout/search/baidu.ejs
new file mode 100644
index 000000000..27192f23c
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/search/baidu.ejs
@@ -0,0 +1,29 @@
+<%- css('css/search') %>
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/search/google-cse.ejs b/src/main/resources/templates/themes/icarus/layout/search/google-cse.ejs
new file mode 100644
index 000000000..7b7076876
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/search/google-cse.ejs
@@ -0,0 +1,67 @@
+<%- css('css/search') %>
+
+
+
+
+
+
+ <% if (has_config('search.cx')) { %>
+
+
+
+ <% } else { %>
+
+ It seems that you forget to set the cx value for the Google CSE. Please set it in _config.yml.
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/search/insight.ejs b/src/main/resources/templates/themes/icarus/layout/search/insight.ejs
new file mode 100644
index 000000000..61bd31788
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/search/insight.ejs
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+<%- js('js/insight') %>
+<%- css('css/search') %>
+<%- css('css/insight') %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/share/addthis.ejs b/src/main/resources/templates/themes/icarus/layout/share/addthis.ejs
new file mode 100644
index 000000000..cd2111895
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/share/addthis.ejs
@@ -0,0 +1,8 @@
+<% if (!has_config('share.install_url')) { %>
+
+ You need to set install_url to use AddThis. Please set it in _config.yml.
+
+<% } else { %>
+
+
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/share/addtoany.ejs b/src/main/resources/templates/themes/icarus/layout/share/addtoany.ejs
new file mode 100644
index 000000000..a459dd951
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/share/addtoany.ejs
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/share/bdshare.ejs b/src/main/resources/templates/themes/icarus/layout/share/bdshare.ejs
new file mode 100644
index 000000000..efaa5e65e
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/share/bdshare.ejs
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/share/sharejs.ejs b/src/main/resources/templates/themes/icarus/layout/share/sharejs.ejs
new file mode 100644
index 000000000..257bcd227
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/share/sharejs.ejs
@@ -0,0 +1,3 @@
+
+<%- css(cdn('social-share.js', '1.0.16', 'dist/css/share.min.css')) %>
+<%- js(cdn('social-share.js', '1.0.16', 'dist/js/social-share.min.js')) %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/share/sharethis.ejs b/src/main/resources/templates/themes/icarus/layout/share/sharethis.ejs
new file mode 100644
index 000000000..6a77c573f
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/share/sharethis.ejs
@@ -0,0 +1,8 @@
+<% if (!has_config('share.install_url')) { %>
+
+ You need to set install_url to use ShareThis. Please set it in _config.yml.
+
+<% } else { %>
+
+
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/tag.ejs b/src/main/resources/templates/themes/icarus/layout/tag.ejs
new file mode 100644
index 000000000..23f3a40c2
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/tag.ejs
@@ -0,0 +1,11 @@
+
+
+
+
+
+<%- partial('index', { page }) %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/tags.ejs b/src/main/resources/templates/themes/icarus/layout/tags.ejs
new file mode 100644
index 000000000..68592adda
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/tags.ejs
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/widget/archive.ejs b/src/main/resources/templates/themes/icarus/layout/widget/archive.ejs
new file mode 100644
index 000000000..20298e025
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/widget/archive.ejs
@@ -0,0 +1,23 @@
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/widget/recent_posts.ejs b/src/main/resources/templates/themes/icarus/layout/widget/recent_posts.ejs
new file mode 100644
index 000000000..0edfc0016
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/widget/recent_posts.ejs
@@ -0,0 +1,34 @@
+<% if (site.posts.length) { %>
+
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/widget/tag.ejs b/src/main/resources/templates/themes/icarus/layout/widget/tag.ejs
new file mode 100644
index 000000000..7bcc18f58
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/widget/tag.ejs
@@ -0,0 +1 @@
+<%- partial('tags') %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/widget/tagcloud.ejs b/src/main/resources/templates/themes/icarus/layout/widget/tagcloud.ejs
new file mode 100644
index 000000000..daf466883
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/widget/tagcloud.ejs
@@ -0,0 +1,10 @@
+<% if (site.tags.length) { %>
+
+
+
+ <%= __('widget.tag_cloud') %>
+
+ <%- tagcloud() %>
+
+
+<% } %>
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/icarus/layout/widget/toc.ejs b/src/main/resources/templates/themes/icarus/layout/widget/toc.ejs
new file mode 100644
index 000000000..b4a49735d
--- /dev/null
+++ b/src/main/resources/templates/themes/icarus/layout/widget/toc.ejs
@@ -0,0 +1,39 @@
+<% if (get_config('toc') === true && (post.layout === 'page' || post.layout === 'post')) {
+function buildToc(toc) {
+ let result = '';
+ if (toc.hasOwnProperty('id') && toc.hasOwnProperty('index') && toc.hasOwnProperty('text')) {
+ result += `
a",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="
'));});}
+function awdFormValidation(email_address){var pattern=new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);return pattern.test(email_address);}
+function awdSubscribe(){if(awd_subscribe==1||awd_subscribe==2){awdSubscribeForm();}else if(awd_subscribe==3){awdMailchimp();}}
+function awdMailchimp(){var $form=$('#subscribe-form');var $subscribeEmail=$('#subscribe-email');$form.ajaxChimp({callback:awdMailchimpStatus,language:'eng',type:'POST',url:awd_mailchimpUrl});function awdMailchimpStatus(resp){if(resp.result==='error'){$subscribeEmail.focus();$('.subscribe-notice').addClass('visible');}
+else if(resp.result==='success'){$form[0].reset();$subscribeEmail.blur();$('.subscribe-notice').addClass('visible');}}}
+function awdSubscribeForm(){var $form=$('#subscribe-form');var $subscribeEmail=$('#subscribe-email');if(awd_subscribe==1){var url='assets/php/to-mail.php';}else if(awd_subscribe==2){var url='assets/php/to-file.php';}
+$subscribeEmail.prop('type','text');$form.on('submit',function(e){var subscribeEmailVal=$subscribeEmail.val();var $subscribeNotice=$('.subscribe-notice');var $submitButton=$form.find('button[type="submit"]');e.preventDefault();$submitButton.prop('disabled',true);if(!awdFormValidation(subscribeEmailVal)){$subscribeNotice.stop(true).hide().addClass('visible').html(awd_subscribeError).fadeIn();$submitButton.prop('disabled',false);$subscribeEmail.focus();}
+else{$.ajax({type:'POST',url:url,data:{email:subscribeEmailVal,emailAddress:awd_subscribeEmail},success:function(){$subscribeNotice.stop(true).hide().addClass('visible').html(awd_subscribeSuccess).fadeIn();$submitButton.prop('disabled',false);$form[0].reset();$subscribeEmail.blur();}});}
+return false;});}
+function awdContactForm(){var $form=$('#contact-form');$form.on('submit',function(e){var input=$(this).find('input, textarea');var requiredFields=$(this).find('.required');var emailField=$('.contact-form-email');var contactNameVal=$('.contact-form-name').val();var contactSubjectVal=$('.contact-form-subject').val();var contactEmailVal=emailField.val();var contactMessageVal=$('.contact-form-message').val();var contactNotice=$('.contact-notice');e.preventDefault();if(contactNameVal==''||contactEmailVal==''||contactMessageVal==''||contactSubjectVal==''){contactNotice.stop(true).hide().html(awd_contactInputError).fadeIn();requiredFields.each(function(){$(this).addClass("input-error");});}else if(!awdFormValidation(contactEmailVal)){contactNotice.stop(true).hide().html(awd_contactEmailError).fadeIn();emailField.addClass("input-error");$('#contact-email').focus();}
+else{$.ajax({type:'POST',url:'assets/php/contact.php',data:{name:contactNameVal,email:contactEmailVal,message:contactMessageVal,subject:contactSubjectVal,emailAddress:awd_contactEmail},success:function(){contactNotice.stop(true).hide().html(awd_contactSuccess).fadeIn();$form[0].reset();input.blur();}});}
+return false;});}
+function awdAnimate(){if(!$('body').hasClass('mobile')){$(window).load(function(){$('.start .animated').each(function(){var elem=$(this);if(!elem.hasClass('visible')){var animationDelay=elem.data('animation-delay');var animation=elem.data('animation');if(animationDelay){setTimeout(function(){elem.addClass(animation+" visible");},animationDelay);}else{elem.addClass(animation+" visible");}}});});}}
+function awdScrollbar(){$('.sections-block').perfectScrollbar({suppressScrollX:true});}
+$(document).on('ready',function(){if(awd_bordered===true){$('body').addClass('bordered');}
+awdMenu();awdContentSlider();if(awd_countdown===true){awdCountdown();}
+if(awd_animated===true){$('body').addClass('start');awdAnimate();}
+awdSubscribe();awdContactForm();awdScrollbar();if(awd_bg_animated===true){awdCanvas();$(window).resize(function(){awdCanvasResize();});}});})(jQuery);
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/money/assets/js/options.js b/src/main/resources/templates/themes/money/assets/js/options.js
new file mode 100644
index 000000000..95a8f9400
--- /dev/null
+++ b/src/main/resources/templates/themes/money/assets/js/options.js
@@ -0,0 +1 @@
+var awd_animated=true;var awd_bg_animated=true;var awd_bg_number_of_curves=64;var awd_countdown=true;var awd_countdownDate='2016/07/09 00:00:00';var awd_bordered=false;var awd_contactEmail='email@example.com';var awd_contactSuccess=' Message has been sent';var awd_contactInputError=' all fields are required';var awd_contactEmailError=' email address is invalid';var awd_subscribe=3;var awd_subscribeEmail='email@example.com';var awd_subscribeSuccess=' thank you for subscribing';var awd_subscribeError=' email address is invalid';var awd_mailchimpUrl='mailchimp_post_url';$.ajaxChimp.translations.eng={'submit':'please wait',0:' We have sent you a confirmation email',1:' Please enter a value',2:' An email address must contain a single @',3:' e-mail address is not valid',4:' e-mail address is not valid',5:' e-mail address is not valid'};
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/money/assets/js/vendor.js b/src/main/resources/templates/themes/money/assets/js/vendor.js
new file mode 100644
index 000000000..12b907278
--- /dev/null
+++ b/src/main/resources/templates/themes/money/assets/js/vendor.js
@@ -0,0 +1 @@
+!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){"use strict";function b(a){if(a instanceof Date)return a;if(String(a).match(g))return String(a).match(/^[0-9]*$/)&&(a=Number(a)),String(a).match(/\-/)&&(a=String(a).replace(/\-/g,"/")),new Date(a);throw new Error("Couldn't cast `"+a+"` to a date object.")}function c(a){var b=a.toString().replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1");return new RegExp(b)}function d(a){return function(b){var d=b.match(/%(-|!)?[A-Z]{1}(:[^;]+;)?/gi);if(d)for(var f=0,g=d.length;g>f;++f){var h=d[f].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),j=c(h[0]),k=h[1]||"",l=h[3]||"",m=null;h=h[2],i.hasOwnProperty(h)&&(m=i[h],m=Number(a[m])),null!==m&&("!"===k&&(m=e(l,m)),""===k&&10>m&&(m="0"+m.toString()),b=b.replace(j,m.toString()))}return b=b.replace(/%%/,"%")}}function e(a,b){var c="s",d="";return a&&(a=a.replace(/(:|;|\s)/gi,"").split(/\,/),1===a.length?c=a[0]:(d=a[0],c=a[1])),1===Math.abs(b)?d:c}var f=[],g=[],h={precision:100,elapse:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",w:"weeks",d:"daysToWeek",D:"totalDays",H:"hours",M:"minutes",S:"seconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&0>b?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),totalDays:Math.floor(this.totalSecsLeft/60/60/24),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear())},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}});!function(a){"use strict";a.ajaxChimp={responses:{"We have sent you a confirmation email":0,"Please enter a value":1,"An email address must contain a single @":2,"The domain portion of the email address is invalid (the portion after the @: )":3,"The username portion of the email address is invalid (the portion before the @: )":4,"This email address looks fake or invalid. Please enter a real email address":5},translations:{en:null},init:function(e,s){a(e).ajaxChimp(s)}},a.fn.ajaxChimp=function(e){return a(this).each(function(s,n){var i=a(n),t=i.find("input[type=email]"),r=i.find('.subscribe-notice'),l=a.extend({url:i.attr("action"),language:"en"},e),o=l.url.replace("/post?","/post-json?").concat("&c=?");i.attr("novalidate","true"),t.attr("name","EMAIL"),i.submit(function(){function e(e){if("success"===e.result)s="We have sent you a confirmation email",r.removeClass("error").addClass("valid"),t.removeClass("error").addClass("valid");else{t.removeClass("valid").addClass("error"),r.removeClass("valid").addClass("error");var n=-1;try{var i=e.msg.split(" - ",2);if(void 0===i[1])s=e.msg;else{var o=parseInt(i[0],10);o.toString()===i[0]?(n=i[0],s=i[1]):(n=-1,s=e.msg)}}catch(m){n=-1,s=e.msg}}"en"!==l.language&&void 0!==a.ajaxChimp.responses[s]&&a.ajaxChimp.translations&&a.ajaxChimp.translations[l.language]&&a.ajaxChimp.translations[l.language][a.ajaxChimp.responses[s]]&&(s=a.ajaxChimp.translations[l.language][a.ajaxChimp.responses[s]]),r.html(s),r.show(2e3),l.callback&&l.callback(e)}var s,n={},m=i.serializeArray();a.each(m,function(a,e){n[e.name]=e.value}),a.ajax({url:o,data:n,success:e,dataType:"jsonp",error:function(a,e){console.log("mailchimp ajax submit error: "+e)}});var u="Submitting...";return"en"!==l.language&&a.ajaxChimp.translations&&a.ajaxChimp.translations[l.language]&&a.ajaxChimp.translations[l.language].submit&&(u=a.ajaxChimp.translations[l.language].submit),r.html(u).show(2e3),!1})}),this}}(jQuery);(function($){'use strict';$.ajaxChimp.translations={'it':{'submit':'Registrazione in corso...',0:'Ti abbiamo inviato una mail di conferma',1:'Per favore inserisci una mail',2:'Un indirizzo valido contiene una sola @',3:'Il dominio della tua mail non è valido (la porzione dopo la @: )',4:'Il nome della mail non è valido (la porzione prima della @: )',5:'L\'indirizzo email sembra finto o non valido: per favore inseriscine uno reale'},'de':{'submit':'Senden...',0:'Wir haben Ihnen eine Bestätigungs-E-Mail geschickt',1:'Bitte geben Sie Ihre E-Mail-Adresse ein',2:'Eine E-Mail-Adresse muss ein @ enthalten',3:'Der Domain-Teil der E-Mail-Adresse ist ungültig (der Teil nach dem @)',4:'Der Benutzername der E-Mail-Adresse ist ungültig (der Teil vor dem @)',5:'Diese E-Mail-Adresse scheint gefälscht oder ungültig zu sein. Bitte geben Sie eine echte E-Mail-Adresse an!'},'es':{'submit':'Grabación en curso...',0:'Te hemos enviado un email de confirmación',1:'Por favor, introduzca un valor',2:'Una dirección de correo electrónico debe contener una sola @',3:'La parte de dominio de la dirección de correo electrónico no es válida (la parte después de la @:)',4:'La parte de usuario de la dirección de correo electrónico no es válida (la parte antes de la @:)',5:'Esta dirección de correo electrónico se ve falso o no válido. Por favor, introduce una dirección de correo electrónico real'},'fr':{'submit':'Enregistrement en cours...',0:'Nous vous avons envoyé un e-mail de confirmation',1:'S\'il vous plaît entrer une valeur',2:'Une adresse e-mail doit contenir un seul @',3:'La partie domaine de l\'adresse e-mail n\'est pas valide (la partie après le @:)',4:'La partie nom d\'utilisateur de l\'adresse email n\'est pas valide (la partie avant le signe @:)',5:'Cette adresse e-mail semble faux ou non valides. S\'il vous plaît entrer une adresse email valide'}};})(jQuery);!function t(e,n,r){function o(l,s){if(!n[l]){if(!e[l]){var a="function"==typeof require&&require;if(!s&&a)return a(l,!0);if(i)return i(l,!0);var c=new Error("Cannot find module '"+l+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[l]={exports:{}};e[l][0].call(u.exports,function(t){var n=e[l][1][t];return o(n?n:t)},u,u.exports,t,e,n,r)}return n[l].exports}for(var i="function"==typeof require&&require,l=0;l=0&&n.splice(r,1),t.className=n.join(" ")}n.add=function(t,e){t.classList?t.classList.add(e):r(t,e)},n.remove=function(t,e){t.classList?t.classList.remove(e):o(t,e)},n.list=function(t){return t.classList?t.classList:t.className.split(" ")}},{}],3:[function(t,e,n){"use strict";function r(t,e){return window.getComputedStyle(t)[e]}function o(t,e,n){return"number"==typeof n&&(n=n.toString()+"px"),t.style[e]=n,t}function i(t,e){for(var n in e){var r=e[n];"number"==typeof r&&(r=r.toString()+"px"),t.style[n]=r}return t}n.e=function(t,e){var n=document.createElement(t);return n.className=e,n},n.appendTo=function(t,e){return e.appendChild(t),t},n.css=function(t,e,n){return"object"==typeof e?i(t,e):"undefined"==typeof n?r(t,e):o(t,e,n)},n.matches=function(t,e){return"undefined"!=typeof t.matches?t.matches(e):"undefined"!=typeof t.matchesSelector?t.matchesSelector(e):"undefined"!=typeof t.webkitMatchesSelector?t.webkitMatchesSelector(e):"undefined"!=typeof t.mozMatchesSelector?t.mozMatchesSelector(e):"undefined"!=typeof t.msMatchesSelector?t.msMatchesSelector(e):void 0},n.remove=function(t){"undefined"!=typeof t.remove?t.remove():t.parentNode&&t.parentNode.removeChild(t)}},{}],4:[function(t,e){"use strict";var n=function(t){this.element=t,this.events={}};n.prototype.bind=function(t,e){"undefined"==typeof this.events[t]&&(this.events[t]=[]),this.events[t].push(e),this.element.addEventListener(t,e,!1)},n.prototype.unbind=function(t,e){var n="undefined"!=typeof e;this.events[t]=this.events[t].filter(function(r){return n&&r!==e?!0:(this.element.removeEventListener(t,r,!1),!1)},this)},n.prototype.unbindAll=function(){for(var t in this.events)this.unbind(t)};var r=function(){this.eventElements=[]};r.prototype.eventElement=function(t){var e=this.eventElements.filter(function(e){return e.element===t})[0];return"undefined"==typeof e&&(e=new n(t),this.eventElements.push(e)),e},r.prototype.bind=function(t,e,n){this.eventElement(t).bind(e,n)},r.prototype.unbind=function(t,e,n){this.eventElement(t).unbind(e,n)},r.prototype.unbindAll=function(){for(var t=0;tc?c=0:c>1&&(c=1),t.scrollTop=(e.contentHeight-e.containerHeight)*c,i(t),o.stopPropagation()}),e.event.bind(e.scrollbarX,"click",o),e.event.bind(e.scrollbarXRail,"click",function(o){var l=r.toInt(e.scrollbarXWidth/2),s=e.railXRatio*(o.pageX-window.scrollX-n(e.scrollbarXRail).left-l),a=e.railXRatio*(e.railXWidth-e.scrollbarXWidth),c=s/a;0>c?c=0:c>1&&(c=1),t.scrollLeft=(e.contentWidth-e.containerWidth)*c-e.negativeScrollAdjustment,i(t),o.stopPropagation()})}var r=t("../../lib/helper"),o=t("../instances"),i=t("../update-geometry");e.exports=function(t){var e=o.get(t);n(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],11:[function(t,e){"use strict";function n(t,e){function n(n){var o=r+n*e.railXRatio,l=e.scrollbarXRail.getBoundingClientRect().left+e.railXRatio*(e.railXWidth-e.scrollbarXWidth);e.scrollbarXLeft=0>o?0:o>l?l:o;var s=i.toInt(e.scrollbarXLeft*(e.contentWidth-e.containerWidth)/(e.containerWidth-e.railXRatio*e.scrollbarXWidth))-e.negativeScrollAdjustment;t.scrollLeft=s}var r=null,l=null,a=function(e){n(e.pageX-l),s(t),e.stopPropagation(),e.preventDefault()},c=function(){i.stopScrolling(t,"x"),e.event.unbind(e.ownerDocument,"mousemove",a)};e.event.bind(e.scrollbarX,"mousedown",function(n){l=n.pageX,r=i.toInt(o.css(e.scrollbarX,"left"))*e.railXRatio,i.startScrolling(t,"x"),e.event.bind(e.ownerDocument,"mousemove",a),e.event.once(e.ownerDocument,"mouseup",c),n.stopPropagation(),n.preventDefault()})}function r(t,e){function n(n){var o=r+n*e.railYRatio,l=e.scrollbarYRail.getBoundingClientRect().top+e.railYRatio*(e.railYHeight-e.scrollbarYHeight);e.scrollbarYTop=0>o?0:o>l?l:o;var s=i.toInt(e.scrollbarYTop*(e.contentHeight-e.containerHeight)/(e.containerHeight-e.railYRatio*e.scrollbarYHeight));t.scrollTop=s}var r=null,l=null,a=function(e){n(e.pageY-l),s(t),e.stopPropagation(),e.preventDefault()},c=function(){i.stopScrolling(t,"y"),e.event.unbind(e.ownerDocument,"mousemove",a)};e.event.bind(e.scrollbarY,"mousedown",function(n){l=n.pageY,r=i.toInt(o.css(e.scrollbarY,"top"))*e.railYRatio,i.startScrolling(t,"y"),e.event.bind(e.ownerDocument,"mousemove",a),e.event.once(e.ownerDocument,"mouseup",c),n.stopPropagation(),n.preventDefault()})}var o=t("../../lib/dom"),i=t("../../lib/helper"),l=t("../instances"),s=t("../update-geometry");e.exports=function(t){var e=l.get(t);n(t,e),r(t,e)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19}],12:[function(t,e){"use strict";function n(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&0>r)return!e.settings.wheelPropagation}var i=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===i&&0>n||i>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}var o=!1;e.event.bind(t,"mouseenter",function(){o=!0}),e.event.bind(t,"mouseleave",function(){o=!1});var l=!1;e.event.bind(e.ownerDocument,"keydown",function(s){if((!s.isDefaultPrevented||!s.isDefaultPrevented())&&o){var a=document.activeElement?document.activeElement:e.ownerDocument.activeElement;if(a){for(;a.shadowRoot;)a=a.shadowRoot.activeElement;if(r.isEditable(a))return}var c=0,u=0;switch(s.which){case 37:c=-30;break;case 38:u=30;break;case 39:c=30;break;case 40:u=-30;break;case 33:u=90;break;case 32:case 34:u=-90;break;case 35:u=s.ctrlKey?-e.contentHeight:-e.containerHeight;break;case 36:u=s.ctrlKey?t.scrollTop:e.containerHeight;break;default:return}t.scrollTop=t.scrollTop-u,t.scrollLeft=t.scrollLeft+c,i(t),l=n(c,u),l&&s.preventDefault()}})}var r=t("../../lib/helper"),o=t("../instances"),i=t("../update-geometry");e.exports=function(t){var e=o.get(t);n(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],13:[function(t,e){"use strict";function n(t,e){function n(n,r){var o=t.scrollTop;if(0===n){if(!e.scrollbarYActive)return!1;if(0===o&&r>0||o>=e.contentHeight-e.containerHeight&&0>r)return!e.settings.wheelPropagation}var i=t.scrollLeft;if(0===r){if(!e.scrollbarXActive)return!1;if(0===i&&0>n||i>=e.contentWidth-e.containerWidth&&n>0)return!e.settings.wheelPropagation}return!0}function o(t){var e=t.deltaX,n=-1*t.deltaY;return("undefined"==typeof e||"undefined"==typeof n)&&(e=-1*t.wheelDeltaX/6,n=t.wheelDeltaY/6),t.deltaMode&&1===t.deltaMode&&(e*=10,n*=10),e!==e&&n!==n&&(e=0,n=t.wheelDelta),[e,n]}function l(e,n){var r=t.querySelector("textarea:hover");if(r){var o=r.scrollHeight-r.clientHeight;if(o>0&&!(0===r.scrollTop&&n>0||r.scrollTop===o&&0>n))return!0;var i=r.scrollLeft-r.clientWidth;if(i>0&&!(0===r.scrollLeft&&0>e||r.scrollLeft===i&&e>0))return!0}return!1}function s(s){if(r.env.isWebKit||!t.querySelector("select:focus")){var c=o(s),u=c[0],d=c[1];l(u,d)||(a=!1,e.settings.useBothWheelAxes?e.scrollbarYActive&&!e.scrollbarXActive?(t.scrollTop=d?t.scrollTop-d*e.settings.wheelSpeed:t.scrollTop+u*e.settings.wheelSpeed,a=!0):e.scrollbarXActive&&!e.scrollbarYActive&&(t.scrollLeft=u?t.scrollLeft+u*e.settings.wheelSpeed:t.scrollLeft-d*e.settings.wheelSpeed,a=!0):(t.scrollTop=t.scrollTop-d*e.settings.wheelSpeed,t.scrollLeft=t.scrollLeft+u*e.settings.wheelSpeed),i(t),a=a||n(u,d),a&&(s.stopPropagation(),s.preventDefault()))}}var a=!1;"undefined"!=typeof window.onwheel?e.event.bind(t,"wheel",s):"undefined"!=typeof window.onmousewheel&&e.event.bind(t,"mousewheel",s)}var r=t("../../lib/helper"),o=t("../instances"),i=t("../update-geometry");e.exports=function(t){var e=o.get(t);n(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],14:[function(t,e){"use strict";function n(t,e){e.event.bind(t,"scroll",function(){o(t)})}var r=t("../instances"),o=t("../update-geometry");e.exports=function(t){var e=r.get(t);n(t,e)}},{"../instances":18,"../update-geometry":19}],15:[function(t,e){"use strict";function n(t,e){function n(){var t=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===t.toString().length?null:t.getRangeAt(0).commonAncestorContainer}function l(){a||(a=setInterval(function(){return o.get(t)?(t.scrollTop=t.scrollTop+c.top,t.scrollLeft=t.scrollLeft+c.left,void i(t)):void clearInterval(a)},50))}function s(){a&&(clearInterval(a),a=null),r.stopScrolling(t)}var a=null,c={top:0,left:0},u=!1;e.event.bind(e.ownerDocument,"selectionchange",function(){t.contains(n())?u=!0:(u=!1,s())}),e.event.bind(window,"mouseup",function(){u&&(u=!1,s())}),e.event.bind(window,"mousemove",function(e){if(u){var n={x:e.pageX,y:e.pageY},o={left:t.offsetLeft,right:t.offsetLeft+t.offsetWidth,top:t.offsetTop,bottom:t.offsetTop+t.offsetHeight};n.xo.right-3?(c.left=5,r.startScrolling(t,"x")):c.left=0,n.yo.bottom-3?(c.top=n.y-o.bottom+3<5?5:20,r.startScrolling(t,"y")):c.top=0,0===c.top&&0===c.left?s():l()}})}var r=t("../../lib/helper"),o=t("../instances"),i=t("../update-geometry");e.exports=function(t){var e=o.get(t);n(t,e)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19}],16:[function(t,e){"use strict";function n(t,e,n,i){function l(n,r){var o=t.scrollTop,i=t.scrollLeft,l=Math.abs(n),s=Math.abs(r);if(s>l){if(0>r&&o===e.contentHeight-e.containerHeight||r>0&&0===o)return!e.settings.swipePropagation}else if(l>s&&(0>n&&i===e.contentWidth-e.containerWidth||n>0&&0===i))return!e.settings.swipePropagation;return!0}function s(e,n){t.scrollTop=t.scrollTop-n,t.scrollLeft=t.scrollLeft-e,o(t)}function a(){Y=!0}function c(){Y=!1}function u(t){return t.targetTouches?t.targetTouches[0]:t}function d(t){return t.targetTouches&&1===t.targetTouches.length?!0:t.pointerType&&"mouse"!==t.pointerType&&t.pointerType!==t.MSPOINTER_TYPE_MOUSE?!0:!1}function p(t){if(d(t)){y=!0;var e=u(t);b.pageX=e.pageX,b.pageY=e.pageY,g=(new Date).getTime(),null!==m&&clearInterval(m),t.stopPropagation()}}function f(t){if(!Y&&y&&d(t)){var e=u(t),n={pageX:e.pageX,pageY:e.pageY},r=n.pageX-b.pageX,o=n.pageY-b.pageY;s(r,o),b=n;var i=(new Date).getTime(),a=i-g;a>0&&(v.x=r/a,v.y=o/a,g=i),l(r,o)&&(t.stopPropagation(),t.preventDefault())}}function h(){!Y&&y&&(y=!1,clearInterval(m),m=setInterval(function(){return r.get(t)?Math.abs(v.x)<.01&&Math.abs(v.y)<.01?void clearInterval(m):(s(30*v.x,30*v.y),v.x*=.8,void(v.y*=.8)):void clearInterval(m)},10))}var b={},g=0,v={},m=null,Y=!1,y=!1;n&&(e.event.bind(window,"touchstart",a),e.event.bind(window,"touchend",c),e.event.bind(t,"touchstart",p),e.event.bind(t,"touchmove",f),e.event.bind(t,"touchend",h)),i&&(window.PointerEvent?(e.event.bind(window,"pointerdown",a),e.event.bind(window,"pointerup",c),e.event.bind(t,"pointerdown",p),e.event.bind(t,"pointermove",f),e.event.bind(t,"pointerup",h)):window.MSPointerEvent&&(e.event.bind(window,"MSPointerDown",a),e.event.bind(window,"MSPointerUp",c),e.event.bind(t,"MSPointerDown",p),e.event.bind(t,"MSPointerMove",f),e.event.bind(t,"MSPointerUp",h)))}var r=t("../instances"),o=t("../update-geometry");e.exports=function(t,e,o){var i=r.get(t);n(t,i,e,o)}},{"../instances":18,"../update-geometry":19}],17:[function(t,e){"use strict";var n=t("../lib/class"),r=t("../lib/helper"),o=t("./instances"),i=t("./update-geometry"),l=t("./handler/click-rail"),s=t("./handler/drag-scrollbar"),a=t("./handler/keyboard"),c=t("./handler/mouse-wheel"),u=t("./handler/native-scroll"),d=t("./handler/selection"),p=t("./handler/touch");e.exports=function(t,e){e="object"==typeof e?e:{},n.add(t,"ps-container");var f=o.add(t);f.settings=r.extend(f.settings,e),l(t),s(t),c(t),u(t),d(t),(r.env.supportsTouch||r.env.supportsIePointer)&&p(t,r.env.supportsTouch,r.env.supportsIePointer),f.settings.useKeyboard&&a(t),i(t)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(t,e,n){"use strict";function r(t){var e=this;e.settings=d.clone(a),e.containerWidth=null,e.containerHeight=null,e.contentWidth=null,e.contentHeight=null,e.isRtl="rtl"===s.css(t,"direction"),e.isNegativeScroll=function(){var e=t.scrollLeft,n=null;return t.scrollLeft=-1,n=t.scrollLeft<0,t.scrollLeft=e,n}(),e.negativeScrollAdjustment=e.isNegativeScroll?t.scrollWidth-t.clientWidth:0,e.event=new c,e.ownerDocument=t.ownerDocument||document,e.scrollbarXRail=s.appendTo(s.e("div","ps-scrollbar-x-rail"),t),e.scrollbarX=s.appendTo(s.e("div","ps-scrollbar-x"),e.scrollbarXRail),e.scrollbarXActive=null,e.scrollbarXWidth=null,e.scrollbarXLeft=null,e.scrollbarXBottom=d.toInt(s.css(e.scrollbarXRail,"bottom")),e.isScrollbarXUsingBottom=e.scrollbarXBottom===e.scrollbarXBottom,e.scrollbarXTop=e.isScrollbarXUsingBottom?null:d.toInt(s.css(e.scrollbarXRail,"top")),e.railBorderXWidth=d.toInt(s.css(e.scrollbarXRail,"borderLeftWidth"))+d.toInt(s.css(e.scrollbarXRail,"borderRightWidth")),s.css(e.scrollbarXRail,"display","block"),e.railXMarginWidth=d.toInt(s.css(e.scrollbarXRail,"marginLeft"))+d.toInt(s.css(e.scrollbarXRail,"marginRight")),s.css(e.scrollbarXRail,"display",""),e.railXWidth=null,e.railXRatio=null,e.scrollbarYRail=s.appendTo(s.e("div","ps-scrollbar-y-rail"),t),e.scrollbarY=s.appendTo(s.e("div","ps-scrollbar-y"),e.scrollbarYRail),e.scrollbarYActive=null,e.scrollbarYHeight=null,e.scrollbarYTop=null,e.scrollbarYRight=d.toInt(s.css(e.scrollbarYRail,"right")),e.isScrollbarYUsingRight=e.scrollbarYRight===e.scrollbarYRight,e.scrollbarYLeft=e.isScrollbarYUsingRight?null:d.toInt(s.css(e.scrollbarYRail,"left")),e.scrollbarYOuterWidth=e.isRtl?d.outerWidth(e.scrollbarY):null,e.railBorderYWidth=d.toInt(s.css(e.scrollbarYRail,"borderTopWidth"))+d.toInt(s.css(e.scrollbarYRail,"borderBottomWidth")),s.css(e.scrollbarYRail,"display","block"),e.railYMarginHeight=d.toInt(s.css(e.scrollbarYRail,"marginTop"))+d.toInt(s.css(e.scrollbarYRail,"marginBottom")),s.css(e.scrollbarYRail,"display",""),e.railYHeight=null,e.railYRatio=null}function o(t){return"undefined"==typeof t.dataset?t.getAttribute("data-ps-id"):t.dataset.psId}function i(t,e){"undefined"==typeof t.dataset?t.setAttribute("data-ps-id",e):t.dataset.psId=e}function l(t){"undefined"==typeof t.dataset?t.removeAttribute("data-ps-id"):delete t.dataset.psId}var s=t("../lib/dom"),a=t("./default-setting"),c=t("../lib/event-manager"),u=t("../lib/guid"),d=t("../lib/helper"),p={};n.add=function(t){var e=u();return i(t,e),p[e]=new r(t),p[e]},n.remove=function(t){delete p[o(t)],l(t)},n.get=function(t){return p[o(t)]}},{"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(t,e){"use strict";function n(t,e){return t.settings.minScrollbarLength&&(e=Math.max(e,t.settings.minScrollbarLength)),t.settings.maxScrollbarLength&&(e=Math.min(e,t.settings.maxScrollbarLength)),e}function r(t,e){var n={width:e.railXWidth};n.left=e.isRtl?e.negativeScrollAdjustment+t.scrollLeft+e.containerWidth-e.contentWidth:t.scrollLeft,e.isScrollbarXUsingBottom?n.bottom=e.scrollbarXBottom-t.scrollTop:n.top=e.scrollbarXTop+t.scrollTop,i.css(e.scrollbarXRail,n);var r={top:t.scrollTop,height:e.railYHeight};e.isScrollbarYUsingRight?r.right=e.isRtl?e.contentWidth-(e.negativeScrollAdjustment+t.scrollLeft)-e.scrollbarYRight-e.scrollbarYOuterWidth:e.scrollbarYRight-t.scrollLeft:r.left=e.isRtl?e.negativeScrollAdjustment+t.scrollLeft+2*e.containerWidth-e.contentWidth-e.scrollbarYLeft-e.scrollbarYOuterWidth:e.scrollbarYLeft+t.scrollLeft,i.css(e.scrollbarYRail,r),i.css(e.scrollbarX,{left:e.scrollbarXLeft,width:e.scrollbarXWidth-e.railBorderXWidth}),i.css(e.scrollbarY,{top:e.scrollbarYTop,height:e.scrollbarYHeight-e.railBorderYWidth})}var o=t("../lib/class"),i=t("../lib/dom"),l=t("../lib/helper"),s=t("./instances");e.exports=function(t){var e=s.get(t);e.containerWidth=t.clientWidth,e.containerHeight=t.clientHeight,e.contentWidth=t.scrollWidth,e.contentHeight=t.scrollHeight,t.contains(e.scrollbarXRail)||i.appendTo(e.scrollbarXRail,t),t.contains(e.scrollbarYRail)||i.appendTo(e.scrollbarYRail,t),!e.settings.suppressScrollX&&e.containerWidth+e.settings.scrollXMarginOffset=e.railXWidth-e.scrollbarXWidth&&(e.scrollbarXLeft=e.railXWidth-e.scrollbarXWidth),e.scrollbarYTop>=e.railYHeight-e.scrollbarYHeight&&(e.scrollbarYTop=e.railYHeight-e.scrollbarYHeight),r(t,e),o[e.scrollbarXActive?"add":"remove"](t,"ps-active-x"),o[e.scrollbarYActive?"add":"remove"](t,"ps-active-y")}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18}],20:[function(t,e){"use strict";var n=t("../lib/dom"),r=t("../lib/helper"),o=t("./instances"),i=t("./update-geometry");e.exports=function(t){var e=o.get(t);e.negativeScrollAdjustment=e.isNegativeScroll?t.scrollWidth-t.clientWidth:0,n.css(e.scrollbarXRail,"display","block"),n.css(e.scrollbarYRail,"display","block"),e.railXMarginWidth=r.toInt(n.css(e.scrollbarXRail,"marginLeft"))+r.toInt(n.css(e.scrollbarXRail,"marginRight")),e.railYMarginHeight=r.toInt(n.css(e.scrollbarYRail,"marginTop"))+r.toInt(n.css(e.scrollbarYRail,"marginBottom")),n.css(e.scrollbarXRail,"display","none"),n.css(e.scrollbarYRail,"display","none"),i(t),n.css(e.scrollbarXRail,"display",""),n.css(e.scrollbarYRail,"display","")}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19}]},{},[1]);!function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof module&&module.exports?require("jquery"):jQuery)}(function(e){function t(t){var a={},l=/^jQuery\d+$/;return e.each(t.attributes,function(e,t){t.specified&&!l.test(t.name)&&(a[t.name]=t.value)}),a}function a(t,a){var l=this,o=e(l);if(l.value==o.attr("placeholder")&&o.hasClass(p.customClass))if(o.data("placeholder-password")){if(o=o.hide().nextAll('input[type="password"]:first').show().attr("id",o.removeAttr("id").data("placeholder-id")),t===!0)return o[0].value=a;o.focus()}else l.value="",o.removeClass(p.customClass),l==r()&&l.select()}function l(){var l,r=this,o=e(r),n=this.id;if(""===r.value){if("password"===r.type){if(!o.data("placeholder-textinput")){try{l=o.clone().prop({type:"text"})}catch(s){l=e("").attr(e.extend(t(this),{type:"text"}))}l.removeAttr("name").data({"placeholder-password":o,"placeholder-id":n}).bind("focus.placeholder",a),o.data({"placeholder-textinput":l,"placeholder-id":n}).before(l)}o=o.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",n).show()}o.addClass(p.customClass),o[0].value=o.attr("placeholder")}else o.removeClass(p.customClass)}function r(){try{return document.activeElement}catch(e){}}var o,n,s="[object OperaMini]"==Object.prototype.toString.call(window.operamini),c="placeholder"in document.createElement("input")&&!s,u="placeholder"in document.createElement("textarea")&&!s,d=e.valHooks,i=e.propHooks;if(c&&u)n=e.fn.placeholder=function(){return this},n.input=n.textarea=!0;else{var p={};n=e.fn.placeholder=function(t){var r={customClass:"placeholder"};p=e.extend({},r,t);var o=this;return o.filter((c?"textarea":":input")+"[placeholder]").not("."+p.customClass).bind({"focus.placeholder":a,"blur.placeholder":l}).data("placeholder-enabled",!0).trigger("blur.placeholder"),o},n.input=c,n.textarea=u,o={get:function(t){var a=e(t),l=a.data("placeholder-password");return l?l[0].value:a.data("placeholder-enabled")&&a.hasClass(p.customClass)?"":t.value},set:function(t,o){var n=e(t),s=n.data("placeholder-password");return s?s[0].value=o:n.data("placeholder-enabled")?(""===o?(t.value=o,t!=r()&&l.call(t)):n.hasClass(p.customClass)?a.call(t,!0,o)||(t.value=o):t.value=o,n):t.value=o}},c||(d.input=o,i.value=o),u||(d.textarea=o,i.value=o),e(function(){e(document).delegate("form","submit.placeholder",function(){var t=e("."+p.customClass,this).each(a);setTimeout(function(){t.each(l)},10)})}),e(window).bind("beforeunload.placeholder",function(){e("."+p.customClass).each(function(){this.value=""})})}});
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/money/index.ftl b/src/main/resources/templates/themes/money/index.ftl
new file mode 100644
index 000000000..f8d930967
--- /dev/null
+++ b/src/main/resources/templates/themes/money/index.ftl
@@ -0,0 +1,384 @@
+
+
+
+ Mr.Li - 即将上线·创意模板
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% for keyword in site.skill_web_keywords %}
+
+ {% endfor %}
+
+
+ {% endif %}
+
+
+
+
+ {% include sidebar-popular-repo.html %}
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/yummy/_includes/blog-page.html b/src/main/resources/templates/themes/yummy/_includes/blog-page.html
new file mode 100644
index 000000000..b991a5cc9
--- /dev/null
+++ b/src/main/resources/templates/themes/yummy/_includes/blog-page.html
@@ -0,0 +1,38 @@
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/yummy/_includes/pagination.html b/src/main/resources/templates/themes/yummy/_includes/pagination.html
new file mode 100644
index 000000000..43ba5ac36
--- /dev/null
+++ b/src/main/resources/templates/themes/yummy/_includes/pagination.html
@@ -0,0 +1,37 @@
+{% if paginator.total_pages > 1 %}
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/themes/yummy/_includes/sidebar-post-tag.ftl b/src/main/resources/templates/themes/yummy/_includes/sidebar-post-tag.ftl
new file mode 100644
index 000000000..d1bbb9204
--- /dev/null
+++ b/src/main/resources/templates/themes/yummy/_includes/sidebar-post-tag.ftl
@@ -0,0 +1,60 @@
+
shortname
for Disqus. Please set it in_config.yml
. +