-
Notifications
You must be signed in to change notification settings - Fork 24
/
symbol.go
35 lines (31 loc) · 951 Bytes
/
symbol.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package sgml
import (
"fmt"
"github.com/bytesparadise/libasciidoc/pkg/types"
)
var symbols = map[string]string{
"(C)": "©",
"(R)": "®",
"(TM)": "™",
"...": "…​", // include the 'zero width' character (`​`) to prevent increased letter spacing in justification
"'": "’",
"'`": "‘",
"`'": "’",
"\"`": "“",
"`\"": "”",
"->": "→",
"<-": "←",
"=>": "⇒",
"<=": "⇐",
"--": "—​", // include the 'zero width' character (`​`) to prevent increased letter spacing in justification
" -- ": " — ", // surrounded by thin spaces
}
func (r *sgmlRenderer) renderSymbol(s *types.Symbol) (string, error) {
if str, found := symbols[s.Name]; found {
// if s.Prefix != "" {
// return s.Prefix + str, nil
// }
return str, nil
}
return "", fmt.Errorf("symbol '%s' is not defined", s.Name)
}