├── LICENSE ├── README.md ├── examples └── 1-hello-wasm │ ├── index.wasmgo.html │ ├── main.go │ ├── mainTmpl.go │ └── mainTmpl.vue ├── go.mod ├── go.sum └── main.go /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vueg 2 | Command `vueg` is the Go generator for [Vue](https://github.com/norunners/vue) templates. 3 | 4 | # Install 5 | ```bash 6 | go get github.com/norunners/vueg 7 | ``` 8 | 9 | # Hello World! 10 | The `mainTmpl.vue` Vue template file is read to generate Go source. 11 | ```vue 12 | 15 | ``` 16 | 17 | The `main.go` file declares the `//go:generate vueg` directive. 18 | Note, the constant `mainTmpl` is expected to be generated. 19 | ```go 20 | package main 21 | 22 | import "github.com/norunners/vue" 23 | 24 | //go:generate vueg 25 | 26 | type Data struct { 27 | Message string 28 | } 29 | 30 | func main() { 31 | vue.New( 32 | vue.El("#app"), 33 | vue.Template(mainTmpl), 34 | vue.Data(Data{Message: "Hello WebAssembly!"}), 35 | ) 36 | 37 | select {} 38 | } 39 | ``` 40 | 41 | Run `vueg` with the following command. 42 | ```bash 43 | go generate 44 | ``` 45 | 46 | Finally, the `mainTmpl.go` file is generated with the `mainTmpl` constant. 47 | ```go 48 | // The vueg command generated this source from file: mainTmpl.vue, do not edit. 49 | 50 | package main 51 | 52 | const mainTmpl = "
{{ Message }}
" 53 | ``` 54 | 55 | # File Watching 56 | Below is the `vueg` file watcher setup in GoLand. 57 | The file watcher runs `go generate` after changes are made to Go files. 58 | Note, this configuration does not listen to changes on the Vue template files themselves. 59 | Other IDEs that support file watchers may be configured similarly. 60 | ![file-watcher](https://user-images.githubusercontent.com/25853983/45580820-53ee0a80-b84a-11e8-9494-d9427b609f44.png) 61 | 62 | # Styling 63 | The `vueg` command does not currently support the `