43 lines
747 B
Go
43 lines
747 B
Go
|
// Copyright 2015 Frustra. All rights reserved.
|
||
|
// Use of this source code is governed by the MIT
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
// Package bbcode implements a parser and HTML generator for BBCode.
|
||
|
package bbcode
|
||
|
|
||
|
import "sort"
|
||
|
|
||
|
type BBOpeningTag struct {
|
||
|
Name string
|
||
|
Value string
|
||
|
Args map[string]string
|
||
|
Raw string
|
||
|
}
|
||
|
|
||
|
type BBClosingTag struct {
|
||
|
Name string
|
||
|
Raw string
|
||
|
}
|
||
|
|
||
|
func (t *BBOpeningTag) String() string {
|
||
|
str := t.Name
|
||
|
if len(t.Value) > 0 {
|
||
|
str += "=" + t.Value
|
||
|
}
|
||
|
keys := make([]string, len(t.Args))
|
||
|
i := 0
|
||
|
for key := range t.Args {
|
||
|
keys[i] = key
|
||
|
i++
|
||
|
}
|
||
|
sort.Strings(keys)
|
||
|
for _, key := range keys {
|
||
|
v := t.Args[key]
|
||
|
str += " " + key
|
||
|
if len(v) > 0 {
|
||
|
str += "=" + v
|
||
|
}
|
||
|
}
|
||
|
return str
|
||
|
}
|