jj

package module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2024 License: MIT Imports: 4 Imported by: 0

README

JJ - A Go HTML Builder

Write HTML without leaving your lovely Go files.

Install

go get github.com/syamilAbdillah/jj

v0.2.0 is break everything, so good luck with that

don't install this shit. just copy and paste it to your codebase.

shamelessly stole htmgolang code and changed it to my heart's content.

features

  • Pure Go
  • embrace LOB principle
  • No dependencies
  • No reflection
  • No Money
  • No Girl friend (WTF ... ?)

Usage

package main

import (
	"net/http"

	"github.com/syamilAbdillah/jj"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		jj.Render(w, func(j *jj.J) {
			j.Raw("<!DOCTYPE html>")
			j.Html(nil, func() {
				j.Head(nil, func() {
					j.Title(nil, func() {
						j.Text("Hello World")
					})
				})
				j.Body(jj.NewAttr().Class("container"), func() {
					j.H1(nil, func() {
						j.Text("Hello World")
					})

					j.Br(nil)
				})
			})
		})
	})

	http.ListenAndServe(":8080", nil)
}

Conditional


func Conditional(j *jj.J, isLoggedIn bool) {
	atr := jj.NewAttr()
	if isLoggedIn {
		atr.Href("/profile")
	} else {
		atr.Href("/login")
	}

	j.A(atr, func() {
		if isLoggedIn {
			j.Text("Profile")
		} else {
			j.Text("Login")
		}
	})
}
Loop


func Loop(j *jj.J, users []string) {
	j.Ul(nil, func() {
		for _, user := range users {
			j.Li(nil, func() {
				j.Text(user)
			})
		}
	})
}

TODO

  • codegen tool from HTML to JJ syntax
  • more tests
  • more examples
  • documentation site
why the name is JJ?

because my index finger is on j key

License

MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Render added in v0.2.0

func Render(w io.Writer, f func(j *J))

Types

type Attr added in v0.2.0

type Attr struct {
	// contains filtered or unexported fields
}

func NewAttr added in v0.2.0

func NewAttr() *Attr

func (*Attr) Accept added in v0.2.0

func (a *Attr) Accept(accept string) *Attr

func (*Attr) AcceptCharset added in v0.2.0

func (a *Attr) AcceptCharset(acceptCharset string) *Attr

func (*Attr) Action added in v0.2.0

func (a *Attr) Action(action string) *Attr

func (*Attr) Alt added in v0.2.0

func (a *Attr) Alt(alt string) *Attr

func (*Attr) Autocomplete added in v0.2.0

func (a *Attr) Autocomplete(autocomplete string) *Attr

func (*Attr) Autofocus added in v0.2.0

func (a *Attr) Autofocus() *Attr

func (*Attr) Autoplay added in v0.2.0

func (a *Attr) Autoplay(autoplay string) *Attr

func (*Attr) Bytes added in v0.2.0

func (a *Attr) Bytes() []byte

func (*Attr) Capture added in v0.2.0

func (a *Attr) Capture(capture string) *Attr

func (*Attr) Checked added in v0.2.0

func (a *Attr) Checked() *Attr

func (*Attr) Class added in v0.2.0

func (a *Attr) Class(c string) *Attr

func (*Attr) Cols added in v0.2.0

func (a *Attr) Cols(cols int) *Attr

func (*Attr) Disabled added in v0.2.0

func (a *Attr) Disabled() *Attr

func (*Attr) Enctype added in v0.2.0

func (a *Attr) Enctype(enctype string) *Attr

func (*Attr) For added in v0.2.0

func (a *Attr) For(name string) *Attr

func (*Attr) Form added in v0.2.0

func (a *Attr) Form(form string) *Attr

func (*Attr) Height added in v0.2.0

func (a *Attr) Height(height int) *Attr

func (*Attr) Href added in v0.2.0

func (a *Attr) Href(href string) *Attr

func (*Attr) ID added in v0.2.0

func (a *Attr) ID(id string) *Attr

func (*Attr) Max added in v0.2.0

func (a *Attr) Max(max int) *Attr

func (*Attr) Method added in v0.2.0

func (a *Attr) Method(method string) *Attr

func (*Attr) Min added in v0.2.0

func (a *Attr) Min(min int) *Attr

func (*Attr) Multiple added in v0.2.0

func (a *Attr) Multiple() *Attr

func (*Attr) Name added in v0.2.0

func (a *Attr) Name(name string) *Attr

func (*Attr) NoValidate added in v0.2.0

func (a *Attr) NoValidate() *Attr

func (*Attr) Pattern added in v0.2.0

func (a *Attr) Pattern(pattern string) *Attr

func (*Attr) Placeholder added in v0.2.0

func (a *Attr) Placeholder(placeholder string) *Attr

func (*Attr) Readonly added in v0.2.0

func (a *Attr) Readonly() *Attr

func (*Attr) Required added in v0.2.0

func (a *Attr) Required() *Attr

func (*Attr) Rows added in v0.2.0

func (a *Attr) Rows(rows int) *Attr

func (*Attr) Selected added in v0.2.0

func (a *Attr) Selected() *Attr

func (*Attr) Set added in v0.2.0

func (a *Attr) Set(k string, v any) *Attr

func (*Attr) Size added in v0.2.0

func (a *Attr) Size(size int) *Attr

func (*Attr) Src added in v0.2.0

func (a *Attr) Src(src string) *Attr

func (*Attr) Step added in v0.2.0

func (a *Attr) Step(step int) *Attr

func (*Attr) Style added in v0.2.0

func (a *Attr) Style(s string) *Attr

func (*Attr) Target added in v0.2.0

func (a *Attr) Target(target string) *Attr

func (*Attr) Title added in v0.2.0

func (a *Attr) Title(title string) *Attr

func (*Attr) Type added in v0.2.0

func (a *Attr) Type(t string) *Attr

func (*Attr) Value added in v0.2.0

func (a *Attr) Value(value string) *Attr

func (*Attr) Width added in v0.2.0

func (a *Attr) Width(width int) *Attr

type Attributes added in v0.2.0

type Attributes interface {
	Bytes() []byte
}

type J

type J struct {
	// contains filtered or unexported fields
}

func (*J) A

func (j *J) A(attrs Attributes, f func())

func (*J) Abbr

func (j *J) Abbr(attrs Attributes, f func())

func (*J) Address

func (j *J) Address(attrs Attributes, f func())

func (*J) Area

func (j *J) Area(attrs Attributes)

func (*J) Article

func (j *J) Article(attrs Attributes, f func())

func (*J) Aside

func (j *J) Aside(attrs Attributes, f func())

func (*J) Audio

func (j *J) Audio(attrs Attributes, f func())

func (*J) B

func (j *J) B(attrs Attributes, f func())

func (*J) Base

func (j *J) Base(attrs Attributes)

func (*J) Bdi

func (j *J) Bdi(attrs Attributes, f func())

func (*J) Bdo

func (j *J) Bdo(attrs Attributes, f func())

func (*J) Blockquote

func (j *J) Blockquote(attrs Attributes, f func())

func (*J) Body

func (j *J) Body(attrs Attributes, f func())

func (*J) Br

func (j *J) Br(attrs Attributes)

func (*J) Button

func (j *J) Button(attrs Attributes, f func())

func (*J) Canvas

func (j *J) Canvas(attrs Attributes, f func())

func (*J) Caption

func (j *J) Caption(attrs Attributes, f func())

func (*J) Cite

func (j *J) Cite(attrs Attributes, f func())

func (*J) Code

func (j *J) Code(attrs Attributes, f func())

func (*J) Col

func (j *J) Col(attrs Attributes)

func (*J) Colgroup

func (j *J) Colgroup(attrs Attributes, f func())

func (*J) Command

func (j *J) Command(attrs Attributes)

func (*J) Datalist

func (j *J) Datalist(attrs Attributes, f func())

func (*J) Dd

func (j *J) Dd(attrs Attributes, f func())

func (*J) Del

func (j *J) Del(attrs Attributes, f func())

func (*J) Details

func (j *J) Details(attrs Attributes, f func())

func (*J) Dfn

func (j *J) Dfn(attrs Attributes, f func())

func (*J) Div

func (j *J) Div(attrs Attributes, f func())

func (*J) Dl

func (j *J) Dl(attrs Attributes, f func())

func (*J) Dt

func (j *J) Dt(attrs Attributes, f func())

func (*J) Element added in v0.2.0

func (j *J) Element(tag string, attrs Attributes, f func())

func (*J) Em

func (j *J) Em(attrs Attributes, f func())

func (*J) Embed

func (j *J) Embed(attrs Attributes)

func (*J) Fieldset

func (j *J) Fieldset(attrs Attributes, f func())

func (*J) Figcaption

func (j *J) Figcaption(attrs Attributes, f func())

func (*J) Figure

func (j *J) Figure(attrs Attributes, f func())

func (*J) Footer

func (j *J) Footer(attrs Attributes, f func())

func (*J) Form

func (j *J) Form(attrs Attributes, f func())

func (*J) H1

func (j *J) H1(attrs Attributes, f func())

func (*J) H2

func (j *J) H2(attrs Attributes, f func())

func (*J) H3

func (j *J) H3(attrs Attributes, f func())

func (*J) H4

func (j *J) H4(attrs Attributes, f func())

func (*J) H5

func (j *J) H5(attrs Attributes, f func())

func (*J) H6

func (j *J) H6(attrs Attributes, f func())

func (*J) Head

func (j *J) Head(attrs Attributes, f func())

func (*J) Header

func (j *J) Header(attrs Attributes, f func())

func (*J) Hgroup

func (j *J) Hgroup(attrs Attributes, f func())

func (*J) Hr

func (j *J) Hr(attrs Attributes)

func (*J) Html

func (j *J) Html(attrs Attributes, f func())

func (*J) I

func (j *J) I(attrs Attributes, f func())

