From 86dd36fb27f862979c493917ce527b9993670b4b Mon Sep 17 00:00:00 2001 From: trendschau Date: Sat, 3 Oct 2020 21:51:12 +0200 Subject: [PATCH] Version 1.4.0 deleted unneccessary files --- content/01-cyanine-theme/04-mdfixes.md | 11 -- content/01-cyanine-theme/04-mdfixes.txt | 1 - content/01-cyanine-theme/04-mdfixes.yaml | 9 -- plugins/blurbbox/blurbbox.php | 26 ----- plugins/blurbbox/blurbbox.yaml | 8 -- plugins/blurbbox/index.php | 87 --------------- plugins/blurbbox/public/lunr-licence.md | 19 ---- plugins/blurbbox/public/lunr.min.js | 6 -- plugins/blurbbox/public/search.css | 64 ------------ plugins/blurbbox/public/search.js | 115 -------------------- plugins/blurbbox/search.zip | Bin 13835 -> 0 bytes plugins/search/index.php | 87 --------------- plugins/search/public/lunr-licence.md | 19 ---- plugins/search/public/lunr.min.js | 6 -- plugins/search/public/search.css | 64 ------------ plugins/search/public/search.js | 115 -------------------- plugins/search/search.php | 128 ----------------------- plugins/search/search.yaml | 8 -- plugins/search/search.zip | Bin 13835 -> 0 bytes 19 files changed, 773 deletions(-) delete mode 100644 content/01-cyanine-theme/04-mdfixes.md delete mode 100644 content/01-cyanine-theme/04-mdfixes.txt delete mode 100644 content/01-cyanine-theme/04-mdfixes.yaml delete mode 100644 plugins/blurbbox/blurbbox.php delete mode 100644 plugins/blurbbox/blurbbox.yaml delete mode 100644 plugins/blurbbox/index.php delete mode 100644 plugins/blurbbox/public/lunr-licence.md delete mode 100644 plugins/blurbbox/public/lunr.min.js delete mode 100644 plugins/blurbbox/public/search.css delete mode 100644 plugins/blurbbox/public/search.js delete mode 100644 plugins/blurbbox/search.zip delete mode 100644 plugins/search/index.php delete mode 100644 plugins/search/public/lunr-licence.md delete mode 100644 plugins/search/public/lunr.min.js delete mode 100644 plugins/search/public/search.css delete mode 100644 plugins/search/public/search.js delete mode 100644 plugins/search/search.php delete mode 100644 plugins/search/search.yaml delete mode 100644 plugins/search/search.zip diff --git a/content/01-cyanine-theme/04-mdfixes.md b/content/01-cyanine-theme/04-mdfixes.md deleted file mode 100644 index 4de2e62..0000000 --- a/content/01-cyanine-theme/04-mdfixes.md +++ /dev/null @@ -1,11 +0,0 @@ -# mdfixes - -Content and some more. -## This is headline second order -This is a little bit of text that we need to have nothing - -Some more text. - -# And a headline first order - -With some more text below. \ No newline at end of file diff --git a/content/01-cyanine-theme/04-mdfixes.txt b/content/01-cyanine-theme/04-mdfixes.txt deleted file mode 100644 index 21d0607..0000000 --- a/content/01-cyanine-theme/04-mdfixes.txt +++ /dev/null @@ -1 +0,0 @@ -["# mdfixes","Content and some more. Danke","## This is headline second order","This is a little bit of text that we need to have nothing","Some more text.","# And a headline first order","With some more text below."] \ No newline at end of file diff --git a/content/01-cyanine-theme/04-mdfixes.yaml b/content/01-cyanine-theme/04-mdfixes.yaml deleted file mode 100644 index a216cc2..0000000 --- a/content/01-cyanine-theme/04-mdfixes.yaml +++ /dev/null @@ -1,9 +0,0 @@ -meta: - title: mdfixes - description: "Content and some more. This is headline second order\nThis is a little bit of text that we need to have." - owner: trendschau - author: 'Sebastian Schürmanns' - created: '2020-10-01' - time: 20-40-00 - navtitle: mdfixes - modified: '2020-10-01' diff --git a/plugins/blurbbox/blurbbox.php b/plugins/blurbbox/blurbbox.php deleted file mode 100644 index 0e068df..0000000 --- a/plugins/blurbbox/blurbbox.php +++ /dev/null @@ -1,26 +0,0 @@ - 'onPageReady', - ); - } - - public function onPageReady($page) - { - $pageData = $page->getData($page); - - $pageData['widgets']['blurbbox'] = '

