Skip to content

Instantly share code, notes, and snippets.

@tpdns90321
Created September 20, 2016 07:01
Show Gist options
  • Save tpdns90321/38378aae760190b57b92f793e90df8be to your computer and use it in GitHub Desktop.
Save tpdns90321/38378aae760190b57b92f793e90df8be to your computer and use it in GitHub Desktop.
Just Fun and I just used private.
package main
func BootstrapTemplate() string {
jquery := "<script src=\"https://code.jquery.com/jquery-3.1.0.min.js\" integrity=\"sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s=\" crossorigin=\"anonymous\"></script>"
css := "<link href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\" rel=\"stylesheet\" integrity=\"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u\" crossorigin=\"anonymous\">"
option := "<link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css\" integrity=\"sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp\" crossorigin=\"anonymous\">"
script := "<script src=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js\" integrity=\"sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa\" crossorigin=\"anonymous\"></script>"
return jquery + "\n" + css + "\n" + option + "\n" + script + "\n"
}
func MainTemplate(title string) string {
return "<html>\n" + "<head>\n" + BootstrapTemplate() + "<title>" + title + "</title></head>\n<body>"
}
var MainEndTemplate = "</body></html>"
type Navbar struct {
name string
link string
press bool
}
func Page(title, body string) string {
return MainTemplate(title) + body + MainEndTemplate
}
var ContainerTemplate string = "<div class=\"container\">\n"
var ContainerEndTemplate string = "</div>\n"
func NewNavbar(name, link string, press bool) *Navbar {
return &Navbar{name, link, press}
}
func (nav *Navbar) Elem() string {
if nav.press {
return "<li class=\"active\"><a href=\"" + nav.link + "\">" + nav.name + "</a></li>\n"
}
return "<li><a href=\"" + nav.link + "\">" + nav.name + "</a></li>\n"
}
type NavbarMenu []*Navbar
func (menu *NavbarMenu) Add(nav *Navbar) {
*menu = append(*menu, nav)
}
func (menu *NavbarMenu) String() string {
var str string
for _, v := range *menu {
str += v.Elem()
}
return "<ul class=\"nav navbar-nav\">\n" + str + "</ul>"
}
func NavbarPage(title, site, body string, menu NavbarMenu) string {
return Page(title,
"<nav class=\"navbar navbar-inverse navbar-fixed-top\">\n"+
ContainerTemplate+
"<div class=\"navbar-header\">\n"+
"<button type=\"button\""+
"class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#navbar\" aria-expanded=\"false\" aria-controls=\"navbar\"><span class=\"sr-only\">Toggle navigation</span><span class=\"icon-bar\"></span><span class=\"icon-bar\"></span></button>\n"+
"<a class=\"navbar-brand\" href=\"/\">"+site+"</a>\n"+
"</div>\n"+
"<div id=\"navbar\" class=\"navbar-collasped collapse in\">"+
menu.String()+
"</div>"+
ContainerEndTemplate+
"</nav>\n"+
ContainerTemplate+
body+
ContainerEndTemplate)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment