You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
import strformat
|
|
import karax / [karaxdsl, vdom]
|
|
|
|
proc tweetThread*(author : string,
|
|
tweets : seq[string]): string =
|
|
|
|
let title = fmt"Thread by {author}"
|
|
let vnode = buildHtml(tdiv):
|
|
h4: text title
|
|
ul:
|
|
li: a(href="/"): text "Main Page"
|
|
li: a(href=fmt"/author/{author}/threads"): text (fmt"See all of {author}'s threads")
|
|
ul:
|
|
for tweet in tweets:
|
|
li: text tweet
|
|
result = $vnode
|
|
|
|
proc checkBack*() : string =
|
|
let vnode = buildHtml(tdiv):
|
|
h4: text "Check back later please"
|
|
result = $vnode
|
|
|
|
proc listThreads*(author : string,
|
|
threads : seq[string]) : string =
|
|
let title = fmt"Threads for {author}"
|
|
let vnode = buildHtml(tdiv):
|
|
a(href="/"): text "Main Page"
|
|
h4: text title
|
|
ul:
|
|
for thread in threads:
|
|
li: a(href = fmt"/thread/{author}/status/{thread}"): text thread
|
|
result = $vnode
|
|
|
|
|
|
## Main page
|
|
proc listAuthors*(authors : seq[string]) : VNode =
|
|
let title = "Authors"
|
|
let vnode = buildHtml(tdiv):
|
|
h4: text title
|
|
ul:
|
|
for author in authors:
|
|
li: a(href = fmt"/author/{author}/threads"): text author
|
|
result = vnode
|
|
|
|
proc submitThread() : VNode =
|
|
let vnode = buildHtml(tdiv):
|
|
form(action = "/thread", `method`="POST", class="submit-thread"):
|
|
text "blah"
|
|
result = vnode
|
|
|
|
proc mainPage*(authors : seq[string]) : string =
|
|
let vnode = buildHtml(tdiv):
|
|
listAuthors(authors)
|
|
submitThread()
|
|
result = $vnode
|
|
|