diff options
author | Alexander M Pickering <alex@cogarr.net> | 2024-11-22 23:18:20 -0600 |
---|---|---|
committer | Alexander M Pickering <alex@cogarr.net> | 2024-11-22 23:18:20 -0600 |
commit | a76dfe8beca1392db5a1d0bc74df43fb3bdc43b6 (patch) | |
tree | 87690da637f303b6e25c13d83a117213087d15ba | |
parent | 95bf14904d6e496c64466a12823e9b74f5a0b090 (diff) | |
download | website-a76dfe8beca1392db5a1d0bc74df43fb3bdc43b6.tar.gz website-a76dfe8beca1392db5a1d0bc74df43fb3bdc43b6.tar.bz2 website-a76dfe8beca1392db5a1d0bc74df43fb3bdc43b6.zip |
start working on webpage
-rw-r--r-- | html/highlight.min.js | 396 | ||||
-rw-r--r-- | html/index.html | 143 | ||||
-rw-r--r-- | html/milligram.min.css | 3 | ||||
-rw-r--r-- | html/milligram.min.css.map | 1 | ||||
-rw-r--r-- | html/tokyo-night-dark.css | 114 | ||||
-rw-r--r-- | html/tokyo-night-light.css | 114 | ||||
-rwxr-xr-x | init | 2 | ||||
-rw-r--r-- | meta.lua | 8 |
8 files changed, 779 insertions, 2 deletions
diff --git a/html/highlight.min.js b/html/highlight.min.js new file mode 100644 index 0000000..6729c11 --- /dev/null +++ b/html/highlight.min.js | |||
@@ -0,0 +1,396 @@ | |||
1 | /*! | ||
2 | Highlight.js v11.10.0 (git: 366a8bd012) | ||
3 | (c) 2006-2024 Josh Goebel <hello@joshgoebel.com> and other contributors | ||
4 | License: BSD-3-Clause | ||
5 | */ | ||
6 | var hljs=function(){"use strict";function e(t){ | ||
7 | return t instanceof Map?t.clear=t.delete=t.set=()=>{ | ||
8 | throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{ | ||
9 | throw Error("set is read-only") | ||
10 | }),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{ | ||
11 | const i=t[n],s=typeof i;"object"!==s&&"function"!==s||Object.isFrozen(i)||e(i) | ||
12 | })),t}class t{constructor(e){ | ||
13 | void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} | ||
14 | ignoreMatch(){this.isMatchIgnored=!0}}function n(e){ | ||
15 | return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'") | ||
16 | }function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] | ||
17 | ;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const s=e=>!!e.scope | ||
18 | ;class o{constructor(e,t){ | ||
19 | this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ | ||
20 | this.buffer+=n(e)}openNode(e){if(!s(e))return;const t=((e,{prefix:t})=>{ | ||
21 | if(e.startsWith("language:"))return e.replace("language:","language-") | ||
22 | ;if(e.includes(".")){const n=e.split(".") | ||
23 | ;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") | ||
24 | }return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)} | ||
25 | closeNode(e){s(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){ | ||
26 | this.buffer+=`<span class="${e}">`}}const r=(e={})=>{const t={children:[]} | ||
27 | ;return Object.assign(t,e),t};class a{constructor(){ | ||
28 | this.rootNode=r(),this.stack=[this.rootNode]}get top(){ | ||
29 | return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ | ||
30 | this.top.children.push(e)}openNode(e){const t=r({scope:e}) | ||
31 | ;this.add(t),this.stack.push(t)}closeNode(){ | ||
32 | if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ | ||
33 | for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} | ||
34 | walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ | ||
35 | return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), | ||
36 | t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ | ||
37 | "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ | ||
38 | a._collapse(e)})))}}class c extends a{constructor(e){super(),this.options=e} | ||
39 | addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ | ||
40 | this.closeNode()}__addSublanguage(e,t){const n=e.root | ||
41 | ;t&&(n.scope="language:"+t),this.add(n)}toHTML(){ | ||
42 | return new o(this,this.options).value()}finalize(){ | ||
43 | return this.closeAllNodes(),!0}}function l(e){ | ||
44 | return e?"string"==typeof e?e:e.source:null}function g(e){return h("(?=",e,")")} | ||
45 | function u(e){return h("(?:",e,")*")}function d(e){return h("(?:",e,")?")} | ||
46 | function h(...e){return e.map((e=>l(e))).join("")}function f(...e){const t=(e=>{ | ||
47 | const t=e[e.length-1] | ||
48 | ;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} | ||
49 | })(e);return"("+(t.capture?"":"?:")+e.map((e=>l(e))).join("|")+")"} | ||
50 | function p(e){return RegExp(e.toString()+"|").exec("").length-1} | ||
51 | const b=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ | ||
52 | ;function m(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n | ||
53 | ;let i=l(e),s="";for(;i.length>0;){const e=b.exec(i);if(!e){s+=i;break} | ||
54 | s+=i.substring(0,e.index), | ||
55 | i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0], | ||
56 | "("===e[0]&&n++)}return s})).map((e=>`(${e})`)).join(t)} | ||
57 | const E="[a-zA-Z]\\w*",x="[a-zA-Z_]\\w*",w="\\b\\d+(\\.\\d+)?",y="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",_="\\b(0b[01]+)",O={ | ||
58 | begin:"\\\\[\\s\\S]",relevance:0},v={scope:"string",begin:"'",end:"'", | ||
59 | illegal:"\\n",contains:[O]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", | ||
60 | contains:[O]},N=(e,t,n={})=>{const s=i({scope:"comment",begin:e,end:t, | ||
61 | contains:[]},n);s.contains.push({scope:"doctag", | ||
62 | begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", | ||
63 | end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) | ||
64 | ;const o=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) | ||
65 | ;return s.contains.push({begin:h(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s | ||
66 | },S=N("//","$"),M=N("/\\*","\\*/"),R=N("#","$");var j=Object.freeze({ | ||
67 | __proto__:null,APOS_STRING_MODE:v,BACKSLASH_ESCAPE:O,BINARY_NUMBER_MODE:{ | ||
68 | scope:"number",begin:_,relevance:0},BINARY_NUMBER_RE:_,COMMENT:N, | ||
69 | C_BLOCK_COMMENT_MODE:M,C_LINE_COMMENT_MODE:S,C_NUMBER_MODE:{scope:"number", | ||
70 | begin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{ | ||
71 | "on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ | ||
72 | t.data._beginMatch!==e[1]&&t.ignoreMatch()}}),HASH_COMMENT_MODE:R,IDENT_RE:E, | ||
73 | MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+x,relevance:0}, | ||
74 | NUMBER_MODE:{scope:"number",begin:w,relevance:0},NUMBER_RE:w, | ||
75 | PHRASAL_WORDS_MODE:{ | ||
76 | begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ | ||
77 | },QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/, | ||
78 | end:/\/[gimuy]*/,contains:[O,{begin:/\[/,end:/\]/,relevance:0,contains:[O]}]}, | ||
79 | RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", | ||
80 | SHEBANG:(e={})=>{const t=/^#![ ]*\// | ||
81 | ;return e.binary&&(e.begin=h(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t, | ||
82 | end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, | ||
83 | TITLE_MODE:{scope:"title",begin:E,relevance:0},UNDERSCORE_IDENT_RE:x, | ||
84 | UNDERSCORE_TITLE_MODE:{scope:"title",begin:x,relevance:0}});function A(e,t){ | ||
85 | "."===e.input[e.index-1]&&t.ignoreMatch()}function I(e,t){ | ||
86 | void 0!==e.className&&(e.scope=e.className,delete e.className)}function T(e,t){ | ||
87 | t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", | ||
88 | e.__beforeBegin=A,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, | ||
89 | void 0===e.relevance&&(e.relevance=0))}function L(e,t){ | ||
90 | Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function B(e,t){ | ||
91 | if(e.match){ | ||
92 | if(e.begin||e.end)throw Error("begin & end are not supported with match") | ||
93 | ;e.begin=e.match,delete e.match}}function P(e,t){ | ||
94 | void 0===e.relevance&&(e.relevance=1)}const D=(e,t)=>{if(!e.beforeMatch)return | ||
95 | ;if(e.starts)throw Error("beforeMatch cannot be used with starts") | ||
96 | ;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] | ||
97 | })),e.keywords=n.keywords,e.begin=h(n.beforeMatch,g(n.begin)),e.starts={ | ||
98 | relevance:0,contains:[Object.assign(n,{endsParent:!0})] | ||
99 | },e.relevance=0,delete n.beforeMatch | ||
100 | },H=["of","and","for","in","not","or","if","then","parent","list","value"],C="keyword" | ||
101 | ;function $(e,t,n=C){const i=Object.create(null) | ||
102 | ;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{ | ||
103 | Object.assign(i,$(e[n],t,n))})),i;function s(e,n){ | ||
104 | t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") | ||
105 | ;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){ | ||
106 | return t?Number(t):(e=>H.includes(e.toLowerCase()))(e)?0:1}const z={},W=e=>{ | ||
107 | console.error(e)},X=(e,...t)=>{console.log("WARN: "+e,...t)},G=(e,t)=>{ | ||
108 | z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0) | ||
109 | },K=Error();function F(e,t,{key:n}){let i=0;const s=e[n],o={},r={} | ||
110 | ;for(let e=1;e<=t.length;e++)r[e+i]=s[e],o[e+i]=!0,i+=p(t[e-1]) | ||
111 | ;e[n]=r,e[n]._emit=o,e[n]._multi=!0}function Z(e){(e=>{ | ||
112 | e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, | ||
113 | delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ | ||
114 | _wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope | ||
115 | }),(e=>{if(Array.isArray(e.begin)){ | ||
116 | if(e.skip||e.excludeBegin||e.returnBegin)throw W("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), | ||
117 | K | ||
118 | ;if("object"!=typeof e.beginScope||null===e.beginScope)throw W("beginScope must be object"), | ||
119 | K;F(e,e.begin,{key:"beginScope"}),e.begin=m(e.begin,{joinWith:""})}})(e),(e=>{ | ||
120 | if(Array.isArray(e.end)){ | ||
121 | if(e.skip||e.excludeEnd||e.returnEnd)throw W("skip, excludeEnd, returnEnd not compatible with endScope: {}"), | ||
122 | K | ||
123 | ;if("object"!=typeof e.endScope||null===e.endScope)throw W("endScope must be object"), | ||
124 | K;F(e,e.end,{key:"endScope"}),e.end=m(e.end,{joinWith:""})}})(e)}function V(e){ | ||
125 | function t(t,n){ | ||
126 | return RegExp(l(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":"")) | ||
127 | }class n{constructor(){ | ||
128 | this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} | ||
129 | addRule(e,t){ | ||
130 | t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), | ||
131 | this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) | ||
132 | ;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(m(e,{joinWith:"|" | ||
133 | }),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex | ||
134 | ;const t=this.matcherRe.exec(e);if(!t)return null | ||
135 | ;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] | ||
136 | ;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){ | ||
137 | this.rules=[],this.multiRegexes=[], | ||
138 | this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ | ||
139 | if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n | ||
140 | ;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), | ||
141 | t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ | ||
142 | return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ | ||
143 | this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ | ||
144 | const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex | ||
145 | ;let n=t.exec(e) | ||
146 | ;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ | ||
147 | const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} | ||
148 | return n&&(this.regexIndex+=n.position+1, | ||
149 | this.regexIndex===this.count&&this.considerAll()),n}} | ||
150 | if(e.compilerExtensions||(e.compilerExtensions=[]), | ||
151 | e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") | ||
152 | ;return e.classNameAliases=i(e.classNameAliases||{}),function n(o,r){const a=o | ||
153 | ;if(o.isCompiled)return a | ||
154 | ;[I,B,Z,D].forEach((e=>e(o,r))),e.compilerExtensions.forEach((e=>e(o,r))), | ||
155 | o.__beforeBegin=null,[T,L,P].forEach((e=>e(o,r))),o.isCompiled=!0;let c=null | ||
156 | ;return"object"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords), | ||
157 | c=o.keywords.$pattern, | ||
158 | delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=$(o.keywords,e.case_insensitive)), | ||
159 | a.keywordPatternRe=t(c,!0), | ||
160 | r&&(o.begin||(o.begin=/\B|\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\B|\b/), | ||
161 | o.end&&(a.endRe=t(a.end)), | ||
162 | a.terminatorEnd=l(a.end)||"",o.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(o.end?"|":"")+r.terminatorEnd)), | ||
163 | o.illegal&&(a.illegalRe=t(o.illegal)), | ||
164 | o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>i(e,{ | ||
165 | variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?i(e,{ | ||
166 | starts:e.starts?i(e.starts):null | ||
167 | }):Object.isFrozen(e)?i(e):e))("self"===e?o:e)))),o.contains.forEach((e=>{n(e,a) | ||
168 | })),o.starts&&n(o.starts,r),a.matcher=(e=>{const t=new s | ||
169 | ;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" | ||
170 | }))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" | ||
171 | }),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){ | ||
172 | return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{ | ||
173 | constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}} | ||
174 | const Y=n,Q=i,ee=Symbol("nomatch"),te=n=>{ | ||
175 | const i=Object.create(null),s=Object.create(null),o=[];let r=!0 | ||
176 | ;const a="Could not find the language '{}', did you forget to load/include a language module?",l={ | ||
177 | disableAutodetect:!0,name:"Plain text",contains:[]};let p={ | ||
178 | ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, | ||
179 | languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", | ||
180 | cssSelector:"pre code",languages:null,__emitter:c};function b(e){ | ||
181 | return p.noHighlightRe.test(e)}function m(e,t,n){let i="",s="" | ||
182 | ;"object"==typeof t?(i=e, | ||
183 | n=t.ignoreIllegals,s=t.language):(G("10.7.0","highlight(lang, code, ...args) has been deprecated."), | ||
184 | G("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), | ||
185 | s=e,i=t),void 0===n&&(n=!0);const o={code:i,language:s};N("before:highlight",o) | ||
186 | ;const r=o.result?o.result:E(o.language,o.code,n) | ||
187 | ;return r.code=o.code,N("after:highlight",r),r}function E(e,n,s,o){ | ||
188 | const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(R) | ||
189 | ;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(R),n="" | ||
190 | ;for(;t;){n+=R.substring(e,t.index) | ||
191 | ;const s=_.case_insensitive?t[0].toLowerCase():t[0],o=(i=s,N.keywords[i]);if(o){ | ||
192 | const[e,i]=o | ||
193 | ;if(M.addText(n),n="",c[s]=(c[s]||0)+1,c[s]<=7&&(j+=i),e.startsWith("_"))n+=t[0];else{ | ||
194 | const n=_.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0] | ||
195 | ;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(R)}var i | ||
196 | ;n+=R.substring(e),M.addText(n)}function g(){null!=N.subLanguage?(()=>{ | ||
197 | if(""===R)return;let e=null;if("string"==typeof N.subLanguage){ | ||
198 | if(!i[N.subLanguage])return void M.addText(R) | ||
199 | ;e=E(N.subLanguage,R,!0,S[N.subLanguage]),S[N.subLanguage]=e._top | ||
200 | }else e=x(R,N.subLanguage.length?N.subLanguage:null) | ||
201 | ;N.relevance>0&&(j+=e.relevance),M.__addSublanguage(e._emitter,e.language) | ||
202 | })():l(),R=""}function u(e,t){ | ||
203 | ""!==e&&(M.startScope(t),M.addText(e),M.endScope())}function d(e,t){let n=1 | ||
204 | ;const i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue} | ||
205 | const i=_.classNameAliases[e[n]]||e[n],s=t[n];i?u(s,i):(R=s,l(),R=""),n++}} | ||
206 | function h(e,t){ | ||
207 | return e.scope&&"string"==typeof e.scope&&M.openNode(_.classNameAliases[e.scope]||e.scope), | ||
208 | e.beginScope&&(e.beginScope._wrap?(u(R,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), | ||
209 | R=""):e.beginScope._multi&&(d(e.beginScope,t),R="")),N=Object.create(e,{parent:{ | ||
210 | value:N}}),N}function f(e,n,i){let s=((e,t)=>{const n=e&&e.exec(t) | ||
211 | ;return n&&0===n.index})(e.endRe,i);if(s){if(e["on:end"]){const i=new t(e) | ||
212 | ;e["on:end"](n,i),i.isMatchIgnored&&(s=!1)}if(s){ | ||
213 | for(;e.endsParent&&e.parent;)e=e.parent;return e}} | ||
214 | if(e.endsWithParent)return f(e.parent,n,i)}function b(e){ | ||
215 | return 0===N.matcher.regexIndex?(R+=e[0],1):(T=!0,0)}function m(e){ | ||
216 | const t=e[0],i=n.substring(e.index),s=f(N,e,i);if(!s)return ee;const o=N | ||
217 | ;N.endScope&&N.endScope._wrap?(g(), | ||
218 | u(t,N.endScope._wrap)):N.endScope&&N.endScope._multi?(g(), | ||
219 | d(N.endScope,e)):o.skip?R+=t:(o.returnEnd||o.excludeEnd||(R+=t), | ||
220 | g(),o.excludeEnd&&(R=t));do{ | ||
221 | N.scope&&M.closeNode(),N.skip||N.subLanguage||(j+=N.relevance),N=N.parent | ||
222 | }while(N!==s.parent);return s.starts&&h(s.starts,e),o.returnEnd?0:t.length} | ||
223 | let w={};function y(i,o){const a=o&&o[0];if(R+=i,null==a)return g(),0 | ||
224 | ;if("begin"===w.type&&"end"===o.type&&w.index===o.index&&""===a){ | ||
225 | if(R+=n.slice(o.index,o.index+1),!r){const t=Error(`0 width match regex (${e})`) | ||
226 | ;throw t.languageName=e,t.badRule=w.rule,t}return 1} | ||
227 | if(w=o,"begin"===o.type)return(e=>{ | ||
228 | const n=e[0],i=e.rule,s=new t(i),o=[i.__beforeBegin,i["on:begin"]] | ||
229 | ;for(const t of o)if(t&&(t(e,s),s.isMatchIgnored))return b(n) | ||
230 | ;return i.skip?R+=n:(i.excludeBegin&&(R+=n), | ||
231 | g(),i.returnBegin||i.excludeBegin||(R=n)),h(i,e),i.returnBegin?0:n.length})(o) | ||
232 | ;if("illegal"===o.type&&!s){ | ||
233 | const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"<unnamed>")+'"') | ||
234 | ;throw e.mode=N,e}if("end"===o.type){const e=m(o);if(e!==ee)return e} | ||
235 | if("illegal"===o.type&&""===a)return 1 | ||
236 | ;if(I>1e5&&I>3*o.index)throw Error("potential infinite loop, way more iterations than matches") | ||
237 | ;return R+=a,a.length}const _=O(e) | ||
238 | ;if(!_)throw W(a.replace("{}",e)),Error('Unknown language: "'+e+'"') | ||
239 | ;const v=V(_);let k="",N=o||v;const S={},M=new p.__emitter(p);(()=>{const e=[] | ||
240 | ;for(let t=N;t!==_;t=t.parent)t.scope&&e.unshift(t.scope) | ||
241 | ;e.forEach((e=>M.openNode(e)))})();let R="",j=0,A=0,I=0,T=!1;try{ | ||
242 | if(_.__emitTokens)_.__emitTokens(n,M);else{for(N.matcher.considerAll();;){ | ||
243 | I++,T?T=!1:N.matcher.considerAll(),N.matcher.lastIndex=A | ||
244 | ;const e=N.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e) | ||
245 | ;A=e.index+t}y(n.substring(A))}return M.finalize(),k=M.toHTML(),{language:e, | ||
246 | value:k,relevance:j,illegal:!1,_emitter:M,_top:N}}catch(t){ | ||
247 | if(t.message&&t.message.includes("Illegal"))return{language:e,value:Y(n), | ||
248 | illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A, | ||
249 | context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:k},_emitter:M};if(r)return{ | ||
250 | language:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:N} | ||
251 | ;throw t}}function x(e,t){t=t||p.languages||Object.keys(i);const n=(e=>{ | ||
252 | const t={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new p.__emitter(p)} | ||
253 | ;return t._emitter.addText(e),t})(e),s=t.filter(O).filter(k).map((t=>E(t,e,!1))) | ||
254 | ;s.unshift(n);const o=s.sort(((e,t)=>{ | ||
255 | if(e.relevance!==t.relevance)return t.relevance-e.relevance | ||
256 | ;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1 | ||
257 | ;if(O(t.language).supersetOf===e.language)return-1}return 0})),[r,a]=o,c=r | ||
258 | ;return c.secondBest=a,c}function w(e){let t=null;const n=(e=>{ | ||
259 | let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" | ||
260 | ;const n=p.languageDetectRe.exec(t);if(n){const t=O(n[1]) | ||
261 | ;return t||(X(a.replace("{}",n[1])), | ||
262 | X("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} | ||
263 | return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return | ||
264 | ;if(N("before:highlightElement",{el:e,language:n | ||
265 | }),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) | ||
266 | ;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), | ||
267 | console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), | ||
268 | console.warn("The element with unescaped HTML:"), | ||
269 | console.warn(e)),p.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML) | ||
270 | ;t=e;const i=t.textContent,o=n?m(i,{language:n,ignoreIllegals:!0}):x(i) | ||
271 | ;e.innerHTML=o.value,e.dataset.highlighted="yes",((e,t,n)=>{const i=t&&s[t]||n | ||
272 | ;e.classList.add("hljs"),e.classList.add("language-"+i) | ||
273 | })(e,n,o.language),e.result={language:o.language,re:o.relevance, | ||
274 | relevance:o.relevance},o.secondBest&&(e.secondBest={ | ||
275 | language:o.secondBest.language,relevance:o.secondBest.relevance | ||
276 | }),N("after:highlightElement",{el:e,result:o,text:i})}let y=!1;function _(){ | ||
277 | "loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(w):y=!0 | ||
278 | }function O(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]} | ||
279 | function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ | ||
280 | s[e.toLowerCase()]=t}))}function k(e){const t=O(e) | ||
281 | ;return t&&!t.disableAutodetect}function N(e,t){const n=e;o.forEach((e=>{ | ||
282 | e[n]&&e[n](t)}))} | ||
283 | "undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ | ||
284 | y&&_()}),!1),Object.assign(n,{highlight:m,highlightAuto:x,highlightAll:_, | ||
285 | highlightElement:w, | ||
286 | highlightBlock:e=>(G("10.7.0","highlightBlock will be removed entirely in v12.0"), | ||
287 | G("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{p=Q(p,e)}, | ||
288 | initHighlighting:()=>{ | ||
289 | _(),G("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, | ||
290 | initHighlightingOnLoad:()=>{ | ||
291 | _(),G("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") | ||
292 | },registerLanguage:(e,t)=>{let s=null;try{s=t(n)}catch(t){ | ||
293 | if(W("Language definition for '{}' could not be registered.".replace("{}",e)), | ||
294 | !r)throw t;W(t),s=l} | ||
295 | s.name||(s.name=e),i[e]=s,s.rawDefinition=t.bind(null,n),s.aliases&&v(s.aliases,{ | ||
296 | languageName:e})},unregisterLanguage:e=>{delete i[e] | ||
297 | ;for(const t of Object.keys(s))s[t]===e&&delete s[t]}, | ||
298 | listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v, | ||
299 | autoDetection:k,inherit:Q,addPlugin:e=>{(e=>{ | ||
300 | e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ | ||
301 | e["before:highlightBlock"](Object.assign({block:t.el},t)) | ||
302 | }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ | ||
303 | e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),o.push(e)}, | ||
304 | removePlugin:e=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}),n.debugMode=()=>{ | ||
305 | r=!1},n.safeMode=()=>{r=!0},n.versionString="11.10.0",n.regex={concat:h, | ||
306 | lookahead:g,either:f,optional:d,anyNumberOfTimes:u} | ||
307 | ;for(const t in j)"object"==typeof j[t]&&e(j[t]);return Object.assign(n,j),n | ||
308 | },ne=te({});return ne.newInstance=()=>te({}),ne}() | ||
309 | ;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `bash` grammar compiled for Highlight.js 11.10.0 */ | ||
310 | (()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/, | ||
311 | end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{ | ||
312 | className:"variable",variants:[{ | ||
313 | begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={ | ||
314 | className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE] | ||
315 | },i=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),c={ | ||
316 | begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, | ||
317 | end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/, | ||
318 | contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(o);const r={begin:/\$?\(\(/, | ||
319 | end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] | ||
320 | },l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 | ||
321 | }),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, | ||
322 | contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ | ||
323 | name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, | ||
324 | keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"], | ||
325 | literal:["true","false"], | ||
326 | built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] | ||
327 | },contains:[l,e.SHEBANG(),m,r,i,c,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{ | ||
328 | className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}})() | ||
329 | ;hljs.registerLanguage("bash",e)})();/*! `lua` grammar compiled for Highlight.js 11.10.0 */ | ||
330 | (()=>{var e=(()=>{"use strict";return e=>{const t="\\[=*\\[",a="\\]=*\\]",n={ | ||
331 | begin:t,end:a,contains:["self"] | ||
332 | },o=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,a,{contains:[n],relevance:10 | ||
333 | })];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, | ||
334 | literal:"true false nil", | ||
335 | keyword:"and break do else elseif end for goto if in local not or repeat return then until while", | ||
336 | built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" | ||
337 | },contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)", | ||
338 | contains:[e.inherit(e.TITLE_MODE,{ | ||
339 | begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", | ||
340 | begin:"\\(",endsWithParent:!0,contains:o}].concat(o) | ||
341 | },e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", | ||
342 | begin:t,end:a,contains:[n],relevance:5}])}}})();hljs.registerLanguage("lua",e) | ||
343 | })();/*! `markdown` grammar compiled for Highlight.js 11.10.0 */ | ||
344 | (()=>{var e=(()=>{"use strict";return e=>{const n={begin:/<\/?[A-Za-z_]/, | ||
345 | end:">",subLanguage:"xml",relevance:0},a={variants:[{begin:/\[.+?\]\[.*?\]/, | ||
346 | relevance:0},{ | ||
347 | begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, | ||
348 | relevance:2},{ | ||
349 | begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), | ||
350 | relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ | ||
351 | begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ | ||
352 | },{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, | ||
353 | returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", | ||
354 | excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", | ||
355 | end:"\\]",excludeBegin:!0,excludeEnd:!0}]},i={className:"strong",contains:[], | ||
356 | variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] | ||
357 | },s={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ | ||
358 | begin:/_(?![_\s])/,end:/_/,relevance:0}]},c=e.inherit(i,{contains:[] | ||
359 | }),t=e.inherit(s,{contains:[]});i.contains.push(t),s.contains.push(c) | ||
360 | ;let g=[n,a];return[i,s,c,t].forEach((e=>{e.contains=e.contains.concat(g) | ||
361 | })),g=g.concat(i,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ | ||
362 | className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:g},{ | ||
363 | begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", | ||
364 | contains:g}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", | ||
365 | end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:g, | ||
366 | end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ | ||
367 | begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ | ||
368 | begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", | ||
369 | contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ | ||
370 | begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ | ||
371 | className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ | ||
372 | className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal", | ||
373 | match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}})() | ||
374 | ;hljs.registerLanguage("markdown",e)})();/*! `moonscript` grammar compiled for Highlight.js 11.10.0 */ | ||
375 | (()=>{var e=(()=>{"use strict";return e=>{const n={ | ||
376 | keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using", | ||
377 | literal:"true false nil", | ||
378 | built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table" | ||
379 | },s="[A-Za-z$_][0-9A-Za-z$_]*",a={className:"subst",begin:/#\{/,end:/\}/, | ||
380 | keywords:n},t=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0} | ||
381 | }),{className:"string",variants:[{begin:/'/,end:/'/, | ||
382 | contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/, | ||
383 | contains:[e.BACKSLASH_ESCAPE,a]}]},{className:"built_in",begin:"@__"+e.IDENT_RE | ||
384 | },{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];a.contains=t | ||
385 | ;const i=e.inherit(e.TITLE_MODE,{begin:s}),r="(\\(.*\\)\\s*)?\\B[-=]>",l={ | ||
386 | className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, | ||
387 | end:/\)/,keywords:n,contains:["self"].concat(t)}]};return{name:"MoonScript", | ||
388 | aliases:["moon"],keywords:n,illegal:/\/\*/, | ||
389 | contains:t.concat([e.COMMENT("--","$"),{className:"function", | ||
390 | begin:"^\\s*"+s+"\\s*=\\s*"+r,end:"[-=]>",returnBegin:!0,contains:[i,l]},{ | ||
391 | begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:r, | ||
392 | end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class", | ||
393 | beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{ | ||
394 | beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i] | ||
395 | },{className:"name",begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0 | ||
396 | }])}}})();hljs.registerLanguage("moonscript",e)})(); \ No newline at end of file | ||
diff --git a/html/index.html b/html/index.html new file mode 100644 index 0000000..3e1576c --- /dev/null +++ b/html/index.html | |||
@@ -0,0 +1,143 @@ | |||
1 | <html lang=en> | ||
2 | <head> | ||
3 | <link rel="stylesheet" href="/milligram.min.css"/> | ||
4 | <link rel="stylesheet" href="/tokyo-night-light.css"/> | ||
5 | <script src="/highlight.min.js"></script> | ||
6 | <script>hljs.highlightAll();</script> | ||
7 | </head> | ||
8 | <body><main class="wrapper"> | ||
9 | <nav class="navigation">TODO</nav> | ||
10 | <header class="header"><section class="container"> | ||
11 | <h1 class="title">Lua4Win</h1> | ||
12 | </section></header> | ||
13 | <section class="container"> | ||
14 | <p>Lua4Win is a distribution the Lua programming language for Windows.</p> | ||
15 | <a class="button" href="https://cicd.lua4.win/archive/lua4win-dist-lua/latest/lua4win.msi">Download</a> | ||
16 | </section> | ||
17 | <section class="container"> | ||
18 | <h3 class="title">Rational</h3> | ||
19 | <p>Unlike alternative distributions, Lua4Win comes with the Luarocks package manager and is a "batteries-not-included" distribution of Lua. Binary packages are built in the cloud and can be downloaded as-needed. The Lua4Win installer contains a copy of <a href="https://luajit.org">LuaJIT</a>, <a href="https://luarocks.org">Luarocks</a>, <a href="https://www.busybox.net">Busybox</a>, and <a href="https://7zip.org">7zip</a>; which allows it to come in at a slim 2MB. Updates and bugfixes can be done piecemeal instead of requireing new copies of the whole distribution every time a bug gets fixed.</p> | ||
20 | </section> | ||
21 | <section class="container"> | ||
22 | <h3 class="title">Usage</h3> | ||
23 | <p>After installing, you can launch <code>cmd.exe</code> and run <code>$ lua</code> to get started.</p> | ||
24 | <pre><code class="language-none">$ lua | ||
25 | LuaJIT 2.0.ROLLING -- Copyright (C) 2005-2023 Mike Pall. https://luajit.org/ | ||
26 | JIT: ON CMOV SSE2 SSE3 SSE4.1 AMD fold cse dce fwd dse narrow loop abc sink fuse | ||
27 | > print("Hello, world!") | ||
28 | Hello, world! | ||
29 | ></code></pre> | ||
30 | <p>You can use <code>CTRL+C</code> to escape the read-evaluate-print-loop. You can also write Lua programs with your favorite text editor and run them with <code>$ lua filename.lua</code> | ||
31 | <div class="row"> | ||
32 | <div class="column"> | ||
33 | note.lua | ||
34 | </div> | ||
35 | </div> | ||
36 | <div class="row"> | ||
37 | <div class="column"> | ||
38 | <pre><code class="language-lua">-- Create a note file with today's date in %APPDATA% | ||
39 | local args = {...} -- extra arguments passed to the program | ||
40 | -- Generate a filename | ||
41 | local notes_folder = os.getenv("APPDATA") | ||
42 | local today = os.date("%Y-%m-%d") | ||
43 | local note_name = table.concat(args,"-"):gsub("[%W]","-") | ||
44 | local note_filename = string.format("%s\note-%s-%s.txt",notes_folder,today,note_name) | ||
45 | -- Create the file | ||
46 | local fd = assert(io.open(note_filename,"w")) | ||
47 | assert(fd:close()) | ||
48 | -- Open it in notepad | ||
49 | os.execute("notepad.exe " .. note_filename)</code></pre> | ||
50 | </div> | ||
51 | <div class="column"> | ||
52 | <pre><code class="language-bash">$ lua note.lua my first note</code></pre> | ||
53 | </div> | ||
54 | </div> | ||
55 | <p>Run <code>lua --help</code> for more options for the command line tool, and the <a href="https://www.lua.org/manual/5.1/manual.html">Lua Manual</a> for extensive documentation of the Lua programming language. Also note <a href="https://luajit.org/extensions.html">LuaJIT's extensions</a></p> | ||
56 | </section> | ||
57 | <section class="container"> | ||
58 | <h3 class="title">Installing Superpowers</h3> | ||
59 | <p>You can use modules that implement more than the standard lua libraries by running the <code>$ luarocks install >module name< </code> command to download and install modules.</p> | ||
60 | <div class="row"> | ||
61 | <div class="column"> | ||
62 | color.lua | ||
63 | </div> | ||
64 | </div> | ||
65 | <div class="row"> | ||
66 | <div class="column"> | ||
67 | <pre><code class="language-lua">local eansi = require("eansi") | ||
68 | eansi.enable = true | ||
69 | print(eansi.toansi("green") .. "> implying you need modules" .. eansi(""))</code></pre> | ||
70 | </div> | ||
71 | <div class="column"> | ||
72 | <pre><code class="language-bash">$ luarocks install eansi | ||
73 | |||
74 | $ lua color.lua</code></pre> | ||
75 | </div> | ||
76 | </div> | ||
77 | <p> Run <code>luarocks --help</code> for more options on the command line tool, and the <a href="https://github.com/luarocks/luarocks/wiki/Using-LuaRocks">Luarocks wiki</a> for more extensive documentation.</p> | ||
78 | </section> | ||
79 | <section class="container"> | ||
80 | <h3 class="title">Sister languages</h3> | ||
81 | <p>Lua4Win makes it easy to download other programming languages that are distributed through the <code>luarocks</code> package manager. Simply <code>luarocks install</code> them like you would any other package.</p> | ||
82 | <h4 class="title">Moonscript</h4> | ||
83 | <div class="row"> | ||
84 | <div class="column column-offset-33"> | ||
85 | example.moon | ||
86 | </div> | ||
87 | </div> | ||
88 | <div class="row"> | ||
89 | <div class="column"> | ||
90 | <pre><code class="language-bash">$ luarocks install moonscript</code></pre> | ||
91 | </div> | ||
92 | <div class="column"> | ||
93 | <pre><code class="language-moonscript">class World | ||
94 | greet: => print("Hello, world!") | ||
95 | |||
96 | with World! | ||
97 | \greet!</code></pre> | ||
98 | </div> | ||
99 | <div class="column"> | ||
100 | <pre><code class="language-bash">$ moonscript example.moon | ||
101 | Hello, world!</code></pre> | ||
102 | </div> | ||
103 | </div> | ||
104 | <br/> | ||
105 | <h4 class="title">Teal</h4> | ||
106 | <div class="row"> | ||
107 | <div class="column column-offset-33"> | ||
108 | keys.tl | ||
109 | </div> | ||
110 | </div> | ||
111 | <div class="row"> | ||
112 | <div class="column"> | ||
113 | <pre><code class="language-bash">$ luarocks install tl</code></pre> | ||
114 | </div> | ||
115 | <div class="column"> | ||
116 | <pre><code class="language-teal">local function keys<K,V>(xs: {K:V}):{K} | ||
117 | local ks = {} | ||
118 | for k, v in pairs(xs) do | ||
119 | table.insert(ks, k) | ||
120 | end | ||
121 | return ks | ||
122 | end | ||
123 | |||
124 | local s: {number:string} = keys({ a = 1, b = 2 }) | ||
125 | print(table.concat(s)) | ||
126 | </code></pre> | ||
127 | </div> | ||
128 | <div class="column"> | ||
129 | <pre><code class="language-bash">$ tl keys.tl | ||
130 | ab</code></pre> | ||
131 | </div> | ||
132 | </div> | ||
133 | </section> | ||
134 | <section class="container"> | ||
135 | <h3 class="title">Advanced Usage</h3> | ||
136 | <p>Lua4Win allows you to install system-wide packages with the <pre><code>--tree system</code></pre> flag, these packages will be located at <pre><code>[INSTALLDIR]/luarocks</code></pre>. You may need to be running as an administratior to install to this location.</p> | ||
137 | <p>Lua4Win's luarocks config lives at <pre><code>[INSTALLDIR]/config/config-5.1.lua</code></pre></p> | ||
138 | <p>All of Lua4Win's binary packages are built using mingw64, if you intend to build your own modules, they must be built with mingw64 if you want them to operate with Lua4Win-distributed Lua.</p> | ||
139 | <p>Some of Lua4Win's packages needed patching or modification, source code is generally mirrored at <a href="https://git.lua4.win">git.lua4.win</a>, and packaging code is kept seperate, usually in a repo <pre><code>*-packaging</code></pre></p> | ||
140 | |||
141 | </body> | ||
142 | </html> | ||
143 | |||
diff --git a/html/milligram.min.css b/html/milligram.min.css new file mode 100644 index 0000000..5e8955c --- /dev/null +++ b/html/milligram.min.css | |||
@@ -0,0 +1,3 @@ | |||
1 | *,*:after,*:before{box-sizing:inherit}html{box-sizing:border-box;font-size:62.5%}body{color:#606c76;font-family:'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;font-size:1.6em;font-weight:300;letter-spacing:.01em;line-height:1.6}blockquote{border-left:0.3rem solid #d1d1d1;margin-left:0;margin-right:0;padding:1rem 1.5rem}blockquote *:last-child{margin-bottom:0}.button,button,input[type='button'],input[type='reset'],input[type='submit']{background-color:#9b4dca;border:0.1rem solid #9b4dca;border-radius:.4rem;color:#fff;cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:700;height:3.8rem;letter-spacing:.1rem;line-height:3.8rem;padding:0 3.0rem;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}.button:focus,.button:hover,button:focus,button:hover,input[type='button']:focus,input[type='button']:hover,input[type='reset']:focus,input[type='reset']:hover,input[type='submit']:focus,input[type='submit']:hover{background-color:#606c76;border-color:#606c76;color:#fff;outline:0}.button[disabled],button[disabled],input[type='button'][disabled],input[type='reset'][disabled],input[type='submit'][disabled]{cursor:default;opacity:.5}.button[disabled]:focus,.button[disabled]:hover,button[disabled]:focus,button[disabled]:hover,input[type='button'][disabled]:focus,input[type='button'][disabled]:hover,input[type='reset'][disabled]:focus,input[type='reset'][disabled]:hover,input[type='submit'][disabled]:focus,input[type='submit'][disabled]:hover{background-color:#9b4dca;border-color:#9b4dca}.button.button-outline,button.button-outline,input[type='button'].button-outline,input[type='reset'].button-outline,input[type='submit'].button-outline{background-color:transparent;color:#9b4dca}.button.button-outline:focus,.button.button-outline:hover,button.button-outline:focus,button.button-outline:hover,input[type='button'].button-outline:focus,input[type='button'].button-outline:hover,input[type='reset'].button-outline:focus,input[type='reset'].button-outline:hover,input[type='submit'].button-outline:focus,input[type='submit'].button-outline:hover{background-color:transparent;border-color:#606c76;color:#606c76}.button.button-outline[disabled]:focus,.button.button-outline[disabled]:hover,button.button-outline[disabled]:focus,button.button-outline[disabled]:hover,input[type='button'].button-outline[disabled]:focus,input[type='button'].button-outline[disabled]:hover,input[type='reset'].button-outline[disabled]:focus,input[type='reset'].button-outline[disabled]:hover,input[type='submit'].button-outline[disabled]:focus,input[type='submit'].button-outline[disabled]:hover{border-color:inherit;color:#9b4dca}.button.button-clear,button.button-clear,input[type='button'].button-clear,input[type='reset'].button-clear,input[type='submit'].button-clear{background-color:transparent;border-color:transparent;color:#9b4dca}.button.button-clear:focus,.button.button-clear:hover,button.button-clear:focus,button.button-clear:hover,input[type='button'].button-clear:focus,input[type='button'].button-clear:hover,input[type='reset'].button-clear:focus,input[type='reset'].button-clear:hover,input[type='submit'].button-clear:focus,input[type='submit'].button-clear:hover{background-color:transparent;border-color:transparent;color:#606c76}.button.button-clear[disabled]:focus,.button.button-clear[disabled]:hover,button.button-clear[disabled]:focus,button.button-clear[disabled]:hover,input[type='button'].button-clear[disabled]:focus,input[type='button'].button-clear[disabled]:hover,input[type='reset'].button-clear[disabled]:focus,input[type='reset'].button-clear[disabled]:hover,input[type='submit'].button-clear[disabled]:focus,input[type='submit'].button-clear[disabled]:hover{color:#9b4dca}code{background:#f4f5f6;border-radius:.4rem;font-size:86%;margin:0 .2rem;padding:.2rem .5rem;white-space:nowrap}pre{background:#f4f5f6;border-left:0.3rem solid #9b4dca;overflow-y:hidden}pre>code{border-radius:0;display:block;padding:1rem 1.5rem;white-space:pre}hr{border:0;border-top:0.1rem solid #f4f5f6;margin:3.0rem 0}input[type='color'],input[type='date'],input[type='datetime'],input[type='datetime-local'],input[type='email'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='url'],input[type='week'],input:not([type]),textarea,select{-webkit-appearance:none;background-color:transparent;border:0.1rem solid #d1d1d1;border-radius:.4rem;box-shadow:none;box-sizing:inherit;height:3.8rem;padding:.6rem 1.0rem .7rem;width:100%}input[type='color']:focus,input[type='date']:focus,input[type='datetime']:focus,input[type='datetime-local']:focus,input[type='email']:focus,input[type='month']:focus,input[type='number']:focus,input[type='password']:focus,input[type='search']:focus,input[type='tel']:focus,input[type='text']:focus,input[type='url']:focus,input[type='week']:focus,input:not([type]):focus,textarea:focus,select:focus{border-color:#9b4dca;outline:0}select{background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 8" width="30"><path fill="%23d1d1d1" d="M0,0l6,8l6-8"/></svg>') center right no-repeat;padding-right:3.0rem}select:focus{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 8" width="30"><path fill="%239b4dca" d="M0,0l6,8l6-8"/></svg>')}select[multiple]{background:none;height:auto}textarea{min-height:6.5rem}label,legend{display:block;font-size:1.6rem;font-weight:700;margin-bottom:.5rem}fieldset{border-width:0;padding:0}input[type='checkbox'],input[type='radio']{display:inline}.label-inline{display:inline-block;font-weight:normal;margin-left:.5rem}.container{margin:0 auto;max-width:112.0rem;padding:0 2.0rem;position:relative;width:100%}.row{display:flex;flex-direction:column;padding:0;width:100%}.row.row-no-padding{padding:0}.row.row-no-padding>.column{padding:0}.row.row-wrap{flex-wrap:wrap}.row.row-top{align-items:flex-start}.row.row-bottom{align-items:flex-end}.row.row-center{align-items:center}.row.row-stretch{align-items:stretch}.row.row-baseline{align-items:baseline}.row .column{display:block;flex:1 1 auto;margin-left:0;max-width:100%;width:100%}.row .column.column-offset-10{margin-left:10%}.row .column.column-offset-20{margin-left:20%}.row .column.column-offset-25{margin-left:25%}.row .column.column-offset-33,.row .column.column-offset-34{margin-left:33.3333%}.row .column.column-offset-40{margin-left:40%}.row .column.column-offset-50{margin-left:50%}.row .column.column-offset-60{margin-left:60%}.row .column.column-offset-66,.row .column.column-offset-67{margin-left:66.6666%}.row .column.column-offset-75{margin-left:75%}.row .column.column-offset-80{margin-left:80%}.row .column.column-offset-90{margin-left:90%}.row .column.column-10{flex:0 0 10%;max-width:10%}.row .column.column-20{flex:0 0 20%;max-width:20%}.row .column.column-25{flex:0 0 25%;max-width:25%}.row .column.column-33,.row .column.column-34{flex:0 0 33.3333%;max-width:33.3333%}.row .column.column-40{flex:0 0 40%;max-width:40%}.row .column.column-50{flex:0 0 50%;max-width:50%}.row .column.column-60{flex:0 0 60%;max-width:60%}.row .column.column-66,.row .column.column-67{flex:0 0 66.6666%;max-width:66.6666%}.row .column.column-75{flex:0 0 75%;max-width:75%}.row .column.column-80{flex:0 0 80%;max-width:80%}.row .column.column-90{flex:0 0 90%;max-width:90%}.row .column .column-top{align-self:flex-start}.row .column .column-bottom{align-self:flex-end}.row .column .column-center{align-self:center}@media (min-width: 40rem){.row{flex-direction:row;margin-left:-1.0rem;width:calc(100% + 2.0rem)}.row .column{margin-bottom:inherit;padding:0 1.0rem}}a{color:#9b4dca;text-decoration:none}a:focus,a:hover{color:#606c76}dl,ol,ul{list-style:none;margin-top:0;padding-left:0}dl dl,dl ol,dl ul,ol dl,ol ol,ol ul,ul dl,ul ol,ul ul{font-size:90%;margin:1.5rem 0 1.5rem 3.0rem}ol{list-style:decimal inside}ul{list-style:circle inside}.button,button,dd,dt,li{margin-bottom:1.0rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}table{border-spacing:0;display:block;overflow-x:auto;text-align:left;width:100%}td,th{border-bottom:0.1rem solid #e1e1e1;padding:1.2rem 1.5rem}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}@media (min-width: 40rem){table{display:table;overflow-x:initial}}b,strong{font-weight:bold}p{margin-top:0}h1,h2,h3,h4,h5,h6{font-weight:300;letter-spacing:-.1rem;margin-bottom:2.0rem;margin-top:0}h1{font-size:4.6rem;line-height:1.2}h2{font-size:3.6rem;line-height:1.25}h3{font-size:2.8rem;line-height:1.3}h4{font-size:2.2rem;letter-spacing:-.08rem;line-height:1.35}h5{font-size:1.8rem;letter-spacing:-.05rem;line-height:1.5}h6{font-size:1.6rem;letter-spacing:0;line-height:1.4}img{max-width:100%}.clearfix:after{clear:both;content:' ';display:table}.float-left{float:left}.float-right{float:right} | ||
2 | |||
3 | /*# sourceMappingURL=milligram.min.css.map */ \ No newline at end of file | ||
diff --git a/html/milligram.min.css.map b/html/milligram.min.css.map new file mode 100644 index 0000000..009da6a --- /dev/null +++ b/html/milligram.min.css.map | |||
@@ -0,0 +1 @@ | |||
{"version":3,"sources":["milligram.min.css"],"names":[],"mappings":"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","file":"milligram.min.css","sourcesContent":["*,*:after,*:before{box-sizing:inherit}html{box-sizing:border-box;font-size:62.5%}body{color:#606c76;font-family:'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;font-size:1.6em;font-weight:300;letter-spacing:.01em;line-height:1.6}blockquote{border-left:0.3rem solid #d1d1d1;margin-left:0;margin-right:0;padding:1rem 1.5rem}blockquote *:last-child{margin-bottom:0}.button,button,input[type='button'],input[type='reset'],input[type='submit']{background-color:#9b4dca;border:0.1rem solid #9b4dca;border-radius:.4rem;color:#fff;cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:700;height:3.8rem;letter-spacing:.1rem;line-height:3.8rem;padding:0 3.0rem;text-align:center;text-decoration:none;text-transform:uppercase;white-space:nowrap}.button:focus,.button:hover,button:focus,button:hover,input[type='button']:focus,input[type='button']:hover,input[type='reset']:focus,input[type='reset']:hover,input[type='submit']:focus,input[type='submit']:hover{background-color:#606c76;border-color:#606c76;color:#fff;outline:0}.button[disabled],button[disabled],input[type='button'][disabled],input[type='reset'][disabled],input[type='submit'][disabled]{cursor:default;opacity:.5}.button[disabled]:focus,.button[disabled]:hover,button[disabled]:focus,button[disabled]:hover,input[type='button'][disabled]:focus,input[type='button'][disabled]:hover,input[type='reset'][disabled]:focus,input[type='reset'][disabled]:hover,input[type='submit'][disabled]:focus,input[type='submit'][disabled]:hover{background-color:#9b4dca;border-color:#9b4dca}.button.button-outline,button.button-outline,input[type='button'].button-outline,input[type='reset'].button-outline,input[type='submit'].button-outline{background-color:transparent;color:#9b4dca}.button.button-outline:focus,.button.button-outline:hover,button.button-outline:focus,button.button-outline:hover,input[type='button'].button-outline:focus,input[type='button'].button-outline:hover,input[type='reset'].button-outline:focus,input[type='reset'].button-outline:hover,input[type='submit'].button-outline:focus,input[type='submit'].button-outline:hover{background-color:transparent;border-color:#606c76;color:#606c76}.button.button-outline[disabled]:focus,.button.button-outline[disabled]:hover,button.button-outline[disabled]:focus,button.button-outline[disabled]:hover,input[type='button'].button-outline[disabled]:focus,input[type='button'].button-outline[disabled]:hover,input[type='reset'].button-outline[disabled]:focus,input[type='reset'].button-outline[disabled]:hover,input[type='submit'].button-outline[disabled]:focus,input[type='submit'].button-outline[disabled]:hover{border-color:inherit;color:#9b4dca}.button.button-clear,button.button-clear,input[type='button'].button-clear,input[type='reset'].button-clear,input[type='submit'].button-clear{background-color:transparent;border-color:transparent;color:#9b4dca}.button.button-clear:focus,.button.button-clear:hover,button.button-clear:focus,button.button-clear:hover,input[type='button'].button-clear:focus,input[type='button'].button-clear:hover,input[type='reset'].button-clear:focus,input[type='reset'].button-clear:hover,input[type='submit'].button-clear:focus,input[type='submit'].button-clear:hover{background-color:transparent;border-color:transparent;color:#606c76}.button.button-clear[disabled]:focus,.button.button-clear[disabled]:hover,button.button-clear[disabled]:focus,button.button-clear[disabled]:hover,input[type='button'].button-clear[disabled]:focus,input[type='button'].button-clear[disabled]:hover,input[type='reset'].button-clear[disabled]:focus,input[type='reset'].button-clear[disabled]:hover,input[type='submit'].button-clear[disabled]:focus,input[type='submit'].button-clear[disabled]:hover{color:#9b4dca}code{background:#f4f5f6;border-radius:.4rem;font-size:86%;margin:0 .2rem;padding:.2rem .5rem;white-space:nowrap}pre{background:#f4f5f6;border-left:0.3rem solid #9b4dca;overflow-y:hidden}pre>code{border-radius:0;display:block;padding:1rem 1.5rem;white-space:pre}hr{border:0;border-top:0.1rem solid #f4f5f6;margin:3.0rem 0}input[type='color'],input[type='date'],input[type='datetime'],input[type='datetime-local'],input[type='email'],input[type='month'],input[type='number'],input[type='password'],input[type='search'],input[type='tel'],input[type='text'],input[type='url'],input[type='week'],input:not([type]),textarea,select{-webkit-appearance:none;background-color:transparent;border:0.1rem solid #d1d1d1;border-radius:.4rem;box-shadow:none;box-sizing:inherit;height:3.8rem;padding:.6rem 1.0rem .7rem;width:100%}input[type='color']:focus,input[type='date']:focus,input[type='datetime']:focus,input[type='datetime-local']:focus,input[type='email']:focus,input[type='month']:focus,input[type='number']:focus,input[type='password']:focus,input[type='search']:focus,input[type='tel']:focus,input[type='text']:focus,input[type='url']:focus,input[type='week']:focus,input:not([type]):focus,textarea:focus,select:focus{border-color:#9b4dca;outline:0}select{background:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 8\" width=\"30\"><path fill=\"%23d1d1d1\" d=\"M0,0l6,8l6-8\"/></svg>') center right no-repeat;padding-right:3.0rem}select:focus{background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 30 8\" width=\"30\"><path fill=\"%239b4dca\" d=\"M0,0l6,8l6-8\"/></svg>')}select[multiple]{background:none;height:auto}textarea{min-height:6.5rem}label,legend{display:block;font-size:1.6rem;font-weight:700;margin-bottom:.5rem}fieldset{border-width:0;padding:0}input[type='checkbox'],input[type='radio']{display:inline}.label-inline{display:inline-block;font-weight:normal;margin-left:.5rem}.container{margin:0 auto;max-width:112.0rem;padding:0 2.0rem;position:relative;width:100%}.row{display:flex;flex-direction:column;padding:0;width:100%}.row.row-no-padding{padding:0}.row.row-no-padding>.column{padding:0}.row.row-wrap{flex-wrap:wrap}.row.row-top{align-items:flex-start}.row.row-bottom{align-items:flex-end}.row.row-center{align-items:center}.row.row-stretch{align-items:stretch}.row.row-baseline{align-items:baseline}.row .column{display:block;flex:1 1 auto;margin-left:0;max-width:100%;width:100%}.row .column.column-offset-10{margin-left:10%}.row .column.column-offset-20{margin-left:20%}.row .column.column-offset-25{margin-left:25%}.row .column.column-offset-33,.row .column.column-offset-34{margin-left:33.3333%}.row .column.column-offset-40{margin-left:40%}.row .column.column-offset-50{margin-left:50%}.row .column.column-offset-60{margin-left:60%}.row .column.column-offset-66,.row .column.column-offset-67{margin-left:66.6666%}.row .column.column-offset-75{margin-left:75%}.row .column.column-offset-80{margin-left:80%}.row .column.column-offset-90{margin-left:90%}.row .column.column-10{flex:0 0 10%;max-width:10%}.row .column.column-20{flex:0 0 20%;max-width:20%}.row .column.column-25{flex:0 0 25%;max-width:25%}.row .column.column-33,.row .column.column-34{flex:0 0 33.3333%;max-width:33.3333%}.row .column.column-40{flex:0 0 40%;max-width:40%}.row .column.column-50{flex:0 0 50%;max-width:50%}.row .column.column-60{flex:0 0 60%;max-width:60%}.row .column.column-66,.row .column.column-67{flex:0 0 66.6666%;max-width:66.6666%}.row .column.column-75{flex:0 0 75%;max-width:75%}.row .column.column-80{flex:0 0 80%;max-width:80%}.row .column.column-90{flex:0 0 90%;max-width:90%}.row .column .column-top{align-self:flex-start}.row .column .column-bottom{align-self:flex-end}.row .column .column-center{align-self:center}@media (min-width: 40rem){.row{flex-direction:row;margin-left:-1.0rem;width:calc(100% + 2.0rem)}.row .column{margin-bottom:inherit;padding:0 1.0rem}}a{color:#9b4dca;text-decoration:none}a:focus,a:hover{color:#606c76}dl,ol,ul{list-style:none;margin-top:0;padding-left:0}dl dl,dl ol,dl ul,ol dl,ol ol,ol ul,ul dl,ul ol,ul ul{font-size:90%;margin:1.5rem 0 1.5rem 3.0rem}ol{list-style:decimal inside}ul{list-style:circle inside}.button,button,dd,dt,li{margin-bottom:1.0rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}table{border-spacing:0;display:block;overflow-x:auto;text-align:left;width:100%}td,th{border-bottom:0.1rem solid #e1e1e1;padding:1.2rem 1.5rem}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}@media (min-width: 40rem){table{display:table;overflow-x:initial}}b,strong{font-weight:bold}p{margin-top:0}h1,h2,h3,h4,h5,h6{font-weight:300;letter-spacing:-.1rem;margin-bottom:2.0rem;margin-top:0}h1{font-size:4.6rem;line-height:1.2}h2{font-size:3.6rem;line-height:1.25}h3{font-size:2.8rem;line-height:1.3}h4{font-size:2.2rem;letter-spacing:-.08rem;line-height:1.35}h5{font-size:1.8rem;letter-spacing:-.05rem;line-height:1.5}h6{font-size:1.6rem;letter-spacing:0;line-height:1.4}img{max-width:100%}.clearfix:after{clear:both;content:' ';display:table}.float-left{float:left}.float-right{float:right}\n"]} \ No newline at end of file | |||
diff --git a/html/tokyo-night-dark.css b/html/tokyo-night-dark.css new file mode 100644 index 0000000..e746b50 --- /dev/null +++ b/html/tokyo-night-dark.css | |||
@@ -0,0 +1,114 @@ | |||
1 | pre code.hljs { | ||
2 | display: block; | ||
3 | overflow-x: auto; | ||
4 | padding: 1em | ||
5 | } | ||
6 | code.hljs { | ||
7 | padding: 3px 5px | ||
8 | } | ||
9 | /*! | ||
10 | Theme: Tokyo-night-Dark | ||
11 | origin: https://github.com/enkia/tokyo-night-vscode-theme | ||
12 | Description: Original highlight.js style | ||
13 | Author: (c) Henri Vandersleyen <hvandersleyen@gmail.com> | ||
14 | License: see project LICENSE | ||
15 | Touched: 2022 | ||
16 | */ | ||
17 | /* Comment */ | ||
18 | .hljs-meta, | ||
19 | .hljs-comment { | ||
20 | color: #565f89 | ||
21 | } | ||
22 | /* Red */ | ||
23 | /*INFO: This keyword, HTML elements, Regex group symbol, CSS units, Terminal Red */ | ||
24 | .hljs-tag, | ||
25 | .hljs-doctag, | ||
26 | .hljs-selector-id, | ||
27 | .hljs-selector-class, | ||
28 | .hljs-regexp, | ||
29 | .hljs-template-tag, | ||
30 | .hljs-selector-pseudo, | ||
31 | .hljs-selector-attr, | ||
32 | .hljs-variable.language_, | ||
33 | .hljs-deletion { | ||
34 | color: #f7768e | ||
35 | } | ||
36 | /*Orange */ | ||
37 | /*INFO: Number and Boolean constants, Language support constants */ | ||
38 | .hljs-variable, | ||
39 | .hljs-template-variable, | ||
40 | .hljs-number, | ||
41 | .hljs-literal, | ||
42 | .hljs-type, | ||
43 | .hljs-params, | ||
44 | .hljs-link { | ||
45 | color: #ff9e64 | ||
46 | } | ||
47 | /* Yellow */ | ||
48 | /* INFO: Function parameters, Regex character sets, Terminal Yellow */ | ||
49 | .hljs-built_in, | ||
50 | .hljs-attribute { | ||
51 | color: #e0af68 | ||
52 | } | ||
53 | /* cyan */ | ||
54 | /* INFO: Language support functions, CSS HTML elements */ | ||
55 | .hljs-selector-tag { | ||
56 | color: #2ac3de | ||
57 | } | ||
58 | /* light blue */ | ||
59 | /* INFO: Object properties, Regex quantifiers and flags, Markdown headings, Terminal Cyan, Markdown code, Import/export keywords */ | ||
60 | .hljs-keyword, | ||
61 | .hljs-title.function_, | ||
62 | .hljs-title, | ||
63 | .hljs-title.class_, | ||
64 | .hljs-title.class_.inherited__, | ||
65 | .hljs-subst, | ||
66 | .hljs-property { | ||
67 | color: #7dcfff | ||
68 | } | ||
69 | /*Green*/ | ||
70 | /* INFO: Object literal keys, Markdown links, Terminal Green */ | ||
71 | .hljs-selector-tag { | ||
72 | color: #73daca | ||
73 | } | ||
74 | /*Green(er) */ | ||
75 | /* INFO: Strings, CSS class names */ | ||
76 | .hljs-quote, | ||
77 | .hljs-string, | ||
78 | .hljs-symbol, | ||
79 | .hljs-bullet, | ||
80 | .hljs-addition { | ||
81 | color: #9ece6a | ||
82 | } | ||
83 | /* Blue */ | ||
84 | /* INFO: Function names, CSS property names, Terminal Blue */ | ||
85 | .hljs-code, | ||
86 | .hljs-formula, | ||
87 | .hljs-section { | ||
88 | color: #7aa2f7 | ||
89 | } | ||
90 | /* Magenta */ | ||
91 | /*INFO: Control Keywords, Storage Types, Regex symbols and operators, HTML Attributes, Terminal Magenta */ | ||
92 | .hljs-name, | ||
93 | .hljs-keyword, | ||
94 | .hljs-operator, | ||
95 | .hljs-keyword, | ||
96 | .hljs-char.escape_, | ||
97 | .hljs-attr { | ||
98 | color: #bb9af7 | ||
99 | } | ||
100 | /* white*/ | ||
101 | /* INFO: Variables, Class names, Terminal White */ | ||
102 | .hljs-punctuation { | ||
103 | color: #c0caf5 | ||
104 | } | ||
105 | .hljs { | ||
106 | background: #1a1b26; | ||
107 | color: #9aa5ce | ||
108 | } | ||
109 | .hljs-emphasis { | ||
110 | font-style: italic | ||
111 | } | ||
112 | .hljs-strong { | ||
113 | font-weight: bold | ||
114 | } \ No newline at end of file | ||
diff --git a/html/tokyo-night-light.css b/html/tokyo-night-light.css new file mode 100644 index 0000000..2c7ca12 --- /dev/null +++ b/html/tokyo-night-light.css | |||
@@ -0,0 +1,114 @@ | |||
1 | pre code.hljs { | ||
2 | display: block; | ||
3 | overflow-x: auto; | ||
4 | padding: 1em | ||
5 | } | ||
6 | code.hljs { | ||
7 | padding: 3px 5px | ||
8 | } | ||
9 | /*! | ||
10 | Theme: Tokyo-night-light | ||
11 | origin: https://github.com/enkia/tokyo-night-vscode-theme | ||
12 | Description: Original highlight.js style | ||
13 | Author: (c) Henri Vandersleyen <hvandersleyen@gmail.com> | ||
14 | License: see project LICENSE | ||
15 | Touched: 2022 | ||
16 | */ | ||
17 | /* Comment */ | ||
18 | .hljs-meta, | ||
19 | .hljs-comment { | ||
20 | color: #9699a3 | ||
21 | } | ||
22 | /* Red */ | ||
23 | /*INFO: This keyword, HTML elements, Regex group symbol, CSS units, Terminal Red */ | ||
24 | .hljs-tag, | ||
25 | .hljs-doctag, | ||
26 | .hljs-selector-id, | ||
27 | .hljs-selector-class, | ||
28 | .hljs-regexp, | ||
29 | .hljs-template-tag, | ||
30 | .hljs-selector-pseudo, | ||
31 | .hljs-selector-attr, | ||
32 | .hljs-variable.language_, | ||
33 | .hljs-deletion { | ||
34 | color: #8c4351 | ||
35 | } | ||
36 | /*Orange */ | ||
37 | /*INFO: Number and Boolean constants, Language support constants */ | ||
38 | .hljs-variable, | ||
39 | .hljs-template-variable, | ||
40 | .hljs-number, | ||
41 | .hljs-literal, | ||
42 | .hljs-type, | ||
43 | .hljs-params, | ||
44 | .hljs-link { | ||
45 | color: #965027 | ||
46 | } | ||
47 | /* Yellow */ | ||
48 | /* INFO: Function parameters, Regex character sets, Terminal Yellow */ | ||
49 | .hljs-built_in, | ||
50 | .hljs-attribute { | ||
51 | color: #8f5e15 | ||
52 | } | ||
53 | /* cyan */ | ||
54 | /* INFO: Language support functions, CSS HTML elements */ | ||
55 | .hljs-selector-tag { | ||
56 | color: #166775 | ||
57 | } | ||
58 | /* light blue */ | ||
59 | /* INFO: Object properties, Regex quantifiers and flags, Markdown headings, Terminal Cyan, Markdown code, Import/export keywords */ | ||
60 | .hljs-keyword, | ||
61 | .hljs-title.function_, | ||
62 | .hljs-title, | ||
63 | .hljs-title.class_, | ||
64 | .hljs-title.class_.inherited__, | ||
65 | .hljs-subst, | ||
66 | .hljs-property { | ||
67 | color: #0f4b6e | ||
68 | } | ||
69 | /*Green*/ | ||
70 | /* INFO: Object literal keys, Markdown links, Terminal Green */ | ||
71 | .hljs-selector-tag { | ||
72 | color: #33635c | ||
73 | } | ||
74 | /*Green(er) */ | ||
75 | /* INFO: Strings, CSS class names */ | ||
76 | .hljs-quote, | ||
77 | .hljs-string, | ||
78 | .hljs-symbol, | ||
79 | .hljs-bullet, | ||
80 | .hljs-addition { | ||
81 | color: #485e30 | ||
82 | } | ||
83 | /* Blue */ | ||
84 | /* INFO: Function names, CSS property names, Terminal Blue */ | ||
85 | .hljs-code, | ||
86 | .hljs-formula, | ||
87 | .hljs-section { | ||
88 | color: #34548a | ||
89 | } | ||
90 | /* Magenta */ | ||
91 | /*INFO: Control Keywords, Storage Types, Regex symbols and operators, HTML Attributes, Terminal Magenta */ | ||
92 | .hljs-name, | ||
93 | .hljs-keyword, | ||
94 | .hljs-operator, | ||
95 | .hljs-keyword, | ||
96 | .hljs-char.escape_, | ||
97 | .hljs-attr { | ||
98 | color: #5a4a78 | ||
99 | } | ||
100 | /* white*/ | ||
101 | /* INFO: Variables, Class names, Terminal White */ | ||
102 | .hljs-punctuation { | ||
103 | color: #343b58 | ||
104 | } | ||
105 | .hljs { | ||
106 | background: #d5d6db; | ||
107 | color: #565a6e | ||
108 | } | ||
109 | .hljs-emphasis { | ||
110 | font-style: italic | ||
111 | } | ||
112 | .hljs-strong { | ||
113 | font-weight: bold | ||
114 | } \ No newline at end of file | ||
@@ -1 +1,3 @@ | |||
1 | #!/bin/sh -ex | 1 | #!/bin/sh -ex |
2 | |||
3 | tar -cz website/html | ||
@@ -1,6 +1,10 @@ | |||
1 | return { | 1 | return { |
2 | ["website"] = { | 2 | ["website"] = { |
3 | requires = {}, | 3 | requires = { |
4 | produces = {}, | 4 | {"git", "website"} |
5 | }, | ||
6 | produces = { | ||
7 | ["site.tar.gz"] = {"website.sh"}, | ||
8 | }, | ||
5 | } | 9 | } |
6 | } | 10 | } |