diff --git a/index.js b/index.js index 8d611ecaf3d7fc43edba41db4e1ded40d0deb24f..b9c8a80e2f3a75fbe49d238be0d5305dc2b90ebb 100755 --- a/index.js +++ b/index.js @@ -13,16 +13,24 @@ require('./sitegin/sitegin')({ function run() { runAgain = false; if(isRunning) { + console.log("Generator is still running. Queing another run after it finishes.") runAgain = true; return; } + console.log("================================================================================") + console.log("Running generator") isRunning = true; jobs.run('pipeline',jobs) .then(function() { isRunning = false; + console.log("Generator finished") if(runAgain) run(); }) - .catch(e => console.log(e.stack)); + .catch(function(e) { + isRunning = false; + if(runAgain) run(); + console.log(e.stack) + }); } console.log('Sitegin successfully loaded'); diff --git a/sitegin/config.js b/sitegin/config.js index 3030b938a9a308827ec8892366b1ef3e2a8eaa73..375432a5d7034b078c6039b7adf60d5baacdec8b 100644 --- a/sitegin/config.js +++ b/sitegin/config.js @@ -16,7 +16,7 @@ module.exports = function() { config: { builddir: builddir, watch: watch, - articlesLocation: 'content/articles' + articlesLocation: 'content/articles', } }) } diff --git a/sitegin/legacy/markdown.js b/sitegin/markdown.js similarity index 61% rename from sitegin/legacy/markdown.js rename to sitegin/markdown.js index e6bb54040ec45cb1ab64170433f9751cd8354ecc..81b2bd272680d24a5271084680d13d2407ce2f41 100644 --- a/sitegin/legacy/markdown.js +++ b/sitegin/markdown.js @@ -1,22 +1,21 @@ +/* + * Transforms pages[0..length].content from markdown to HTML + */ + var marked = require('marked'); var renderer = new marked.Renderer(); -var toURL = require('./transformer-urlizetags.js').toURL; var highlightjs = require('highlight.js'); var path = require('path'); -var minificationOK = true; -try {require('lwip');} -catch(e) { - minificationOK = false; -} -if(process.argv[2] !== "compileonly") minificationOK = false; +var jobs = require('./jobs'); -var images = {}; +var toURL = function(url) { + return jobs.run('toURL', url); +} renderer.heading = function(text, level, raw) { return '<h' + (level+2) + ' id="' - + this.options.headerPrefix + toURL(raw) + '">' + text @@ -41,41 +40,14 @@ marked.setOptions({ smartypants: false, }); -module.exports = function() { - var tr = this; - tr.fancyname = "transformer markdown"; - tr.pre = function(cb, list) { - if(minificationOK) { - list.images.forEach((img) => { - images[img.file] = img; - }); - } - cb(); - }; - tr.forEachPage = function(article, cb) { - article.origContent = article.content; +module.exports = function(obj) { + obj.pages.forEach(function(article) { renderer.image = function(href, title, text) { href = href.split(path.sep).join("/"); href = href.split(" ="); var size = href[1]; href = href[0]; - var rel = path.relative(process.cwd(),path.resolve(article.file,href)); - rel = rel.split(path.sep).join("/"); - var img = images[rel]; - var full; - if(img) { - if(img.minified) { - full = href; - href = path.relative(article.file, img.thumb); - }else if(!minificationOK) { - full = href; - } - } - else if(process.argv[3] !== "final") { - if(!href.match("://")) { - href = "https://ok1kvk.cz"+href; - } - } + var rel = path.relative(process.cwd(),path.resolve(article.filename,href)); var out = '<img src="' + href + '" alt="' + text + '"'; if(size !== undefined) { @@ -86,15 +58,14 @@ module.exports = function() { if(size.length > 1 && size[1].length > 0) { out += ' height="' + size[1] + '"'; } - } else if(!minificationOK) { - out += ' style="max-width:512px"'; } if (title) { out += ' title="' + title + '"'; } - + out += '>'; - if(full) { + if(true) { // if lightbox + var full = href; var a = '<a href="'+full+'"'; a += ' data-lightbox="group"'; a += ' data-title="' + text + '"'; @@ -116,6 +87,6 @@ module.exports = function() { }, renderer: renderer }); - cb(); - } + }); + return Promise.resolve(obj); } diff --git a/sitegin/pipeline.js b/sitegin/pipeline.js index 0137a6f39a405cfdd79c0c7d57f8924ed3a88deb..02fd54ad7d7197f95a8dac8e34e7bf618a14cab2 100644 --- a/sitegin/pipeline.js +++ b/sitegin/pipeline.js @@ -3,5 +3,5 @@ */ module.exports = function(jobs) { - return jobs.runSequence('config','readFiles','parseHugo','gitInfo','print'); + return jobs.runSequence('config','readFiles','parseHugo','gitInfo','markdown','print'); } diff --git a/sitegin/sitegin.js b/sitegin/sitegin.js index eb24ec66dea60c050e0324bf181001de28cfc41b..504a8b7be2c4f2427f76114d3defa42418c0de0c 100644 --- a/sitegin/sitegin.js +++ b/sitegin/sitegin.js @@ -5,9 +5,11 @@ module.exports = function(config) { config, ['config', './config'], ['gitInfo', './gitInfo'], + ['markdown', './markdown'], ['parseHugo', './parseHugo'], ['print', './print'], ['readFiles', './readFiles'], + ['toURL', './toURL'], ['pipeline','./pipeline'] ) diff --git a/sitegin/toURL.js b/sitegin/toURL.js new file mode 100644 index 0000000000000000000000000000000000000000..d94e805607e69fe72284b8645b79b9c6711426ba --- /dev/null +++ b/sitegin/toURL.js @@ -0,0 +1,10 @@ + +var Latinise={};Latinise.latin_map={"Ã":"A","Ä‚":"A","Ắ":"A","Ặ":"A","Ằ":"A","Ẳ":"A","Ẵ":"A","Ç":"A","Â":"A","Ấ":"A","Ậ":"A","Ầ":"A","Ẩ":"A","Ẫ":"A","Ä":"A","Çž":"A","Ȧ":"A","Ç ":"A","Ạ":"A","È€":"A","À":"A","Ả":"A","È‚":"A","Ä€":"A","Ä„":"A","Ã…":"A","Ǻ":"A","Ḁ":"A","Ⱥ":"A","Ã":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ç¢":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ḃ":"B","Ḅ":"B","Æ":"B","Ḇ":"B","Ƀ":"B","Æ‚":"B","Ć":"C","ÄŒ":"C","Ç":"C","Ḉ":"C","Ĉ":"C","ÄŠ":"C","Ƈ":"C","È»":"C","ÄŽ":"D","á¸":"D","Ḓ":"D","Ḋ":"D","Ḍ":"D","ÆŠ":"D","Ḏ":"D","Dz":"D","Ç…":"D","Ä":"D","Æ‹":"D","DZ":"DZ","Ç„":"DZ","É":"E","Ä”":"E","Äš":"E","Ȩ":"E","Ḝ":"E","Ê":"E","Ế":"E","Ệ":"E","Ề":"E","Ể":"E","Ễ":"E","Ḙ":"E","Ë":"E","Ä–":"E","Ẹ":"E","È„":"E","È":"E","Ẻ":"E","Ȇ":"E","Ä’":"E","Ḗ":"E","Ḕ":"E","Ę":"E","Ɇ":"E","Ẽ":"E","Ḛ":"E","êª":"ET","Ḟ":"F","Æ‘":"F","Ç´":"G","Äž":"G","Ǧ":"G","Ä¢":"G","Äœ":"G","Ä ":"G","Æ“":"G","Ḡ":"G","Ǥ":"G","Ḫ":"H","Èž":"H","Ḩ":"H","Ĥ":"H","Ⱨ":"H","Ḧ":"H","Ḣ":"H","Ḥ":"H","Ħ":"H","Ã":"I","Ĭ":"I","Ç":"I","ÃŽ":"I","Ã":"I","Ḯ":"I","Ä°":"I","Ị":"I","Ȉ":"I","ÃŒ":"I","Ỉ":"I","ÈŠ":"I","Ī":"I","Ä®":"I","Æ—":"I","Ĩ":"I","Ḭ":"I","ê¹":"D","ê»":"F","ê½":"G","êž‚":"R","êž„":"S","Ꞇ":"T","ê¬":"IS","Ä´":"J","Ɉ":"J","Ḱ":"K","Ǩ":"K","Ķ":"K","Ⱪ":"K","ê‚":"K","Ḳ":"K","Ƙ":"K","Ḵ":"K","ê€":"K","ê„":"K","Ĺ":"L","Ƚ":"L","Ľ":"L","Ä»":"L","Ḽ":"L","Ḷ":"L","Ḹ":"L","â± ":"L","êˆ":"L","Ḻ":"L","Ä¿":"L","â±¢":"L","Lj":"L","Å":"L","LJ":"LJ","Ḿ":"M","á¹€":"M","Ṃ":"M","â±®":"M","Ń":"N","Ň":"N","Å…":"N","Ṋ":"N","Ṅ":"N","Ṇ":"N","Ǹ":"N","Æ":"N","Ṉ":"N","È ":"N","Ç‹":"N","Ñ":"N","ÇŠ":"NJ","Ó":"O","ÅŽ":"O","Ç‘":"O","Ô":"O","á»":"O","Ộ":"O","á»’":"O","á»”":"O","á»–":"O","Ö":"O","Ȫ":"O","È®":"O","È°":"O","Ọ":"O","Å":"O","ÈŒ":"O","Ã’":"O","Ỏ":"O","Æ ":"O","Ớ":"O","Ợ":"O","Ờ":"O","Ở":"O","á» ":"O","ÈŽ":"O","êŠ":"O","êŒ":"O","ÅŒ":"O","á¹’":"O","á¹":"O","ÆŸ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Õ":"O","Ṍ":"O","Ṏ":"O","Ȭ":"O","Æ¢":"OI","êŽ":"OO","Æ":"E","Ɔ":"O","È¢":"OU","á¹”":"P","á¹–":"P","ê’":"P","Ƥ":"P","ê”":"P","â±£":"P","ê":"P","ê˜":"Q","ê–":"Q","Å”":"R","Ř":"R","Å–":"R","Ṙ":"R","Ṛ":"R","Ṝ":"R","È":"R","È’":"R","Ṟ":"R","ÉŒ":"R","Ɽ":"R","Ꜿ":"C","ÆŽ":"E","Åš":"S","Ṥ":"S","Å ":"S","Ṧ":"S","Åž":"S","Åœ":"S","Ș":"S","á¹ ":"S","á¹¢":"S","Ṩ":"S","Ť":"T","Å¢":"T","á¹°":"T","Èš":"T","Ⱦ":"T","Ṫ":"T","Ṭ":"T","Ƭ":"T","á¹®":"T","Æ®":"T","Ŧ":"T","Ɐ":"A","Ꞁ":"L","Æœ":"M","É…":"V","Ꜩ":"TZ","Ú":"U","Ŭ":"U","Ç“":"U","Û":"U","Ṷ":"U","Ãœ":"U","Ç—":"U","Ç™":"U","Ç›":"U","Ç•":"U","á¹²":"U","Ụ":"U","Å°":"U","È”":"U","Ù":"U","Ủ":"U","Ư":"U","Ứ":"U","á»°":"U","Ừ":"U","Ử":"U","á»®":"U","È–":"U","Ū":"U","Ṻ":"U","Ų":"U","Å®":"U","Ũ":"U","Ṹ":"U","á¹´":"U","êž":"V","á¹¾":"V","Ʋ":"V","á¹¼":"V","ê ":"VY","Ẃ":"W","Å´":"W","Ẅ":"W","Ẇ":"W","Ẉ":"W","Ẁ":"W","â±²":"W","Ẍ":"X","Ẋ":"X","Ã":"Y","Ŷ":"Y","Ÿ":"Y","Ẏ":"Y","á»´":"Y","Ỳ":"Y","Ƴ":"Y","Ỷ":"Y","Ỿ":"Y","Ȳ":"Y","ÉŽ":"Y","Ỹ":"Y","Ź":"Z","Ž":"Z","áº":"Z","Ⱬ":"Z","Å»":"Z","Ẓ":"Z","Ȥ":"Z","Ẕ":"Z","Ƶ":"Z","IJ":"IJ","Å’":"OE","á´€":"A","á´":"AE","Ê™":"B","á´ƒ":"B","á´„":"C","á´…":"D","á´‡":"E","ꜰ":"F","É¢":"G","Ê›":"G","Êœ":"H","ɪ":"I","Ê":"R","á´Š":"J","á´‹":"K","ÊŸ":"L","á´Œ":"L","á´":"M","É´":"N","á´":"O","ɶ":"OE","á´":"O","á´•":"OU","á´˜":"P","Ê€":"R","á´Ž":"N","á´™":"R","ꜱ":"S","á´›":"T","â±»":"E","á´š":"R","á´œ":"U","á´ ":"V","á´¡":"W","Ê":"Y","á´¢":"Z","á":"a","ă":"a","ắ":"a","ặ":"a","ằ":"a","ẳ":"a","ẵ":"a","ÇŽ":"a","â":"a","ấ":"a","áº":"a","ầ":"a","ẩ":"a","ẫ":"a","ä":"a","ÇŸ":"a","ȧ":"a","Ç¡":"a","ạ":"a","È":"a","à ":"a","ả":"a","ȃ":"a","Ä":"a","Ä…":"a","á¶":"a","ẚ":"a","Ã¥":"a","Ç»":"a","á¸":"a","â±¥":"a","ã":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","Ç£":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ḃ":"b","ḅ":"b","É“":"b","ḇ":"b","ᵬ":"b","ᶀ":"b","Æ€":"b","ƃ":"b","ɵ":"o","ć":"c","Ä":"c","ç":"c","ḉ":"c","ĉ":"c","É•":"c","Ä‹":"c","ƈ":"c","ȼ":"c","Ä":"d","ḑ":"d","ḓ":"d","È¡":"d","ḋ":"d","á¸":"d","É—":"d","ᶑ":"d","á¸":"d","áµ":"d","á¶":"d","Ä‘":"d","É–":"d","ÆŒ":"d","ı":"i","È·":"j","ÉŸ":"j","Ê„":"j","dz":"dz","dž":"dz","é":"e","Ä•":"e","Ä›":"e","È©":"e","á¸":"e","ê":"e","ế":"e","ệ":"e","á»":"e","ể":"e","á»…":"e","ḙ":"e","ë":"e","Ä—":"e","ẹ":"e","È…":"e","è":"e","ẻ":"e","ȇ":"e","Ä“":"e","ḗ":"e","ḕ":"e","ⱸ":"e","Ä™":"e","ᶒ":"e","ɇ":"e","ẽ":"e","ḛ":"e","ê«":"et","ḟ":"f","Æ’":"f","áµ®":"f","ᶂ":"f","ǵ":"g","ÄŸ":"g","ǧ":"g","Ä£":"g","Ä":"g","Ä¡":"g","É ":"g","ḡ":"g","ᶃ":"g","Ç¥":"g","ḫ":"h","ÈŸ":"h","ḩ":"h","Ä¥":"h","ⱨ":"h","ḧ":"h","ḣ":"h","ḥ":"h","ɦ":"h","ẖ":"h","ħ":"h","Æ•":"hv","Ã":"i","Ä":"i","Ç":"i","î":"i","ï":"i","ḯ":"i","ị":"i","ȉ":"i","ì":"i","ỉ":"i","È‹":"i","Ä«":"i","į":"i","ᶖ":"i","ɨ":"i","Ä©":"i","á¸":"i","êº":"d","ê¼":"f","áµ¹":"g","ꞃ":"r","êž…":"s","ꞇ":"t","ê":"is","Ç°":"j","ĵ":"j","Ê":"j","ɉ":"j","ḱ":"k","Ç©":"k","Ä·":"k","ⱪ":"k","êƒ":"k","ḳ":"k","Æ™":"k","ḵ":"k","ᶄ":"k","ê":"k","ê…":"k","ĺ":"l","Æš":"l","ɬ":"l","ľ":"l","ļ":"l","ḽ":"l","È´":"l","ḷ":"l","ḹ":"l","ⱡ":"l","ê‰":"l","ḻ":"l","Å€":"l","É«":"l","ᶅ":"l","É":"l","Å‚":"l","lj":"lj","Å¿":"s","ẜ":"s","ẛ":"s","áº":"s","ḿ":"m","á¹":"m","ṃ":"m","ɱ":"m","ᵯ":"m","ᶆ":"m","Å„":"n","ň":"n","ņ":"n","ṋ":"n","ȵ":"n","á¹…":"n","ṇ":"n","ǹ":"n","ɲ":"n","ṉ":"n","Æž":"n","áµ°":"n","ᶇ":"n","ɳ":"n","ñ":"n","ÇŒ":"nj","ó":"o","Å":"o","Ç’":"o","ô":"o","ố":"o","á»™":"o","ồ":"o","ổ":"o","á»—":"o","ö":"o","È«":"o","ȯ":"o","ȱ":"o","á»":"o","Å‘":"o","È":"o","ò":"o","á»":"o","Æ¡":"o","á»›":"o","ợ":"o","á»":"o","ở":"o","ỡ":"o","È":"o","ê‹":"o","ê":"o","ⱺ":"o","Å":"o","ṓ":"o","ṑ":"o","Ç«":"o","Ç":"o","ø":"o","Ç¿":"o","õ":"o","á¹":"o","á¹":"o","È":"o","Æ£":"oi","ê":"oo","É›":"e","ᶓ":"e","É”":"o","ᶗ":"o","È£":"ou","ṕ":"p","á¹—":"p","ê“":"p","Æ¥":"p","áµ±":"p","ᶈ":"p","ê•":"p","áµ½":"p","ê‘":"p","ê™":"q","Ê ":"q","É‹":"q","ê—":"q","Å•":"r","Å™":"r","Å—":"r","á¹™":"r","á¹›":"r","á¹":"r","È‘":"r","ɾ":"r","áµ³":"r","È“":"r","ṟ":"r","ɼ":"r","áµ²":"r","ᶉ":"r","É":"r","ɽ":"r","ↄ":"c","ꜿ":"c","ɘ":"e","É¿":"r","Å›":"s","á¹¥":"s","Å¡":"s","ṧ":"s","ÅŸ":"s","Å":"s","È™":"s","ṡ":"s","á¹£":"s","ṩ":"s","Ê‚":"s","áµ´":"s","ᶊ":"s","È¿":"s","É¡":"g","á´‘":"o","á´“":"o","á´":"u","Å¥":"t","Å£":"t","á¹±":"t","È›":"t","ȶ":"t","ẗ":"t","ⱦ":"t","ṫ":"t","á¹":"t","Æ":"t","ṯ":"t","áµµ":"t","Æ«":"t","ʈ":"t","ŧ":"t","ᵺ":"th","É":"a","á´‚":"ae","Ç":"e","áµ·":"g","É¥":"h","Ê®":"h","ʯ":"h","á´‰":"i","Êž":"k","êž":"l","ɯ":"m","É°":"m","á´”":"oe","ɹ":"r","É»":"r","ɺ":"r","â±¹":"r","ʇ":"t","ÊŒ":"v","Ê":"w","ÊŽ":"y","ꜩ":"tz","ú":"u","Å":"u","Ç”":"u","û":"u","á¹·":"u","ü":"u","ǘ":"u","Çš":"u","Çœ":"u","Ç–":"u","á¹³":"u","ụ":"u","ű":"u","È•":"u","ù":"u","ủ":"u","Æ°":"u","ứ":"u","á»±":"u","ừ":"u","á»":"u","ữ":"u","È—":"u","Å«":"u","á¹»":"u","ų":"u","ᶙ":"u","ů":"u","Å©":"u","á¹¹":"u","á¹µ":"u","ᵫ":"ue","ê¸":"um","â±´":"v","êŸ":"v","ṿ":"v","Ê‹":"v","ᶌ":"v","â±±":"v","á¹½":"v","ê¡":"vy","ẃ":"w","ŵ":"w","ẅ":"w","ẇ":"w","ẉ":"w","áº":"w","â±³":"w","ẘ":"w","áº":"x","ẋ":"x","á¶":"x","ý":"y","Å·":"y","ÿ":"y","áº":"y","ỵ":"y","ỳ":"y","Æ´":"y","á»·":"y","ỿ":"y","ȳ":"y","ẙ":"y","É":"y","ỹ":"y","ź":"z","ž":"z","ẑ":"z","Ê‘":"z","ⱬ":"z","ż":"z","ẓ":"z","È¥":"z","ẕ":"z","ᵶ":"z","ᶎ":"z","Ê":"z","ƶ":"z","É€":"z","ff":"ff","ffi":"ffi","ffl":"ffl","ï¬":"fi","fl":"fl","ij":"ij","Å“":"oe","st":"st","â‚":"a","â‚‘":"e","áµ¢":"i","â±¼":"j","â‚’":"o","áµ£":"r","ᵤ":"u","áµ¥":"v","â‚“":"x"}; +String.prototype.latinise=function(){return this.replace(/[^A-Za-z0-9\[\] ]/g,function(a){return Latinise.latin_map[a]||a})}; +String.prototype.latinize=String.prototype.latinise; +String.prototype.isLatin=function(){return this==this.latinise()} + +module.exports = function(tag) { + if(tag == undefined) return undefined; + return tag.toLowerCase().latinise().replace(/ /g,"-");; +}