Notes on (mostly) daily perceptions and experiences by Joseph Zitt, an American immigrant to Israel.

' . - '

Buy the book.

' . - '

Subscribe to the weekly newsletter.

'; - - $page->setData($pageData); - } -} \ No newline at end of file diff --git a/plugins/blurbbox/blurbbox.yaml b/plugins/blurbbox/blurbbox.yaml deleted file mode 100644 index 0e4ae08..0000000 --- a/plugins/blurbbox/blurbbox.yaml +++ /dev/null @@ -1,8 +0,0 @@ -name: Blurbbox -version: 1.0.0 -description: Add a search to your website with lunr.js. -author: Trendschau -homepage: https://typemill.net -licence: MIT -paypal: https://paypal.me/typemill -amount: 10 \ No newline at end of file diff --git a/plugins/blurbbox/index.php b/plugins/blurbbox/index.php deleted file mode 100644 index 74ff7ec..0000000 --- a/plugins/blurbbox/index.php +++ /dev/null @@ -1,87 +0,0 @@ -getFile('cache', 'index.json'); - if(!$index) - { - $this->createIndex(); - $index = $write->getFile('cache', 'index.json'); - } - - return $this->returnJson($index); - } - - private function createIndex() - { - $write = new WriteCache(); - - # get content structure - $structure = $write->getCache('cache', 'structure.txt'); - - # get data for search-index - $index = $this->getAllContent($structure, $write); - - # store the index file here - $write->writeFile('cache', 'index.json', json_encode($index, JSON_UNESCAPED_SLASHES)); - } - - private function getAllContent($structure, $write, $index = NULL) - { - foreach($structure as $item) - { - if($item->elementType == "folder") - { - if($item->fileType == 'md') - { - $page = $write->getFileWithPath('content' . $item->path . DIRECTORY_SEPARATOR . 'index.md'); - $pageArray = $this->getPageContentArray($page, $item->urlAbs); - $index[$pageArray['url']] = $pageArray; - } - - $index = $this->getAllContent($item->folderContent, $write, $index); - } - else - { - $page = $write->getFileWithPath('content' . $item->path); - $pageArray = $this->getPageContentArray($page, $item->urlAbs); - $index[$pageArray['url']] = $pageArray; - } - } - return $index; - } - - private function getPageContentArray($page, $url) - { - $parts = explode("\n", $page, 2); - - # get the title / headline - $title = trim($parts[0], '# '); - $title = str_replace(["\r\n", "\n", "\r"],' ', $title); - - # get and cleanup the content - $content = $parts[1]; - $content = strip_tags($content); - $content = str_replace(["\r\n", "\n", "\r"],' ', $content); - - $pageContent = [ - 'title' => $title, - 'content' => $content, - 'url' => $url - ]; - - return $pageContent; - } -} \ No newline at end of file diff --git a/plugins/blurbbox/public/lunr-licence.md b/plugins/blurbbox/public/lunr-licence.md deleted file mode 100644 index 93bece9..0000000 --- a/plugins/blurbbox/public/lunr-licence.md +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2013 by Oliver Nightingale - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/plugins/blurbbox/public/lunr.min.js b/plugins/blurbbox/public/lunr.min.js deleted file mode 100644 index 34b279d..0000000 --- a/plugins/blurbbox/public/lunr.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.6 - * Copyright (C) 2019 Oliver Nightingale - * @license MIT - */ -!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.6",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/plugins/blurbbox/public/search.css b/plugins/blurbbox/public/search.css deleted file mode 100644 index 4979af4..0000000 --- a/plugins/blurbbox/public/search.css +++ /dev/null @@ -1,64 +0,0 @@ -.searchContainer{ - overflow: hidden; - width: 100%; - vertical-align: middle; - white-space: nowrap; -} -.searchContainer input{ - width: 100%; - height: 50px; - border: 1px solid #ddd; - font-size: 1rem; - float: left; - padding-left: 15px; - border-radius: 2px; - box-sizing:border-box; -} -.searchContainer button{ - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border: none; - background: #232833; - height: 50px; - width: 50px; - color: #fff; - font-size: 10pt; - margin-left: -50px; -} -.searchContainer button:hover,.searchContainer button:focus, .searchContainer button:active{ - cursor: pointer; -} - -#searchresult{ -} -.resultwrapper{ -} -button#closeSearchResult{ - position: absolute; - right: 0px; - top: 0px; - margin: 10px; - border: none; - border-radius: 2px; - font-size: 1rem; - color: #fff; - background: #000; - padding: 15px; -} -button#closeSearchResult:hover,#closeSearchResult:focus{ - cursor: pointer; -} -.resultlist{ - margin: 0px; - padding: 0px; - list-style:none; -} -.resultitem{ - -} -.resultheader{ - -} -.resultsnippet{ - -} \ No newline at end of file diff --git a/plugins/blurbbox/public/search.js b/plugins/blurbbox/public/search.js deleted file mode 100644 index 639ab18..0000000 --- a/plugins/blurbbox/public/search.js +++ /dev/null @@ -1,115 +0,0 @@ -var searchField = document.getElementById("searchField"); -var searchButton = document.getElementById("searchButton"); - -if(searchField && searchButton) -{ - var searchIndex = false; - var documents = false; - var holdcontent = false; - var contentwrapper = false; - - searchField.addEventListener("focus", function(event){ - - if(!searchIndex) - { - myaxios.get('/indexrs51gfe2o2') - .then(function (response) { - - documents = JSON.parse(response.data); - - searchIndex = lunr(function() { - this.ref("id"); - this.field("title", { boost: 10 }); - this.field("content"); - for (var key in documents){ - this.add({ - "id": documents[key].url, - "title": documents[key].title, - "content": documents[key].content - }); - } - }); - - }) - .catch(function (error) {}); - } - }); - - searchButton.addEventListener("click", function(event){ - event.preventDefault(); - - var term = document.getElementById('searchField').value; - var results = searchIndex.search(term); - - var resultPages = results.map(function (match) { - return documents[match.ref]; - }); - - resultsString = "

