commit aaef6994f53a0de8d733360f2e91d60e37035d07 Author: Henk Kalkwater Date: Sat Jul 18 03:24:52 2020 +0200 First diff --git a/articles/01-hello-world.yamd b/articles/01-hello-world.yamd new file mode 100644 index 0000000..12ecfa7 --- /dev/null +++ b/articles/01-hello-world.yamd @@ -0,0 +1,47 @@ +title: Hello World +slug: hello-world +firstPublished: 2019-06-30 14:31:45 +updated: 2020-06-26 11:28:00 +author: Chris Josten +hidden: true +tags: +- test +--- +Hello, world! This is the first article ever written on this site! It +mainly consists of tests to check out the features of this website and the styling. + +# Second paragraph + +[test](https://example.com) + +![This is a full-width image](/static/img/logo.png "Title text") + +![This is an inline image](/static/img/logo.png "Title text"){width=100px} This C has eyes. Wow, isn't that +amazing! I bet it Cs more than you! We still need more filler text to make it to the end of this page. +Nothing happened. You have been invited to nothing. + +> I might be wise. +> + +` +code.execute(); +` + +Quibusdam laborum reprehenderit voluptate labore perferendis consequatur odit laboriosam. Perspiciatis saepe consequuntur voluptas. Deserunt et totam asperiores natus nulla illum. + +Laborum quibusdam commodi corporis debitis velit eum autem. Quo labore numquam ipsa quo corrupti maxime ratione cupiditate. Ab impedit et et quo et sed. + +Eaque officiis ut minus. Repellat commodi illum qui voluptas quos. Ut labore quod adipisci enim. Dolor pariatur ut earum id quia eum non. Consequatur assumenda nihil neque nihil cupiditate corrupti eaque sint. + +Est at a quo atque vel est itaque quis. Illo enim omnis maiores quia dolorum cumque aspernatur. Rem debitis delectus eius et possimus nihil sed veniam. + +Saepe non quidem id ab dicta aliquid. Ut consequatur sint non. Enim veritatis dolor asperiores consequatur itaque aliquid dolorem. Perspiciatis rem quidem voluptas qui esse recusandae. + +```{.html .numberSource .literate} + + + + This is supposed to be such a large title that the page has to scroll + + +``` diff --git a/mijnblog b/mijnblog new file mode 100755 index 0000000..f9ad873 Binary files /dev/null and b/mijnblog differ diff --git a/pages/01-hello-world.yamd b/pages/01-hello-world.yamd new file mode 100644 index 0000000..63f8c5c --- /dev/null +++ b/pages/01-hello-world.yamd @@ -0,0 +1,47 @@ + title: Hello World + slug: hello-world + firstPublished: 2019-06-30 14:31:45 + updated: 2020-06-26 11:24:00 + author: Chris + tags: + - test + - test2 + - test3 + --- + Hello, world! This is the first article ever written on this site! It + mainly consists of tests to check out the features of this website and the styling. + + # Second paragraph + + [test](https://example.com) + + ![This is a full-width image](/static/img/icoon.png "Alt text") + + ![This is an inline image](/static/img/icoon.png "Alt text") This C has eyes. Wow, isn't that + amazing! I bet it Cs more than you! + + > I might be wise. + > + + ` + code.execute(); + ` + + Quibusdam laborum reprehenderit voluptate labore perferendis consequatur odit laboriosam. Perspiciatis saepe consequuntur voluptas. Deserunt et totam asperiores natus nulla illum. + + Laborum quibusdam commodi corporis debitis velit eum autem. Quo labore numquam ipsa quo corrupti maxime ratione cupiditate. Ab impedit et et quo et sed. + + Eaque officiis ut minus. Repellat commodi illum qui voluptas quos. Ut labore quod adipisci enim. Dolor pariatur ut earum id quia eum non. Consequatur assumenda nihil neque nihil cupiditate corrupti eaque sint. + + Est at a quo atque vel est itaque quis. Illo enim omnis maiores quia dolorum cumque aspernatur. Rem debitis delectus eius et possimus nihil sed veniam. + + Saepe non quidem id ab dicta aliquid. Ut consequatur sint non. Enim veritatis dolor asperiores consequatur itaque aliquid dolorem. Perspiciatis rem quidem voluptas qui esse recusandae. + + ```{.html .numberSource .literate} + + + + This is supposed to be such a large title that the page has to scroll + + + ``` diff --git a/pages/index.yamd b/pages/index.yamd new file mode 100644 index 0000000..044d485 --- /dev/null +++ b/pages/index.yamd @@ -0,0 +1,11 @@ +title: Home +slug: index +--- +I am Chris Josten — you might have guessed it from the url. I am a <occupation> at +<institution> right now, with a strong interest in <some jargon>. When I'm not busy with that, +I'm arguing about <hobby that appeals to nerds> and <hobby that appeals to a wider audience>. + +I have not made any substantial (yet), but [I have written some hobby projects](/projects/). + +I also would like to take this opportunity to mention that the number one is not a prime number and +that it never will be one. diff --git a/projects/harbour-audio-output.md b/projects/harbour-audio-output.md new file mode 100644 index 0000000..8c1cdc9 --- /dev/null +++ b/projects/harbour-audio-output.md @@ -0,0 +1,14 @@ +title: Audio output chooser +slug: harbour-audio-output +images: + - harbour-audio-output-1.jpg +platforms: + - Sailfish OS +technologies: + - QML + - pulseaudio +icon: harbour-audio-output.png +description: A simple application to choose the audio output of the system. +--- +A simple application to choose the audio output of the system. + diff --git a/public/static/img/256x256 b/public/static/img/256x256 new file mode 100644 index 0000000..7a4bb2c Binary files /dev/null and b/public/static/img/256x256 differ diff --git a/public/static/img/chris-icoon.png b/public/static/img/chris-icoon.png new file mode 100644 index 0000000..b0b39da Binary files /dev/null and b/public/static/img/chris-icoon.png differ diff --git a/public/static/img/logo.gif b/public/static/img/logo.gif new file mode 100644 index 0000000..d732f65 Binary files /dev/null and b/public/static/img/logo.gif differ diff --git a/public/static/img/logo.png b/public/static/img/logo.png new file mode 100644 index 0000000..f54657c Binary files /dev/null and b/public/static/img/logo.png differ diff --git a/public/static/img/logo.png.bak b/public/static/img/logo.png.bak new file mode 100644 index 0000000..c2255b1 Binary files /dev/null and b/public/static/img/logo.png.bak differ diff --git a/public/static/img/projects/icons/harbour-audio-output.png b/public/static/img/projects/icons/harbour-audio-output.png new file mode 100644 index 0000000..e6fb5f3 Binary files /dev/null and b/public/static/img/projects/icons/harbour-audio-output.png differ diff --git a/public/static/img/projects/icons/this-website.png b/public/static/img/projects/icons/this-website.png new file mode 100644 index 0000000..f54657c Binary files /dev/null and b/public/static/img/projects/icons/this-website.png differ diff --git a/public/static/img/projects/images/harbour-audio-output-1.jpg b/public/static/img/projects/images/harbour-audio-output-1.jpg new file mode 100644 index 0000000..6621985 Binary files /dev/null and b/public/static/img/projects/images/harbour-audio-output-1.jpg differ diff --git a/public/static/script/prism.js b/public/static/script/prism.js new file mode 100644 index 0000000..66ca98c --- /dev/null +++ b/public/static/script/prism.js @@ -0,0 +1,1238 @@ +/* PrismJS 1.17.1 +https://prismjs.com/download.html#themes=prism-solarizedlight&languages=markup+css+clike+javascript+c+cpp+d+java+json&plugins=line-numbers */ +var _self = (typeof window !== 'undefined') + ? window // if in browser + : ( + (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope) + ? self // if in worker + : {} // if in node js + ); + +/** + * Prism: Lightweight, robust, elegant syntax highlighting + * MIT license http://www.opensource.org/licenses/mit-license.php/ + * @author Lea Verou http://lea.verou.me + */ + +var Prism = (function (_self){ + +// Private helper vars +var lang = /\blang(?:uage)?-([\w-]+)\b/i; +var uniqueId = 0; + +/** + * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class. + * + * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned. + * + * @param {Element} element + * @returns {string} + */ +function getLanguage(element) { + while (element && !lang.test(element.className)) { + element = element.parentNode; + } + if (element) { + return (element.className.match(lang) || [, 'none'])[1].toLowerCase(); + } + return 'none'; +} + + +var _ = { + manual: _self.Prism && _self.Prism.manual, + disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, + util: { + encode: function (tokens) { + if (tokens instanceof Token) { + return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); + } else if (Array.isArray(tokens)) { + return tokens.map(_.util.encode); + } else { + return tokens.replace(/&/g, '&').replace(/ text.length) { + // Something went terribly wrong, ABORT, ABORT! + return; + } + + if (str instanceof Token) { + continue; + } + + if (greedy && i != strarr.length - 1) { + pattern.lastIndex = pos; + var match = pattern.exec(text); + if (!match) { + break; + } + + var from = match.index + (lookbehind && match[1] ? match[1].length : 0), + to = match.index + match[0].length, + k = i, + p = pos; + + for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { + p += strarr[k].length; + // Move the index i to the element in strarr that is closest to from + if (from >= p) { + ++i; + pos = p; + } + } + + // If strarr[i] is a Token, then the match starts inside another Token, which is invalid + if (strarr[i] instanceof Token) { + continue; + } + + // Number of tokens to delete and replace with the new match + delNum = k - i; + str = text.slice(pos, p); + match.index -= pos; + } else { + pattern.lastIndex = 0; + + var match = pattern.exec(str), + delNum = 1; + } + + if (!match) { + if (oneshot) { + break; + } + + continue; + } + + if(lookbehind) { + lookbehindLength = match[1] ? match[1].length : 0; + } + + var from = match.index + lookbehindLength, + match = match[0].slice(lookbehindLength), + to = from + match.length, + before = str.slice(0, from), + after = str.slice(to); + + var args = [i, delNum]; + + if (before) { + ++i; + pos += before.length; + args.push(before); + } + + var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); + + args.push(wrapped); + + if (after) { + args.push(after); + } + + Array.prototype.splice.apply(strarr, args); + + if (delNum != 1) + _.matchGrammar(text, strarr, grammar, i, pos, true, token + ',' + j); + + if (oneshot) + break; + } + } + } + }, + + tokenize: function(text, grammar) { + var strarr = [text]; + + var rest = grammar.rest; + + if (rest) { + for (var token in rest) { + grammar[token] = rest[token]; + } + + delete grammar.rest; + } + + _.matchGrammar(text, strarr, grammar, 0, 0, false); + + return strarr; + }, + + hooks: { + all: {}, + + add: function (name, callback) { + var hooks = _.hooks.all; + + hooks[name] = hooks[name] || []; + + hooks[name].push(callback); + }, + + run: function (name, env) { + var callbacks = _.hooks.all[name]; + + if (!callbacks || !callbacks.length) { + return; + } + + for (var i=0, callback; callback = callbacks[i++];) { + callback(env); + } + } + }, + + Token: Token +}; + +_self.Prism = _; + +function Token(type, content, alias, matchedStr, greedy) { + this.type = type; + this.content = content; + this.alias = alias; + // Copy of the full string this token was created from + this.length = (matchedStr || '').length|0; + this.greedy = !!greedy; +} + +Token.stringify = function(o, language) { + if (typeof o == 'string') { + return o; + } + + if (Array.isArray(o)) { + return o.map(function(element) { + return Token.stringify(element, language); + }).join(''); + } + + var env = { + type: o.type, + content: Token.stringify(o.content, language), + tag: 'span', + classes: ['token', o.type], + attributes: {}, + language: language + }; + + if (o.alias) { + var aliases = Array.isArray(o.alias) ? o.alias : [o.alias]; + Array.prototype.push.apply(env.classes, aliases); + } + + _.hooks.run('wrap', env); + + var attributes = Object.keys(env.attributes).map(function(name) { + return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; + }).join(' '); + + return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + ''; +}; + +if (!_self.document) { + if (!_self.addEventListener) { + // in Node.js + return _; + } + + if (!_.disableWorkerMessageHandler) { + // In worker + _self.addEventListener('message', function (evt) { + var message = JSON.parse(evt.data), + lang = message.language, + code = message.code, + immediateClose = message.immediateClose; + + _self.postMessage(_.highlight(code, _.languages[lang], lang)); + if (immediateClose) { + _self.close(); + } + }, false); + } + + return _; +} + +//Get current script and highlight +var script = document.currentScript || [].slice.call(document.getElementsByTagName('script')).pop(); + +if (script) { + _.filename = script.src; + + if (script.hasAttribute('data-manual')) { + _.manual = true; + } +} + +if (!_.manual) { + function highlightAutomaticallyCallback() { + if (!_.manual) { + _.highlightAll(); + } + } + + if(document.readyState !== 'loading') { + if (window.requestAnimationFrame) { + window.requestAnimationFrame(highlightAutomaticallyCallback); + } else { + window.setTimeout(highlightAutomaticallyCallback, 16); + } + } + else { + document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback); + } +} + +return _; + +})(_self); + +if (typeof module !== 'undefined' && module.exports) { + module.exports = Prism; +} + +// hack for components to work correctly in node.js +if (typeof global !== 'undefined') { + global.Prism = Prism; +} +; +Prism.languages.markup = { + 'comment': //, + 'prolog': /<\?[\s\S]+?\?>/, + 'doctype': //i, + 'cdata': //i, + 'tag': { + pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i, + greedy: true, + inside: { + 'tag': { + pattern: /^<\/?[^\s>\/]+/i, + inside: { + 'punctuation': /^<\/?/, + 'namespace': /^[^\s>\/:]+:/ + } + }, + 'attr-value': { + pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i, + inside: { + 'punctuation': [ + /^=/, + { + pattern: /^(\s*)["']|["']$/, + lookbehind: true + } + ] + } + }, + 'punctuation': /\/?>/, + 'attr-name': { + pattern: /[^\s>\/]+/, + inside: { + 'namespace': /^[^\s>\/:]+:/ + } + } + + } + }, + 'entity': /&#?[\da-z]{1,8};/i +}; + +Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] = + Prism.languages.markup['entity']; + +// Plugin to make entity title show the real entity, idea by Roman Komarov +Prism.hooks.add('wrap', function(env) { + + if (env.type === 'entity') { + env.attributes['title'] = env.content.replace(/&/, '&'); + } +}); + +Object.defineProperty(Prism.languages.markup.tag, 'addInlined', { + /** + * Adds an inlined language to markup. + * + * An example of an inlined language is CSS with `