1.7 KiB
WASM for Tcell
You can build Tcell project into a webpage by compiling it slightly differently. This will result in a Tcell project you can embed into another html page, or use as a standalone page.
Building your project
WASM needs special build flags in order to work. You can build it by executing
GOOS=js GOARCH=wasm go build -o yourfile.wasm
Additional files
You also need 5 other files in the same directory as the wasm. Four (tcell.html
, tcell.js
, termstyle.css
, and beep.wav
) are provided in the webfiles
directory. The last one, wasm_exec.js
, can be copied from GOROOT into the current directory by executing
cp "$(go env GOROOT)/misc/wasm/wasm_exec.js" ./
In tcell.js
, you also need to change the constant
const wasmFilePath = "yourfile.wasm"
to the file you outputed to when building.
Displaying your project
Standalone
You can see the project (with an white background around the terminal) by serving the directory. You can do this using any framework, including another golang project:
// server.go
package main
import (
"log"
"net/http"
)
func main() {
log.Fatal(http.ListenAndServe(":8080",
http.FileServer(http.Dir("/path/to/dir/to/serve")),
))
}
To see the webpage with this example, you can type in localhost:8080/tcell.html
into your browser while server.go
is running.
Embedding
It is recomended to use an iframe if you want to embed the app into a webpage:
<iframe src="tcell.html" title="Tcell app"></iframe>
Other considerations
Accessing files
io.Open(filename)
and other related functions for reading file systems do not work; use http.Get(filename)
instead.