Skip to content

Instantly share code, notes, and snippets.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
/* CSS */
._000fff{
background: #000;
color: #fff;
main()
function main(){
console.log('main')
let listener = EventMap(mapperUpperCase)(window)
listener.addEventListener('keydown', e=>console.info('down', e))
listener.addEventListener('keyup', e=>console.info('up', e))
}

Textglue Templates Tutorial

Introduction and Basic Use Case

Textglue is a simple static templating library, especially intended for rendering static standalone html files. This is useful for putting a webpage or webapp into a single file that can be distributed and reliably run without a webserver. A single standalone html file is a very portable way to distribute simple demo pages or small javascript based webapps. That way it can be downloaded and run offline on a variety of platforms without running a server.

;;
;; dual numpad kanata
;;
(defsrc
caps
#| left hand numpad |#
q w e r
a s d f
;; NumpadAdventure keyboard
;; Exactly one defcfg entry is required. This is used for configuration key-pairs.
;; copied defcfg from ARTSEY example
(defcfg
;; Your keyboard device will likely differ from this.
linux-dev /dev/input/event1
;; Windows doesn't need any input/output configuration entries; however, there
;; must still be a defcfg entry. You can keep the linux-dev entry or delete
;;
;; zilted graphite kanata
;;
(defsrc
esc
grv 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
caps a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
/* CSS */
button{
padding: 1em 2em;
color: #fff;
background: #000;
{"id":875824913,"keymap":[[{"col":0,"row":0,"val":0},{"col":1,"row":0,"val":20},{"col":2,"row":0,"val":26},{"col":3,"row":0,"val":8},{"col":4,"row":0,"val":21},{"col":5,"row":0,"val":24},{"col":6,"row":0,"val":12},{"col":7,"row":0,"val":18},{"col":8,"row":0,"val":19},{"col":9,"row":0,"val":0},{"col":10,"row":0,"val":0},{"col":11,"row":0,"val":0},{"col":12,"row":0,"val":0},{"col":13,"row":0,"val":0},{"col":14,"row":0,"val":0},{"col":15,"row":0,"val":0},{"col":16,"row":0,"val":0},{"col":17,"row":0,"val":0},{"col":0,"row":1,"val":0},{"col":1,"row":1,"val":43},{"col":2,"row":1,"val":20994},{"col":3,"row":1,"val":193},{"col":4,"row":1,"val":23},{"col":5,"row":1,"val":28},{"col":6,"row":1,"val":48},{"col":7,"row":1,"val":172},{"col":8,"row":1,"val":47},{"col":9,"row":1,"val":0},{"col":10,"row":1,"val":42},{"col":11,"row":1,"val":0},{"col":12,"row":1,"val":0},{"col":13,"row":1,"val":0},{"col":14,"row":1,"val":0},{"col":15,"row":1,"val":225},{"col":16,"row":1,"val":32263},{"col":17,"row":1,"val":0},{"col":0,"row":2,"
{"id":875824913,"keymap":[[{"col":0,"row":0,"val":0},{"col":1,"row":0,"val":20},{"col":2,"row":0,"val":26},{"col":3,"row":0,"val":8},{"col":4,"row":0,"val":21},{"col":5,"row":0,"val":24},{"col":6,"row":0,"val":12},{"col":7,"row":0,"val":18},{"col":8,"row":0,"val":19},{"col":9,"row":0,"val":0},{"col":10,"row":0,"val":0},{"col":11,"row":0,"val":0},{"col":12,"row":0,"val":0},{"col":13,"row":0,"val":0},{"col":14,"row":0,"val":0},{"col":15,"row":0,"val":0},{"col":16,"row":0,"val":0},{"col":17,"row":0,"val":0},{"col":0,"row":1,"val":0},{"col":1,"row":1,"val":43},{"col":2,"row":1,"val":20994},{"col":3,"row":1,"val":193},{"col":4,"row":1,"val":23},{"col":5,"row":1,"val":28},{"col":6,"row":1,"val":48},{"col":7,"row":1,"val":172},{"col":8,"row":1,"val":47},{"col":9,"row":1,"val":0},{"col":10,"row":1,"val":42},{"col":11,"row":1,"val":0},{"col":12,"row":1,"val":0},{"col":13,"row":1,"val":0},{"col":14,"row":1,"val":0},{"col":15,"row":1,"val":225},{"col":16,"row":1,"val":32263},{"col":17,"row":1,"val":0},{"col":0,"row":2,"