j1-template 2022.0.2 → 2022.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/modules/connectors/analytic/google-analytics.html +3 -13
  3. data/_includes/themes/j1/modules/connectors/comment/hyvor.html +4 -5
  4. data/_includes/themes/j1/procedures/global/create_bs_button.proc +4 -4
  5. data/_includes/themes/j1/procedures/posts/pager.proc +2 -2
  6. data/_layouts/default.html +3 -11
  7. data/assets/data/private.json +1 -5
  8. data/assets/data/quicklinks.html +62 -47
  9. data/assets/themes/j1/adapter/js/cookieConsent.js +18 -13
  10. data/assets/themes/j1/adapter/js/j1.js +17 -17
  11. data/assets/themes/j1/adapter/js/translator.js +10 -6
  12. data/assets/themes/j1/core/js/template.js +139 -65
  13. data/assets/themes/j1/core/js/template.min.js +5 -5
  14. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  15. data/assets/themes/j1/modules/cryptoJS/js/aes.js +35 -0
  16. data/assets/themes/j1/modules/cryptoJS/js/aes.min.js +35 -0
  17. data/assets/themes/j1/modules/cryptoJS/js/hmac-md5.js +21 -0
  18. data/assets/themes/j1/modules/cryptoJS/js/hmac-ripemd160.js +31 -0
  19. data/assets/themes/j1/modules/cryptoJS/js/hmac-sha1.js +17 -0
  20. data/assets/themes/j1/modules/cryptoJS/js/hmac-sha224.js +19 -0
  21. data/assets/themes/j1/modules/cryptoJS/js/hmac-sha256.js +18 -0
  22. data/assets/themes/j1/modules/cryptoJS/js/hmac-sha3.js +21 -0
  23. data/assets/themes/j1/modules/cryptoJS/js/hmac-sha384.js +27 -0
  24. data/assets/themes/j1/modules/cryptoJS/js/hmac-sha512.js +25 -0
  25. data/assets/themes/j1/modules/cryptoJS/js/md5.js +19 -0
  26. data/assets/themes/j1/modules/cryptoJS/js/pbkdf2.js +19 -0
  27. data/assets/themes/j1/modules/cryptoJS/js/rabbit-legacy.js +36 -0
  28. data/assets/themes/j1/modules/cryptoJS/js/rabbit.js +36 -0
  29. data/assets/themes/j1/modules/cryptoJS/js/rc4.js +33 -0
  30. data/assets/themes/j1/modules/cryptoJS/js/ripemd160.js +29 -0
  31. data/assets/themes/j1/modules/cryptoJS/js/sha1.js +15 -0
  32. data/assets/themes/j1/modules/cryptoJS/js/sha224.js +17 -0
  33. data/assets/themes/j1/modules/cryptoJS/js/sha256.js +16 -0
  34. data/assets/themes/j1/modules/cryptoJS/js/sha3.js +19 -0
  35. data/assets/themes/j1/modules/cryptoJS/js/sha384.js +25 -0
  36. data/assets/themes/j1/modules/cryptoJS/js/sha512.js +23 -0
  37. data/assets/themes/j1/modules/cryptoJS/js/tripledes.js +51 -0
  38. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.2.js +460 -0
  39. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.js +379 -353
  40. data/assets/themes/j1/modules/deeplAPI/js/deeplAPI.min.js +1 -1
  41. data/assets/themes/j1/modules/gtag-opt-in/js/gtag-opt-in.js +93 -1
  42. data/assets/themes/j1/modules/scroller/js/scroller.js +6 -6
  43. data/assets/themes/j1/modules/scroller/js/scroller.min.js +1 -1
  44. data/exe/j1 +6 -7
  45. data/lib/j1/commands/generate.rb +15 -16
  46. data/lib/j1/version.rb +3 -3
  47. data/lib/starter_web/Gemfile +7 -1
  48. data/lib/starter_web/_config.yml +1 -1
  49. data/lib/starter_web/_data/_defaults/private.yml +3 -2
  50. data/lib/starter_web/_data/builder/defaults/blog_navigator.yml +50 -44
  51. data/lib/starter_web/_data/modules/defaults/navigator.yml +31 -11
  52. data/lib/starter_web/_data/modules/translator.yml +3 -3
  53. data/lib/starter_web/_data/private.yml +3 -2
  54. data/lib/starter_web/_data/resources.yml +27 -2
  55. data/lib/starter_web/_includes/attributes.asciidoc +1 -1
  56. data/lib/starter_web/_plugins/encodeBase64.rb +46 -0
  57. data/lib/starter_web/_plugins/encryptAES.rb +53 -0
  58. data/lib/starter_web/_plugins/filters.rb +2 -1
  59. data/lib/starter_web/_plugins/lunr_index.rb +1 -1
  60. data/lib/starter_web/_plugins/minifyJSON.rb +2 -2
  61. data/lib/starter_web/package.json +1 -1
  62. data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
  63. data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -1
  64. data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -1
  65. data/lib/starter_web/pages/public/blog/navigator/archive/categoryview.html +0 -21
  66. data/lib/starter_web/pages/public/blog/navigator/archive/dateview.html +1 -1
  67. data/lib/starter_web/pages/public/blog/navigator/archive/tagview.html +1 -0
  68. data/lib/starter_web/pages/public/blog/navigator/archive.html +1 -1
  69. data/lib/starter_web/pages/public/learn/quickstart.adoc +1 -1
  70. data/lib/starter_web/pages/public/learn/where_to_go.adoc +1 -1
  71. data/lib/starter_web/pages/public/legal/de/100_copyright.adoc +1 -1
  72. data/lib/starter_web/pages/public/legal/de/100_impress.adoc +1 -1
  73. data/lib/starter_web/pages/public/legal/de/300_privacy.adoc +1 -1
  74. data/lib/starter_web/pages/public/legal/de/400_comment_policy.adoc +1 -1
  75. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +1 -1
  76. data/lib/starter_web/pages/public/legal/en/200_impress.adoc +1 -1
  77. data/lib/starter_web/pages/public/legal/en/300_privacy.adoc +1 -1
  78. data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +1 -1
  79. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  80. data/lib/starter_web/utilsrv/package.json +1 -1
  81. metadata +29 -5
  82. data/lib/j1/commands/help.rb +0 -32
  83. data/lib/j1/commands/module.rb +0 -69
@@ -15,4 +15,4 @@
15
15
  # See: https://www.dotnetcurry.com/jquery/1069/authoring-jquery-plugins
16
16
  # -----------------------------------------------------------------------------
17
17
  */
18
- (function(e,c,a,g){var d="deeplAPI",f={api:"free",auth_key:"",source_lang:"auto",target_lang:"DE",max_chars:false,split_sentences:"1",preserve_formatting:"0",formality:"default",tag_handling:false,outline_detection:true,non_splitting_tags:false,splitting_tags:false,ignore_tags:false,onInit:function(){},onBeforeTranslation:function(){},onAfterTranslation:function(){}};function b(i,h){this.element=i;this.settings=e.extend({},f,h);this.settings.elementID="#"+this.element.id;this.xhr=new XMLHttpRequest();this.init(this.settings)}e.extend(b.prototype,{init:function(i){var n=this;var h=log4javascript.getLogger("deeplAPI.init");var j="/assets/data/private.json";var k=i;var l;h.info("\ninitializing plugin: started");e.ajax({url:j,dataType:"json",success:function(o){l=o.translators.deepl.auth_key},error:function(o,q,p){h.error("\nfailed to retrieve Yaml data from: "+j)}});var m=setInterval(function(){if(typeof l!=="undefined"){k.auth_key=l;n.translate(k);h.info("\ntranslation: in progress");clearInterval(m)}})},prepareXHR:function(h){if(h.api==="free"){this.xhr.open("POST","https://api-free.deepl.com/v2/translate",true)}else{if(h.api==="pro"){this.xhr.open("POST","https://api.deepl.com/v2/translate",true)}else{this.xhr.open("POST","https://api-free.deepl.com/v2/translate",true)}}this.xhr.setRequestHeader("Accept","*/*");this.xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},prepareText:function(h){return h.split("\n")},translate:function(C){const H=log4javascript.getLogger("deeplAPI.translate");const n=4;const t=200;const u=["BG","CS","DA","DE","EL","EN-GB","EN-US","EN","ES","ET","FI","FR","HU","IT","JA","LT","LV","NL","PL","PT-PT","PT-BR","PT","RO","RU","SK","SL","SV","ZH"];const h=["DE","FR","IT","ES","NL","PL","PT","PT-BR","RU"];const r=["xml"];const w=C.targetElement;const q=e(w).length;const D="Translation failed.\nReason: ";const o="Translation skipped.\nReason: ";var y;var F;var v;var x={};x["400"]="Bad request. Please check error message and your parameters.";x["401"]="Authorization failed. Please supply a valid DeepL-Auth-Key.";x["403"]="Forbidden. The access to the requested resource is denied, because of insufficient access rights.";x["404"]="The requested resource could not be found.";x["413"]="The request size exceeds the limit.";x["415"]="The requested entries format specified in the Accept header is not supported.";x["429"]="Too many requests. Please wait and resend your request.";x["456"]="Quota exceeded. The maximum amount of glossaries has been reached.";x["500"]="Internal server error";x["503"]="Resource currently unavailable. Try again later.";x["529"]="Too many requests. Please wait and resend your request.";var l;var k="";var j="";var B="";var E="";var m;var G;if(q){y=(w.includes(".")||w.includes("#"))?w.substring(1):w;F=e(w).get(0).nodeName;if(F==="TEXTAREA"){B=this.element.value}else{if(F==="P"){j=this.element;B=e(w).text()}}v=B.length}else{H.error("\ntarget element does not exists: "+w);return false}if(C.max_char&&B.length>C.max_char){var s=B.substring(0,C.max_char-3);B=s+" ...";H.info("\nlimit for source text (max: "+C.max_char+") reached: "+B.length)}E=this.prepareText(B);this.prepareXHR(C);var p="";for(var A=0;A<E.length;A++){p+="&text="+E[A]}this.xhr.onload=function(){if(this.readyState===n){if(this.status===t){var I=JSON.parse(this.responseText);var J="";for(var K=0;K<I.translations.length;K++){J+=I.translations[K].text;J+="\n"}H.info("\ntranslation: finished");if(F==="TEXTAREA"){e(w).val(J)}else{if(F==="P"){e(w).text(J)}}}else{H.error("\nAPI returned "+this.status+": "+x[this.status])}}};m=this.settings.source_lang;G=this.settings.target_lang;if(this.settings.source_lang!=="auto"){this.settings.source_lang=(u.indexOf(this.settings.source_lang)>-1)?this.settings.source_lang:false}this.settings.target_lang=(u.indexOf(this.settings.target_lang)>-1)?this.settings.target_lang:false;if(!this.settings.auth_key||!this.settings.source_lang||!this.settings.target_lang){if(!this.settings.auth_key){l="NO AUTH key passed.";H.error("\ninvalid option found. "+l)}if(!this.settings.source_lang){l="WRONG source language passed: "+m;H.error("\ninvalid option found. "+l)}if(!this.settings.target_lang){l="WRONG target language passed: "+G;H.error("\ninvalid option found. "+l)}if(F==="TEXTAREA"){e(w).val(D+l)}else{if(F==="P"){e(w).text(D+l)}}return false}if(!v){l="NO text found for translation";if(F==="TEXTAREA"){e(w).val(o+l)}else{if(F==="P"){e(w).text(o+l)}}H.warn("\nno text found for translation");return false}if(this.settings.formality!=="default"){if(!(h.indexOf(this.settings.target_lang)>-1)){H.warn("\nwrong language found for formality setting: "+this.settings.target_lang)}this.settings.formality=(h.indexOf(this.settings.target_lang)>-1)?this.settings.formality:"default"}if(this.settings.tag_handling){var z=this.settings.tag_handling;this.settings.tag_handling=(r.indexOf(this.settings.tag_handling)>-1)?this.settings.tag_handling:false;if(this.settings.tag_handling){this.settings.non_splitting_tags=this.settings.non_splitting_tags?encodeURIComponent(this.settings.non_splitting_tags):false;this.settings.splitting_tags=this.settings.splitting_tags?encodeURIComponent(this.settings.splitting_tags):false;this.settings.ignore_tags=this.settings.ignore_tags?encodeURIComponent(this.settings.ignore_tags):false}else{H.error("\ninvalid option found for tag handling : "+z);H.warn("\ndisable option: tag_handling");if(this.settings.non_splitting_tags){H.warn("\ndisable option: "+this.settings.non_splitting_tags);this.settings.non_splitting_tags=false}if(this.settings.splitting_tags){H.warn("\ndisable option : "+this.settings.splitting_tags);this.settings.splitting_tags=false}if(this.settings.ignore_tags){H.warn("\ndisable option: "+this.settings.ignore_tags);this.settings.ignore_tags=false}}}else{if(this.settings.non_splitting_tags){H.warn("\ninvalid option found: "+this.settings.non_splitting_tags);this.settings.non_splitting_tags=false}if(this.settings.splitting_tags){H.warn("\ninvalid option found: "+this.settings.splitting_tags);this.settings.splitting_tags=false}if(this.settings.ignore_tags){H.warn("\ninvalid option found: "+this.settings.ignore_tags);this.settings.ignore_tags=false}}k="auth_key="+this.settings.auth_key;k+=(this.settings.source_lang!=="auto")?"&source_lang="+this.settings.source_lang:"";k+="&target_lang="+this.settings.target_lang;k+=(this.settings.formality!=="default")?"&formality="+this.settings.formality:"";k+=(this.settings.split_sentences)?"&split_sentences="+this.settings.formality:"";k+=(this.settings.tag_handling)?"&tag_handling="+this.settings.tag_handling:"&tag_handling=0";k+=(this.settings.tag_handling&&this.settings.non_splitting_tags)?"&non_splitting_tags="+this.settings.non_splitting_tags:"";k+=(this.settings.tag_handling&&this.settings.splitting_tags)?"&splitting_tags="+this.settings.splitting_tags:"";k+=(this.settings.tag_handling&&this.settings.ignore_tags)?"&ignore_tags="+this.settings.ignore_tags:"";k+=p;this.xhr.send(k)}});e.fn[d]=function(i){var h=arguments;if(i===g||typeof i==="object"){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,i))}})}else{if(typeof i==="string"&&i[0]!=="_"&&i!=="init"){var j;this.each(function(){var k=e.data(this,"plugin_"+d);if(k instanceof b&&typeof k[i]==="function"){j=k[i].apply(k,Array.prototype.slice.call(h,1))}if(i==="destroy"){e.data(this,"plugin_"+d,null)}});return j!==g?j:this}}}})(jQuery,window,document);
18
+ (function(e,c,a,g){var d="deeplAPI",f={api:"free",auth_key:"",source_lang:"auto",target_lang:"DE",max_chars:false,split_sentences:"1",preserve_formatting:"0",formality:"default",tag_handling:false,outline_detection:true,non_splitting_tags:false,splitting_tags:false,ignore_tags:false,onInit:function(){},onBeforeTranslation:function(){},onAfterTranslation:function(){}};function b(i,h){this.element=i;this.settings=e.extend({},f,h);this.settings.elementID="#"+this.element.id;this.xhr=new XMLHttpRequest();this.init(this.settings)}e.extend(b.prototype,{init:function(q){var k=this;var o=log4javascript.getLogger("deeplAPI.init");var h="/assets/data/private.json";var i=q;var m;var p;var j;var l;o.info("\ninitialize: started");e.ajax({url:h,dataType:"text",success:function(r){p=atob(r);l=JSON.parse(p);m=l.translators.deepl.auth_key},error:function(r,t,s){o.error("\nfailed to retrieve JSON data from: "+h)}});var n=setInterval(function(){if(typeof m!=="undefined"){i.auth_key=m;k.translate(i);o.info("\ninitialize: finished");o.info("\ntranslate: started");clearInterval(n)}})},prepareXHR:function(h){if(h.api==="free"){this.xhr.open("POST","https://api-free.deepl.com/v2/translate",true)}else{if(h.api==="pro"){this.xhr.open("POST","https://api.deepl.com/v2/translate",true)}else{this.xhr.open("POST","https://api-free.deepl.com/v2/translate",true)}}this.xhr.setRequestHeader("Accept","*/*");this.xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},prepareText:function(h){return h.split("\n")},translate:function(C){const H=log4javascript.getLogger("deeplAPI.translate");const n=4;const t=200;const u=["BG","CS","DA","DE","EL","EN-GB","EN-US","EN","ES","ET","FI","FR","HU","IT","JA","LT","LV","NL","PL","PT-PT","PT-BR","PT","RO","RU","SK","SL","SV","ZH"];const h=["DE","FR","IT","ES","NL","PL","PT","PT-BR","RU"];const r=["xml"];const w=C.targetElement;const q=e(w).length;const D="Translation failed.\nReason: ";const o="Translation skipped.\nReason: ";var y;var F;var v;var x={};x["400"]="Bad request. Please check error message and your parameters.";x["401"]="Authorization failed. Please supply a valid DeepL-Auth-Key.";x["403"]="Forbidden. The access to the requested resource is denied, because of insufficient access rights.";x["404"]="The requested resource could not be found.";x["413"]="The request size exceeds the limit.";x["415"]="The requested entries format specified in the Accept header is not supported.";x["429"]="Too many requests. Please wait and resend your request.";x["456"]="Quota exceeded. The maximum amount of glossaries has been reached.";x["500"]="Internal server error";x["503"]="Resource currently unavailable. Try again later.";x["529"]="Too many requests. Please wait and resend your request.";var l;var k="";var j="";var B="";var E="";var m;var G;if(q){y=(w.includes(".")||w.includes("#"))?w.substring(1):w;F=e(w).get(0).nodeName;if(F==="TEXTAREA"){B=this.element.value}else{if(F==="P"){j=this.element;B=e(w).text()}}v=B.length}else{H.error("\ntarget element does not exists: "+w);return false}if(C.max_char&&B.length>C.max_char){var s=B.substring(0,C.max_char-3);B=s+" ...";H.info("\nlimit for source text (max: "+C.max_char+") reached: "+B.length)}E=this.prepareText(B);this.prepareXHR(C);var p="";for(var A=0;A<E.length;A++){p+="&text="+E[A]}this.xhr.onload=function(){if(this.readyState===n){if(this.status===t){var I=JSON.parse(this.responseText);var J="";for(var K=0;K<I.translations.length;K++){J+=I.translations[K].text;J+="\n"}H.info("\ntranslation: finished");if(F==="TEXTAREA"){e(w).val(J)}else{if(F==="P"){e(w).text(J)}}}else{H.error("\nAPI returned "+this.status+": "+x[this.status])}}};m=this.settings.source_lang;G=this.settings.target_lang;if(this.settings.source_lang!=="auto"){this.settings.source_lang=(u.indexOf(this.settings.source_lang)>-1)?this.settings.source_lang:false}this.settings.target_lang=(u.indexOf(this.settings.target_lang)>-1)?this.settings.target_lang:false;if(!this.settings.auth_key||!this.settings.source_lang||!this.settings.target_lang){if(!this.settings.auth_key){l="NO AUTH key passed.";H.error("\ninvalid option found. "+l)}if(!this.settings.source_lang){l="WRONG source language passed: "+m;H.error("\ninvalid option found. "+l)}if(!this.settings.target_lang){l="WRONG target language passed: "+G;H.error("\ninvalid option found. "+l)}if(F==="TEXTAREA"){e(w).val(D+l)}else{if(F==="P"){e(w).text(D+l)}}return false}if(!v){l="NO text found for translation";if(F==="TEXTAREA"){e(w).val(o+l)}else{if(F==="P"){e(w).text(o+l)}}H.warn("\nno text found for translation");return false}if(this.settings.formality!=="default"){if(!(h.indexOf(this.settings.target_lang)>-1)){H.warn("\nwrong language found for formality setting: "+this.settings.target_lang)}this.settings.formality=(h.indexOf(this.settings.target_lang)>-1)?this.settings.formality:"default"}if(this.settings.tag_handling){var z=this.settings.tag_handling;this.settings.tag_handling=(r.indexOf(this.settings.tag_handling)>-1)?this.settings.tag_handling:false;if(this.settings.tag_handling){this.settings.non_splitting_tags=this.settings.non_splitting_tags?encodeURIComponent(this.settings.non_splitting_tags):false;this.settings.splitting_tags=this.settings.splitting_tags?encodeURIComponent(this.settings.splitting_tags):false;this.settings.ignore_tags=this.settings.ignore_tags?encodeURIComponent(this.settings.ignore_tags):false}else{H.error("\ninvalid option found for tag handling : "+z);H.warn("\ndisable option: tag_handling");if(this.settings.non_splitting_tags){H.warn("\ndisable option: "+this.settings.non_splitting_tags);this.settings.non_splitting_tags=false}if(this.settings.splitting_tags){H.warn("\ndisable option : "+this.settings.splitting_tags);this.settings.splitting_tags=false}if(this.settings.ignore_tags){H.warn("\ndisable option: "+this.settings.ignore_tags);this.settings.ignore_tags=false}}}else{if(this.settings.non_splitting_tags){H.warn("\ninvalid option found: "+this.settings.non_splitting_tags);this.settings.non_splitting_tags=false}if(this.settings.splitting_tags){H.warn("\ninvalid option found: "+this.settings.splitting_tags);this.settings.splitting_tags=false}if(this.settings.ignore_tags){H.warn("\ninvalid option found: "+this.settings.ignore_tags);this.settings.ignore_tags=false}}k="auth_key="+this.settings.auth_key;k+=(this.settings.source_lang!=="auto")?"&source_lang="+this.settings.source_lang:"";k+="&target_lang="+this.settings.target_lang;k+=(this.settings.formality!=="default")?"&formality="+this.settings.formality:"";k+=(this.settings.split_sentences)?"&split_sentences="+this.settings.formality:"";k+=(this.settings.tag_handling)?"&tag_handling="+this.settings.tag_handling:"&tag_handling=0";k+=(this.settings.tag_handling&&this.settings.non_splitting_tags)?"&non_splitting_tags="+this.settings.non_splitting_tags:"";k+=(this.settings.tag_handling&&this.settings.splitting_tags)?"&splitting_tags="+this.settings.splitting_tags:"";k+=(this.settings.tag_handling&&this.settings.ignore_tags)?"&ignore_tags="+this.settings.ignore_tags:"";k+=p;this.xhr.send(k)}});e.fn[d]=function(i){var h=arguments;if(i===g||typeof i==="object"){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,i))}})}else{if(typeof i==="string"&&i[0]!=="_"&&i!=="init"){var j;this.each(function(){var k=e.data(this,"plugin_"+d);if(k instanceof b&&typeof k[i]==="function"){j=k[i].apply(k,Array.prototype.slice.call(h,1))}if(i==="destroy"){e.data(this,"plugin_"+d,null)}});return j!==g?j:this}}}})(jQuery,window,document);
@@ -12,4 +12,96 @@
12
12
  # For details, see https://github.com/luciomartinez/gtag-opt-in/blob/main/LICENSE
