Merge branch 'answer-linking'
This commit is contained in:
commit
203e8aa23c
4
main.go
4
main.go
@ -55,6 +55,10 @@ func main() {
|
|||||||
c.Redirect(302, fmt.Sprintf("/questions/%s/placeholder", c.Param("id")))
|
c.Redirect(302, fmt.Sprintf("/questions/%s/placeholder", c.Param("id")))
|
||||||
})
|
})
|
||||||
r.GET("/questions/:id/:title", routes.ViewQuestion)
|
r.GET("/questions/:id/:title", routes.ViewQuestion)
|
||||||
|
r.GET("/questions/:id/:title/:answerId", func(c *gin.Context) {
|
||||||
|
// redirect user to the answer with the title
|
||||||
|
c.Redirect(302, fmt.Sprintf("/questions/%s/%s#%s", c.Param("id"), c.Param("title"), c.Param("answerId")))
|
||||||
|
})
|
||||||
|
|
||||||
r.GET("/proxy", routes.GetImage)
|
r.GET("/proxy", routes.GetImage)
|
||||||
|
|
||||||
|
@ -196,6 +196,7 @@ func ViewQuestion(c *gin.Context) {
|
|||||||
answers := []types.FilteredAnswer{}
|
answers := []types.FilteredAnswer{}
|
||||||
|
|
||||||
doc.Find("div.answer").Each(func(i int, s *goquery.Selection) {
|
doc.Find("div.answer").Each(func(i int, s *goquery.Selection) {
|
||||||
|
|
||||||
newFilteredAnswer := types.FilteredAnswer{}
|
newFilteredAnswer := types.FilteredAnswer{}
|
||||||
|
|
||||||
postLayout := s.Find("div.post-layout")
|
postLayout := s.Find("div.post-layout")
|
||||||
@ -235,6 +236,9 @@ func ViewQuestion(c *gin.Context) {
|
|||||||
answerTimestamp = html.EscapeString(s.Find("span.relativetime").Text())
|
answerTimestamp = html.EscapeString(s.Find("span.relativetime").Text())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
answerId, _ := s.Attr("data-answerid")
|
||||||
|
newFilteredAnswer.ID = answerId
|
||||||
|
|
||||||
newFilteredAnswer.AuthorName = answerAuthorName
|
newFilteredAnswer.AuthorName = answerAuthorName
|
||||||
newFilteredAnswer.AuthorURL = answerAuthorURL
|
newFilteredAnswer.AuthorURL = answerAuthorURL
|
||||||
newFilteredAnswer.Timestamp = answerTimestamp
|
newFilteredAnswer.Timestamp = answerTimestamp
|
||||||
|
@ -3,6 +3,8 @@ package types
|
|||||||
import "html/template"
|
import "html/template"
|
||||||
|
|
||||||
type FilteredAnswer struct {
|
type FilteredAnswer struct {
|
||||||
|
ID string
|
||||||
|
|
||||||
Upvotes string
|
Upvotes string
|
||||||
IsAccepted bool
|
IsAccepted bool
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ range $answer := .answers }}
|
{{ range $answer := .answers }}
|
||||||
<div class="answer">
|
<div class="answer" id="{{ $answer.ID }}">
|
||||||
<div
|
<div
|
||||||
class="answer-meta{{ if $answer.IsAccepted }} accepted{{end}}"
|
class="answer-meta{{ if $answer.IsAccepted }} accepted{{end}}"
|
||||||
>
|
>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user