Result for " + term + "

"; - resultsString += ""; - resultsString += "
    "; - resultPages.forEach(function (r) { - resultsString += "
  • "; - resultsString += "

    " + r.title + "

    "; - resultsString += "
    " + r.content.substring(0, 200) + " ...
    "; - resultsString += "
  • " - }); - resultsString += "
"; - - if(!holdcontent) - { - contentwrapper = document.getElementById("searchresult").parentNode; - holdcontent = contentwrapper.innerHTML; - } - - contentwrapper.innerHTML = resultsString; - - document.getElementById("closeSearchResult").addEventListener("click", function(event){ - contentwrapper.innerHTML = holdcontent; - }); - - }, false); -} - -/* -var searchIndex = lunr(function() { - this.ref("id"); - this.field("title", { boost: 10 }); - this.field("content"); - for (var key in window.pages) { - this.add({ - "id": key, - "title": pages[key].title, - "content": pages[key].content - }); - } -}); - -function getQueryVariable(variable) { - var query = window.location.search.substring(1); - var vars = query.split("&"); - for (var i = 0; i < vars.length; i++) { - var pair = vars[i].split("="); - if (pair[0] === variable) { - return decodeURIComponent(pair[1].replace(/\+/g, "%20")); - } - } -} - -var searchTerm = getQueryVariable("q"); -// creation of searchIndex from earlier example -var results = searchIndex.search(searchTerm); -var resultPages = results.map(function (match) { - return pages[match.ref]; -}); - -// resultPages from previous example -resultsString = ""; -resultPages.forEach(function (r) { - resultsString += "
  • "; - resultsString += "

    " + r.title + "

    "; - resultsString += "
    " + r.content.substring(0, 200) + "
    "; - resultsString += "
  • " -}); -document.querySelector("#search-results").innerHTML = resultsString; -*/ \ No newline at end of file diff --git a/plugins/blurbbox/search.zip b/plugins/blurbbox/search.zip deleted file mode 100644 index af82cbd51da8c889ce656c60b3956d808a3a0972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13835 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%0DEU|) zLF7wra$*w1fWG^fyXFU0G5n7#F0rl#4fdb-J~UY}BL`N1{@n2H&ek*L1_V^#iEW3( zF%iFwNkee`4>BM!@*x^qKkhPbnw!TzZF@?K^h7`XOxYbxdL{RvD+$RQ78w)Jg!UUhtFD8Vy zWtsq-I&7pgJ+NW1LcgABqeYqn+>(Z8!Zwl_6qnq`>{N({f3B%PXLjN2oBj zhOx9Oftmg4^~j2l!klE`uft%OsTQXxB|nHdO!!IP9Y!;f)Oc)->%9^S%~H9-?CyQC z0?Ir}MRgf_7w(cb*Wk*UIyRe`Nl=fQiMr?u61GY!&6m)*mdQOkMu%Tcpa|gw z$dbPW=tpu7v$onsB2#1*Q5WHY*hI~PtM?^xT-}N94|w!le1Bi&NgQ4Xp~Fw3F;A

    P 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'cache', 'index.json'); - if(!$index) - { - $this->createIndex(); - $index = $write->getFile('cache', 'index.json'); - } - - return $this->returnJson($index); - } - - private function createIndex() - { - $write = new WriteCache(); - - # get content structure - $structure = $write->getCache('cache', 'structure.txt'); - - # get data for search-index - $index = $this->getAllContent($structure, $write); - - # store the index file here - $write->writeFile('cache', 'index.json', json_encode($index, JSON_UNESCAPED_SLASHES)); - } - - private function getAllContent($structure, $write, $index = NULL) - { - foreach($structure as $item) - { - if($item->elementType == "folder") - { - if($item->fileType == 'md') - { - $page = $write->getFileWithPath('content' . $item->path . DIRECTORY_SEPARATOR . 'index.md'); - $pageArray = $this->getPageContentArray($page, $item->urlAbs); - $index[$pageArray['url']] = $pageArray; - } - - $index = $this->getAllContent($item->folderContent, $write, $index); - } - else - { - $page = $write->getFileWithPath('content' . $item->path); - $pageArray = $this->getPageContentArray($page, $item->urlAbs); - $index[$pageArray['url']] = $pageArray; - } - } - return $index; - } - - private function getPageContentArray($page, $url) - { - $parts = explode("\n", $page, 2); - - # get the title / headline - $title = trim($parts[0], '# '); - $title = str_replace(["\r\n", "\n", "\r"],' ', $title); - - # get and cleanup the content - $content = $parts[1]; - $content = strip_tags($content); - $content = str_replace(["\r\n", "\n", "\r"],' ', $content); - - $pageContent = [ - 'title' => $title, - 'content' => $content, - 'url' => $url - ]; - - return $pageContent; - } -} \ No newline at end of file diff --git a/plugins/search/public/lunr-licence.md b/plugins/search/public/lunr-licence.md deleted file mode 100644 index 93bece9..0000000 --- a/plugins/search/public/lunr-licence.md +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2013 by Oliver Nightingale - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/plugins/search/public/lunr.min.js b/plugins/search/public/lunr.min.js deleted file mode 100644 index 34b279d..0000000 --- a/plugins/search/public/lunr.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.6 - * Copyright (C) 2019 Oliver Nightingale - * @license MIT - */ -!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.6",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/plugins/search/public/search.css b/plugins/search/public/search.css deleted file mode 100644 index 4979af4..0000000 --- a/plugins/search/public/search.css +++ /dev/null @@ -1,64 +0,0 @@ -.searchContainer{ - overflow: hidden; - width: 100%; - vertical-align: middle; - white-space: nowrap; -} -.searchContainer input{ - width: 100%; - height: 50px; - border: 1px solid #ddd; - font-size: 1rem; - float: left; - padding-left: 15px; - border-radius: 2px; - box-sizing:border-box; -} -.searchContainer button{ - border-top-right-radius: 2px; - border-bottom-right-radius: 2px; - border: none; - background: #232833; - height: 50px; - width: 50px; - color: #fff; - font-size: 10pt; - margin-left: -50px; -} -.searchContainer button:hover,.searchContainer button:focus, .searchContainer button:active{ - cursor: pointer; -} - -#searchresult{ -} -.resultwrapper{ -} -button#closeSearchResult{ - position: absolute; - right: 0px; - top: 0px; - margin: 10px; - border: none; - border-radius: 2px; - font-size: 1rem; - color: #fff; - background: #000; - padding: 15px; -} -button#closeSearchResult:hover,#closeSearchResult:focus{ - cursor: pointer; -} -.resultlist{ - margin: 0px; - padding: 0px; - list-style:none; -} -.resultitem{ - -} -.resultheader{ - -} -.resultsnippet{ - -} \ No newline at end of file diff --git a/plugins/search/public/search.js b/plugins/search/public/search.js deleted file mode 100644 index 639ab18..0000000 --- a/plugins/search/public/search.js +++ /dev/null @@ -1,115 +0,0 @@ -var searchField = document.getElementById("searchField"); -var searchButton = document.getElementById("searchButton"); - -if(searchField && searchButton) -{ - var searchIndex = false; - var documents = false; - var holdcontent = false; - var contentwrapper = false; - - searchField.addEventListener("focus", function(event){ - - if(!searchIndex) - { - myaxios.get('/indexrs51gfe2o2') - .then(function (response) { - - documents = JSON.parse(response.data); - - searchIndex = lunr(function() { - this.ref("id"); - this.field("title", { boost: 10 }); - this.field("content"); - for (var key in documents){ - this.add({ - "id": documents[key].url, - "title": documents[key].title, - "content": documents[key].content - }); - } - }); - - }) - .catch(function (error) {}); - } - }); - - searchButton.addEventListener("click", function(event){ - event.preventDefault(); - - var term = document.getElementById('searchField').value; - var results = searchIndex.search(term); - - var resultPages = results.map(function (match) { - return documents[match.ref]; - }); - - resultsString = "

    Result for " + term + "

    "; - resultsString += ""; - resultsString += "
      "; - resultPages.forEach(function (r) { - resultsString += "
    • "; - resultsString += "

      " + r.title + "

      "; - resultsString += "
      " + r.content.substring(0, 200) + " ...
      "; - resultsString += "
    • " - }); - resultsString += "
    "; - - if(!holdcontent) - { - contentwrapper = document.getElementById("searchresult").parentNode; - holdcontent = contentwrapper.innerHTML; - } - - contentwrapper.innerHTML = resultsString; - - document.getElementById("closeSearchResult").addEventListener("click", function(event){ - contentwrapper.innerHTML = holdcontent; - }); - - }, false); -} - -/* -var searchIndex = lunr(function() { - this.ref("id"); - this.field("title", { boost: 10 }); - this.field("content"); - for (var key in window.pages) { - this.add({ - "id": key, - "title": pages[key].title, - "content": pages[key].content - }); - } -}); - -function getQueryVariable(variable) { - var query = window.location.search.substring(1); - var vars = query.split("&"); - for (var i = 0; i < vars.length; i++) { - var pair = vars[i].split("="); - if (pair[0] === variable) { - return decodeURIComponent(pair[1].replace(/\+/g, "%20")); - } - } -} - -var searchTerm = getQueryVariable("q"); -// creation of searchIndex from earlier example -var results = searchIndex.search(searchTerm); -var resultPages = results.map(function (match) { - return pages[match.ref]; -}); - -// resultPages from previous example -resultsString = ""; -resultPages.forEach(function (r) { - resultsString += "
  • "; - resultsString += "

    " + r.title + "

    "; - resultsString += "
    " + r.content.substring(0, 200) + "
    "; - resultsString += "
  • " -}); -document.querySelector("#search-results").innerHTML = resultsString; -*/ \ No newline at end of file diff --git a/plugins/search/search.php b/plugins/search/search.php deleted file mode 100644 index 8e93719..0000000 --- a/plugins/search/search.php +++ /dev/null @@ -1,128 +0,0 @@ - 'onsettingsLoaded', - 'onContentArrayLoaded' => 'onContentArrayLoaded', - 'onPageReady' => 'onPageReady', - 'onPagePublished' => 'onPagePublished', - 'onPageUnpublished' => 'onPageUnpublished', - 'onPageSorted' => 'onPageSorted', - 'onPageDeleted' => 'onPageDeleted', - ); - } - - # get search.json with route - # update search.json on publish - - public static function addNewRoutes() - { - # the route for the api calls - return array( - array( - 'httpMethod' => 'get', - 'route' => '/indexrs51gfe2o2', - 'class' => 'Plugins\search\index:index' - ), - ); - } - - public function onSettingsLoaded($settings) - { - $this->settings = $settings->getData(); - } - - # at any of theses events, delete the old search index - public function onPagePublished($item) - { - $this->deleteSearchIndex(); - } - public function onPageUnpublished($item) - { - $this->deleteSearchIndex(); - } - public function onPageSorted($inputParams) - { - $this->deleteSearchIndex(); - } - public function onPageDeleted($item) - { - $this->deleteSearchIndex(); - } - - private function deleteSearchIndex() - { - $write = new Write(); - - # store the index file here - $write->deleteFileWithPath('cache' . DIRECTORY_SEPARATOR . 'index.json'); - } - - public function onContentArrayLoaded($contentArray) - { - # get content array - $content = $contentArray->getData(); - $settings = $this->getPluginSettings('search'); - $salt = "asPx9Derf2"; - - # activate axios and vue in frontend - $this->activateAxios(); - $this->activateVue(); - - # add the css and vue application - $this->addCSS('/search/public/search.css'); - $this->addJS('/search/public/lunr.min.js'); - $this->addJS('/search/public/search.js'); - - # simple security for first request - $secret = time(); - $secret = substr($secret,0,-1); - $secret = md5($secret . $salt); - - # simple csrf protection with a session for long following requests - if (session_status() == PHP_SESSION_NONE) { - session_start(); - } - - $length = 32; - $token = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, $length); - $_SESSION['search'] = $token; - $_SESSION['search-expire'] = time() + 1300; # 60 seconds * 30 minutes - - # create div for vue app - $search = '
    '; - - # create content type - $search = Array - ( - 'rawHtml' => $search, - 'allowRawHtmlInSafeMode' => true, - 'autobreak' => 1 - ); - - $content[] = $search; - - $contentArray->setData($content); - } - - public function onPageReady($page) - { - $pageData = $page->getData($page); - - $pageData['widgets']['search'] = '
    '. - ''. - ''. - '
    '; - $page->setData($pageData); - } -} \ No newline at end of file diff --git a/plugins/search/search.yaml b/plugins/search/search.yaml deleted file mode 100644 index d47f64f..0000000 --- a/plugins/search/search.yaml +++ /dev/null @@ -1,8 +0,0 @@ -name: Search -version: 1.0.0 -description: Add a search to your website with lunr.js. -author: Trendschau -homepage: https://typemill.net -licence: MIT -paypal: https://paypal.me/typemill -amount: 10 \ No newline at end of file diff --git a/plugins/search/search.zip b/plugins/search/search.zip deleted file mode 100644 index af82cbd51da8c889ce656c60b3956d808a3a0972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13835 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%0DEU|) zLF7wra$*w1fWG^fyXFU0G5n7#F0rl#4fdb-J~UY}BL`N1{@n2H&ek*L1_V^#iEW3( zF%iFwNkee`4>BM!@*x^qKkhPbnw!TzZF@?K^h7`XOxYbxdL{RvD+$RQ78w)Jg!UUhtFD8Vy zWtsq-I&7pgJ+NW1LcgABqeYqn+>(Z8!Zwl_6qnq`>{N({f3B%PXLjN2oBj zhOx9Oftmg4^~j2l!klE`uft%OsTQXxB|nHdO!!IP9Y!;f)Oc)->%9^S%~H9-?CyQC z0?Ir}MRgf_7w(cb*Wk*UIyRe`Nl=fQiMr?u61GY!&6m)*mdQOkMu%Tcpa|gw z$dbPW=tpu7v$onsB2#1*Q5WHY*hI~PtM?^xT-}N94|w!le1Bi&NgQ4Xp~Fw3F;A

    P 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 e$mjp<|2CGB1pTwP005AGuGl}j%7pQ+(f