13
13
  # -----------------------------------------------------------------------------
14
14
  */
15
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.GTagOptIn=t():e.GTagOptIn=t()}(window,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";n.r(t),n.d(t,"register",(function(){return i})),n.d(t,"optIn",(function(){return f})),n.d(t,"optOut",(function(){return a}));let r=!1,o=void 0;const i=e=>{u(e),o=e},u=e=>{if(!e)throw new Error("gtag-opt-in: invalid value passed to `register` method. Make sure to use a valid Analytics ID.")},a=()=>{d(),window["ga-disable-"+o]=!0},f=()=>{d(),c(),window["ga-disable-"+o]=!1},d=()=>{if(!o)throw new Error("gtag-opt-in: no value found for Analytics ID. Make sure to register before by calling the `register` method.")},c=()=>{r||(l(),r=!0)},l=()=>{const e=s();p(e)},s=()=>(window.dataLayer=window.dataLayer||[],function(){dataLayer.push(arguments)}),p=e=>{e("js",new Date),e("config",o,{anonymize_ip:!0})}}])}));
15
+ !function (e, t) {
16
+ "object" == typeof exports && "object" == typeof module
17
+ ? module.exports = t() : "function" == typeof define && define.amd ? define([], t)
18
+ : "object" == typeof exports ? exports.GTagOptIn = t() : e.GTagOptIn = t()
19
+ } (window, (function () {
20
+ return function (e) {
21
+ var t = {};
22
+
23
+ function n(r) {
24
+ if (t[r]) return t[r].exports;
25
+ var o = t[r] = {
26
+ i: r,
27
+ l: !1,
28
+ exports: {}
29
+ };
30
+ return e[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports
31
+ }
32
+ return n.m = e, n.c = t, n.d = function (e, t, r) {
33
+ n.o(e, t) || Object.defineProperty(e, t, {
34
+ enumerable: !0,
35
+ get: r
36
+ })
37
+ }, n.r = function (e) {
38
+ "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
39
+ value: "Module"
40
+ }), Object.defineProperty(e, "__esModule", {
41
+ value: !0
42
+ })
43
+ }, n.t = function (e, t) {
44
+ if (1 & t && (e = n(e)), 8 & t) return e;
45
+ if (4 & t && "object" == typeof e && e && e.__esModule) return e;
46
+ var r = Object.create(null);
47
+ if (n.r(r), Object.defineProperty(r, "default", {
48
+ enumerable: !0,
49
+ value: e
50
+ }), 2 & t && "string" != typeof e)
51
+ for (var o in e) n.d(r, o, function (t) {
52
+ return e[t]
53
+ }.bind(null, o));
54
+ return r
55
+ }, n.n = function (e) {
56
+ var t = e && e.__esModule ? function () {
57
+ return e.default
58
+ } : function () {
59
+ return e
60
+ };
61
+ return n.d(t, "a", t), t
62
+ }, n.o = function (e, t) {
63
+ return Object.prototype.hasOwnProperty.call(e, t)
64
+ }, n.p = "", n(n.s = 0)
65
+ }([function (e, t, n) {
66
+ "use strict";
67
+ n.r(t), n.d(t, "register", (function () {
68
+ return i
69
+ })), n.d(t, "optIn", (function () {
70
+ return f
71
+ })), n.d(t, "optOut", (function () {
72
+ return a
73
+ }));
74
+ let r = !1,
75
+ o = void 0;
76
+ const i = e => {
77
+ u(e), o = e
78
+ },
79
+ u = e => {
80
+ if (!e) throw new Error("gtag-opt-in: invalid value passed to `register` method. Make sure to use a valid Analytics ID.")
81
+ },
82
+ a = () => {
83
+ d(), window["ga-disable-" + o] = !0
84
+ },
85
+ f = () => {
86
+ d(), c(), window["ga-disable-" + o] = !1
87
+ },
88
+ d = () => {
89
+ if (!o) throw new Error("gtag-opt-in: no value found for Analytics ID. Make sure to register before by calling the `register` method.")
90
+ },
91
+ c = () => {
92
+ r || (l(), r = !0)
93
+ },
94
+ l = () => {
95
+ const e = s();
96
+ p(e)
97
+ },
98
+ s = () => (window.dataLayer = window.dataLayer || [], function () {
99
+ dataLayer.push(arguments)
100
+ }),
101
+ p = e => {
102
+ e("js", new Date), e("config", o, {
103
+ anonymize_ip: !0
104
+ })
105
+ }
106
+ }])
107
+ }));
@@ -56,7 +56,7 @@
56
56
  // -----------------------------------------------------------------------
