experiments in a post-browser web
at main 87 lines 3.3 kB view raw
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';"> 6 <meta name="viewport" content="width=device-width, initial-scale=1"> 7 <title>Chain Editor</title> 8 9 <!-- Import map for CodeMirror --> 10 <script type="importmap"> 11 { 12 "imports": { 13 "@codemirror/state": "peek://node_modules/@codemirror/state/dist/index.js", 14 "@codemirror/view": "peek://node_modules/@codemirror/view/dist/index.js", 15 "@codemirror/commands": "peek://node_modules/@codemirror/commands/dist/index.js", 16 "@codemirror/language": "peek://node_modules/@codemirror/language/dist/index.js", 17 "@codemirror/autocomplete": "peek://node_modules/@codemirror/autocomplete/dist/index.js", 18 "@codemirror/lang-markdown": "peek://node_modules/@codemirror/lang-markdown/dist/index.js", 19 "@codemirror/lang-html": "peek://node_modules/@codemirror/lang-html/dist/index.js", 20 "@codemirror/lang-css": "peek://node_modules/@codemirror/lang-css/dist/index.js", 21 "@codemirror/lang-javascript": "peek://node_modules/@codemirror/lang-javascript/dist/index.js", 22 "@codemirror/theme-one-dark": "peek://node_modules/@codemirror/theme-one-dark/dist/index.js", 23 "@codemirror/search": "peek://node_modules/@codemirror/search/dist/index.js", 24 "@replit/codemirror-vim": "peek://node_modules/@replit/codemirror-vim/dist/index.js", 25 "@lezer/common": "peek://node_modules/@lezer/common/dist/index.js", 26 "@lezer/highlight": "peek://node_modules/@lezer/highlight/dist/index.js", 27 "@lezer/lr": "peek://node_modules/@lezer/lr/dist/index.js", 28 "@lezer/markdown": "peek://node_modules/@lezer/markdown/dist/index.js", 29 "@lezer/html": "peek://node_modules/@lezer/html/dist/index.js", 30 "@lezer/css": "peek://node_modules/@lezer/css/dist/index.js", 31 "@lezer/javascript": "peek://node_modules/@lezer/javascript/dist/index.js", 32 "crelt": "peek://node_modules/crelt/index.js", 33 "style-mod": "peek://node_modules/style-mod/src/style-mod.js", 34 "w3c-keyname": "peek://node_modules/w3c-keyname/index.js", 35 "@marijn/find-cluster-break": "peek://node_modules/@marijn/find-cluster-break/src/index.js" 36 } 37 } 38 </script> 39 40 <style> 41 @import url('peek://theme/variables.css'); 42 43 html, body { 44 margin: 0; 45 padding: 0; 46 height: 100%; 47 width: 100%; 48 background-color: color-mix(in srgb, var(--base00) 98%, transparent); 49 font-family: var(--theme-font-sans); 50 color: var(--theme-text, #333); 51 overflow: hidden; 52 display: flex; 53 flex-direction: column; 54 border-radius: 8px; 55 } 56 57 #editor-container { 58 flex: 1; 59 min-height: 0; 60 overflow: hidden; 61 position: relative; 62 } 63 64 #editor-container .cm-editor { 65 height: 100%; 66 } 67 68 #editor-container .cm-scroller { 69 overflow: auto; 70 } 71 72 #status-line { 73 flex-shrink: 0; 74 } 75 76 #status-line .vim-status-line { 77 border-radius: 0 0 8px 8px; 78 } 79 </style> 80 </head> 81 <body> 82 <div id="editor-container"></div> 83 <div id="status-line"></div> 84 85 <script type="module" src="./chain-editor.js"></script> 86 </body> 87</html>