• Stars
    star
    276
  • Rank 149,319 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created over 10 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

HTML formatter for Go

GoHTML - HTML formatter for Go

wercker status GoDoc

GoHTML is an HTML formatter for Go. You can format HTML source codes by using this package.

Install

go get -u github.com/yosssi/gohtml

Example

Example Go source code:

package main

import (
	"fmt"

	"github.com/yosssi/gohtml"
)

func main() {
	h := `<!DOCTYPE html><html><head><title>This is a title.</title><script type="text/javascript">
alert('aaa');
if (0 < 1) {
	alert('bbb');
}
</script><style type="text/css">
body {font-size: 14px;}
h1 {
	font-size: 16px;
	font-weight: bold;
}
</style></head><body><form><input type="name"><p>AAA<br>BBB></p></form><!-- This is a comment. --></body></html>`
	fmt.Println(gohtml.Format(h))
}

Output:

<!DOCTYPE html>
<html>
  <head>
    <title>
      This is a title.
    </title>
    <script type="text/javascript">
      alert('aaa');
      if (0 < 1) {
      	alert('bbb');
      }
    </script>
    <style type="text/css">
      body {font-size: 14px;}
      h1 {
      	font-size: 16px;
      	font-weight: bold;
      }
    </style>
  </head>
  <body>
    <form>
      <input type="name">
      <p>
        AAA
        <br>
        BBB>
      </p>
    </form>
    <!-- This is a comment. -->
  </body>
</html>

Output Formatted HTML with Line No

You can output formatted HTML source codes with line no by calling FormatWithLineNo:

package main

import (
	"fmt"

	"github.com/yosssi/gohtml"
)

func main() {
	h := `<!DOCTYPE html><html><head><title>This is a title.</title><script type="text/javascript">
alert('aaa');
if (0 < 1) {
	alert('bbb');
}
</script><style type="text/css">
body {font-size: 14px;}
h1 {
	font-size: 16px;
	font-weight: bold;
}
</style></head><body><form><input type="name"><p>AAA<br>BBB></p></form><!-- This is a comment. --></body></html>`
	fmt.Println(gohtml.FormatWithLineNo(h))
}

Output:

 1  <!DOCTYPE html>
 2  <html>
 3    <head>
 4      <title>
 5        This is a title.
 6      </title>
 7      <script type="text/javascript">
 8        alert('aaa');
 9        if (0 < 1) {
10        	alert('bbb');
11        }
12      </script>
13      <style type="text/css">
14        body {font-size: 14px;}
15        h1 {
16        	font-size: 16px;
17        	font-weight: bold;
18        }
19      </style>
20    </head>
21    <body>
22      <form>
23        <input type="name">
24        <p>
25          AAA
26          <br>
27          BBB>
28        </p>
29      </form>
30      <!-- This is a comment. -->
31    </body>
32  </html>

Format Go html/template Package's Template's Execute Result

You can format Go html/template package's template's execute result by passing Writer to the tpl.Execute:

package main

import (
	"os"
	"text/template"

	"github.com/yosssi/gohtml"
)

func main() {

	tpl, err := template.New("test").Parse("<html><head></head><body>{{.Msg}}</body></html>")

	if err != nil {
		panic(err)
	}

	data := map[string]interface{}{"Msg": "Hello!"}

	err = tpl.Execute(gohtml.NewWriter(os.Stdout), data)

	if err != nil {
		panic(err)
	}
}

Output:

<html>
  <head>
  </head>
  <body>
    Hello!
  </body>
</html>

Docs

More Repositories

1

ace

HTML template engine for Go
Go
834
star
2

gcss

Pure Go CSS Preprocessor
Go
496
star
3

gmq

Pure Go MQTT Client
Go
346
star
4

gold

[DEPRECATED]Template engine for Go
Go
145
star
5

goat

File watcher
Go
90
star
6

boltstore

Session store using Bolt
Go
87
star
7

go-fileserver

Go cached file server
Go
40
star
8

martini-acerender

Martini middleware/handler for parsing Ace templates and rendering HTML
Go
20
star
9

vim-ace

Vim syntax highlighting for Ace templates
Vim Script
16
star
10

rendergold

Martini middleware/handler for parsing Gold templates and rendering HTML
Go
15
star
11

galaxy

Simple web framework for Go
Go
15
star
12

go-voicetext

