From 4e9c4d8435fc57c9ee4132ace5225411270572e7 Mon Sep 17 00:00:00 2001 From: rascul Date: Sat, 28 May 2022 22:06:55 -0500 Subject: [PATCH] static --- static/fontello/LICENSE.txt | 12 + static/fontello/README.txt | 75 +++++ static/fontello/config.json | 70 +++++ static/fontello/css/animation.css | 85 ++++++ static/fontello/css/fontello-codes.css | 11 + static/fontello/css/fontello-embedded.css | 64 ++++ static/fontello/css/fontello-ie7-codes.css | 11 + static/fontello/css/fontello-ie7.css | 22 ++ static/fontello/css/fontello.css | 66 +++++ static/fontello/demo.html | 322 +++++++++++++++++++++ static/fontello/font/fontello.eot | Bin 0 -> 6044 bytes static/fontello/font/fontello.svg | 21 ++ static/fontello/font/fontello.ttf | Bin 0 -> 5876 bytes static/fontello/font/fontello.woff | Bin 0 -> 3532 bytes static/rewot.css | 186 ++++++++++++ static/rewot.js | 200 +++++++++++++ 16 files changed, 1145 insertions(+) create mode 100644 static/fontello/LICENSE.txt create mode 100644 static/fontello/README.txt create mode 100644 static/fontello/config.json create mode 100644 static/fontello/css/animation.css create mode 100644 static/fontello/css/fontello-codes.css create mode 100644 static/fontello/css/fontello-embedded.css create mode 100644 static/fontello/css/fontello-ie7-codes.css create mode 100644 static/fontello/css/fontello-ie7.css create mode 100644 static/fontello/css/fontello.css create mode 100644 static/fontello/demo.html create mode 100644 static/fontello/font/fontello.eot create mode 100644 static/fontello/font/fontello.svg create mode 100644 static/fontello/font/fontello.ttf create mode 100644 static/fontello/font/fontello.woff create mode 100644 static/rewot.css create mode 100644 static/rewot.js diff --git a/static/fontello/LICENSE.txt b/static/fontello/LICENSE.txt new file mode 100644 index 0000000..de42058 --- /dev/null +++ b/static/fontello/LICENSE.txt @@ -0,0 +1,12 @@ +Font license info + + +## Entypo + + Copyright (C) 2012 by Daniel Bruce + + Author: Daniel Bruce + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://www.entypo.com + + diff --git a/static/fontello/README.txt b/static/fontello/README.txt new file mode 100644 index 0000000..a91438a --- /dev/null +++ b/static/fontello/README.txt @@ -0,0 +1,75 @@ +This webfont is generated by http://fontello.com open source project. + + +================================================================================ +Please, note, that you should obey original font licences, used to make this +webfont pack. Details available in LICENSE.txt file. + +- Usually, it's enough to publish content of LICENSE.txt file somewhere on your + site in "About" section. + +- If your project is open-source, usually, it will be ok to make LICENSE.txt + file publically available in your repository. + +- Fonts, used in Fontello, don't require a clickable link on your site. + But any kind of additional authors crediting is welcome. +================================================================================ + + +Comments on archive content +--------------------------- + +- /font/* - fonts in different formats + +- /css/* - different kinds of css, for all situations. Should be ok with + twitter bootstrap. Also, you can skip style and assign icon classes + directly to text elements, if you don't mind about IE7. + +- demo.html - demo file, to show your webfont content + +- LICENSE.txt - license info about source fonts, used to build your one. + +- config.json - keeps your settings. You can import it back into fontello + anytime, to continue your work + + +Why so many CSS files ? +----------------------- + +Because we like to fit all your needs :) + +- basic file, .css - is usually enough, it contains @font-face + and character code definitions + +- *-ie7.css - if you need IE7 support, but still don't wish to put char codes + directly into html + +- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face + rules, but still wish to benefit from css generation. That can be very + convenient for automated asset build systems. When you need to update font - + no need to manually edit files, just override old version with archive + content. See fontello source code for examples. + +- *-embedded.css - basic css file, but with embedded WOFF font, to avoid + CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain. + We strongly recommend to resolve this issue by `Access-Control-Allow-Origin` + server headers. But if you ok with dirty hack - this file is for you. Note, + that data url moved to separate @font-face to avoid problems with + + + + + + + +
+

