type-on-strap 2.4.13 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +11 -44
- data/_includes/blog/blog.liquid +3 -3
- data/_includes/blog/blog_nav.liquid +1 -1
- data/_includes/blog/post_footer.liquid +1 -0
- data/_includes/blog/post_nav.liquid +2 -2
- data/_includes/default/category_list.liquid +22 -0
- data/_includes/default/head.liquid +17 -12
- data/_includes/default/navbar.liquid +2 -2
- data/_includes/default/tags_list.liquid +2 -2
- data/_includes/gallery.html +5 -7
- data/_includes/portfolio.html +5 -5
- data/_includes/social/cusdis.liquid +5 -5
- data/_includes/social/disqus.liquid +6 -11
- data/_includes/social/giscus.liquid +17 -17
- data/_includes/social/share_buttons.liquid +9 -9
- data/_includes/social/utterances.liquid +8 -8
- data/_layouts/categories.liquid +79 -17
- data/_layouts/default.html +3 -3
- data/_layouts/page.liquid +11 -11
- data/_layouts/post.liquid +11 -6
- data/_layouts/search.liquid +10 -3
- data/_sass/base/_global.scss +7 -11
- data/_sass/base/_utility.scss +8 -29
- data/_sass/base/_variables.scss +43 -2
- data/_sass/external/_font-awesome.scss +1 -1
- data/_sass/external/_katex.scss +1 -1
- data/_sass/external/_pacifico.scss +3 -6
- data/_sass/external/font-awesome/_core.scss +1 -1
- data/_sass/external/font-awesome/_icons.scss +0 -1
- data/_sass/external/font-awesome/brands.scss +1 -1
- data/_sass/external/font-awesome/fontawesome.scss +1 -1
- data/_sass/external/font-awesome/regular.scss +1 -1
- data/_sass/external/font-awesome/solid.scss +1 -1
- data/_sass/external/font-awesome/v4-shims.scss +1 -1
- data/_sass/external/katex/katex.scss +151 -266
- data/_sass/includes/_blog_nav.scss +0 -4
- data/_sass/includes/_gallery.scss +12 -24
- data/_sass/includes/_navbar.scss +1 -7
- data/_sass/includes/_portfolio.scss +2 -4
- data/_sass/layouts/_blog.scss +7 -23
- data/_sass/layouts/_categories.scss +80 -38
- data/_sass/layouts/_page.scss +1 -1
- data/_sass/layouts/_posts.scss +19 -12
- data/_sass/layouts/_search.scss +11 -14
- data/_sass/layouts/_tags.scss +12 -1
- data/_sass/type-on-strap.scss +10 -0
- data/assets/fonts/Pacifico/Pacifico.woff +0 -0
- data/assets/fonts/Pacifico/Pacifico.woff2 +0 -0
- data/assets/fonts/font-awesome/fa-brands-400.ttf +0 -0
- data/assets/fonts/font-awesome/fa-brands-400.woff2 +0 -0
- data/assets/fonts/font-awesome/fa-regular-400.ttf +0 -0
- data/assets/fonts/font-awesome/fa-regular-400.woff2 +0 -0
- data/assets/fonts/font-awesome/fa-solid-900.ttf +0 -0
- data/assets/fonts/font-awesome/fa-solid-900.woff2 +0 -0
- data/assets/js/comments-lazy-load.min.js +1 -0
- data/assets/js/main.min.js +1 -6
- data/assets/js/vendor/katex.auto-render.min.js +1 -1
- data/assets/js/vendor/katex.min.js +1 -1
- data/assets/js/vendor/mermaid.min.js +534 -323
- data/assets/js/vendor/simple-jekyll-search.min.js +3 -3
- metadata +18 -41
- data/assets/css/bootstrap-iso.less +0 -12
- data/assets/css/vendor/bootstrap-iso.css +0 -9121
- data/assets/css/vendor/bootstrap-iso.min.css +0 -6
- data/assets/css/vendor/bootstrap.css +0 -10007
- data/assets/fonts/Pacifico/Pacifico.eot +0 -0
- data/assets/fonts/Pacifico/Pacifico.svg +0 -10833
- data/assets/fonts/Pacifico/Pacifico.ttf +0 -0
- data/assets/fonts/Pacifico/original-pacifico-regular.ttf +0 -0
- data/assets/fonts/font-awesome/fa-v4compatibility.ttf +0 -0
- data/assets/fonts/font-awesome/fa-v4compatibility.woff2 +0 -0
- data/assets/fonts/katex/KaTeX_AMS-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Caligraphic-Bold.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Caligraphic-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Fraktur-Bold.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Fraktur-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Main-Bold.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Main-BoldItalic.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Main-Italic.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Main-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Math-BoldItalic.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Math-Italic.ttf +0 -0
- data/assets/fonts/katex/KaTeX_SansSerif-Bold.ttf +0 -0
- data/assets/fonts/katex/KaTeX_SansSerif-Italic.ttf +0 -0
- data/assets/fonts/katex/KaTeX_SansSerif-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Script-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Size1-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Size2-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Size3-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Size4-Regular.ttf +0 -0
- data/assets/fonts/katex/KaTeX_Typewriter-Regular.ttf +0 -0
- data/assets/js/partials/cookie_consent_init.js +0 -60
- data/assets/js/partials/dark-mode.js +0 -57
- data/assets/js/partials/masonry_init.js +0 -22
- data/assets/js/partials/navbar.js +0 -26
- data/assets/js/vendor/imagesloaded.pkgd.min.js +0 -12
- data/assets/js/vendor/masonry.pkgd.min.js +0 -9
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Simple-Jekyll-Search
|
|
2
|
+
* Simple-Jekyll-Search v2.1.3
|
|
3
3
|
* Copyright 2015-2022, Christian Fei
|
|
4
|
-
* Copyright 2025-
|
|
4
|
+
* Copyright 2025-2026, Sylhare
|
|
5
5
|
* Licensed under the MIT License.
|
|
6
6
|
*/
|
|
7
|
-
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):(global=typeof globalThis!=="undefined"?globalThis:global||self,factory(global.SimpleJekyllSearch={}))})(this,(function(exports2){"use strict";function load(location,callback){const xhr=getXHR();xhr.open("GET",location,true);xhr.onreadystatechange=createStateChangeListener(xhr,callback);xhr.send()}function createStateChangeListener(xhr,callback){return function(){if(xhr.readyState===4&&xhr.status===200){try{callback(null,JSON.parse(xhr.responseText))}catch(err){callback(err instanceof Error?err:new Error(String(err)),null)}}}}function getXHR(){return window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP")}class OptionsValidator{constructor(params){if(!this.validateParams(params)){throw new Error("-- OptionsValidator: required options missing")}this.requiredOptions=params.required}getRequiredOptions(){return this.requiredOptions}validate(parameters){const errors=[];this.requiredOptions.forEach((requiredOptionName=>{if(typeof parameters[requiredOptionName]==="undefined"){errors.push(requiredOptionName)}}));return errors}validateParams(params){if(!params){return false}return typeof params.required!=="undefined"&&Array.isArray(params.required)}}function fuzzySearch(text,pattern){pattern=pattern.trimEnd();if(pattern.length===0)return true;pattern=pattern.toLowerCase();text=text.toLowerCase();let remainingText=text,currentIndex=-1;for(const char of pattern){const nextIndex=remainingText.indexOf(char);if(nextIndex===-1||currentIndex!==-1&&remainingText.slice(0,nextIndex).split(" ").length-1>2){return false}currentIndex=nextIndex;remainingText=remainingText.slice(nextIndex+1)}return true}function literalSearch(text,criteria){text=text.trim().toLowerCase();const pattern=criteria.endsWith(" ")?[criteria.toLowerCase()]:criteria.trim().toLowerCase().split(" ");return pattern.filter((word=>text.indexOf(word)>=0)).length===pattern.length}function levenshtein(a,b){const lenA=a.length;const lenB=b.length;const distanceMatrix=Array.from({length:lenA+1},(()=>Array(lenB+1).fill(0)));for(let i=0;i<=lenA;i++)distanceMatrix[i][0]=i;for(let j=0;j<=lenB;j++)distanceMatrix[0][j]=j;for(let i=1;i<=lenA;i++){for(let j=1;j<=lenB;j++){const cost=a[i-1]===b[j-1]?0:1;distanceMatrix[i][j]=Math.min(distanceMatrix[i-1][j]+1,distanceMatrix[i][j-1]+1,distanceMatrix[i-1][j-1]+cost)}}return distanceMatrix[lenA][lenB]}function levenshteinSearch(text,pattern){const distance=levenshtein(pattern,text);const similarity=1-distance/Math.max(pattern.length,text.length);return similarity>=.3}function wildcardSearch(text,pattern){const regexPattern=pattern.replace(/\*/g,".*");const regex=new RegExp(`^${regexPattern}$`,"i");if(regex.test(text))return true;return levenshteinSearch(text,pattern)}class SearchStrategy{constructor(matchFunction){this.matchFunction=matchFunction}matches(text,criteria){if(text===null||text.trim()===""||!criteria){return false}return this.matchFunction(text,criteria)}}const LiteralSearchStrategy=new SearchStrategy(literalSearch);const FuzzySearchStrategy=new SearchStrategy(((text,criteria)=>fuzzySearch(text,criteria)||literalSearch(text,criteria)));const WildcardSearchStrategy=new SearchStrategy(((text,criteria)=>wildcardSearch(text,criteria)||literalSearch(text,criteria)));function merge(target,source){return{...target,...source}}function isJSON(json){try{return!!(json instanceof Object&&JSON.parse(JSON.stringify(json)))}catch(_err){return false}}function NoSort(){return 0}function isObject(obj){return Boolean(obj)&&Object.prototype.toString.call(obj)==="[object Object]"}function clone(input){if(input===null||typeof input!=="object"){return input}if(Array.isArray(input)){return input.map((item=>clone(item)))}const output={};for(const key in input){if(Object.prototype.hasOwnProperty.call(input,key)){output[key]=clone(input[key])}}return output}const DEFAULT_OPTIONS={searchInput:null,resultsContainer:null,json:[],success:function(){},searchResultTemplate:'<li><a href="{url}" title="{desc}">{title}</a></li>',templateMiddleware:(_prop,_value,_template)=>void 0,sortMiddleware:NoSort,noResultsText:"No results found",limit:10,fuzzy:false,strategy:"literal",debounceTime:null,exclude:[],onSearch:()=>{}};const REQUIRED_OPTIONS=["searchInput","resultsContainer","json"];const WHITELISTED_KEYS=new Set(["Enter","Shift","CapsLock","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Meta"]);class Repository{constructor(initialOptions={}){this.data=[];this.setOptions(initialOptions)}put(input){if(isObject(input)){return this.addObject(input)}if(Array.isArray(input)){return this.addArray(input)}return void 0}clear(){this.data.length=0;return this.data}search(criteria){if(!criteria){return[]}return clone(this.findMatches(this.data,criteria).sort(this.options.sortMiddleware))}setOptions(newOptions){this.options={fuzzy:(newOptions==null?void 0:newOptions.fuzzy)||DEFAULT_OPTIONS.fuzzy,limit:(newOptions==null?void 0:newOptions.limit)||DEFAULT_OPTIONS.limit,searchStrategy:this.searchStrategy((newOptions==null?void 0:newOptions.strategy)||newOptions.fuzzy&&"fuzzy"||DEFAULT_OPTIONS.strategy),sortMiddleware:(newOptions==null?void 0:newOptions.sortMiddleware)||DEFAULT_OPTIONS.sortMiddleware,exclude:(newOptions==null?void 0:newOptions.exclude)||DEFAULT_OPTIONS.exclude,strategy:(newOptions==null?void 0:newOptions.strategy)||DEFAULT_OPTIONS.strategy}}addObject(obj){this.data.push(obj);return this.data}addArray(arr){const added=[];this.clear();for(const item of arr){if(isObject(item)){added.push(this.addObject(item)[0])}}return added}findMatches(data,criteria){const matches=[];for(let i=0;i<data.length&&matches.length<this.options.limit;i++){const match=this.findMatchesInObject(data[i],criteria);if(match){matches.push(match)}}return matches}findMatchesInObject(obj,criteria){for(const key in obj){if(!this.isExcluded(obj[key])&&this.options.searchStrategy.matches(obj[key],criteria)){return obj}}return void 0}isExcluded(term){for(const excludedTerm of this.options.exclude){if(new RegExp(excludedTerm).test(String(term))){return true}}return false}searchStrategy(strategy){switch(strategy){case"fuzzy":return FuzzySearchStrategy;case"wildcard":return WildcardSearchStrategy;default:return LiteralSearchStrategy}}}const options={pattern:/\{(.*?)\}/g,template:"",middleware:function(){return void 0}};function setOptions(_options){if(_options.pattern){options.pattern=_options.pattern}if(_options.template){options.template=_options.template}if(typeof _options.middleware==="function"){options.middleware=_options.middleware}}function compile(data){return options.template.replace(options.pattern,(function(match,prop){const value=options.middleware(prop,data[prop],options.template);if(typeof value!=="undefined"){return value}return data[prop]||match}))}let SimpleJekyllSearch$1=class SimpleJekyllSearch{constructor(){this.debounceTimerHandle=null;this.options={...DEFAULT_OPTIONS};this.repository=new Repository;this.optionsValidator=new OptionsValidator({required:REQUIRED_OPTIONS})}debounce(func,delayMillis){if(delayMillis){if(this.debounceTimerHandle){clearTimeout(this.debounceTimerHandle)}this.debounceTimerHandle=setTimeout(func,delayMillis)}else{func()}}throwError(message){throw new Error(`SimpleJekyllSearch --- ${message}`)}emptyResultsContainer(){this.options.resultsContainer.innerHTML=""}initWithJSON(json){this.repository.put(json);this.registerInput()}initWithURL(url){load(url,((err,json)=>{if(err){this.throwError(`Failed to load JSON from ${url}: ${err.message}`)}this.initWithJSON(json)}))}registerInput(){this.options.searchInput.addEventListener("input",(e=>{const inputEvent=e;if(!WHITELISTED_KEYS.has(inputEvent.key)){this.emptyResultsContainer();this.debounce((()=>{this.search(e.target.value)}),this.options.debounceTime??null)}}))}search(query){var _a,_b;if((query==null?void 0:query.trim().length)>0){this.emptyResultsContainer();const results=this.repository.search(query);this.render(results,query);(_b=(_a=this.options).onSearch)==null?void 0:_b.call(_a)}}render(results,query){if(results.length===0){this.options.resultsContainer.insertAdjacentHTML("beforeend",this.options.noResultsText);return}const fragment=document.createDocumentFragment();results.forEach((result=>{result.query=query;const div=document.createElement("div");div.innerHTML=compile(result);fragment.appendChild(div)}));this.options.resultsContainer.appendChild(fragment)}init(_options){var _a;const errors=this.optionsValidator.validate(_options);if(errors.length>0){this.throwError(`Missing required options: ${REQUIRED_OPTIONS.join(", ")}`)}this.options=merge(this.options,_options);setOptions({template:this.options.searchResultTemplate,middleware:this.options.templateMiddleware});this.repository.setOptions({fuzzy:this.options.fuzzy,limit:this.options.limit,sortMiddleware:this.options.sortMiddleware,strategy:this.options.strategy,exclude:this.options.exclude});if(isJSON(this.options.json)){this.initWithJSON(this.options.json)}else{this.initWithURL(this.options.json)}const rv={search:this.search.bind(this)};(_a=this.options.success)==null?void 0:_a.call(rv);return rv}};function SimpleJekyllSearch(options2){const instance=new SimpleJekyllSearch$1;return instance.init(options2)}if(typeof window!=="undefined"){window.SimpleJekyllSearch=SimpleJekyllSearch}exports2.default=SimpleJekyllSearch;Object.defineProperties(exports2,{__esModule:{value:true},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
7
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).SimpleJekyllSearch={})}(this,function(t){Object.defineProperties(t,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e=class{constructor(t){if(!this.validateParams(t))throw new Error("-- OptionsValidator: required options missing");this.requiredOptions=t.required}getRequiredOptions(){return this.requiredOptions}validate(t){const e=[];return this.requiredOptions.forEach(n=>{void 0===t[n]&&e.push(n)}),e}validateParams(t){return!!t&&void 0!==t.required&&Array.isArray(t.required)}};function n(t,e){const n=t.trim().toLowerCase(),r=e.endsWith(" ")?[e.toLowerCase()]:e.trim().toLowerCase().split(" ");if(r.filter(t=>n.indexOf(t)>=0).length!==r.length)return[];const i=[];for(const s of r){if(!s||0===s.length)continue;let e=0;for(;-1!==(e=n.indexOf(s,e));)i.push({start:e,end:e+s.length,text:t.substring(e,e+s.length),type:"exact"}),e+=s.length}return i}function r(t,e){if(0===(e=e.trimEnd()).length)return[];const n=t.toLowerCase(),r=e.toLowerCase();let i=0,s=0;const a=[];for(;i<t.length&&s<e.length;)n[i]===r[s]&&(a.push(i),s++),i++;if(s!==e.length)return[];const o=a[0],h=a[a.length-1]+1;return[{start:o,end:h,text:t.substring(o,h),type:"fuzzy"}]}function i(t,e,n={}){const r=e.replace(/\*/g,function(t){const e="number"!=typeof(n=t.maxSpaces)||Number.isNaN(n)||n<=0?0:Number.isFinite(n)?Math.floor(n):1/0;var n;return 0===e?"[^ ]*":e===1/0?"[^ ]*(?: [^ ]*)*":`[^ ]*(?: [^ ]*){0,${e}}`}(n)),i=new RegExp(r,"gi"),s=[];let a;for(;null!==(a=i.exec(t));)s.push({start:a.index,end:a.index+a[0].length,text:a[0],type:"wildcard"}),i.lastIndex===a.index&&i.lastIndex++;return s}var s=class{constructor(t){this.findMatchesFunction=t}matches(t,e){return!(null===t||""===t.trim()||!e)&&this.findMatchesFunction(t,e).length>0}findMatches(t,e){return null!==t&&""!==t.trim()&&e?this.findMatchesFunction(t,e):[]}},a=new s(n),o=new s((t,e)=>{const i=r(t,e);return i.length>0?i:n(t,e)}),h=class extends s{constructor(t={}){const e={...t};super((t,r)=>{const s=i(t,r,e);return s.length>0?s:n(t,r)}),this.config=e}getConfig(){return{...this.config}}};function l(t){return Boolean(t)&&"[object Object]"===Object.prototype.toString.call(t)}var c={searchInput:null,resultsContainer:null,json:[],success:function(){},searchResultTemplate:'<li><a href="{url}" title="{desc}">{title}</a></li>',templateMiddleware:(t,e,n)=>{},sortMiddleware:function(){return 0},noResultsText:"No results found",limit:10,strategy:"literal",debounceTime:null,exclude:[],onSearch:()=>{},onError:t=>console.error("SimpleJekyllSearch error:",t),fuzzy:!1},u=["searchInput","resultsContainer","json"],d=new Set(["Enter","Shift","CapsLock","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Meta"]),p=class{constructor(t={},e=()=>a){this.data=[],this.excludePatterns=[],this.strategyResolver=e,this.setOptions(t)}put(t){return l(t)?this.addObject(t):Array.isArray(t)?this.addArray(t):void 0}clear(){return this.data.length=0,this.data}search(t){return t?this.findMatches(this.data,t).sort(this.options.sortMiddleware).map(t=>({...t})):[]}setOptions(t){let e=this.normalizeStrategyOption(t?.strategy??c.strategy);t?.fuzzy&&!t?.strategy&&(console.warn('[Simple Jekyll Search] Warning: fuzzy option is deprecated. Use strategy: "fuzzy" instead.'),e={type:"fuzzy"});const n=t?.exclude||c.exclude;this.excludePatterns=n.map(t=>new RegExp(t)),this.options={limit:t?.limit||c.limit,searchStrategy:this.searchStrategy(e),sortMiddleware:t?.sortMiddleware||c.sortMiddleware,exclude:n,strategy:e}}addObject(t){return this.data.push(t),this.data}addArray(t){const e=[];this.clear();for(const n of t)l(n)&&e.push(this.addObject(n)[0]);return e}findMatches(t,e){const n=[];for(let r=0;r<t.length&&n.length<this.options.limit;r++){const i=this.findMatchesInObject(t[r],e);i&&n.push(i)}return n}findMatchesInObject(t,e){let n=!1;const r={...t};r._matchInfo={};for(const i in t)if(!this.isExcluded(t[i])&&this.options.searchStrategy.matches(t[i],e)&&(n=!0,this.options.searchStrategy.findMatches)){const n=this.options.searchStrategy.findMatches(t[i],e);n&&n.length>0&&(r._matchInfo[i]=n)}return n?r:void 0}isExcluded(t){const e=String(t);return this.excludePatterns.some(t=>t.test(e))}searchStrategy(t){return this.strategyResolver(t)}normalizeStrategyOption(t){return t?"string"==typeof t?{type:t}:t:this.getDefaultStrategyConfig()}getDefaultStrategyConfig(){const t=c.strategy;return"string"==typeof t?{type:t}:t}},g={pattern:/\{(.*?)\}/g,template:"",middleware:function(){}},f=class{constructor(t){this.debounceTimerHandle=null,this.eventHandler=null,this.pageShowHandler=null,this.pendingRequest=null,this.isInitialized=!1,this.STORAGE_KEY="sjs-search-state",this.options={...c},this.repository=new p({},t),this.optionsValidator=new e({required:u})}debounce(t,e){e?(this.debounceTimerHandle&&clearTimeout(this.debounceTimerHandle),this.debounceTimerHandle=setTimeout(t,e)):t()}throwError(t){throw new Error(`SimpleJekyllSearch --- ${t}`)}emptyResultsContainer(){this.options.resultsContainer.innerHTML=""}initWithJSON(t){this.repository.put(t),this.registerInput()}initWithURL(t){!function(t,e){const n=window.XMLHttpRequest?new window.XMLHttpRequest:new window.ActiveXObject("Microsoft.XMLHTTP");n.open("GET",t,!0),n.onreadystatechange=function(t,e){return function(){if(4===t.readyState&&200===t.status)try{e(null,JSON.parse(t.responseText))}catch(n){e(n instanceof Error?n:new Error(String(n)),null)}}}(n,e),n.send()}(t,(e,n)=>{e&&this.throwError(`Failed to load JSON from ${t}: ${e.message}`),this.initWithJSON(n)})}registerInput(){this.eventHandler=t=>{try{const e=t;d.has(e.key)||(this.emptyResultsContainer(),this.debounce(()=>{try{this.search(t.target.value)}catch(e){console.error("Search error:",e),this.options.onError?.(e)}},this.options.debounceTime??null))}catch(e){console.error("Input handler error:",e),this.options.onError?.(e)}},this.options.searchInput.addEventListener("input",this.eventHandler),this.pageShowHandler=()=>{this.restoreSearchState()},window.addEventListener("pageshow",this.pageShowHandler),this.restoreSearchState()}saveSearchState(t){if(t?.trim())try{const e={query:t.trim(),timestamp:Date.now(),path:window.location.pathname};sessionStorage.setItem(this.STORAGE_KEY,JSON.stringify(e))}catch{}else this.clearSearchState()}getStoredSearchState(){try{const t=sessionStorage.getItem(this.STORAGE_KEY);if(!t)return null;const e=JSON.parse(t);return"string"!=typeof e?.query?null:Date.now()-e.timestamp>18e5||e.path&&e.path!==window.location.pathname?(this.clearSearchState(),null):e.query}catch{return this.clearSearchState(),null}}clearSearchState(){try{sessionStorage.removeItem(this.STORAGE_KEY)}catch{}}restoreSearchState(){if(this.options.resultsContainer.children.length>0)return;let t=this.options.searchInput.value?.trim();t||(t=this.getStoredSearchState()||""),t.length>0&&(this.options.searchInput.value=t,this.search(t))}search(t){if(t?.trim().length>0){this.saveSearchState(t),this.emptyResultsContainer();const e=this.repository.search(t);this.render(e,t),this.options.onSearch?.()}else this.clearSearchState()}render(t,e){if(0===t.length)return void this.options.resultsContainer.insertAdjacentHTML("beforeend",this.options.noResultsText);const n=document.createDocumentFragment();t.forEach(t=>{t.query=e;const r=document.createElement("div");r.innerHTML=function(t,e){return g.template.replace(g.pattern,function(n,r){const i=t._matchInfo?.[r];if(i&&i.length>0&&e){const n=g.middleware(r,t[r],g.template,e,i);if(void 0!==n)return n}if(e){const n=g.middleware(r,t[r],g.template,e);if(void 0!==n)return n}const s=g.middleware(r,t[r],g.template);return void 0!==s?s:t[r]||n})}(t,e),n.appendChild(r)}),this.options.resultsContainer.appendChild(n)}destroy(){this.eventHandler&&(this.options.searchInput.removeEventListener("input",this.eventHandler),this.eventHandler=null),this.pageShowHandler&&(window.removeEventListener("pageshow",this.pageShowHandler),this.pageShowHandler=null),this.debounceTimerHandle&&(clearTimeout(this.debounceTimerHandle),this.debounceTimerHandle=null),this.clearSearchState()}init(t){var e,n,r;this.optionsValidator.validate(t).length>0&&this.throwError(`Missing required options: ${u.join(", ")}`),this.options=(e=this.options,n=t,{...e,...n}),function(t){t.pattern&&(g.pattern=t.pattern),t.template&&(g.template=t.template),"function"==typeof t.middleware&&(g.middleware=t.middleware)}({template:this.options.searchResultTemplate,middleware:this.options.templateMiddleware}),this.repository.setOptions({limit:this.options.limit,sortMiddleware:this.options.sortMiddleware,strategy:this.options.strategy,exclude:this.options.exclude}),r=this.options.json,Array.isArray(r)||null!==r&&"object"==typeof r?this.initWithJSON(this.options.json):this.initWithURL(this.options.json);const i={search:this.search.bind(this),destroy:this.destroy.bind(this)};return this.options.success?.call(i),i}},m=class extends s{constructor(t={}){super((t,e)=>this.hybridFind(t,e)),this.config={...t,preferFuzzy:t.preferFuzzy??!1,wildcardPriority:t.wildcardPriority??!0,minFuzzyLength:t.minFuzzyLength??4,maxExtraFuzzyChars:t.maxExtraFuzzyChars??2,maxSpaces:t.maxSpaces??1}}hybridFind(t,e){if(this.config.wildcardPriority&&e.includes("*")){const n=i(t,e,this.config);if(n.length>0)return n}if(e.includes(" ")||e.length<this.config.minFuzzyLength){const r=n(t,e);if(r.length>0)return r}if(this.config.preferFuzzy||e.length>=this.config.minFuzzyLength){const n=r(t,e);if(n.length>0){const t=this.applyFuzzyConstraints(n,e);if(t.length>0)return t}}return n(t,e)}applyFuzzyConstraints(t,e){const n=this.config.maxExtraFuzzyChars;if(!Number.isFinite(n)||n<0)return t;const r=this.normalizeLength(e);return 0===r?t:t.filter(t=>{const e=this.normalizeLength(t.text);return Math.max(0,e-r)<=n})}normalizeLength(t){return t.replace(/\s+/g,"").length}},y=new m,S=class{static create(t={type:"literal"}){const{options:e}=t;switch(this.isValidStrategy(t.type)?t.type:"literal"){case"literal":default:return a;case"fuzzy":return o;case"wildcard":return new h(e);case"hybrid":return new m(e)}}static getAvailableStrategies(){return["literal","fuzzy","wildcard","hybrid"]}static isValidStrategy(t){return this.getAvailableStrategies().includes(t)}};function w(t){const e={"&":"&","<":"<",">":">",'"':""","'":"'"};return t.replace(/[&<>"']/g,t=>e[t])}function x(t){if(0===t.length)return[];const e=[...t].sort((t,e)=>t.start-e.start),n=[{...e[0]}];for(let r=1;r<e.length;r++){const t=e[r],i=n[n.length-1];t.start<=i.end?i.end=Math.max(i.end,t.end):n.push({...t})}return n}function b(t,e,n={}){if(!t||0===e.length)return w(t);const r=n.className||"search-highlight",i=n.maxLength,s=x(e);let a="",o=0;for(const h of s)a+=w(t.substring(o,h.start)),a+=`<span class="${r}">${w(t.substring(h.start,h.end))}</span>`,o=h.end;return a+=w(t.substring(o)),i&&a.length>i&&(a=function(t,e,n,r,i){if(0===e.length)return w(t.substring(0,n-3))+"...";const s=e[0],a=Math.max(0,s.start-r),o=Math.min(t.length,s.end+r);let h="";a>0&&(h+="...");const l=t.substring(a,o),c=e.filter(t=>t.start<o&&t.end>a).map(t=>({...t,start:Math.max(0,t.start-a),end:Math.min(l.length,t.end-a)}));let u=0;for(const d of c)h+=w(l.substring(u,d.start)),h+=`<span class="${i}">${w(l.substring(d.start,d.end))}</span>`,u=d.end;return h+=w(l.substring(u)),o<t.length&&(h+="..."),h}(t,s,i,n.contextLength||30,r)),a}var v=["content","desc","description"],z=["url","link","href","query"];function M(t={}){const e={className:t.className||"search-highlight",maxLength:t.maxLength,contextLength:t.contextLength||30},n=t.truncateFields||v,r=t.noHighlightFields||z;return function(t,i,s,a,o){if("string"!=typeof i)return;if(r.includes(t))return;const h=n.includes(t);if(o&&o.length>0&&a){const t=b(i,o,{...e,maxLength:h?e.maxLength:void 0});return t!==i?t:void 0}return h&&e.maxLength&&i.length>e.maxLength?w(i.substring(0,e.maxLength-3)+"..."):void 0}}function L(t){return new f(t=>S.create(t)).init(t)}"undefined"!=typeof window&&(window.SimpleJekyllSearch=L,window.createHighlightTemplateMiddleware=M),t.DefaultHybridSearchStrategy=y,t.HybridSearchStrategy=m,t.StrategyFactory=S,t.createHighlightTemplateMiddleware=M,t.default=L,t.defaultHighlightMiddleware=function(t,e,n,r,i){return M()(t,e,n,r,i)},t.escapeHtml=w,t.highlightWithMatchInfo=b,t.mergeOverlappingMatches=x});
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: type-on-strap
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sylhare
|
|
8
8
|
- Rohan Chandra
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-04-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -84,6 +84,20 @@ dependencies:
|
|
|
84
84
|
- - "<="
|
|
85
85
|
- !ruby/object:Gem::Version
|
|
86
86
|
version: '2.8'
|
|
87
|
+
- !ruby/object:Gem::Dependency
|
|
88
|
+
name: kramdown-parser-gfm
|
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
|
90
|
+
requirements:
|
|
91
|
+
- - ">="
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: 1.1.0
|
|
94
|
+
type: :runtime
|
|
95
|
+
prerelease: false
|
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
97
|
+
requirements:
|
|
98
|
+
- - ">="
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: 1.1.0
|
|
87
101
|
description: A simple and responsive jekyll theme template based on type-theme. Great
|
|
88
102
|
for blogs, easy to customize and responsive.
|
|
89
103
|
email:
|
|
@@ -106,6 +120,7 @@ files:
|
|
|
106
120
|
- _includes/blog/post_info.liquid
|
|
107
121
|
- _includes/blog/post_nav.liquid
|
|
108
122
|
- _includes/citation.html
|
|
123
|
+
- _includes/default/category_list.liquid
|
|
109
124
|
- _includes/default/footer.liquid
|
|
110
125
|
- _includes/default/head.liquid
|
|
111
126
|
- _includes/default/navbar.liquid
|
|
@@ -172,99 +187,64 @@ files:
|
|
|
172
187
|
- _sass/layouts/_search.scss
|
|
173
188
|
- _sass/layouts/_tags.scss
|
|
174
189
|
- _sass/type-on-strap.scss
|
|
175
|
-
- assets/css/bootstrap-iso.less
|
|
176
190
|
- assets/css/main.scss
|
|
177
|
-
- assets/css/vendor/bootstrap-iso.css
|
|
178
|
-
- assets/css/vendor/bootstrap-iso.min.css
|
|
179
|
-
- assets/css/vendor/bootstrap.css
|
|
180
191
|
- assets/data/search.liquid
|
|
181
|
-
- assets/fonts/Pacifico/Pacifico.eot
|
|
182
|
-
- assets/fonts/Pacifico/Pacifico.svg
|
|
183
|
-
- assets/fonts/Pacifico/Pacifico.ttf
|
|
184
192
|
- assets/fonts/Pacifico/Pacifico.woff
|
|
185
193
|
- assets/fonts/Pacifico/Pacifico.woff2
|
|
186
|
-
- assets/fonts/Pacifico/original-pacifico-regular.ttf
|
|
187
194
|
- assets/fonts/font-awesome/fa-brands-400.ttf
|
|
188
195
|
- assets/fonts/font-awesome/fa-brands-400.woff2
|
|
189
196
|
- assets/fonts/font-awesome/fa-regular-400.ttf
|
|
190
197
|
- assets/fonts/font-awesome/fa-regular-400.woff2
|
|
191
198
|
- assets/fonts/font-awesome/fa-solid-900.ttf
|
|
192
199
|
- assets/fonts/font-awesome/fa-solid-900.woff2
|
|
193
|
-
- assets/fonts/font-awesome/fa-v4compatibility.ttf
|
|
194
|
-
- assets/fonts/font-awesome/fa-v4compatibility.woff2
|
|
195
|
-
- assets/fonts/katex/KaTeX_AMS-Regular.ttf
|
|
196
200
|
- assets/fonts/katex/KaTeX_AMS-Regular.woff
|
|
197
201
|
- assets/fonts/katex/KaTeX_AMS-Regular.woff2
|
|
198
|
-
- assets/fonts/katex/KaTeX_Caligraphic-Bold.ttf
|
|
199
202
|
- assets/fonts/katex/KaTeX_Caligraphic-Bold.woff
|
|
200
203
|
- assets/fonts/katex/KaTeX_Caligraphic-Bold.woff2
|
|
201
|
-
- assets/fonts/katex/KaTeX_Caligraphic-Regular.ttf
|
|
202
204
|
- assets/fonts/katex/KaTeX_Caligraphic-Regular.woff
|
|
203
205
|
- assets/fonts/katex/KaTeX_Caligraphic-Regular.woff2
|
|
204
|
-
- assets/fonts/katex/KaTeX_Fraktur-Bold.ttf
|
|
205
206
|
- assets/fonts/katex/KaTeX_Fraktur-Bold.woff
|
|
206
207
|
- assets/fonts/katex/KaTeX_Fraktur-Bold.woff2
|
|
207
|
-
- assets/fonts/katex/KaTeX_Fraktur-Regular.ttf
|
|
208
208
|
- assets/fonts/katex/KaTeX_Fraktur-Regular.woff
|
|
209
209
|
- assets/fonts/katex/KaTeX_Fraktur-Regular.woff2
|
|
210
|
-
- assets/fonts/katex/KaTeX_Main-Bold.ttf
|
|
211
210
|
- assets/fonts/katex/KaTeX_Main-Bold.woff
|
|
212
211
|
- assets/fonts/katex/KaTeX_Main-Bold.woff2
|
|
213
|
-
- assets/fonts/katex/KaTeX_Main-BoldItalic.ttf
|
|
214
212
|
- assets/fonts/katex/KaTeX_Main-BoldItalic.woff
|
|
215
213
|
- assets/fonts/katex/KaTeX_Main-BoldItalic.woff2
|
|
216
|
-
- assets/fonts/katex/KaTeX_Main-Italic.ttf
|
|
217
214
|
- assets/fonts/katex/KaTeX_Main-Italic.woff
|
|
218
215
|
- assets/fonts/katex/KaTeX_Main-Italic.woff2
|
|
219
|
-
- assets/fonts/katex/KaTeX_Main-Regular.ttf
|
|
220
216
|
- assets/fonts/katex/KaTeX_Main-Regular.woff
|
|
221
217
|
- assets/fonts/katex/KaTeX_Main-Regular.woff2
|
|
222
|
-
- assets/fonts/katex/KaTeX_Math-BoldItalic.ttf
|
|
223
218
|
- assets/fonts/katex/KaTeX_Math-BoldItalic.woff
|
|
224
219
|
- assets/fonts/katex/KaTeX_Math-BoldItalic.woff2
|
|
225
|
-
- assets/fonts/katex/KaTeX_Math-Italic.ttf
|
|
226
220
|
- assets/fonts/katex/KaTeX_Math-Italic.woff
|
|
227
221
|
- assets/fonts/katex/KaTeX_Math-Italic.woff2
|
|
228
|
-
- assets/fonts/katex/KaTeX_SansSerif-Bold.ttf
|
|
229
222
|
- assets/fonts/katex/KaTeX_SansSerif-Bold.woff
|
|
230
223
|
- assets/fonts/katex/KaTeX_SansSerif-Bold.woff2
|
|
231
|
-
- assets/fonts/katex/KaTeX_SansSerif-Italic.ttf
|
|
232
224
|
- assets/fonts/katex/KaTeX_SansSerif-Italic.woff
|
|
233
225
|
- assets/fonts/katex/KaTeX_SansSerif-Italic.woff2
|
|
234
|
-
- assets/fonts/katex/KaTeX_SansSerif-Regular.ttf
|
|
235
226
|
- assets/fonts/katex/KaTeX_SansSerif-Regular.woff
|
|
236
227
|
- assets/fonts/katex/KaTeX_SansSerif-Regular.woff2
|
|
237
|
-
- assets/fonts/katex/KaTeX_Script-Regular.ttf
|
|
238
228
|
- assets/fonts/katex/KaTeX_Script-Regular.woff
|
|
239
229
|
- assets/fonts/katex/KaTeX_Script-Regular.woff2
|
|
240
|
-
- assets/fonts/katex/KaTeX_Size1-Regular.ttf
|
|
241
230
|
- assets/fonts/katex/KaTeX_Size1-Regular.woff
|
|
242
231
|
- assets/fonts/katex/KaTeX_Size1-Regular.woff2
|
|
243
|
-
- assets/fonts/katex/KaTeX_Size2-Regular.ttf
|
|
244
232
|
- assets/fonts/katex/KaTeX_Size2-Regular.woff
|
|
245
233
|
- assets/fonts/katex/KaTeX_Size2-Regular.woff2
|
|
246
|
-
- assets/fonts/katex/KaTeX_Size3-Regular.ttf
|
|
247
234
|
- assets/fonts/katex/KaTeX_Size3-Regular.woff
|
|
248
235
|
- assets/fonts/katex/KaTeX_Size3-Regular.woff2
|
|
249
|
-
- assets/fonts/katex/KaTeX_Size4-Regular.ttf
|
|
250
236
|
- assets/fonts/katex/KaTeX_Size4-Regular.woff
|
|
251
237
|
- assets/fonts/katex/KaTeX_Size4-Regular.woff2
|
|
252
|
-
- assets/fonts/katex/KaTeX_Typewriter-Regular.ttf
|
|
253
238
|
- assets/fonts/katex/KaTeX_Typewriter-Regular.woff
|
|
254
239
|
- assets/fonts/katex/KaTeX_Typewriter-Regular.woff2
|
|
255
240
|
- assets/fonts/source-sans-pro/source-sans-pro-bold-italic.woff2
|
|
256
241
|
- assets/fonts/source-sans-pro/source-sans-pro-bold.woff2
|
|
257
242
|
- assets/fonts/source-sans-pro/source-sans-pro-italic.woff2
|
|
258
243
|
- assets/fonts/source-sans-pro/source-sans-pro-regular.woff2
|
|
244
|
+
- assets/js/comments-lazy-load.min.js
|
|
259
245
|
- assets/js/main.min.js
|
|
260
|
-
- assets/js/partials/cookie_consent_init.js
|
|
261
|
-
- assets/js/partials/dark-mode.js
|
|
262
|
-
- assets/js/partials/masonry_init.js
|
|
263
|
-
- assets/js/partials/navbar.js
|
|
264
|
-
- assets/js/vendor/imagesloaded.pkgd.min.js
|
|
265
246
|
- assets/js/vendor/katex.auto-render.min.js
|
|
266
247
|
- assets/js/vendor/katex.min.js
|
|
267
|
-
- assets/js/vendor/masonry.pkgd.min.js
|
|
268
248
|
- assets/js/vendor/mermaid.min.js
|
|
269
249
|
- assets/js/vendor/simple-jekyll-search.min.js
|
|
270
250
|
homepage: https://github.com/sylhare/Type-on-Strap
|
|
@@ -284,9 +264,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
284
264
|
- - ">="
|
|
285
265
|
- !ruby/object:Gem::Version
|
|
286
266
|
version: 2.7.2
|
|
287
|
-
- - "<"
|
|
288
|
-
- !ruby/object:Gem::Version
|
|
289
|
-
version: '4.0'
|
|
290
267
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
291
268
|
requirements:
|
|
292
269
|
- - ">="
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
To create an isolated version of Bootstrap
|
|
3
|
-
Use Gulp (npm install) in order to compile it:
|
|
4
|
-
|
|
5
|
-
gulp isolate-bootstrap-css
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
.bootstrap-iso {
|
|
10
|
-
@import (less) 'vendor/bootstrap.css';
|
|
11
|
-
/*@import (less) 'vendor/bootstrap-theme.css'; //optional */
|
|
12
|
-
}
|