57
57
  init: function(options) {
58
58
  var _this = this;
59
- var logger = log4javascript.getLogger('');
59
+ var logger = log4javascript.getLogger('j1.scroller.core.init');
60
60
 
61
61
  logger.info('\n' + 'initializing plugin: started');
62
62
  logger.info('\n' + 'state: started');
@@ -169,7 +169,7 @@
169
169
  // -------------------------------------------------------------------------
170
170
  registerScrollEvent: function (options) {
171
171
  var _this = this;
172
- var logger = log4javascript.getLogger('');
172
+ var logger = log4javascript.getLogger('j1.scroller.core.registerScrollEvent');
173
173
 
174
174
  // scroller type infiniteScroll
175
175
  if (options.type === 'infiniteScroll') {
@@ -223,7 +223,7 @@
223
223
  // -------------------------------------------------------------------------
224
224
  getNewPost: function (options) {
225
225
  var _this = this;
226
- var logger = log4javascript.getLogger('');
226
+ var logger = log4javascript.getLogger('j1.scroller.core.getNewPost');
227
227
 
228
228
  logger.info('\n' + 'trigger loading ');
229
229
 
@@ -283,7 +283,7 @@
283
283
  // -------------------------------------------------------------------------
284
284
  getChildItemsByAjaxHTML: function (options, HTMLText) {
285
285
  var newHTML = document.createElement('html');
286
- var logger = log4javascript.getLogger('');
286
+ var logger = log4javascript.getLogger('j1.scroller.core.getChildItemsByAjaxHTML');
287
287
 
288
288
  logger.info('\n' + 'load new items');
289
289
  newHTML.innerHTML = HTMLText;
@@ -297,7 +297,7 @@
297
297
  // -------------------------------------------------------------------------
298
298
  appendNewItems: function (items) {
299
299
  var _this = this;
300
- var logger = log4javascript.getLogger('');
300
+ var logger = log4javascript.getLogger('j1.scroller.core.appendNewItems');
301
301
  var cookie_names = j1.getCookieNames();
302
302
  var user_translate = j1.readCookie(cookie_names.user_translate);
303
303
 
@@ -326,7 +326,7 @@
326
326
  // -------------------------------------------------------------------------
327
327
  infoLastPage: function (options) {
328
328
  var _this = this;
329
- var logger = log4javascript.getLogger('');
329
+ var logger = log4javascript.getLogger('j1.scroller.core.infoLastPage');
330
330
 
331
331
  logger.info('\n' + 'show: infoLastPage');
332
332
  $('.page-scroll-last').show();
@@ -12,4 +12,4 @@
12
12
  # For details, see https://jekyll.one
13
13
  # -----------------------------------------------------------------------------
14
14
  */
15
- (function(e,c,a,g){var d="scroller",f={type:"infiniteScroll",scrollOffset:100,elementScroll:false,firstPage:2,lastPage:false,infoLastPage:false,loadStatus:false,onInit:function(){},onBeforeLoad:function(){},onAfterLoad:function(){}};function b(i,h){this.element=i;this.settings=e.extend({},f,h);this.settings.elementID="#"+this.element.id;this.init(this.settings)}e.extend(b.prototype,{init:function(i){var m=this;var h=log4javascript.getLogger("");h.info("\ninitializing plugin: started");h.info("\nstate: started");if(i.elementScroll){m.scroller=m.element}else{m.scroller=c}if(i.loadStatus){var l='<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';e(l).insertAfter(i.elementID)}if(i.infoLastPage){var j=i.lastPageInfo;e(j).insertAfter(i.elementID)}var k=setInterval(function(){if(j1.getState()==="finished"){if(i.type==="infiniteScroll"){h.info("\nprocessing mode: "+i.type);h.info("\nloading items from path: "+i.pagePath+"#");h.info("\nmonitoring element set to: "+this.scroller);m.registerScrollEvent(i)}if(i.type==="showOnScroll"){h.info("\nprocessing mode: "+i.type);h.info("\nloading items from path: "+i.pagePath+"#");h.info("\nmonitoring element set to: "+this.scroller);m.registerScrollEvent(i)}h.info("\ninitializing plugin: finished");h.info("\nstate: finished");clearInterval(k)}})},isInViewport:function(n,m){if(n.length==0){return}var j=jQuery(c);var q=j.scrollTop();var i=j.height();var k=q+i;var l=jQuery(n);var o=l.offset().top+m;var p=l.height();var h=o+p;return(o>=q&&o<k)||(h>q&&h<=k)||(p>i&&o<=q&&h>=k)},isBottomReached:function(s){var n=this;var h,p;var m=e(s.elementID).height();if(n.settings.elementScroll){var j=e(c);var r=j.scrollTop();var i=j.height();var l=r+i-s.scrollOffset;var k=e(s.elementID);var o=k.offset().top+m;var q=k.height();h=o+q;return(o>=r&&o<l)||(h>r&&h<=l)||(q>i&&o<=r&&h>=l)}else{return(c.innerHeight+c.pageYOffset+s.scrollOffset>=a.body.offsetHeight)}},registerScrollEvent:function(i){var j=this;var h=log4javascript.getLogger("");if(i.type==="infiniteScroll"){h.info("\nregister scroll event of type: "+i.type);j[i.id]=function(l){var k=j.settings;if(j.isBottomReached(k)){if(k.firstPage>k.lastPage){h.info("\nlast page detected on: "+k.lastPage);c.removeEventListener("scroll",j[k.id]);h.info("\nscroll event: removed");if(k.infoLastPage){j.infoLastPage(k)}return false}j.getNewPost(k)}};c.addEventListener("scroll",j[i.id]);h.info("\nscroll event: registered")}if(i.type==="showOnScroll"){h.info("\nregister scroll event of type: "+i.type);j[i.id]=function(k){if(j.isInViewport(e("#"+i.id),i.scrollOffset)){h.info("\nspecified container is in view: "+i.id);e("."+i.id).show(i.showDelay);h.info("\nremove eventHandler");c.removeEventListener("scroll",j[i.id])}};c.addEventListener("scroll",j[i.id])}},getNewPost:function(i){var k=this;var h=log4javascript.getLogger("");h.info("\ntrigger loading ");if(this.itemsLoaded===false){return false}this.itemsLoaded=false;if(i.loadStatus){h.info("\nshow: spinner");e(".loader-ellips").show()}var j=new XMLHttpRequest();j.onreadystatechange=function(){if(j.readyState==XMLHttpRequest.DONE){if(j.status==200){i.firstPage++;var l=k.getChildItemsByAjaxHTML(i,j.responseText);k.appendNewItems(l);h.info("\nloading new items: successful");if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}k.itemsLoaded=true}else{if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}h.error("\nloading new items failed, HTTP response: "+j.status);k.itemsLoaded=false}}};h.info("\nloading new items from path: "+i.pagePath+i.firstPage);j.open("GET",location.origin+i.pagePath+i.firstPage+"/index.html",true);j.send()},getChildItemsByAjaxHTML:function(j,i){var l=a.createElement("html");var h=log4javascript.getLogger("");h.info("\nload new items");l.innerHTML=i;var k=l.querySelectorAll(j.elementID+" > *");return k},appendNewItems:function(h){var l=this;var i=log4javascript.getLogger("");var k=j1.getCookieNames();var j=j1.readCookie(k.user_translate);i.info("\nappend new items");h.forEach(function(m){l.element.appendChild(m)});if(j.translationEnabled){i.info("\ntranslation enabled: "+j.translationEnabled);i.warn("\nskipped processing of dropcaps")}else{i.info("\npost processing: createDropCap");j1.core.createDropCap()}},infoLastPage:function(i){var j=this;var h=log4javascript.getLogger("");h.info("\nshow: infoLastPage");e(".page-scroll-last").show()}});e.fn[d]=function(h){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,h))}})}})(jQuery,window,document);
15
+ (function(e,c,a,g){var d="scroller",f={type:"infiniteScroll",scrollOffset:100,elementScroll:false,firstPage:2,lastPage:false,infoLastPage:false,loadStatus:false,onInit:function(){},onBeforeLoad:function(){},onAfterLoad:function(){}};function b(i,h){this.element=i;this.settings=e.extend({},f,h);this.settings.elementID="#"+this.element.id;this.init(this.settings)}e.extend(b.prototype,{init:function(i){var m=this;var h=log4javascript.getLogger("j1.scroller.core.init");h.info("\ninitializing plugin: started");h.info("\nstate: started");if(i.elementScroll){m.scroller=m.element}else{m.scroller=c}if(i.loadStatus){var l='<div class="loader-ellips" style="display: none"> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> <span class="loader-ellips__dot"></span> </div>';e(l).insertAfter(i.elementID)}if(i.infoLastPage){var j=i.lastPageInfo;e(j).insertAfter(i.elementID)}var k=setInterval(function(){if(j1.getState()==="finished"){if(i.type==="infiniteScroll"){h.info("\nprocessing mode: "+i.type);h.info("\nloading items from path: "+i.pagePath+"#");h.info("\nmonitoring element set to: "+this.scroller);m.registerScrollEvent(i)}if(i.type==="showOnScroll"){h.info("\nprocessing mode: "+i.type);h.info("\nloading items from path: "+i.pagePath+"#");h.info("\nmonitoring element set to: "+this.scroller);m.registerScrollEvent(i)}h.info("\ninitializing plugin: finished");h.info("\nstate: finished");clearInterval(k)}})},isInViewport:function(n,m){if(n.length==0){return}var j=jQuery(c);var q=j.scrollTop();var i=j.height();var k=q+i;var l=jQuery(n);var o=l.offset().top+m;var p=l.height();var h=o+p;return(o>=q&&o<k)||(h>q&&h<=k)||(p>i&&o<=q&&h>=k)},isBottomReached:function(s){var n=this;var h,p;var m=e(s.elementID).height();if(n.settings.elementScroll){var j=e(c);var r=j.scrollTop();var i=j.height();var l=r+i-s.scrollOffset;var k=e(s.elementID);var o=k.offset().top+m;var q=k.height();h=o+q;return(o>=r&&o<l)||(h>r&&h<=l)||(q>i&&o<=r&&h>=l)}else{return(c.innerHeight+c.pageYOffset+s.scrollOffset>=a.body.offsetHeight)}},registerScrollEvent:function(i){var j=this;var h=log4javascript.getLogger("j1.scroller.core.registerScrollEvent");if(i.type==="infiniteScroll"){h.info("\nregister scroll event of type: "+i.type);j[i.id]=function(l){var k=j.settings;if(j.isBottomReached(k)){if(k.firstPage>k.lastPage){h.info("\nlast page detected on: "+k.lastPage);c.removeEventListener("scroll",j[k.id]);h.info("\nscroll event: removed");if(k.infoLastPage){j.infoLastPage(k)}return false}j.getNewPost(k)}};c.addEventListener("scroll",j[i.id]);h.info("\nscroll event: registered")}if(i.type==="showOnScroll"){h.info("\nregister scroll event of type: "+i.type);j[i.id]=function(k){if(j.isInViewport(e("#"+i.id),i.scrollOffset)){h.info("\nspecified container is in view: "+i.id);e("."+i.id).show(i.showDelay);h.info("\nremove eventHandler");c.removeEventListener("scroll",j[i.id])}};c.addEventListener("scroll",j[i.id])}},getNewPost:function(i){var k=this;var h=log4javascript.getLogger("j1.scroller.core.getNewPost");h.info("\ntrigger loading ");if(this.itemsLoaded===false){return false}this.itemsLoaded=false;if(i.loadStatus){h.info("\nshow: spinner");e(".loader-ellips").show()}var j=new XMLHttpRequest();j.onreadystatechange=function(){if(j.readyState==XMLHttpRequest.DONE){if(j.status==200){i.firstPage++;var l=k.getChildItemsByAjaxHTML(i,j.responseText);k.appendNewItems(l);h.info("\nloading new items: successful");if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}k.itemsLoaded=true}else{if(i.loadStatus){h.info("\nhide: spinner");e(".loader-ellips").hide()}h.error("\nloading new items failed, HTTP response: "+j.status);k.itemsLoaded=false}}};h.info("\nloading new items from path: "+i.pagePath+i.firstPage);j.open("GET",location.origin+i.pagePath+i.firstPage+"/index.html",true);j.send()},getChildItemsByAjaxHTML:function(j,i){var l=a.createElement("html");var h=log4javascript.getLogger("j1.scroller.core.getChildItemsByAjaxHTML");h.info("\nload new items");l.innerHTML=i;var k=l.querySelectorAll(j.elementID+" > *");return k},appendNewItems:function(h){var l=this;var i=log4javascript.getLogger("j1.scroller.core.appendNewItems");var k=j1.getCookieNames();var j=j1.readCookie(k.user_translate);i.info("\nappend new items");h.forEach(function(m){l.element.appendChild(m)});if(j.translationEnabled){i.info("\ntranslation enabled: "+j.translationEnabled);i.warn("\nskipped processing of dropcaps")}else{i.info("\npost processing: createDropCap");j1.core.createDropCap()}},infoLastPage:function(i){var j=this;var h=log4javascript.getLogger("j1.scroller.core.infoLastPage");h.info("\nshow: infoLastPage");e(".page-scroll-last").show()}});e.fn[d]=function(h){return this.each(function(){if(!e.data(this,"plugin_"+d)){e.data(this,"plugin_"+d,new b(this,h))}})}})(jQuery,window,document);
data/exe/j1 CHANGED
@@ -7,18 +7,17 @@ require 'j1'
7
7
  require 'mercenary'
