btstrp

package module
v0.0.0-...-858628d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2023 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package btstrp adds a set of html templates based on Bootstrap.

Example
package main

import (
	"html/template"
	"log"
	"os"

	"cirello.io/exp/btstrp"
)

func main() {
	const pageTpl = `<!doctype html>
<html lang="en">
	<head>{{template "Intro"}}</head>
	<body>
	{{template "ContainerStart" .}}
		{{ template "Button" .ButtonA }}
		{{ template "Button" .ButtonB }}
	{{template "ContainerEnd" .}}
	</body>
</html>`

	page := template.Must(btstrp.Template().Parse(pageTpl))

	err := page.Execute(os.Stdout, map[string]interface{}{
		"ButtonA": btstrp.Button{
			Type:    "reset",
			Body:    "reset me",
			Variant: "primary",
			Class:   "bold",
			Attributes: btstrp.Attributes{
				"onClick":     "javascript: alert('hello world')",
				"onMouseOver": "javascript: alert('hello world 2')",
			},
		},
		"ButtonB": btstrp.Button{
			Body:    "button B",
			Variant: "danger",
		},
		"ContainerB": btstrp.Container{
			Body: "containerB",
		},
	})
	if err != nil {
		log.Fatal(err)
	}

}
Output:

<!doctype html>
<html lang="en">
	<head> <meta charset="utf-8">  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</head>
	<body>
	<div class="container">
		<button type="reset" class="btn btn-primary bold" onClick="javascript: alert(&#39;hello world&#39;)" onMouseOver="javascript: alert(&#39;hello world 2&#39;)">reset me</button>
		<button type="button" class="btn btn-danger">button B</button>
	</div>
	</body>
</html>

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Template

func Template() *template.Template

Template returns the preloaded bootstrap template.

Types

type Attributes

type Attributes map[template.HTMLAttr]string

Attributes extends the HTML tag of the bootstrap component.

type Button

type Button struct {
	Type       string
	Body       interface{}
	Variant    string
	Class      string
	Attributes map[template.HTMLAttr]string
}

Button creates a button component.

type Container

type Container struct {
	Type       string
	Body       interface{}
	Variant    string
	Class      string
	Attributes map[template.HTMLAttr]string
}

Container creates a container component.

type Inline

type Inline struct {
	Body interface{}
}

Inline adds an inline component without any escaping.

type Intro

type Intro struct {
}

Intro adds the HTML preamble necessary for bootstrap.

type Type

type Type string

Type defines the bootstrap elements that this template implementation knows how to convert in runtime.

const (
	ComponentInline    Type = "Inline"
	ComponentIntro     Type = "Intro"
	ComponentContainer Type = "Container"
	ComponentButton    Type = "Button"
)

All known element types.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL