type-on-strap 2.5.0 → 2.5.2
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 +52 -75
- data/_includes/blog/post_nav.liquid +2 -2
- data/_includes/default/head.liquid +15 -12
- data/_includes/default/navbar.liquid +2 -2
- data/_includes/gallery.html +5 -7
- data/_includes/portfolio.html +1 -1
- data/_includes/social/share_buttons.liquid +9 -9
- data/_layouts/default.html +1 -1
- data/_layouts/page.liquid +3 -7
- data/_layouts/post.liquid +3 -3
- data/_layouts/search.liquid +1 -0
- data/_sass/base/_global.scss +9 -12
- 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 +156 -269
- 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 +4 -3
- data/_sass/layouts/_page.scss +1 -1
- data/_sass/layouts/_posts.scss +13 -12
- data/_sass/layouts/_search.scss +6 -19
- 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 -1
- 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 +1509 -915
- data/assets/js/vendor/simple-jekyll-search.min.js +2 -2
- metadata +22 -42
- 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/comments-lazy-load.js +0 -123
- 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 v2.1.
|
|
2
|
+
* Simple-Jekyll-Search v2.1.4
|
|
3
3
|
* Copyright 2015-2022, Christian Fei
|
|
4
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 findLiteralMatches(text,criteria){const lowerText=text.trim().toLowerCase();const pattern=criteria.endsWith(" ")?[criteria.toLowerCase()]:criteria.trim().toLowerCase().split(" ");const wordsFound=pattern.filter(word=>lowerText.indexOf(word)>=0).length;if(wordsFound!==pattern.length){return[]}const matches=[];for(const word of pattern){if(!word||word.length===0)continue;let startIndex=0;while((startIndex=lowerText.indexOf(word,startIndex))!==-1){matches.push({start:startIndex,end:startIndex+word.length,text:text.substring(startIndex,startIndex+word.length),type:"exact"});startIndex+=word.length}}return matches}function findFuzzyMatches(text,criteria){criteria=criteria.trimEnd();if(criteria.length===0)return[];const lowerText=text.toLowerCase();const lowerCriteria=criteria.toLowerCase();let textIndex=0;let criteriaIndex=0;const matchedIndices=[];while(textIndex<text.length&&criteriaIndex<criteria.length){if(lowerText[textIndex]===lowerCriteria[criteriaIndex]){matchedIndices.push(textIndex);criteriaIndex++}textIndex++}if(criteriaIndex!==criteria.length){return[]}if(matchedIndices.length===0){return[]}const start=matchedIndices[0];const end=matchedIndices[matchedIndices.length-1]+1;return[{start:start,end:end,text:text.substring(start,end),type:"fuzzy"}]}function findWildcardMatches(text,pattern,config={}){const regexPattern=pattern.replace(/\*/g,buildWildcardFragment(config));const regex=new RegExp(regexPattern,"gi");const matches=[];let match;while((match=regex.exec(text))!==null){matches.push({start:match.index,end:match.index+match[0].length,text:match[0],type:"wildcard"});if(regex.lastIndex===match.index){regex.lastIndex++}}return matches}function buildWildcardFragment(config){const maxSpaces=normalizeMaxSpaces(config.maxSpaces);if(maxSpaces===0){return"[^ ]*"}if(maxSpaces===Infinity){return"[^ ]*(?: [^ ]*)*"}return`[^ ]*(?: [^ ]*){0,${maxSpaces}}`}function normalizeMaxSpaces(value){if(typeof value!=="number"||Number.isNaN(value)||value<=0){return 0}if(!Number.isFinite(value)){return Infinity}return Math.floor(value)}class SearchStrategy{constructor(findMatchesFunction){this.findMatchesFunction=findMatchesFunction}matches(text,criteria){if(text===null||text.trim()===""||!criteria){return false}const matchInfo=this.findMatchesFunction(text,criteria);return matchInfo.length>0}findMatches(text,criteria){if(text===null||text.trim()===""||!criteria){return[]}return this.findMatchesFunction(text,criteria)}}const LiteralSearchStrategy=new SearchStrategy(findLiteralMatches);const FuzzySearchStrategy=new SearchStrategy((text,criteria)=>{const fuzzyMatches=findFuzzyMatches(text,criteria);if(fuzzyMatches.length>0){return fuzzyMatches}return findLiteralMatches(text,criteria)});class WildcardSearchStrategy extends SearchStrategy{constructor(config={}){const normalizedConfig={...config};super((text,criteria)=>{const wildcardMatches=findWildcardMatches(text,criteria,normalizedConfig);if(wildcardMatches.length>0){return wildcardMatches}return findLiteralMatches(text,criteria)});this.config=normalizedConfig}getConfig(){return{...this.config}}}new WildcardSearchStrategy;class HybridSearchStrategy extends SearchStrategy{constructor(config={}){super((text,criteria)=>this.hybridFind(text,criteria));this.config={...config,preferFuzzy:config.preferFuzzy??false,wildcardPriority:config.wildcardPriority??true,minFuzzyLength:config.minFuzzyLength??4,maxExtraFuzzyChars:config.maxExtraFuzzyChars??2,maxSpaces:config.maxSpaces??1}}hybridFind(text,criteria){if(this.config.wildcardPriority&&criteria.includes("*")){const wildcardMatches=findWildcardMatches(text,criteria,this.config);if(wildcardMatches.length>0)return wildcardMatches}if(criteria.includes(" ")||criteria.length<this.config.minFuzzyLength){const literalMatches=findLiteralMatches(text,criteria);if(literalMatches.length>0)return literalMatches}if(this.config.preferFuzzy||criteria.length>=this.config.minFuzzyLength){const fuzzyMatches=findFuzzyMatches(text,criteria);if(fuzzyMatches.length>0){const constrainedMatches=this.applyFuzzyConstraints(fuzzyMatches,criteria);if(constrainedMatches.length>0)return constrainedMatches}}return findLiteralMatches(text,criteria)}applyFuzzyConstraints(matches,criteria){const limit=this.config.maxExtraFuzzyChars;if(!Number.isFinite(limit)||limit<0){return matches}const normalizedCriteriaLength=this.normalizeLength(criteria);if(normalizedCriteriaLength===0){return matches}return matches.filter(match=>{const normalizedMatchLength=this.normalizeLength(match.text);const extraChars=Math.max(0,normalizedMatchLength-normalizedCriteriaLength);return extraChars<=limit})}normalizeLength(value){return value.replace(/\s+/g,"").length}}const DefaultHybridSearchStrategy=new HybridSearchStrategy;class StrategyFactory{static create(config={type:"literal"}){const{options:options2}=config;const type=this.isValidStrategy(config.type)?config.type:"literal";switch(type){case"literal":return LiteralSearchStrategy;case"fuzzy":return FuzzySearchStrategy;case"wildcard":return new WildcardSearchStrategy(options2);case"hybrid":return new HybridSearchStrategy(options2);default:return LiteralSearchStrategy}}static getAvailableStrategies(){return["literal","fuzzy","wildcard","hybrid"]}static isValidStrategy(type){return this.getAvailableStrategies().includes(type)}}function merge(target,source){return{...target,...source}}function isJSON(json){return Array.isArray(json)||json!==null&&typeof json==="object"}function NoSort(){return 0}function isObject(obj){return Boolean(obj)&&Object.prototype.toString.call(obj)==="[object Object]"}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,strategy:"literal",debounceTime:null,exclude:[],onSearch:()=>{},onError:error=>console.error("SimpleJekyllSearch error:",error),fuzzy:false};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.excludePatterns=[];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[]}const matches=this.findMatches(this.data,criteria).sort(this.options.sortMiddleware);return matches.map(item=>({...item}))}setOptions(newOptions){let strategyConfig=this.normalizeStrategyOption(newOptions?.strategy??DEFAULT_OPTIONS.strategy);if(newOptions?.fuzzy&&!newOptions?.strategy){console.warn('[Simple Jekyll Search] Warning: fuzzy option is deprecated. Use strategy: "fuzzy" instead.');strategyConfig={type:"fuzzy"}}const exclude=newOptions?.exclude||DEFAULT_OPTIONS.exclude;this.excludePatterns=exclude.map(pattern=>new RegExp(pattern));this.options={limit:newOptions?.limit||DEFAULT_OPTIONS.limit,searchStrategy:this.searchStrategy(strategyConfig),sortMiddleware:newOptions?.sortMiddleware||DEFAULT_OPTIONS.sortMiddleware,exclude:exclude,strategy:strategyConfig}}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){let hasMatch=false;const result={...obj};result._matchInfo={};for(const key in obj){if(!this.isExcluded(obj[key])&&this.options.searchStrategy.matches(obj[key],criteria)){hasMatch=true;if(this.options.searchStrategy.findMatches){const matchInfo=this.options.searchStrategy.findMatches(obj[key],criteria);if(matchInfo&&matchInfo.length>0){result._matchInfo[key]=matchInfo}}}}return hasMatch?result:void 0}isExcluded(term){const termStr=String(term);return this.excludePatterns.some(regex=>regex.test(termStr))}searchStrategy(strategy){if(!strategy?.type||!StrategyFactory.isValidStrategy(strategy.type)){return LiteralSearchStrategy}return StrategyFactory.create(strategy)}normalizeStrategyOption(strategy){if(!strategy){return this.getDefaultStrategyConfig()}return typeof strategy==="string"?{type:strategy}:strategy}getDefaultStrategyConfig(){const defaultStrategy=DEFAULT_OPTIONS.strategy;{return{type:defaultStrategy}}}}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,query){return options.template.replace(options.pattern,function(match,prop){const matchInfo=data._matchInfo?.[prop];if(matchInfo&&matchInfo.length>0&&query){const value2=options.middleware(prop,data[prop],options.template,query,matchInfo);if(typeof value2!=="undefined"){return value2}}if(query){const value2=options.middleware(prop,data[prop],options.template,query);if(typeof value2!=="undefined"){return value2}}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.eventHandler=null;this.pageShowHandler=null;this.pendingRequest=null;this.isInitialized=false;this.STORAGE_KEY="sjs-search-state";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.eventHandler=e=>{try{const inputEvent=e;if(!WHITELISTED_KEYS.has(inputEvent.key)){this.emptyResultsContainer();this.debounce(()=>{try{this.search(e.target.value)}catch(searchError){console.error("Search error:",searchError);this.options.onError?.(searchError)}},this.options.debounceTime??null)}}catch(error){console.error("Input handler error:",error);this.options.onError?.(error)}};this.options.searchInput.addEventListener("input",this.eventHandler);this.pageShowHandler=()=>{this.restoreSearchState()};window.addEventListener("pageshow",this.pageShowHandler);this.restoreSearchState()}saveSearchState(query){if(!query?.trim()){this.clearSearchState();return}try{const state={query:query.trim(),timestamp:Date.now(),path:window.location.pathname};sessionStorage.setItem(this.STORAGE_KEY,JSON.stringify(state))}catch{}}getStoredSearchState(){try{const raw=sessionStorage.getItem(this.STORAGE_KEY);if(!raw)return null;const state=JSON.parse(raw);if(typeof state?.query!=="string")return null;const MAX_AGE_MS=30*60*1e3;if(Date.now()-state.timestamp>MAX_AGE_MS){this.clearSearchState();return null}if(state.path&&state.path!==window.location.pathname){this.clearSearchState();return null}return state.query}catch{this.clearSearchState();return null}}clearSearchState(){try{sessionStorage.removeItem(this.STORAGE_KEY)}catch{}}restoreSearchState(){const hasExistingResults=this.options.resultsContainer.children.length>0;if(hasExistingResults)return;let query=this.options.searchInput.value?.trim();if(!query){query=this.getStoredSearchState()||""}if(query.length>0){this.options.searchInput.value=query;this.search(query)}}search(query){if(query?.trim().length>0){this.saveSearchState(query);this.emptyResultsContainer();const results=this.repository.search(query);this.render(results,query);this.options.onSearch?.()}else{this.clearSearchState()}}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,query);fragment.appendChild(div)});this.options.resultsContainer.appendChild(fragment)}destroy(){if(this.eventHandler){this.options.searchInput.removeEventListener("input",this.eventHandler);this.eventHandler=null}if(this.pageShowHandler){window.removeEventListener("pageshow",this.pageShowHandler);this.pageShowHandler=null}if(this.debounceTimerHandle){clearTimeout(this.debounceTimerHandle);this.debounceTimerHandle=null}this.clearSearchState()}init(_options){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({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),destroy:this.destroy.bind(this)};this.options.success?.call(rv);return rv}};function escapeHtml(text){const map={"&":"&","<":"<",">":">",'"':""","'":"'"};return text.replace(/[&<>"']/g,m=>map[m])}function mergeOverlappingMatches(matches){if(matches.length===0)return[];const sorted=[...matches].sort((a,b)=>a.start-b.start);const merged=[{...sorted[0]}];for(let i=1;i<sorted.length;i++){const current=sorted[i];const last=merged[merged.length-1];if(current.start<=last.end){last.end=Math.max(last.end,current.end)}else{merged.push({...current})}}return merged}function highlightWithMatchInfo(text,matchInfo,options2={}){if(!text||matchInfo.length===0){return escapeHtml(text)}const className=options2.className||"search-highlight";const maxLength=options2.maxLength;const mergedMatches=mergeOverlappingMatches(matchInfo);let result="";let lastIndex=0;for(const match of mergedMatches){result+=escapeHtml(text.substring(lastIndex,match.start));result+=`<span class="${className}">${escapeHtml(text.substring(match.start,match.end))}</span>`;lastIndex=match.end}result+=escapeHtml(text.substring(lastIndex));if(maxLength&&result.length>maxLength){result=truncateAroundMatches(text,mergedMatches,maxLength,options2.contextLength||30,className)}return result}function truncateAroundMatches(text,matches,maxLength,contextLength,className){if(matches.length===0){const truncated=text.substring(0,maxLength-3);return escapeHtml(truncated)+"..."}const firstMatch=matches[0];const start=Math.max(0,firstMatch.start-contextLength);const end=Math.min(text.length,firstMatch.end+contextLength);let result="";if(start>0){result+="..."}const snippet=text.substring(start,end);const adjustedMatches=matches.filter(m=>m.start<end&&m.end>start).map(m=>({...m,start:Math.max(0,m.start-start),end:Math.min(snippet.length,m.end-start)}));let lastIndex=0;for(const match of adjustedMatches){result+=escapeHtml(snippet.substring(lastIndex,match.start));result+=`<span class="${className}">${escapeHtml(snippet.substring(match.start,match.end))}</span>`;lastIndex=match.end}result+=escapeHtml(snippet.substring(lastIndex));if(end<text.length){result+="..."}return result}const DEFAULT_TRUNCATE_FIELDS=["content","desc","description"];const DEFAULT_NO_HIGHLIGHT_FIELDS=["url","link","href","query"];function createHighlightTemplateMiddleware(options2={}){const highlightOptions={className:options2.className||"search-highlight",maxLength:options2.maxLength,contextLength:options2.contextLength||30};const truncateFields=options2.truncateFields||DEFAULT_TRUNCATE_FIELDS;const noHighlightFields=options2.noHighlightFields||DEFAULT_NO_HIGHLIGHT_FIELDS;return function(prop,value,_template,query,matchInfo){if(typeof value!=="string"){return void 0}if(noHighlightFields.includes(prop)){return void 0}const shouldTruncate=truncateFields.includes(prop);if(matchInfo&&matchInfo.length>0&&query){const fieldOptions={...highlightOptions,maxLength:shouldTruncate?highlightOptions.maxLength:void 0};const highlighted=highlightWithMatchInfo(value,matchInfo,fieldOptions);return highlighted!==value?highlighted:void 0}if(shouldTruncate&&highlightOptions.maxLength&&value.length>highlightOptions.maxLength){return escapeHtml(value.substring(0,highlightOptions.maxLength-3)+"...")}return void 0}}function defaultHighlightMiddleware(prop,value,template,query,matchInfo){const middleware=createHighlightTemplateMiddleware();return middleware(prop,value,template,query,matchInfo)}function SimpleJekyllSearch(options2){const instance=new SimpleJekyllSearch$1;return instance.init(options2)}if(typeof window!=="undefined"){window.SimpleJekyllSearch=SimpleJekyllSearch;window.createHighlightTemplateMiddleware=createHighlightTemplateMiddleware}exports2.DefaultHybridSearchStrategy=DefaultHybridSearchStrategy;exports2.HybridSearchStrategy=HybridSearchStrategy;exports2.StrategyFactory=StrategyFactory;exports2.createHighlightTemplateMiddleware=createHighlightTemplateMiddleware;exports2.default=SimpleJekyllSearch;exports2.defaultHighlightMiddleware=defaultHighlightMiddleware;exports2.escapeHtml=escapeHtml;exports2.highlightWithMatchInfo=highlightWithMatchInfo;exports2.mergeOverlappingMatches=mergeOverlappingMatches;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}}},l={exact:100,fuzzy:50,wildcard:25};function c(t){return"title"===t?10:1}function u(t){if(t.length<2)return 0;const e=Math.min(...t.map(t=>t.start)),n=Math.max(...t.map(t=>t.end))-e-t.reduce((t,e)=>t+(e.end-e.start),0);return n<=0?80:Math.max(0,80-2*n)}function d(t){const e=t._matchInfo;if(!e||0===Object.keys(e).length)return 0;let n=0;for(const[r,i]of Object.entries(e)){const t=c(r);for(const e of i){let r=l[e.type]??0;r+=Math.max(0,50-2*e.start),n+=r*t}n+=u(i)*t}return n}function p(t,e){return d(e)-d(t)}function g(t){return Boolean(t)&&"[object Object]"===Object.prototype.toString.call(t)}var f={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},m=["searchInput","resultsContainer","json"],y=new Set(["Enter","Shift","CapsLock","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Meta"]),S=class{constructor(t={},e=()=>a){this.data=[],this.excludePatterns=[],this.strategyResolver=e,this.setOptions(t)}put(t){return g(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??f.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||f.exclude;this.excludePatterns=n.map(t=>new RegExp(t)),this.options={limit:t?.limit||f.limit,searchStrategy:this.searchStrategy(e),sortMiddleware:t?.sortMiddleware||f.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)g(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=f.strategy;return"string"==typeof t?{type:t}:t}},w={pattern:/\{(.*?)\}/g,template:"",middleware:function(){}},x=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={...f},this.repository=new S({},t),this.optionsValidator=new e({required:m})}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;y.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 w.template.replace(w.pattern,function(n,r){const i=t._matchInfo?.[r];if(i&&i.length>0&&e){const n=w.middleware(r,t[r],w.template,e,i);if(void 0!==n)return n}if(e){const n=w.middleware(r,t[r],w.template,e);if(void 0!==n)return n}const s=w.middleware(r,t[r],w.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: ${m.join(", ")}`),this.options=(e=this.options,n=t,{...e,...n}),function(t){t.pattern&&(w.pattern=t.pattern),t.template&&(w.template=t.template),"function"==typeof t.middleware&&(w.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}},b=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}},v=new b,z=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 b(e)}}static getAvailableStrategies(){return["literal","fuzzy","wildcard","hybrid"]}static isValidStrategy(t){return this.getAvailableStrategies().includes(t)}};function M(t){const e={"&":"&","<":"<",">":">",'"':""","'":"'"};return t.replace(/[&<>"']/g,t=>e[t])}function L(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 E(t,e,n={}){if(!t||0===e.length)return M(t);const r=n.className||"search-highlight",i=n.maxLength,s=L(e);let a="",o=0;for(const h of s)a+=M(t.substring(o,h.start)),a+=`<span class="${r}">${M(t.substring(h.start,h.end))}</span>`,o=h.end;return a+=M(t.substring(o)),i&&a.length>i&&(a=function(t,e,n,r,i){if(0===e.length)return M(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+=M(l.substring(u,d.start)),h+=`<span class="${i}">${M(l.substring(d.start,d.end))}</span>`,u=d.end;return h+=M(l.substring(u)),o<t.length&&(h+="..."),h}(t,s,i,n.contextLength||30,r)),a}var O=["content","desc","description"],H=["url","link","href","query"];function T(t={}){const e={className:t.className||"search-highlight",maxLength:t.maxLength,contextLength:t.contextLength||30},n=t.truncateFields||O,r=t.noHighlightFields||H;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=E(i,o,{...e,maxLength:h?e.maxLength:void 0});return t!==i?t:void 0}return h&&e.maxLength&&i.length>e.maxLength?M(i.substring(0,e.maxLength-3)+"..."):void 0}}function C(t){return new x(t=>z.create(t)).init(t)}"undefined"!=typeof window&&(window.SimpleJekyllSearch=C,window.createHighlightTemplateMiddleware=T,window.RelevanceSort=p),t.DefaultHybridSearchStrategy=v,t.HybridSearchStrategy=b,t.RelevanceSort=p,t.StrategyFactory=z,t.createHighlightTemplateMiddleware=T,t.default=C,t.defaultHighlightMiddleware=function(t,e,n,r,i){return T()(t,e,n,r,i)},t.escapeHtml=M,t.highlightWithMatchInfo=E,t.mergeOverlappingMatches=L});
|
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.5.
|
|
4
|
+
version: 2.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sylhare
|
|
8
8
|
- Rohan Chandra
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-07-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -84,8 +84,24 @@ dependencies:
|
|
|
84
84
|
- - "<="
|
|
85
85
|
- !ruby/object:Gem::Version
|
|
86
86
|
version: '2.8'
|
|
87
|
-
|
|
88
|
-
|
|
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
|
|
101
|
+
description: A free and open-source Jekyll theme for writers, developers, and creatives.
|
|
102
|
+
Includes portfolio and gallery pages, auto dark/light mode, full-text search, KaTeX
|
|
103
|
+
math rendering, Mermaid diagrams, multiple comment systems, and Bootstrap support.
|
|
104
|
+
Works as a Ruby gem or remote theme.
|
|
89
105
|
email:
|
|
90
106
|
- sylhare@outlook.com
|
|
91
107
|
- hellorohan@outlook.com
|
|
@@ -173,101 +189,64 @@ files:
|
|
|
173
189
|
- _sass/layouts/_search.scss
|
|
174
190
|
- _sass/layouts/_tags.scss
|
|
175
191
|
- _sass/type-on-strap.scss
|
|
176
|
-
- assets/css/bootstrap-iso.less
|
|
177
192
|
- assets/css/main.scss
|
|
178
|
-
- assets/css/vendor/bootstrap-iso.css
|
|
179
|
-
- assets/css/vendor/bootstrap-iso.min.css
|
|
180
|
-
- assets/css/vendor/bootstrap.css
|
|
181
193
|
- assets/data/search.liquid
|
|
182
|
-
- assets/fonts/Pacifico/Pacifico.eot
|
|
183
|
-
- assets/fonts/Pacifico/Pacifico.svg
|
|
184
|
-
- assets/fonts/Pacifico/Pacifico.ttf
|
|
185
194
|
- assets/fonts/Pacifico/Pacifico.woff
|
|
186
195
|
- assets/fonts/Pacifico/Pacifico.woff2
|
|
187
|
-
- assets/fonts/Pacifico/original-pacifico-regular.ttf
|
|
188
196
|
- assets/fonts/font-awesome/fa-brands-400.ttf
|
|
189
197
|
- assets/fonts/font-awesome/fa-brands-400.woff2
|
|
190
198
|
- assets/fonts/font-awesome/fa-regular-400.ttf
|
|
191
199
|
- assets/fonts/font-awesome/fa-regular-400.woff2
|
|
192
200
|
- assets/fonts/font-awesome/fa-solid-900.ttf
|
|
193
201
|
- assets/fonts/font-awesome/fa-solid-900.woff2
|
|
194
|
-
- assets/fonts/font-awesome/fa-v4compatibility.ttf
|
|
195
|
-
- assets/fonts/font-awesome/fa-v4compatibility.woff2
|
|
196
|
-
- assets/fonts/katex/KaTeX_AMS-Regular.ttf
|
|
197
202
|
- assets/fonts/katex/KaTeX_AMS-Regular.woff
|
|
198
203
|
- assets/fonts/katex/KaTeX_AMS-Regular.woff2
|
|
199
|
-
- assets/fonts/katex/KaTeX_Caligraphic-Bold.ttf
|
|
200
204
|
- assets/fonts/katex/KaTeX_Caligraphic-Bold.woff
|
|
201
205
|
- assets/fonts/katex/KaTeX_Caligraphic-Bold.woff2
|
|
202
|
-
- assets/fonts/katex/KaTeX_Caligraphic-Regular.ttf
|
|
203
206
|
- assets/fonts/katex/KaTeX_Caligraphic-Regular.woff
|
|
204
207
|
- assets/fonts/katex/KaTeX_Caligraphic-Regular.woff2
|
|
205
|
-
- assets/fonts/katex/KaTeX_Fraktur-Bold.ttf
|
|
206
208
|
- assets/fonts/katex/KaTeX_Fraktur-Bold.woff
|
|
207
209
|
- assets/fonts/katex/KaTeX_Fraktur-Bold.woff2
|
|
208
|
-
- assets/fonts/katex/KaTeX_Fraktur-Regular.ttf
|
|
209
210
|
- assets/fonts/katex/KaTeX_Fraktur-Regular.woff
|
|
210
211
|
- assets/fonts/katex/KaTeX_Fraktur-Regular.woff2
|
|
211
|
-
- assets/fonts/katex/KaTeX_Main-Bold.ttf
|
|
212
212
|
- assets/fonts/katex/KaTeX_Main-Bold.woff
|
|
213
213
|
- assets/fonts/katex/KaTeX_Main-Bold.woff2
|
|
214
|
-
- assets/fonts/katex/KaTeX_Main-BoldItalic.ttf
|
|
215
214
|
- assets/fonts/katex/KaTeX_Main-BoldItalic.woff
|
|
216
215
|
- assets/fonts/katex/KaTeX_Main-BoldItalic.woff2
|
|
217
|
-
- assets/fonts/katex/KaTeX_Main-Italic.ttf
|
|
218
216
|
- assets/fonts/katex/KaTeX_Main-Italic.woff
|
|
219
217
|
- assets/fonts/katex/KaTeX_Main-Italic.woff2
|
|
220
|
-
- assets/fonts/katex/KaTeX_Main-Regular.ttf
|
|
221
218
|
- assets/fonts/katex/KaTeX_Main-Regular.woff
|
|
222
219
|
- assets/fonts/katex/KaTeX_Main-Regular.woff2
|
|
223
|
-
- assets/fonts/katex/KaTeX_Math-BoldItalic.ttf
|
|
224
220
|
- assets/fonts/katex/KaTeX_Math-BoldItalic.woff
|
|
225
221
|
- assets/fonts/katex/KaTeX_Math-BoldItalic.woff2
|
|
226
|
-
- assets/fonts/katex/KaTeX_Math-Italic.ttf
|
|
227
222
|
- assets/fonts/katex/KaTeX_Math-Italic.woff
|
|
228
223
|
- assets/fonts/katex/KaTeX_Math-Italic.woff2
|
|
229
|
-
- assets/fonts/katex/KaTeX_SansSerif-Bold.ttf
|
|
230
224
|
- assets/fonts/katex/KaTeX_SansSerif-Bold.woff
|
|
231
225
|
- assets/fonts/katex/KaTeX_SansSerif-Bold.woff2
|
|
232
|
-
- assets/fonts/katex/KaTeX_SansSerif-Italic.ttf
|
|
233
226
|
- assets/fonts/katex/KaTeX_SansSerif-Italic.woff
|
|
234
227
|
- assets/fonts/katex/KaTeX_SansSerif-Italic.woff2
|
|
235
|
-
- assets/fonts/katex/KaTeX_SansSerif-Regular.ttf
|
|
236
228
|
- assets/fonts/katex/KaTeX_SansSerif-Regular.woff
|
|
237
229
|
- assets/fonts/katex/KaTeX_SansSerif-Regular.woff2
|
|
238
|
-
- assets/fonts/katex/KaTeX_Script-Regular.ttf
|
|
239
230
|
- assets/fonts/katex/KaTeX_Script-Regular.woff
|
|
240
231
|
- assets/fonts/katex/KaTeX_Script-Regular.woff2
|
|
241
|
-
- assets/fonts/katex/KaTeX_Size1-Regular.ttf
|
|
242
232
|
- assets/fonts/katex/KaTeX_Size1-Regular.woff
|
|
243
233
|
- assets/fonts/katex/KaTeX_Size1-Regular.woff2
|
|
244
|
-
- assets/fonts/katex/KaTeX_Size2-Regular.ttf
|
|
245
234
|
- assets/fonts/katex/KaTeX_Size2-Regular.woff
|
|
246
235
|
- assets/fonts/katex/KaTeX_Size2-Regular.woff2
|
|
247
|
-
- assets/fonts/katex/KaTeX_Size3-Regular.ttf
|
|
248
236
|
- assets/fonts/katex/KaTeX_Size3-Regular.woff
|
|
249
237
|
- assets/fonts/katex/KaTeX_Size3-Regular.woff2
|
|
250
|
-
- assets/fonts/katex/KaTeX_Size4-Regular.ttf
|
|
251
238
|
- assets/fonts/katex/KaTeX_Size4-Regular.woff
|
|
252
239
|
- assets/fonts/katex/KaTeX_Size4-Regular.woff2
|
|
253
|
-
- assets/fonts/katex/KaTeX_Typewriter-Regular.ttf
|
|
254
240
|
- assets/fonts/katex/KaTeX_Typewriter-Regular.woff
|
|
255
241
|
- assets/fonts/katex/KaTeX_Typewriter-Regular.woff2
|
|
256
242
|
- assets/fonts/source-sans-pro/source-sans-pro-bold-italic.woff2
|
|
257
243
|
- assets/fonts/source-sans-pro/source-sans-pro-bold.woff2
|
|
258
244
|
- assets/fonts/source-sans-pro/source-sans-pro-italic.woff2
|
|
259
245
|
- assets/fonts/source-sans-pro/source-sans-pro-regular.woff2
|
|
260
|
-
- assets/js/comments-lazy-load.js
|
|
261
246
|
- assets/js/comments-lazy-load.min.js
|
|
262
247
|
- assets/js/main.min.js
|
|
263
|
-
- assets/js/partials/cookie_consent_init.js
|
|
264
|
-
- assets/js/partials/dark-mode.js
|
|
265
|
-
- assets/js/partials/masonry_init.js
|
|
266
|
-
- assets/js/partials/navbar.js
|
|
267
|
-
- assets/js/vendor/imagesloaded.pkgd.min.js
|
|
268
248
|
- assets/js/vendor/katex.auto-render.min.js
|
|
269
249
|
- assets/js/vendor/katex.min.js
|
|
270
|
-
- assets/js/vendor/masonry.pkgd.min.js
|
|
271
250
|
- assets/js/vendor/mermaid.min.js
|
|
272
251
|
- assets/js/vendor/simple-jekyll-search.min.js
|
|
273
252
|
homepage: https://github.com/sylhare/Type-on-Strap
|
|
@@ -295,5 +274,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
295
274
|
requirements: []
|
|
296
275
|
rubygems_version: 3.6.2
|
|
297
276
|
specification_version: 4
|
|
298
|
-
summary:
|
|
277
|
+
summary: Feature-rich Jekyll theme with portfolio, gallery, dark mode, search, KaTeX
|
|
278
|
+
and Mermaid
|
|
299
279
|
test_files: []
|
|
@@ -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
|
-
}
|