8
8
 
9
9
  Mercenary.program(:j1) do |p|
10
-
11
10
  p.version J1::VERSION
12
- p.description 'J1 Template MDE 4 is a gem-based Template made for Jekyll powered by Bootstrap v4'
11
+ p.description 'J1 Template is a gem-based Template made for Jekyll'
13
12
  p.syntax 'j1 <subcommand> [options]'
14
13
 
15
14
  p.command(:generate) do |c|
16
- c.syntax 'generate PATH' # do not include the program name or super commands
17
15
  c.description 'Generates a starter site scaffold in PATH'
18
- c.option 'force', '--force', 'Force a site to be created even the PATH already exists'
19
- c.option "skip-bundle", "--skip-bundle", "Skip 'bundle install'"
20
- c.option "skip-_patches", "--skip-_patches", "Skip to install any PATCHES buildin with J1"
21
- c.option "system", "--system", "Run 'bundle install' for the Ruby SYSTEM gem folder"
16
+ c.syntax 'generate PATH'
17
+ c.option 'force', '--force', ' Force a site to be created even the PATH already exists'
18
+ c.option 'skip-bundle', '--skip-bundle', ' Skip bundle install'
19
+ c.option 'skip-patches', '--skip-patches', ' Skip install any PATCHES buildin with J1'
20
+ c.option 'system', '--system', ' Run "bundle install" for the Ruby SYSTEM gem folder'
22
21
  c.action do |args, options|
23
22
  J1::Commands::Generate.process(args, options)
24
23
  end
@@ -6,21 +6,20 @@ module J1
6
6
  module Commands
7
7
  class Generate < Command
8
8
  class << self
9
- def init_with_program(prog)
10
-
11
- prog.command(:generate) do |c|
12
- c.syntax 'generate PATH'
13
- c.description 'Generates a starter site scaffold in PATH'
14
- c.option 'force', '--force', 'Force a site to be created even the PATH already exists'
15
- c.option 'skip-bundle', '--skip-bundle', "Skip 'bundle install'"
16
- c.option "skip-_patches", "--skip-_patches", "Skip to install any PATCHES buildin with J1"
17
- c.option "system", "--system", "Run 'bundle install' for the Ruby SYSTEM gem folder"
18
- c.action do |args, options|
19
- J1::Commands::Generate.process(args, options)
20
- end
21
- end
22
9
 
23
- end
10
+ # def init_with_program(prog)
11
+ # prog.command(:generate) do |c|
12
+ # c.description 'Generates a starter site scaffold in PATH'
13
+ # c.syntax 'generate PATH'
14
+ # c.option 'force', '--force', 'Force a site to be created even the PATH already exists'
15
+ # c.option 'skip-bundle', '--skip-bundle', 'Skip bundle install'
16
+ # c.option 'skip-patches', '--skip-patches', 'Skip install any PATCHES buildin with J1'
17
+ # c.option 'system', '--system', 'Run "bundle install" for the Ruby SYSTEM gem folder'
18
+ # c.action do |args, options|
19
+ # J1::Commands::Generate.process(args, options)
20
+ # end
21
+ # end
22
+ # end
24
23
 
25
24
  def is_windows?
26
25
  RbConfig::CONFIG["host_os"] =~ %r!mswin|mingw|cygwin!i
@@ -93,10 +92,10 @@ module J1
93
92
  def after_install(path, options = {})
94
93
  unless options['skip-bundle']
95
94
  bundle_install(path, options)
96
- unless options['skip-_patches']
95
+ unless options['skip-patches']
97
96
  patch_install(options)
98
97
  else
99
- J1.logger.info "Install _patches skipped ..."
98
+ J1.logger.info "Install build-in patches skipped ..."
100
99
  end
101
100
  end
102
101
  unless options['force']
data/lib/j1/version.rb CHANGED
@@ -1,3 +1,3 @@
1
- module J1
2
- VERSION = '2022.0.2'
3
- end
1
+ module J1
2
+ VERSION = '2022.0.6'
3
+ end
@@ -53,7 +53,7 @@ gem 'jekyll', '~> 4.2'
53
53
 
54
54
  # Theme Rubies, default: J1 Template (NOT used for the development system)
55
55
  #
56
- gem 'j1-template', '~> 2022.0.2'
56
+ gem 'j1-template', '~> 2022.0.6'
57
57
 
58
58
  # ------------------------------------------------------------------------------
59
59
  # PRODUCTION: Gem needed for the Jekyll and J1 prod environment
@@ -168,6 +168,12 @@ end
168
168
  # gem 'passenger', '>= 5.3'
169
169
  gem 'puma', '>= 5.5.2'
170
170
 
171
+ # ------------------------------------------------------------------------------
172
+ # OpenSSL provides SSL, TLS and general purpose cryptography. Used to
173
+ # encrypt 'private' data
174
+ #
175
+ gem 'openssl'
176
+
171
177
  # ------------------------------------------------------------------------------
172
178
  # If J1 is transformed into a (Rack and Sinatra based) Web
173
179
  # application, the site can be secured using user authentication
@@ -53,7 +53,7 @@ environment: development
53
53
  # ------------------------------------------------------------------------------
54
54
  # Sets the build version of J1 Template Gem
55
55
  #
56
- version: 2022.0.2
56
+ version: 2022.0.6
57
57
 
58
58
  # version
59
59
  # ------------------------------------------------------------------------------
@@ -23,8 +23,9 @@
23
23
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
24
24
  global:
25
25
 
26
- # used by J1 for encryption
27
- session_secret: <your-secret-string>
26
+ # used for OpenSSL AES encryption
27
+ # secretkey MUST be 32 bytes (AES|CBC)
28
+ secretkey: <your-secret-string>
28
29
 
29
30
 
30
31
  # ==============================================================================
@@ -154,8 +154,8 @@ defaults:
154
154
  en: Next
155
155
  de: Nächster
156
156
  back:
157
- en: Back
158
- de: Zurück
157
+ en: Navigator
158
+ de: Navigator
159
159
  first:
160
160
  en: First
161
161
  de: Erster
@@ -220,9 +220,9 @@ defaults:
220
220
  headline: Preview
221
221
  description: >
222
222
  All articles are reverse ordered by date. The current articles are displayed
223
- first. From the FAB button <a href="#void" class="btn-fab-floating btn-small btn-md-blue">
223
+ first. From the FAB button <a href="#" class="btn-fab-floating btn-small btn-md-blue">
224
224
  <i class="mdi mdi-plus"></i>FAB button</a> you can reach a table of contents
225
- <a href="#void" class="btn-fab-floating btn-small btn-md-blue">
225
+ <a href="#" class="btn-fab-floating btn-small btn-md-blue">
226
226
  <i class="mdi mdi-wrap mdi-"></i>open_mmenu_toc</a> of all available articles
227
227
  in the same order. To preview older posts, use the button <b>Older Posts</b> from
228
228
  the Preview Bar. For newer posts use the button <b>Newer Posts</b> for more recent
@@ -231,10 +231,10 @@ defaults:
231
231
  headline: Vorschau
232
232
  description: >
233
233
  Alle Artikel sind in umgekehrter Reihenfolge ihres Erscheinens
234
- gruppiert. Aktuellere Beiträge werden zuerst angezeigt. Über den FAM-Button
235
- <a href="#void" class="btn-fab-floating btn-small btn-md-blue">
234
+ gruppiert. Aktuellere Beiträge werden zuerst angezeigt. Über den FAB-Button
235
+ <a href="#" class="btn-fab-floating btn-small btn-md-blue">
236
236
  <i class="mdi mdi-plus"></i>FAB button</a> erreichen Sie ein
237
- Inhaltsverzeichnis <a href="#void" class="btn-fab-floating btn-small btn-md-blue">
237
+ Inhaltsverzeichnis <a href="#" class="btn-fab-floating btn-small btn-md-blue">
238
238
  <i class="mdi mdi-wrap mdi-"></i>open_mmenu_toc</a> über alle verfübaren Artikel
239
239
  in gleicher Reihenfolge. Zur Anzeige älterer Artikel, verwenden Sie die Schältfläche
240
240
  <b>Ältere Beiträge</b>. Für jüngere Posts klicken Sie auf die Schältfläche
@@ -256,7 +256,7 @@ defaults:
256
256
  btn-md-blue raised-z5" aria-label="fab-button">
257
257
  <i class="mdi mdi-wrap"></i></button> of all available
258
258
  articles in the same order.
259
- <br/><br/>
259
+ <br><br>
260
260
  From the navigation bar, <b>Navigator</b> takes you back to the
261
261
  <b>main page</b> of the Navigator. Articles ordered by <b>category</b>
262
262
  can be found in the view <b>By Category</b>. To search for posts
@@ -266,15 +266,15 @@ defaults:
266
266
  description: >
267
267
  Auf dieser Seite finden Sie alle Artikel aus dem <b>Archiv</b> der
268
268
  Blog-Beiträge. Die Artikel sind in umgekehrter Reihenfolge ihres Erscheinens
269
- gruppiert. Aktuellere Beiträge werden zuerst angezeigt. Über den FAM-Button
269
+ gruppiert. Aktuellere Beiträge werden zuerst angezeigt. Über den FAB-Button
270
270
  <button type="button" class="btn-fab-floating btn-small btn-md-blue raised-z5"
271
- aria-label="fab-button"><i class="mdi mdi-plus"></i></button> erreichen Sie ein
272
- Inhaltsverzeichnis <button type="button" class="btn-fab-floating btn-small
273
- btn-md-blue raised-z5" aria-label="fab-button"> über alle verfübaren Artikel
274
- in gleicher Reihenfolge.
275
- <br/><br/>
276
- In der <b>Navigationszeile</b> gelangen Sie zurück zur <b>Hauptseite</b>
277
- des Navigators. Artikel nach ihrer Kategorie sind über die Seite
271
+ aria-label="fab-button"> <i class="mdi mdi-plus"></i></button> erreichen Sie ein
272
+ Inhaltsverzeichnis <button type="button" class="btn-fab-floating btn-small btn-md-blue
273
+ raised-z5" aria-label="fab-button"> <i class="mdi mdi-wrap"></i></button>
274
+ über alle verfübaren Artikel in gleicher Reihenfolge.
275
+ <br><br>
276
+ In der Navigationszeile gelangen Sie über <b>Navigator</b> zurück zur
277
+ <b>Hauptseite</b> des Navigators. Artikel nach ihrer Kategorie sind über die Seite
278
278
  <b>Nach Kategorie</b> zu finden. Um Beiträge im Archiv nach <b>Datum</b>
279
279
  zu durchsuchen, rufen Sie die Anzeige <b>Nach Datum</b> auf.
280
280
 
@@ -295,27 +295,31 @@ defaults:
295
295
  btn-md-blue raised-z5" aria-label="fab-button">
296
296
  <i class="mdi mdi-wrap"></i></button> of all available articles
297
297
  in the same order.
298
- <br/><br/>
298
+ <br><br>
299
299
  From the navigation bar, <b>Navigator</b> takes you back to the
300
300
  <b>main page</b> of the Navigator. To search for articles in the
301
301
  archive by date, go for the view <b>By Date</b>. All articles in
302
302
  reverse order of appearance can be found in the view <b>All Posts</b>.
303
+
303
304
  de:
304
305
  headline: Artikel nach Kategorie
305
306
  description: >
306
307
  Auf dieser Seite finden Sie alle Artikel aus dem <b>Archiv</b> der
307
308
  Blog-Beiträge. Die Artikel sind nach <b>Kategorie</b> gruppiert.
308
- Über den FAM-Button <button type="button" class="btn-fab-floating btn-small
309
- btn-md-blue raised-z5" aria-label="fab-button"><i class="mdi mdi-plus"></i>
310
- </button> erreichen Sie ein Inhaltsverzeichnis <button type="button"
311
- class="btn-fab-floating btn-small btn-md-blue raised-z5" aria-label="fab-button">
309
+ Über den FAB-Button
310
+ <button type="button" class="btn-fab-floating btn-small btn-md-blue raised-z5"
311
+ aria-label="fab-button"> <i class="mdi mdi-plus"></i></button>
312
+ erreichen Sie ein Inhaltsverzeichnis
313
+ <button type="button" class="btn-fab-floating btn-small btn-md-blue
314
+ raised-z5" aria-label="fab-button"> <i class="mdi mdi-wrap"></i></button>
312
315
  über alle verfübaren Artikel in gleicher Reihenfolge.
313
- <br/><br/>
314
- In der <b>Navigationszeile</b> gelangen Sie zurück zur <b>Hauptseite</b>
315
- des Navigators. Um Artikel im Archiv nach <b>Datum</b> zu durchsuchen,
316
- rufen Sie die Anzeige <b>Nach Datum</b> auf. Alle Artikel in umgekehrter
317
- Reihenfolge ihres Erscheinens sind in der Ansicht <b>Alle Beiträge</b>
318
- zu finden.
316
+ <br><br>
317
+ In der Navigationszeile gelangen Sie über <b>Navigator</b> zurück zur
318
+ <b>Hauptseite</b> des Navigators. Um Artikel im Archiv nach <b>Datum</b>
319
+ zu durchsuchen, rufen Sie die Anzeige <b>Nach Datum</b> auf. Alle Artikel
320
+ in umgekehrter Reihenfolge ihres Erscheinens sind in der Ansicht
321
+ <b>Alle Beiträge</b> zu finden.
322
+
319
323
  date_view:
