Go 언어로 오프라인에서도 사용할 수 있는 WEB 매뉴얼을 만들어 보았다
모두 keita69sawada입니다.
Go 언어로 CLI로 툴을 만들 때 사용자에게 그림을 사용하여 설명을 하면 툴의 사용법을 알기 쉽다고 생각하지만, 아스키아트라면 한계가 있고 뭔가 좋은 방법이 없을까 생각했을 때에 , 'A Tour of GO'와 같이 오프라인으로 브라우저에 올 수 없습니까?
그럼, 「Go 언어로 오프라인에서도 사용할 수 있는 WEB 매뉴얼을 만들어 보자!」라고
성게는이 기사입니다.
대상 독자
전제 조건
절차
1. 우선 움직여 보는 사람은 이쪽
명령
git clone https://github.com/keita69/qiita-go-bt.git
cd qiita-go-bt
setup.bat
go-assets-builder -o ./src/bt/bindata.go data
go install bt
bt.exe
ブラウザが開いてhttp://localhost:3000/dataで"hello world !"が表示される
2. 디렉토리 구조(발췌)를 본다
디렉토리 구조(발췌)
git cloneした場所
│ setup.bat ・・・ Go環境セットアップ用
├─bin
│ bt.exe ・・・ コンパイルした結果の実行ファイル
│ go-assets-builder.exe ・・・ バイナリ(data配下のファイル)をGOソースに変換するツール
├─data
│ index.html ・・・ マニュアル(今回はただのhello world)
├─pkg
└─src
├─bt
│ bindata.go ・・・ go-asserts-builderで生成されたGOソース
│ bt.go ・・・ 作成したGOソース
3. setup.bat 살펴보기
setup.bat
set GOPATH=%~dp0 ・・・ GOPATHを設定
set PATH=%PATH%;%GOPATH%bin ・・・ GO実行ファイルにPATHを通す
go get -u github.com/jessevdk/go-assets-builder ・・・ アセット(jpeg,htmlなどをGo言語に変換したもの)を作成するツール
go get -u github.com/skratchdot/open-golang/open ・・・ ブラウザを起動するパッケージ
4. GO 소스를 살펴보기
4-1. bt.go 소스를 살펴보기
이것만으로 좋다!
bt.go
package main
import (
"net/http"
"github.com/skratchdot/open-golang/open"
)
func init() {
// 起動したらブラウザで開く
open.Run(`http://localhost:3000/data`)
}
func main() {
http.Handle("/", http.FileServer(Assets)) ★
http.ListenAndServe(":3000", nil)
}
4-2. go-assets-builder로 만든 GO 소스 (bindata.go)를 살펴보십시오.
var Assets = assets.NewFileSystem
로 정의된 Assets
는, 상기의 ★부분으로 불려 가고 있다.bindata.go
package main
import (
"time"
"github.com/jessevdk/go-assets"
)
var _Assets3b4e08d4c718d774efe29935a4a6842efab4f09b = "hello world !"
// Assets returns go-assets FileSystem
var Assets = assets.NewFileSystem(map[string][]string{"/": []string{"data"}, "/data": []string{"index.html"}}, map[string]*assets.File{
"/": &assets.File{
Path: "/",
FileMode: 0x800001ff,
Mtime: time.Unix(1513003236, 1513003236763661900),
Data: nil,
}, "/data": &assets.File{
Path: "/data",
FileMode: 0x800001ff,
Mtime: time.Unix(1513003195, 1513003195337290400),
Data: nil,
}, "/data/index.html": &assets.File{
Path: "/data/index.html",
FileMode: 0x1b6,
Mtime: time.Unix(1513003195, 1513003195337290400),
Data: []byte(_Assets3b4e08d4c718d774efe29935a4a6842efab4f09b),
}}, "")
4. 실행 결과
요약
go-asset-builder를 사용하면 jpeg, html 등을 포함한 자산을 간단히 One 바이너리로 작성할 수 있었다. 이번에는 "hello world!"를 표시할 뿐이지만, 브라우저에서 표시한 입력 필드와 버튼을 준비해, 접수한 리퀘스트를 처리(API로 외부 서비스를 호출하는 등)도 할 수 있을 것 같기 때문에 시험해 보고 싶다.
그리고, 소스의 코멘트에
// go:generate go-asset-builder xxx
라고 기술해 두면, go generate 커멘드로 “go-asset-builder xxx”가 실행되는 구조가 GO 언어에 있다. 그러나 이것이 잘 작동하지 않았습니다 (작성 된 소스 코드가 컴파일 오류가됩니다). 어째서?참고 URL
h tp // 기효. jp/보오 k/2016/978ー4ー7741ー8392ー3
Reference
이 문제에 관하여(Go 언어로 오프라인에서도 사용할 수 있는 WEB 매뉴얼을 만들어 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/keita69sawada/items/ff48bc81645935140a01텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)