diff --git a/src/twit2blogpkg/templates.nim b/src/twit2blogpkg/templates.nim index d132d6d..3087fec 100644 --- a/src/twit2blogpkg/templates.nim +++ b/src/twit2blogpkg/templates.nim @@ -1,24 +1,34 @@ import strformat import karax / [karaxdsl, vdom] +proc layout(inner : VNode) : string = + let vnode = buildHtml(html): + head: + meta(charset="utf-8") + link(href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css", rel="stylesheet") + body: + tdiv(class="text-center appearance-none"): + inner + "\n" & $vnode + proc tweetThread*(author : string, tweets : seq[string]): string = let title = fmt"Thread by {author}" - let vnode = buildHtml(tdiv): + let vnode = buildHtml(tdiv(class="")): 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: + ul(class="m-auto max-w-md list-decimal text-left"): for tweet in tweets: li: text tweet - result = $vnode + result = $vnode.layout proc checkBack*() : string = let vnode = buildHtml(tdiv): h4: text "Check back later please" - result = $vnode + result = $vnode.layout proc listThreads*(author : string, threads : seq[string]) : string = @@ -28,31 +38,33 @@ proc listThreads*(author : string, h4: text title ul: for thread in threads: - li: a(href = fmt"/thread/{author}/status/{thread}"): text thread - result = $vnode + li: a(href=fmt"/thread/{author}/status/{thread}"): text thread + result = $vnode.layout # Main page proc listAuthors*(authors : seq[string]) : VNode = let title = "Authors" let vnode = buildHtml(tdiv): - h4: text title - ul: + h1(class="uppercase text-center"): text title + ul(class="text-center"): for author in authors: - li: a(href = fmt"/author/{author}/threads"): text author + 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"): - tdiv: + form(action = "/thread", `method`="POST", class="appearance-none"): + tdiv(class="text-center"): label(`for`="tweetUrl"): text "Tweet URL" - input(`type`="text", name="tweetURL", id="tweeturl", required="true") + input(class="bg-teal-100", `type`="text", name="tweetURL", id="tweeturl", required="true") result = vnode proc mainPage*(authors : seq[string]) : string = let vnode = buildHtml(tdiv): listAuthors(authors) submitThread() - result = $vnode + result = $vnode.layout diff --git a/src/twit2blogpkg/twitter.nim b/src/twit2blogpkg/twitter.nim index da51b05..7ed2193 100644 --- a/src/twit2blogpkg/twitter.nim +++ b/src/twit2blogpkg/twitter.nim @@ -79,7 +79,7 @@ proc convertWords(tweet : string) : string = let url = xmltree.escape(fmt"{scheme}://{hostname}{path}") stripped &= url elif word.len > 0 and word[0] != '@': - stripped &= xmltree.escape(word) + stripped &= word else: continue stripped.join(" ")