func (*J) Iframe

func (j *J) Iframe(attrs Attributes, f func())

func (*J) Img

func (j *J) Img(attrs Attributes)

func (*J) Input

func (j *J) Input(attrs Attributes)

func (*J) Ins

func (j *J) Ins(attrs Attributes, f func())

func (*J) Kbd

func (j *J) Kbd(attrs Attributes, f func())

func (*J) Keygen

func (j *J) Keygen(attrs Attributes)

func (*J) Label

func (j *J) Label(attrs Attributes, f func())

func (*J) Legend

func (j *J) Legend(attrs Attributes, f func())

func (*J) Li

func (j *J) Li(attrs Attributes, f func())
func (j *J) Link(attrs Attributes)

func (*J) Main added in v0.2.0

func (j *J) Main(attrs Attributes, f func())

func (*J) Map

func (j *J) Map(attrs Attributes, f func())

func (*J) Mark

func (j *J) Mark(attrs Attributes, f func())

func (*J) Menu

func (j *J) Menu(attrs Attributes, f func())

func (*J) Meta

func (j *J) Meta(attrs Attributes)

func (*J) Meter

func (j *J) Meter(attrs Attributes, f func())

func (*J) Nav

func (j *J) Nav(attrs Attributes, f func())

func (*J) Noscript

func (j *J) Noscript(attrs Attributes, f func())

func (*J) Object

func (j *J) Object(attrs Attributes, f func())

func (*J) Ol

func (j *J) Ol(attrs Attributes, f func())

func (*J) Optgroup

func (j *J) Optgroup(attrs Attributes, f func())

func (*J) Option

func (j *J) Option(attrs Attributes, f func())

func (*J) Output

func (j *J) Output(attrs Attributes, f func())

func (*J) P

func (j *J) P(attrs Attributes, f func())

func (*J) Param

func (j *J) Param(attrs Attributes)

func (*J) Pre

func (j *J) Pre(attrs Attributes, f func())

func (*J) Progress

func (j *J) Progress(attrs Attributes, f func())

func (*J) Q

func (j *J) Q(attrs Attributes, f func())

func (*J) Raw

func (j *J) Raw(html string)

Raw writes raw HTML to the output. be careful with this.

func (*J) Rp

func (j *J) Rp(attrs Attributes, f func())

func (*J) Rt

func (j *J) Rt(attrs Attributes, f func())

func (*J) Ruby

func (j *J) Ruby(attrs Attributes, f func())

func (*J) S

func (j *J) S(attrs Attributes, f func())

func (*J) Samp

func (j *J) Samp(attrs Attributes, f func())

func (*J) Script

func (j *J) Script(attrs Attributes, f func())

func (*J) Section

func (j *J) Section(attrs Attributes, f func())

func (*J) Select

func (j *J) Select(attrs Attributes, f func())

func (*J) Small

func (j *J) Small(attrs Attributes, f func())

func (*J) Source

func (j *J) Source(attrs Attributes)

func (*J) Span

func (j *J) Span(attrs Attributes, f func())

func (*J) Strong

func (j *J) Strong(attrs Attributes, f func())

func (*J) Style

func (j *J) Style(attrs Attributes, f func())

func (*J) Sub

func (j *J) Sub(attrs Attributes, f func())

func (*J) Summary

func (j *J) Summary(attrs Attributes, f func())

func (*J) Sup

func (j *J) Sup(attrs Attributes, f func())

func (*J) Table

func (j *J) Table(attrs Attributes, f func())

func (*J) Tbody

func (j *J) Tbody(attrs Attributes, f func())

func (*J) Td

func (j *J) Td(attrs Attributes, f func())

func (*J) Text

func (j *J) Text(text string)

func (*J) TextFunc added in v0.2.0

func (j *J) TextFunc(t string) func()

func (*J) Textarea

func (j *J) Textarea(attrs Attributes, f func())

func (*J) Textf added in v0.2.0

func (j *J) Textf(f string, a ...any)

func (*J) TextfFunc added in v0.2.0

func (j *J) TextfFunc(f string, a ...any) func()

func (*J) Tfoot

func (j *J) Tfoot(attrs Attributes, f func())

func (*J) Th

func (j *J) Th(attrs Attributes, f func())

func (*J) Thead

func (j *J) Thead(attrs Attributes, f func())

func (*J) Time

func (j *J) Time(attrs Attributes, f func())

func (*J) Title

func (j *J) Title(attrs Attributes, f func())

func (*J) Tr

func (j *J) Tr(attrs Attributes, f func())

func (*J) Track

func (j *J) Track(attrs Attributes)

func (*J) Ul

func (j *J) Ul(attrs Attributes, f func())

func (*J) Var

func (j *J) Var(attrs Attributes, f func())

func (*J) Video

func (j *J) Video(attrs Attributes, f func())

func (*J) Wbr

func (j *J) Wbr(attrs Attributes)

Directories

Path Synopsis
cmd
examples

Jump to

Keyboard shortcuts

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