320
324
  page_text:
321
325
  enabled: true
@@ -332,7 +336,7 @@ defaults:
332
336
  btn-md-blue raised-z5" aria-label="fab-button">
333
337
  <i class="mdi mdi-wrap"></i></button> of all available articles
334
338
  in the same order.
335
- <br/><br/>
339
+ <br><br>
336
340
  From the navigation bar, <b>Navigator</b> takes you back to the
337
341
  <b>main page</b> of the Navigator. To search for articles in the
338
342
  archive by category, go for the view <b>By Category</b>. All articles
@@ -342,15 +346,16 @@ defaults:
342
346
  description: >
343
347
  Auf dieser Seite finden Sie alle Artikel aus dem <b>Archiv</b> der
344
348
  Blog-Beiträge. Die Artikel sind nach <b>Datum</b> gruppiert.
345
- Über den FAM-Button <button type="button" class="btn-fab-floating
349
+ Über den FAB-Button <button type="button" class="btn-fab-floating
346
350
  btn-small btn-md-blue raised-z5" aria-label="fab-button">
347
351
  <i class="mdi mdi-plus"></i></button> erreichen Sie ein
348
352
  Inhaltsverzeichnis <button type="button" class="btn-fab-floating btn-small
349
- btn-md-blue raised-z5" aria-label="fab-button"> über alle verfübaren Artikel
353
+ btn-md-blue raised-z5" aria-label="fab-button">
354
+ <i class="mdi mdi-wrap"></i></button> über alle verfübaren Artikel
350
355
  in gleicher Reihenfolge.
351
- <br/><br/>
352
- In der <b>Navigationszeile</b> gelangen Sie zurück zur <b>Hauptseite</b>
353
- des Navigators. Um Artikel im Archiv nach <b>Kategorien</b> zu durchsuchen,
356
+ <br><br>
357
+ In der Navigationszeile gelangen Sie über <b>Navigator</b> zurück zur
358
+ <b>Hauptseite</b> des Navigators. Um Artikel im Archiv nach <b>Kategorien</b> zu durchsuchen,
354
359
  rufen Sie die Anzeige <b>Nach Kategorie</b> auf. Alle Artikel in umgekehrter
355
360
  Reihenfolge ihres Erscheinens sind in der Ansicht <b>Alle Beiträge</b>
356
361
  zu finden.
@@ -363,12 +368,13 @@ defaults:
363
368
  description: >
364
369
  On this page you will find all articles from the <b>archive</b>
365
370
  of the blog posts. The articles are grouped by <b>Tag</b>.
366
- From the FAB button <a href="#void" class="btn-fab-floating btn-small btn-md-blue">
367
- <i class="mdi mdi-plus"></i>FAB button</a> you can reach a
368
- table of contents <a href="#void" class="btn-fab-floating btn-small btn-md-blue">
369
- <i class="mdi mdi-wrap mdi-"></i>open_mmenu_toc</a> of all available articles
371
+ From the FAB button <button type="button" class="btn-fab-floating
372
+ btn-small btn-md-blue raised-z5" aria-label="fab-button">
373
+ <i class="mdi mdi-plus"></i></button> you can reach a
374
+ table of contents <button type="button" class="btn-fab-floating btn-small
375
+ btn-md-blue raised-z5" aria-label="fab-button"> of all available articles
370
376
  in the same order.
371
- <br/><br/>
377
+ <br><br>
372
378
  From the navigation bar, <b>Navigator</b> takes you back to the
373
379
  <b>main page</b> of the Navigator. To search for articles in the
374
380
  archive by <b>category</b>, go for the view <b>By Category</b>.
@@ -379,17 +385,17 @@ defaults:
379
385
  description: >
380
386
  Auf dieser Seite finden Sie alle Artikel aus dem <b>Archiv</b> der
381
387
  Blog-Beiträge. Die Artikel sind nach <b>Tag</b> gruppiert.
382
- Über den FAM-Button <button type="button" class="btn-fab-floating
388
+ Über den FAB-Button <button type="button" class="btn-fab-floating
383
389
  btn-small btn-md-blue raised-z5" aria-label="fab-button">
384
390
  <i class="mdi mdi-plus"></i></button> erreichen Sie ein
385
391
  Inhaltsverzeichnis <button type="button" class="btn-fab-floating btn-small
386
392
  btn-md-blue raised-z5" aria-label="fab-button"> über alle verfübaren Artikel
387
393
  in gleicher Reihenfolge.
388
- <br/><br/>
389
- In der <b>Navigationszeile</b> gelangen Sie zurück zur <b>Hauptseite</b>
390
- des Navigators. Um Artikel im Archiv nach <b>Kategorien</b> zu durchsuchen,
391
- rufen Sie die Anzeige <b>Nach Kategorie</b> auf. Alle Artikel in umgekehrter
392
- Reihenfolge ihres Erscheinens sind in der Ansicht <b>Alle Beiträge</b>
394
+ <br><br>
395
+ In der Navigationszeile gelangen Sie über <b>Navigator</b> zurück zur
396
+ <b>Hauptseite</b> des Navigators. Um Artikel im Archiv nach <b>Kategorien</b>
397
+ zu durchsuchen, rufen Sie die Anzeige <b>Nach Kategorie</b> auf. Alle Artikel
398
+ in umgekehrter Reihenfolge ihres Erscheinens sind in der Ansicht <b>Alle Beiträge</b>
393
399
  zu finden.
394
400
 
395
401
  # ------------------------------------------------------------------------------
@@ -166,33 +166,53 @@ defaults:
166
166
  icon_color_hover: rgba(255, 255, 255, 0.9) # rgba-lighten-900
167
167
  icon_size: mdi-2x
168
168
 
169
- cookies_icon: cookie
170
- top_search_icon: magnify
171
- translate_icon: google-translate
172
-
173
- translator_icon: flag-variant
174
-
175
- toc_icon: wrap
176
-
169
+ # Link buttons
170
+ # --------------------------------------------------------------------------
177
171
  home_icon: home-variant
178
172
  home_url: none
179
-
180
- r_text_sizer: false
181
- r_text_icon: format-text # format-color-text format-annotation-plus
173
+ home_label: Home
182
174
 
183
175
  back_icon: subdirectory-arrow-left
184
176
  back_url: none
177
+ back_label: Page back
185
178
 
186
179
  disqus_icon: disqus
187
180
  disqus_url: none
181
+ disqus_label: Disqus
182
+
188
183
  github_icon: github-circle
189
184
  github_url: none
185
+ github_label: Github
186
+
190
187
  patreon_icon: patreon
191
188
  patreon_url: none
189
+ patreon_label: Patreon
190
+
192
191
  facebook_icon: facebook
193
192
  facebook_url: none
193
+ facebook_label: Facebook
194
+
194
195
  twitter_icon: twitter
195
196
  twitter_url: none
197
+ twitter_label: Twitter
198
+
199
+ # Action buttons
200
+ # --------------------------------------------------------------------------
201
+ quicksearch_icon: magnify
202
+ quicksearch_action: quicksearch
203
+ quicksearch_label: Search
204
+
205
+ cookies_icon: cookie
206
+ cookies_action: cookie-consent
207
+ cookies_label: Cookie Consent
208
+
209
+ translate_icon: google-translate
210
+ translate_action: translate
211
+ translate_label: Google Translate
212
+
213
+ r_text_icon: false # format-text
214
+ r_text_action: rtext
215
+ r_text_label: Text Resizer
196
216
 
197
217
  # ----------------------------------------------------------------------------
198
218
  # NavTopsearch