From 8518c70a661077350509421d131d0679977d9e82 Mon Sep 17 00:00:00 2001 From: Dominik Picheta Date: Fri, 18 May 2018 20:48:01 +0100 Subject: [PATCH] Rearranges directories and files. --- .gitmodules | 3 ++ editdb.nim | 19 ----------- nimforum.nimble | 33 ++++++++++++++++---- {frontend => public/css}/nimforum.scss | 0 {frontend => public/css}/spectre | 0 {frontend => public/css}/syntax.scss | 0 {frontend => public}/karax.html | 0 {static => public}/license.rst | 0 {static => public}/rst.rst | 0 {static => public}/search-help.rst | 0 auth.nim => src/auth.nim | 0 forms.tmpl => src/forms.tmpl | 0 forum.nim => src/forum.nim | 20 +++++++----- forum.nim.cfg => src/forum.nim.cfg | 0 {frontend => src/frontend}/builder.nim | 0 {frontend => src/frontend}/category.nim | 0 {frontend => src/frontend}/delete.nim | 0 {frontend => src/frontend}/editbox.nim | 0 {frontend => src/frontend}/error.nim | 0 {frontend => src/frontend}/forum.nim | 0 {frontend => src/frontend}/forum.nim.cfg | 0 {frontend => src/frontend}/header.nim | 0 {frontend => src/frontend}/index.html | 0 {frontend => src/frontend}/karaxutils.nim | 0 {frontend => src/frontend}/login.nim | 0 {frontend => src/frontend}/newthread.nim | 0 {frontend => src/frontend}/post.nim | 0 {frontend => src/frontend}/postbutton.nim | 0 {frontend => src/frontend}/postlist.nim | 0 {frontend => src/frontend}/profile.nim | 0 {frontend => src/frontend}/replybox.nim | 0 {frontend => src/frontend}/signup.nim | 0 {frontend => src/frontend}/thread.html | 0 {frontend => src/frontend}/threadlist.nim | 0 {frontend => src/frontend}/user.nim | 0 {frontend => src/frontend}/usermenu.nim | 0 fts.sql => src/fts.sql | 0 main.tmpl => src/main.tmpl | 0 setup_nimforum.nim => src/setup_nimforum.nim | 0 utils.nim => src/utils.nim | 0 40 files changed, 43 insertions(+), 32 deletions(-) delete mode 100644 editdb.nim rename {frontend => public/css}/nimforum.scss (100%) rename {frontend => public/css}/spectre (100%) rename {frontend => public/css}/syntax.scss (100%) rename {frontend => public}/karax.html (100%) rename {static => public}/license.rst (100%) rename {static => public}/rst.rst (100%) rename {static => public}/search-help.rst (100%) rename auth.nim => src/auth.nim (100%) rename forms.tmpl => src/forms.tmpl (100%) rename forum.nim => src/forum.nim (99%) rename forum.nim.cfg => src/forum.nim.cfg (100%) rename {frontend => src/frontend}/builder.nim (100%) rename {frontend => src/frontend}/category.nim (100%) rename {frontend => src/frontend}/delete.nim (100%) rename {frontend => src/frontend}/editbox.nim (100%) rename {frontend => src/frontend}/error.nim (100%) rename {frontend => src/frontend}/forum.nim (100%) rename {frontend => src/frontend}/forum.nim.cfg (100%) rename {frontend => src/frontend}/header.nim (100%) rename {frontend => src/frontend}/index.html (100%) rename {frontend => src/frontend}/karaxutils.nim (100%) rename {frontend => src/frontend}/login.nim (100%) rename {frontend => src/frontend}/newthread.nim (100%) rename {frontend => src/frontend}/post.nim (100%) rename {frontend => src/frontend}/postbutton.nim (100%) rename {frontend => src/frontend}/postlist.nim (100%) rename {frontend => src/frontend}/profile.nim (100%) rename {frontend => src/frontend}/replybox.nim (100%) rename {frontend => src/frontend}/signup.nim (100%) rename {frontend => src/frontend}/thread.html (100%) rename {frontend => src/frontend}/threadlist.nim (100%) rename {frontend => src/frontend}/user.nim (100%) rename {frontend => src/frontend}/usermenu.nim (100%) rename fts.sql => src/fts.sql (100%) rename main.tmpl => src/main.tmpl (100%) rename setup_nimforum.nim => src/setup_nimforum.nim (100%) rename utils.nim => src/utils.nim (100%) diff --git a/.gitmodules b/.gitmodules index 78fdace..6ea9ea9 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "frontend/spectre"] path = frontend/spectre url = https://github.com/picturepan2/spectre +[submodule "public/css/spectre"] + path = public/css/spectre + url = https://github.com/picturepan2/spectre diff --git a/editdb.nim b/editdb.nim deleted file mode 100644 index 7588822..0000000 --- a/editdb.nim +++ /dev/null @@ -1,19 +0,0 @@ - -import strutils, db_sqlite, ranks - -var db = open(connection="nimforum.db", user="postgres", password="", - database="nimforum") - -when false: - db.exec(sql("update person set status = ?"), $User) - db.exec(sql("update person set status = ? where ban <> ''"), $Troll) - db.exec(sql("update person set status = ? where ban like '%spam%'"), $Spammer) - db.exec(sql("update person set status = ? where ban = 'DEACTIVATED' or ban = 'EMAILCONFIRMATION'"), $EmailUnconfirmed) - db.exec(sql("update person set status = ? where admin = 'true'"), $Admin) -else: - db.exec sql"create index PersonStatusIdx on person(status);" - db.exec sql"create index PostByAuthorIdx on post(thread, author);" - db.exec sql"update person set name = 'cheatfate' where name = 'ka';" - - -close(db) diff --git a/nimforum.nimble b/nimforum.nimble index b6943e0..a0c17e7 100644 --- a/nimforum.nimble +++ b/nimforum.nimble @@ -1,11 +1,32 @@ -[Package] -name = "nimforum" +# Package version = "0.1.0" author = "Dominik Picheta" -description = "Nim forum" +description = "The Nim forum" license = "MIT" -bin = "forum" +srcDir = "src" -[Deps] -Requires: "nim >= 0.14.0, jester#head, bcrypt#head, recaptcha >= 1.0.0" +bin = @["forum"] + +skipExt = @["nim"] + +# Dependencies + +requires "nim >= 0.14.0" +requires "jester#head" +requires "bcrypt#head" +requires "recaptcha >= 1.0.0" +requires "sass" + +requires "karax" + +# Tasks + +task backend, "Runs the forum backend": + exec "nimble c src/forum.nim" + exec "./src/forum" + +task frontend, "Builds the necessary JS frontend": + exec "nimble js src/frontend/forum.nim" + mkDir "public/js" + cpFile "src/frontend/nimcache/forum.js", "public/js/forum.js" \ No newline at end of file diff --git a/frontend/nimforum.scss b/public/css/nimforum.scss similarity index 100% rename from frontend/nimforum.scss rename to public/css/nimforum.scss diff --git a/frontend/spectre b/public/css/spectre similarity index 100% rename from frontend/spectre rename to public/css/spectre diff --git a/frontend/syntax.scss b/public/css/syntax.scss similarity index 100% rename from frontend/syntax.scss rename to public/css/syntax.scss diff --git a/frontend/karax.html b/public/karax.html similarity index 100% rename from frontend/karax.html rename to public/karax.html diff --git a/static/license.rst b/public/license.rst similarity index 100% rename from static/license.rst rename to public/license.rst diff --git a/static/rst.rst b/public/rst.rst similarity index 100% rename from static/rst.rst rename to public/rst.rst diff --git a/static/search-help.rst b/public/search-help.rst similarity index 100% rename from static/search-help.rst rename to public/search-help.rst diff --git a/auth.nim b/src/auth.nim similarity index 100% rename from auth.nim rename to src/auth.nim diff --git a/forms.tmpl b/src/forms.tmpl similarity index 100% rename from forms.tmpl rename to src/forms.tmpl diff --git a/forum.nim b/src/forum.nim similarity index 99% rename from forum.nim rename to src/forum.nim index 4084888..dacceff 100644 --- a/forum.nim +++ b/src/forum.nim @@ -13,6 +13,8 @@ import import cgi except setCookie import options +import sass + import auth import frontend/threadlist except User @@ -866,6 +868,10 @@ proc initialise() = doAssert config.isDev, "Recaptcha required for production!" echo("[WARNING] No recaptcha secret key specified.") + let cssLoc = "public" / "css" + if not existsFile(cssLoc / "nimforum.css"): + sass.compileFile(cssLoc / "nimforum.scss", cssLoc / "nimforum.css") + template createTFD() = var c {.inject.}: TForumData new(c) @@ -1252,11 +1258,11 @@ initialise() routes: get "/nimforum.css": - resp readFile("frontend/nimforum.css"), "text/css" + resp readFile("public/css/nimforum.css"), "text/css" get "/nimcache/forum.js": - resp readFile("frontend/nimcache/forum.js"), "application/javascript" + resp readFile("public/js/forum.js"), "application/javascript" get re"/images/(.+?\.png)/?": - let path = "frontend/images/" & request.matches[0] + let path = "public/images/" & request.matches[0] if fileExists(path): resp readFile(path), "image/png" else: @@ -1724,10 +1730,10 @@ routes: redirect uri("/404") get "/404": - resp Http404, readFile("frontend/karax.html") + resp Http404, readFile("public/karax.html") get re"/(.+)?": - resp readFile("frontend/karax.html") + resp readFile("public/karax.html") get "/threadActivity.xml": createTFD() @@ -1870,10 +1876,10 @@ routes: else: resp genMain(c, genFormResetPassword(c), "Reset Password - Nim Forum") - const licenseRst = slurp("static/license.rst") get "/license": createTFD() - resp genMain(c, rstToHtml(licenseRst), "Content license - Nim Forum") + resp genMain(c, rstToHtml(readFile("static/license.rst")), + "Content license - Nim Forum") post "/search/?@page?": cond isFTSAvailable diff --git a/forum.nim.cfg b/src/forum.nim.cfg similarity index 100% rename from forum.nim.cfg rename to src/forum.nim.cfg diff --git a/frontend/builder.nim b/src/frontend/builder.nim similarity index 100% rename from frontend/builder.nim rename to src/frontend/builder.nim diff --git a/frontend/category.nim b/src/frontend/category.nim similarity index 100% rename from frontend/category.nim rename to src/frontend/category.nim diff --git a/frontend/delete.nim b/src/frontend/delete.nim similarity index 100% rename from frontend/delete.nim rename to src/frontend/delete.nim diff --git a/frontend/editbox.nim b/src/frontend/editbox.nim similarity index 100% rename from frontend/editbox.nim rename to src/frontend/editbox.nim diff --git a/frontend/error.nim b/src/frontend/error.nim similarity index 100% rename from frontend/error.nim rename to src/frontend/error.nim diff --git a/frontend/forum.nim b/src/frontend/forum.nim similarity index 100% rename from frontend/forum.nim rename to src/frontend/forum.nim diff --git a/frontend/forum.nim.cfg b/src/frontend/forum.nim.cfg similarity index 100% rename from frontend/forum.nim.cfg rename to src/frontend/forum.nim.cfg diff --git a/frontend/header.nim b/src/frontend/header.nim similarity index 100% rename from frontend/header.nim rename to src/frontend/header.nim diff --git a/frontend/index.html b/src/frontend/index.html similarity index 100% rename from frontend/index.html rename to src/frontend/index.html diff --git a/frontend/karaxutils.nim b/src/frontend/karaxutils.nim similarity index 100% rename from frontend/karaxutils.nim rename to src/frontend/karaxutils.nim diff --git a/frontend/login.nim b/src/frontend/login.nim similarity index 100% rename from frontend/login.nim rename to src/frontend/login.nim diff --git a/frontend/newthread.nim b/src/frontend/newthread.nim similarity index 100% rename from frontend/newthread.nim rename to src/frontend/newthread.nim diff --git a/frontend/post.nim b/src/frontend/post.nim similarity index 100% rename from frontend/post.nim rename to src/frontend/post.nim diff --git a/frontend/postbutton.nim b/src/frontend/postbutton.nim similarity index 100% rename from frontend/postbutton.nim rename to src/frontend/postbutton.nim diff --git a/frontend/postlist.nim b/src/frontend/postlist.nim similarity index 100% rename from frontend/postlist.nim rename to src/frontend/postlist.nim diff --git a/frontend/profile.nim b/src/frontend/profile.nim similarity index 100% rename from frontend/profile.nim rename to src/frontend/profile.nim diff --git a/frontend/replybox.nim b/src/frontend/replybox.nim similarity index 100% rename from frontend/replybox.nim rename to src/frontend/replybox.nim diff --git a/frontend/signup.nim b/src/frontend/signup.nim similarity index 100% rename from frontend/signup.nim rename to src/frontend/signup.nim diff --git a/frontend/thread.html b/src/frontend/thread.html similarity index 100% rename from frontend/thread.html rename to src/frontend/thread.html diff --git a/frontend/threadlist.nim b/src/frontend/threadlist.nim similarity index 100% rename from frontend/threadlist.nim rename to src/frontend/threadlist.nim diff --git a/frontend/user.nim b/src/frontend/user.nim similarity index 100% rename from frontend/user.nim rename to src/frontend/user.nim diff --git a/frontend/usermenu.nim b/src/frontend/usermenu.nim similarity index 100% rename from frontend/usermenu.nim rename to src/frontend/usermenu.nim diff --git a/fts.sql b/src/fts.sql similarity index 100% rename from fts.sql rename to src/fts.sql diff --git a/main.tmpl b/src/main.tmpl similarity index 100% rename from main.tmpl rename to src/main.tmpl diff --git a/setup_nimforum.nim b/src/setup_nimforum.nim similarity index 100% rename from setup_nimforum.nim rename to src/setup_nimforum.nim diff --git a/utils.nim b/src/utils.nim similarity index 100% rename from utils.nim rename to src/utils.nim