Go言θͺžε‘けVoiceText Web APIγ‚―γƒ©γ‚€γ‚’γƒ³γƒˆ
Go
14
star
13

koa-stylus

Stylus middleware for Koa
JavaScript
12
star
14

gocover

Go coverage profile HTML showing tool
Go
9
star
15

vim-gcss

Vim syntax highlighting for GCSS
Vim Script
6
star
16

goesjp

Go news website
Go
5
star
17

go-session-store-benchmarks

Go session store benchmarks
Go
5
star
18

gospritz

Spritz program in Golang
Go
5
star
19

ace-proxy

Proxy for the Ace template engine
Go
4
star
20

gologger

Logger in Go
Go
4
star
21

ace-tmbundle

Ace TextMate/Sublime Text Bundle
4
star
22

goproject

Go project search engine
Go
3
star
23

vim-gold

Vim syntax highlighting for Gold templates
Vim Script
3
star
24

gold.yoss.si

Website about Gold
Go
3
star
25

staticbin

Martini middleware/handler for serving static files from binary data
Go
3
star
26

go-perm

Permutation Generator in Go
Go
3
star
27

ip2domain

IP address to domain name converter
Java
3
star
28

docker-errbit

Dockerfile for Errbit
Shell
3
star
29

orgs.io

Wep application for organizing bookmarks
Go
3
star
30

docker-elasticsearch

Dockerfile for Elasticsearch
Shell
2
star
31

httprouter

Go
2
star
32

gogithub

GitHub API client in Golang
Go
2
star
33

xpress

Simple blogging service
Go
2
star
34

packer-errbit

Packer configuration file for Errbit
2
star
35

goes

Go news gatherer
Go
2
star
36

slides.yoss.si

Website showing slides
Go
2
star
37

dockerfile-dev

Dockerfile for general development
Shell
1
star
38

wercker-box-golang-latest

wercker box using the latest version of Go
1
star
39

ace.yoss.si

Website of Ace
Go
1
star
40

golang-study-slices

Golang study about slices
Go
1
star
41

t-rex-ai

T-Rex Game AI
JavaScript
1
star
42

go-stylus

Stylus caller in Go
Go
1
star
43

goelasticsearch

Elasticsearch client in Golang
Go
1
star
44

chainer-vagrant

Vagrantfile for Chainer
Shell
1
star
45

vagrant-box-templates

Vagrant box templates
Shell
1
star
46

go-hpg

γƒ›γƒƒγƒˆγƒšγƒƒγƒ‘γƒΌ Webァービス γ‚―γƒ©γ‚€γ‚’γƒ³γƒˆ
Go
1
star
47

uguis

Twitter音声θͺ­γΏδΈŠγ’γ‚³γƒžγƒ³γƒ‰γƒ©γ‚€γƒ³γƒ„γƒΌγƒ«
Go
1
star
48

yoss.si

Website of Keiji Yoshida
Go
1
star
49

drone-test-custom-docker-image

Drone Test - Custom Docker Image
Go
1
star
50

golang-links-ja

Go言θͺžγ«ι–’するγƒͺンク
1
star
51

golang-links

Links about Go
1
star
52

gold-tmbundle

Gold TextMate/Sublime Text Bundle
1
star
53

fluent-plugin-cloud-pubsub

fluent-plugin-cloud-pubsub
Ruby
1
star
54

goc

Command which opens Go package documentation in a web browser
Go
1
star
55

algorithms-in-go

Algorithms in Go
Go
1
star
56

html2ace

HTML to Ace Template Converter
1
star
57

gonhk

NHK API Client in Go
Go
1
star
58

cfnews

Articles relating to Crowdfunding
Go
1
star
59

talks

Talks
Go
1
star
60

goimpl

Go tool which searches structs which implement the specified interface
1
star
61

go-jsonp-callback-validator

JSONP callback validator
Go
1
star
62

docker-go1.2-mongo2.4

Dockerfile for Go 1.2 and MongoDB 2.4
1
star
63

i2d

IP address to domain name converter
Go
1
star
64

gofmtchk

Format check tool in Go
Go
1
star
65

gofmtall

Format tool in Go
Go
1
star
66

vagrantfiles

Vagrantfiles
Ruby
1
star
67

cfnewsjp

Articles relating to Crowdfunding
Go
1
star
68

goutils

Utility functions in Go
Go
1
star
69

xpress-packer-template

Xpress packer template
Shell
1
star
70

gocmd

Command utility functions in Go
Go
1
star