+ fontello + font demo +

+ +
+
+
+
icon-gauge0xe801
+
icon-github0xe803
+
icon-help0xe804
+
icon-play0xe805
+
+
+
icon-pause0xe806
+
icon-fast-forward0xe807
+
icon-fast-backward0xe808
+
icon-plus0xe810
+
+
+
icon-minus0xe811
+
icon-cw0xe812
+
+
+ + + \ No newline at end of file diff --git a/static/fontello/font/fontello.eot b/static/fontello/font/fontello.eot new file mode 100644 index 0000000000000000000000000000000000000000..2ef7ade773315971f9a095d9ac8220a54912c889 GIT binary patch literal 6044 zcmd^DZERcDc|Paz)09Nf5=E(^!XENUv_f9e5=~KxA}cJZ564y;T2?&L%^Y5l)Q6)F zj-p)K3kG9o2UlnVqdx*~NP%rwgP_QdL)pdDp+CA|3p$|d5C7_)1wjxD!Y~y1k+nuw z%X{8SQnnmt1^Rbay7ztF_q^x4ALl(E(mUOZedb||GlkKkFpJ3mklf~k<}!8u@z)T8 z-J9#b@mShKF1Exr*#@h!5?jO1CK{Y<9^5k92CuUUBp!AVk_y{mtA@5u9x@5`G-)N!h5N3wJIRTB?YHSj&_`n59qo0j|FzX@J!=CqcH4O(SEaBDV6{I4b!)fm22StlyT*M_-$rkcIAfh6G*;Or~D%}%rQ-m z=Ll^_p3Ks8ktO%}euruP(G_;dBv=s&%?V@3Uj6NB$QB@>);?xtW1tRZ$MCR$G3@&t zj~+or*tG8=+{3ybbw7AwJhXBv>HNQckl9BMO#8|%GWZ-y+41+PujjZ;F-5`y3D)gV zY}R0Bz}n^R_BeU)L_9bWXQyJ_wxGq+<#zHgkMhyPNc==%l)oL|E6&zm`eN_D_1?as z^bHC{;eq>SCT9lu{EoTLZT9pkO2+Ek9pgWzi%=FKxhy{)Zw#pRBk zeKW&*>Yb^UAHAbYVI>SAX8VtZBf(Y$p&~+?wVhnIxe>%jVw56F7;_L*1Bgfkb1H_Q zoS2(Q&VO|=)H)X(v|AO|O_#aHmF(&9wD$G(C8v7(-nFjHd)Vy84{0i@lz>%jxRSdIy93S}69nGogoPCN3qE@z)ZxaE$fIKU2QPTA1~&!@|iw zw~bqaBgf;3ZvG!m=fOfxAkf3FIedQYmFT*`)O`Ol9Rw*zd*|p5qRSkt4Uw((u6sf122| z2!Fog@%cRS0C(I%xcOB_pZ$T;)yF^Xb2%S8$uxa5#&2a`GR8k<#`wqMqXP*K{Is4J z2o5~SIQdl?^UfPf?$T4}3m!D3YB=|7?0+ zd4OzL?{?JnJl&^kCr(9qz>1|18|}8LfuJkF@4WXb^Nqc|+va<}y?5`=R=zf~@z#5v zeyTj!fA<%^c=P>x2lpoCvY+yWPn-T@>>K@ad#|@o{5NYc?UVTaKc>=k+S5tZY}!XP zkaH+VO%2WW42(9zelH+`55e6VLxbK&Ro2`ffeTDUv6L%<(K2(*lw}LwGKI>^gfh*j^&D_GR+{W$v7O??X6PllD<`qENxc4p;wA+2D7La-XIQI+gq0P)s5{frSJ_HKZj<6b$K%P)zYSF=(X(0^>lvMChQMX%p4Sx&OFI<<@O z()m`AVdvL$RTPUBF&#>vI0)*=t4R&**qkI+8l%ugc5mgK9|dRB@gFvs$`jLDVK{# zlP0ExG!N)-$db-vrA19itD1uQImz=8Y1UNuC5ko6VoFd;-8g+E%TE`iDddMdEq25X z#;y%n1`yWyY(C@F=W|&#ht}kUESkI&RKs#aS~O`(hj%g6Mry2J)s%`9t0`S7i%XIh zU|(875oyx|IoXmf?3vjjRN!VZpCgt0l;NaZ+qJc@^mHoZKTP&9?P&5H^-*{jE~F80 zUQF+(I!%O;DdweYO5uf*O)sTsK-H(}CR)CryX;3VbUqC2$xf|QGiqwL#bKJx`n{?@ z7xG7Bn^selX<5{#BGRcL03l>+`Ygo-pr&%NjktMmZQvrZ9mBYcln7*?0Jo(xofkWK zA)QECM7p$d3)z~vIF;*{Z6)
    |}9ozI@TP#1drkarsL4z0%8)30W0?d@sF^^|N6 zQ<0){Q?*w5wBaMU2Qy(B$Yg6&xky%O2h&StLw*(An%G-!r!J^{YRw^%S@=Jj$0Qz^ zsxO$p8e^R*QjBVv+{HE1sD@6B)tEB9kd^IfN=(ZZ6r}_6mQRU1%>T&c;`p01mD$?33~%blN+&hh9j~|t8tY()FCnw{u# zTJ0E7pT=Zc_z!U8%W%Yp0R$W&>W3pl18{_>3P*_c!x5qbaD-?Oju1ToM~Du>5u(p) zV#28NkcRkOd6C8>i;Qv{(I~8mO0uj2zAZ z_ed=ydDoDU<>-@HIofnm6C;M7L(t*VpI@%n1)k{^$(iS#vENQjs$;d2ybF;GBW^hQ z%r1FUtv(i!F)i9X5s{~UpDHS>0QESgf_Vl+RLs)KL<(Qt*_l;mu@hvmXJgO9ay`Xy zbA|m8Y#|<0KYk4rc`O|+?L<`}CU!7Z;&HQx*2j=$j0r6v^R$?g=d*VeVG`cEO3>7s zOVI{r$5sh@u&B;pX<-(Rt`jV39O zu#p3G0;w4@#L|w{E5wXCOU7unUNBNd0W>no7P3(>frF1cZU`~hk7pEIxfG zHnf{vkLXNlawObrIWp)=noNXuP(xHKJ6MjNGmL48$}sFFjdW1~HnU5`rD9b?u}JDZ zeg&HaHt54jZN~fiOL6vDh4F_}ALWhql?ips>wjXt{kevZDN05&scDMePnjnd8*vWdRcIo4rkR1RY;PJe-X274`ccgh%aW;GcHIYU{SMqb4X&a7shUe>4_) zthUS8R{+idZ~}AME;l4!1u!IEBb^kQULhR<8PXweo^%Mzlg=c-1=1m~Ksp3oB^?46 zNhb;LN2Eg_OF9H{q(k5m>7)U^PC5i$BOL;NOgaQElg>*3uagdeJn0b7Nr%9qCPxp` zTp&ii2yxLs6F?=So*+IAW=WG{huX`;7}_faBJEWJk?IvqzHq4e1~G=}nt@1l-9V(e zp~>+>)lFgy)v|#|^-l~$suk@n{vFZ08KuI~UXrH%%r!b{A`F-8pUvX}!r#KCT)$SA zYs`|ug&|a@_9OJiI6aOTk_Ixdsaik3bsm?+TiKeaI8_T0_Yd})_}evktAHC5RB$KG T)mUq2k3agBG=CST!xZ~pLX2G_ literal 0 HcmV?d00001 diff --git a/static/fontello/font/fontello.svg b/static/fontello/font/fontello.svg new file mode 100644 index 0000000..068fa60 --- /dev/null +++ b/static/fontello/font/fontello.svg @@ -0,0 +1,21 @@ + + + +Copyright (C) 2016 by original authors @ fontello.com + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/fontello/font/fontello.ttf b/static/fontello/font/fontello.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b267aaadf0e938e990f5850ccd4ed41f5d154fb9 GIT binary patch literal 5876 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 BBnbcj literal 0 HcmV?d00001 diff --git a/static/rewot.css b/static/rewot.css new file mode 100644 index 0000000..d343c95 --- /dev/null +++ b/static/rewot.css @@ -0,0 +1,186 @@ +body { + background-color: black; + color: silver; + font-family: monospace; + margin-right: 19rem; +} + +h1, h2, h3, h4, h5, h6 { + color: seagreen; +} + +a { + color: dodgerblue; + text-decoration: none; +} + +a:hover { + color: skyblue; +} + +/*nav { + position: fixed; + background: black; + z-index: 10; + top: 0; + right: 0; + padding: .5rem; + border-left: 1px dashed gray; + border-bottom: 1px dashed gray; + text-align: right; +} +nav ul { + margin: 0; + padding: 0; +} +nav ul li { + list-style: none; + padding-bottom: .5rem; +} +nav ul li:last-child { + padding-bottom: 0; +} +header { + position: fixed; + background: black; + top: 0; + left: 0; + width: 100%; + height: 3rem; + border-bottom: 1px dashed gray; + padding-left: 2rem; + z-index: 9; +} +header h1, header h2 { + height: 2rem; + display: inline-block; + color: coral; +} +main#replay { + white-space: pre-wrap; +} +textarea { + width: 75%; + height: 30rem; +} +footer { + position: fixed; + bottom: 0; + left: 0; + width: 100%; + height: 2rem; + border-top: 1px dashed gray; + line-height: 2rem; + background: black; +} +/* +footer ul { + margin: 0; + padding: 0; +} +footer ul li { + list-style: none; + display: inline-block; + padding-left: 1rem; +} +footer ul li.divider { + color: green; + font-size: 1rem; +} +footer i { + font-size: x-large; +} +span.header_mod { + visibility: hidden; +} +.notice { + color: yellow; +}*/ + + + +div.top { + position: fixed; + right: 0; + top: 0; + width: 10em; + text-align: center; +} + +div.top h1 { + font-size: xx-large; + border-bottom: 1px solid seagreen; + margin-bottom: 0; +} + +div.top h1 a { + color: coral; +} + +div.top ul { + margin: 0; + padding: 0; +} + +div.top ul li { + list-style: none; + display: inline-block; + margin: 0; + padding-top: .5rem; + padding-right: .5rem; + width: 100%; +} + +div.bottom { + position: fixed; + right: 0; + bottom: 0; + width: 10rem; + text-align: right; + padding: .5rem; +} + +div.bottom table { + display: inline-block; +} + + +div.bottom i { + font-size: xx-large; +} + +.green { + color: seagreen; +} + +div.notice { + color: seagreen; + padding: 1rem; +} + +div.notice span { + color: yellow; +} + +progress[value] { + width: 3rem; + height: 1rem; +} + +main#main { + /*white-space: pre-wrap;*/ +} + +div.replay-div { + display: none; + white-space: pre-wrap; +} + +div.replay-div-visible { + display: block; +} + +textarea { + width: 40rem; + height: 20rem; +} diff --git a/static/rewot.js b/static/rewot.js new file mode 100644 index 0000000..272ec2b --- /dev/null +++ b/static/rewot.js @@ -0,0 +1,200 @@ +"use strict"; + +var counter = 1; +var elmain = document.getElementById("main"); +var direction = "forward"; +var fast_forward_lines = 0; +var json = null; +var lineno = 0; +var pausedid = null; +var playing = false; +var speed = 1; +var timeout = null; + +function scroll(el) { + var de = document.documentElement; + + if ((el.offsetTop < de.scrollTop) || + (el.offsetTop + el.offsetHeight > de.scrollTop + de.clientHeight)) { + el.scrollIntoView(); + } +} + +function add_line(line, visible) { + var div = document.createElement("div"); + div.classList.add("replay-div"); + div.id = "replay-div-" + counter; + div.innerHTML = line || "\n"; + elmain.appendChild(div); + + if (visible) { + div.classList.add("replay-div-visible"); + scroll(div); + } + + counter += 1; + return counter - 1; +} + +function notice(msg, now) { + var s = '
    **** ' + msg; + return add_line(s, now); +} + +function del_line(id) { + var el = document.getElementById("replay-div-" + id); + if (el) { + el.parentNode.removeChild(el); + } +} + +function finished() { + playing = false; + notice('Finished ' + + (json.meta.title || json.meta.id) + '', true); + document.getElementById("play_pause").className = "icon-play"; +} + +function forward() { + direction = "forward"; + return false; +} + +function xhr_load() { + this.callback.apply(this, this.arguments); +} + +function xhr_error() { + console.error(this.statusText); +} + +function fetch_json(url, callback) { + var xhr = new XMLHttpRequest(); + xhr.callback = callback; + xhr.onload = xhr_load; + xhr.onerror = xhr_error; + xhr.open("get", url, true); + xhr.send(null); +} + +function load_log_lines() { + json = JSON.parse(this.responseText); + + if (!json) { + notice("Loading failed", true); + return; + } + + var ready = notice((json.meta.title || json.meta.id) + + ' loaded Play', false); + + json.log.forEach(function(line) { + json.log[line.lineno - 1].lineid = + add_line(line.line, false); + }); + + document.getElementById("progress").max = json.log.length; + document.title = "ReWoT :: " + (json.meta.title || json.meta.id); + document.getElementById("play_pause").className = "icon-play"; + update_progress(); + show_line(ready); +} + +function load_log(url) { + fetch_json(url, load_log_lines); + return false; +} + +function play_pause() { + var el = document.getElementById("play_pause"); + + if (playing) { + if (timeout) { + window.clearTimeout(timeout); + } + pausedid = notice("Paused", true); + playing = false; + document.getElementById("play_pause").className = "icon-play"; + } else { + if (json) { + playing = true; + document.getElementById("play_pause").className = "icon-pause"; + if (pausedid) { + del_line(pausedid); + } + if (lineno > json.log.slice(-1)[0].lineno) { + lineno = json.log.slice(-1)[0].lineno; + } else if (lineno < 1) { + lineno = 1; + } + replay_log(); + } else { + notice("No replay loaded", true); + } + } + return false; +} + +function replay_log() { + if (!json.log[lineno] || !playing) { + return; + } + + show_line(json.log[lineno].lineid); + + if (direction == "forward") { + lineno += 1; + } else { + hide_line(json.log[lineno].lineid); + lineno -= 1; + } + + if (json.log[lineno]) { + if (fast_forward_lines) { + fast_forward_lines -= 1; + replay_log(); + } else { + var d = parseFloat(json.log[lineno].delta) * speed; + if (d > 4000) { + d = 4000; + } + timeout = setTimeout(replay_log, d); + } + update_lineno(); + update_progress(); + } else { + finished(); + } +} + +function reverse() { + direction = "reverse"; + return false; +} + +function show_line(id) { + var el = document.getElementById("replay-div-" + id); + if (!!el) { + el.classList.add("replay-div-visible"); + scroll(el); + } +} + +function hide_line(id) { + var el = document.getElementById("replay-div-" + id); + if (!!el) { + el.classList.remove("replay-div-visible"); + } +} + +function update_lineno() { + document.getElementById("lineno").innerHTML = json.log[lineno].lineno; +} + +function update_progress() { + var el = document.getElementById("progress"); + el.value = json.log[lineno].lineno; + el.title = json.log[lineno].lineno + " / " + el.max; +} + +