Skip to content

Commit c2fe236

Browse files
committed
allow inserting links to class & method comments
1 parent cfe11d2 commit c2fe236

File tree

3 files changed

+36
-5
lines changed

3 files changed

+36
-5
lines changed

main.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
package main
22

33
import (
4-
// "./parser"
5-
// "./view"
64
"os"
75
)
86

97
func main() {
108
classes := ClassesFromDir(dir())
9+
classes = InsertClassLinks(classes)
1110
Write("./doc.json", classes)
1211

1312
os.RemoveAll("./docs")

parser.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ func ClassesFromDir(dir string) []Class {
2424
filename := dir + "/" + file.Name()
2525
class := classFromFile(filename)
2626
if class.Line != 0 {
27+
class.Filename = strings.Replace(class.Name, ".go", "", 1)
2728
classes = append(classes, class)
2829
}
2930
}
@@ -119,3 +120,37 @@ func Write(filepath string, classes []Class) {
119120
panic(err)
120121
}
121122
}
123+
124+
func InsertClassLinks(classes Classes) Classes {
125+
var returned_classes Classes
126+
puncs := []string{" ", ",", ".", ";", "\n"}
127+
// loop classes
128+
for _, class := range classes {
129+
text := string(class.Comment)
130+
// insert link to class comment
131+
for _, each_class := range classes {
132+
each_class_link := " [" + each_class.Name + "](" + each_class.Filename + ".html) "
133+
for _, sym := range puncs {
134+
text = strings.Replace(text, " "+each_class.Name+sym, each_class_link, -1)
135+
}
136+
}
137+
138+
// loop methods in a class
139+
for i, method := range class.InstanceMethods {
140+
text := string(method.Comment)
141+
// insert link to method comment
142+
for _, each_class := range classes {
143+
each_class_link := " [" + each_class.Name + "](" + each_class.Filename + ".html) "
144+
for _, sym := range puncs {
145+
text = strings.Replace(text, " "+each_class.Name+sym, each_class_link, -1)
146+
}
147+
}
148+
class.InstanceMethods[i].Comment = template.HTML(text)
149+
}
150+
151+
class.Comment = template.HTML(text)
152+
returned_classes = append(returned_classes, class)
153+
}
154+
155+
return returned_classes
156+
}

settings.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package main
33
import (
44
"encoding/json"
55
"io/ioutil"
6-
"strings"
76
)
87

98
type Settings struct {
@@ -24,8 +23,6 @@ func ReadFrom(filepath string, repo string, commit string) Classes {
2423
panic(err)
2524
}
2625
for i, class := range classes {
27-
name := strings.ToLower(class.Name)
28-
class.Filename = name
2926
class.Repo = repo
3027
class.Commit = commit
3128
classes[i] = class

0 commit comments

Comments
 (0)