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.
WASM needs special build flags in order to work. You can build it by executing
GOOS=js GOARCH=wasm go build -o yourfile.wasm
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 outputted to when building.
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.
It is recommended to use an iframe if you want to embed the app into a webpage:
<iframe src="tcell.html" title="Tcell app"></iframe>
io.Open(filename)
and other related functions for reading file systems do not work; use http.Get(filename)
instead.