diff --git a/README.md b/README.md index fb54dad..5b7dbc6 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,9 @@ Memex supports: - projects - themes -To change theme simply drag a [theme svg file](https://github.com/hundredrabbits/Themes/tree/master/themes) onto the Memex webpage or app. +To change theme simply drag a [theme svg file](https://github.com/hundredrabbits/Themes/tree/master/themes) onto the Memex webpage or app -More information on themes can be found [here](https://github.com/hundredrabbits/Themes). +More information on themes can be found [here](https://github.com/hundredrabbits/Themes) ### Live Examples @@ -40,11 +40,11 @@ More information on themes can be found [here](https://github.com/hundredrabbits git clone git@github.com:kormyen/memex.git ``` -Then open `memex/docs/index.html` in any web browser. +Then open `memex/docs/index.html` in any web browser -The web content is isolated in a folder to seperate it from Electron (app-building) files. +The web content is isolated in a folder to seperate it from Electron (app-building) files -The folder is called 'docs' so that the 'Github Pages' feature can host it, another folder name doesn't seem supported. +The folder is called 'docs' so that the 'Github Pages' feature can host it, another folder name doesn't seem supported ### App Development ``` @@ -93,7 +93,6 @@ Stored in a human-readable, flat-file database called [Indental](https://wiki.xx ### Dependencies - Database parser: [Indental](https://wiki.xxiivv.com/#indental) -- Template parser: [Runic](https://wiki.xxiivv.com/#runic) - Theming: [Themes](https://github.com/hundredrabbits/Themes) - Grid layout: [Masonry](https://masonry.desandro.com/) - App builder: [Electron](https://electronjs.org/) diff --git a/docs/content/data.ndtl b/docs/content/data.ndtl index a2a059a..db5e771 100644 --- a/docs/content/data.ndtl +++ b/docs/content/data.ndtl @@ -4155,7 +4155,23 @@ CSS LOADERS TAGS : web, design, code, inspiration BOOK OF SHADERS + DATE : 12018-11-01 LINK > https://thebookofshaders.com/ > https://github.com/patriciogonzalezvivo/thebookofshaders + +TYRES WHEEL SIZE GRIP + DATE : 12018-11-01 + LINK : https://www.youtube.com/watch?v=s79ID1SsE-8 + TAGS : car + NOTE + > Bigger wheels generally allow for wider tyres + > Bigger wheels are generally heavier + > Wider tyres gives more grip + > Generally the more powerful an engine, the bigger and wider tyre you need in order to put the power down (not spin) + > Tyres size affects gear ratio + +MAKE IT + DATE : 12018-11-01 + QOTE : "If you feel like you've made it, what is the motivation to keep going?" ` \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index e930fc6..d90ac21 100644 --- a/docs/index.html +++ b/docs/index.html @@ -21,7 +21,6 @@ - diff --git a/docs/logic/lib/runic.js b/docs/logic/lib/runic.js deleted file mode 100644 index ce2e5d5..0000000 --- a/docs/logic/lib/runic.js +++ /dev/null @@ -1,184 +0,0 @@ -function Runic(raw) -{ - this.raw = raw; - - this.runes = { - "&":{glyph:"&",tag:"p",class:""}, - "~":{glyph:"~",tag:"list",sub:"ln",class:"parent",stash:true}, - "-":{glyph:"-",tag:"list",sub:"ln",class:"",stash:true}, - "=":{glyph:"=",tag:"list",sub:"ln",class:"mini",stash:true}, - "!":{glyph:"!",tag:"table",sub:"tr",wrap:"th",class:"outline",stash:true}, - "|":{glyph:"|",tag:"table",sub:"tr",wrap:"td",class:"outline",stash:true}, - "#":{glyph:"#",tag:"code",sub:"ln",class:"",stash:true}, - "%":{glyph:"%"}, // media - "?":{glyph:"?",tag:"note",class:""}, - ":":{glyph:":",tag:"info",class:""}, - "*":{glyph:"*",tag:"h3",class:""}, - ">":{glyph:">",tag:"",class:""}, - "@":{glyph:"@",tag:"quote",class:""} - } - - this.stash = { - rune : "", - all : [], - add : function(rune,item){ - this.rune = this.copy(rune) - this.all.push({rune:rune,item:item}); - }, - pop : function(){ - var copy = this.copy(this.all); - this.all = []; - return copy; - }, - is_pop : function(rune){ - return this.all.length > 0 && rune.tag != this.rune.tag; - }, - length: function() - { - return this.all.length; - }, - copy : function(data){ - return JSON.parse(JSON.stringify(data)); - } - } - - this.parse = function(raw = this.raw) - { - if(!raw){ return ""; } - - var html = ""; - var lines = raw; - var lines = !Array.isArray(raw) ? raw.split("\n") : raw; - - for(let id in lines) - { - var char = lines[id].substr(0,1).trim().toString() - var rune = this.runes[char]; - - var trail = lines[id].substr(1,1); - if(char == "%"){ - if(this.stash.is_pop(rune)){ html += this.render_stash(); } - html += this.media(lines[id].substr(2)); - continue; - } - if(char == "@"){ - if(this.stash.is_pop(rune)){ html += this.render_stash(); } - html += this.media(lines[id].substr(2)); - continue; - } - var line = lines[id].substr(2).to_markup(); - if(!line || line.trim() == ""){ continue; } - if(!rune){ console.log(`Unknown rune:${char} : ${line}`); } - if(trail != " "){ console.warn("Runic","Non-rune["+trail+"] at:"+id+"("+line+")"); continue; } - - if(this.stash.is_pop(rune)){ html += this.render_stash(); } - if(rune.stash === true){ this.stash.add(rune,line) ; continue; } - html += this.render(line,rune); - } - if(this.stash.length() > 0){ html += this.render_stash(); } - return html; - } - - this.render_stash = function() - { - var rune = this.stash.rune; - var stash = this.stash.pop(); - - var html = ""; - for(let id in stash){ - var rune = stash[id].rune; - var line = stash[id].item; - html += rune.wrap ? `<${rune.sub}><${rune.wrap}>${line.replace(/\|/g,`<${rune.wrap}>`).trim()}` : `<${rune.sub}>${line}`; - } - return `<${rune.tag} class='${rune.class}'>${html}` - } - - this.render = function(line = "",rune = null) - { - if(rune && rune.tag == "img"){ return ``; } - if(rune && rune.tag == "table"){ return "HEY"; } - - return rune ? (rune.tag ? `<${rune.tag} class='${rune.class}'>${line}` : line) : ""; - } - - this.media = function(val) - { - var service = val.split(" ")[0]; - let id = val.split(" ")[1]; - - if(service == "itchio"){ - return ``; - } - if(service == "bandcamp"){ - return ``; - } - if(service == "youtube"){ - return ``; - } - if(service == "custom"){ - return ``; - } - return `` - } - - this.quote = function(content) - { - var parts = content.split(" | ") - var text = parts[0] - var author = parts[1] - var source = parts[2] - var link = parts[3] - - return `

${text}

${author ? `

${link ? `${author}, ${source}` : `${author}`}

` : ''}
` - } - - this.html = function() - { - return this.parse(raw); - } - - this.toString = function() - { - return this.html(); - } -} - -String.prototype.capitalize = function() -{ - return this.charAt(0).toUpperCase() + this.slice(1).toLowerCase(); -} - -String.prototype.to_url = function() -{ - return this.toLowerCase().replace(/ /g,"+").replace(/[^0-9a-z\+]/gi,"").trim(); -} - -String.prototype.to_path = function() -{ - return this.toLowerCase().replace(/ /g,".").replace(/[^0-9a-z\.]/gi,"").trim(); -} - -String.prototype.to_markup = function() -{ - html = this; - html = html.replace(/{_/g,"").replace(/_}/g,"") - html = html.replace(/{\*/g,"").replace(/\*}/g,"") - html = html.replace(/{\#/g,"").replace(/\#}/g,"") - - var parts = html.split("{{") - for(let id in parts){ - var part = parts[id]; - if(part.indexOf("}}") == -1){ continue; } - var content = part.split("}}")[0]; - var target = content.indexOf("|") > -1 ? content.split("|")[1] : content; - var name = content.indexOf("|") > -1 ? content.split("|")[0] : content; - var external = (target.indexOf("https:") > -1 || target.indexOf("http:") > -1 || target.indexOf("dat:") > -1); - html = html.replace(`{{${content}}}`,external ? `${name}` : `${name}`) - } - return html; -} - -String.prototype.toProperCase = function () -{ - return this.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); -} \ No newline at end of file