diff --git a/src/formatters.nim b/src/formatters.nim index 7ff04e3..161505d 100644 --- a/src/formatters.nim +++ b/src/formatters.nim @@ -1,5 +1,6 @@ # SPDX-License-Identifier: AGPL-3.0-only import strutils, strformat, times, uri, tables, xmltree, htmlparser, htmlgen +import std/enumerate import regex import types, utils, query @@ -179,3 +180,13 @@ proc getLocation*(u: Profile | Tweet): (string, string) = proc getSuspended*(username: string): string = &"User \"{username}\" has been suspended" + +proc titleize*(str: string): string = + const + lowercase = {'a'..'z'} + delims = {' ', '('} + + result = str + for i, c in enumerate(str): + if c in lowercase and (i == 0 or str[i - 1] in delims): + result[i] = c.toUpperAscii diff --git a/src/routes/preferences.nim b/src/routes/preferences.nim index f8a8dba..b8af03d 100644 --- a/src/routes/preferences.nim +++ b/src/routes/preferences.nim @@ -1,25 +1,14 @@ # SPDX-License-Identifier: AGPL-3.0-only -import strutils, uri, os, re, algorithm +import strutils, uri, os, algorithm import jester import router_utils -import ../types +import ".."/[types, formatters] import ../views/[general, preferences] export preferences -let titleizeRegex = re"(?