Modified from https://github.com/bryangingechen/lean-client-js/blob/cache/lean-client-js-browser/lib_test.html
Built with blockbuilder.org
| license: mit |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <title>leanBrowser.js bundle test</title> | |
| </head> | |
| <body> | |
| <script src="https://cdn.jsdelivr.net/npm/d3-require@1"></script> | |
| <script> | |
| // must use absolute URL since worker script is inlined in leanBrowser.js | |
| const prefix = "https://bryangingechen.github.io/lean/lean-web-editor/"; | |
| d3.require("https://cdn.jsdelivr.net/npm/@bryangingechen/[email protected]/dist/leanBrowser.js").then((lean) => { | |
| window.lean = lean; | |
| const opts = { | |
| // javascript: 'https://leanprover.github.io/lean.js/lean3.js', | |
| javascript: prefix+'/lean_js_js.js', | |
| webassemblyJs: prefix+'/lean_js_wasm.js', | |
| webassemblyWasm: prefix+'/lean_js_wasm.wasm', | |
| libraryZip: prefix+'/library.zip', | |
| // Uncomment to test optional fields | |
| // libraryMeta: prefix + '/library.info.json', | |
| // libraryOleanMap: prefix + '/library.olean_map.json', | |
| // dbName: 'leanlib2', | |
| // libraryKey: 'lib' | |
| }; | |
| const transport = new lean.WebWorkerTransport(opts); | |
| const server = new lean.Server(transport); | |
| server.error.on((err) => console.log('error:', err)); | |
| server.allMessages.on((allMessages) => console.log('messages:', allMessages.msgs)); | |
| server.tasks.on((currentTasks) => console.log('tasks:', currentTasks.tasks)); | |
| window.server = server; // allow debugging from the console | |
| server.connect(); | |
| const testfile = '' | |
| + 'variables p q r s : Prop\n' | |
| + 'theorem my_and_comm : p /\\ q <-> q /\\ p :=\n' | |
| + 'iff.intro\n' | |
| + ' (assume Hpq : p /\\ q,\n' | |
| + ' and.intro (and.elim_right Hpq) (and.elim_left Hpq))\n' | |
| + ' (assume Hqp : q /\\ p,\n' | |
| + ' and.intro (and.elim_right Hqp) (and.elim_left Hqp))\n' | |
| + '#check @nat.rec_on\n' | |
| + '#print "end of file!"\n'; | |
| server.sync('test.lean', testfile) | |
| .catch((err) => console.log('error while syncing file:', err)); | |
| server.info('test.lean', 3, 0) | |
| .then((res) => console.log(`got info: ${JSON.stringify(res)}`)) | |
| .catch((err) => console.log('error while getting info:', err)); | |
| }); | |
| </script> | |
| Check the console output; you can also play with the <pre style='display: inline;'>lean</pre> and <pre style='display: inline;'>server</pre> objects. | |
| </body> | |
| </html> |