+ <%- post.signature_rendered %> +
diff --git a/app.lua b/app.lua index 4fd3cfa..b222a7a 100644 --- a/app.lua +++ b/app.lua @@ -1,6 +1,8 @@ local lapis = require("lapis") local app = lapis.Application() local constants = require("constants") +local babycode = require("lib.babycode") +local html_escape = require("lapis.html").escape local db = require("lapis.db") -- sqlite starts without foreign key enforcement @@ -26,6 +28,10 @@ local function inject_methods(req) req.infobox_message = function (_, s) return util.infobox_message(s) end + + req.babycode_to_html = function (_, bb) + return babycode.to_html(bb, html_escape) + end util.pop_infobox(req) end diff --git a/apps/users.lua b/apps/users.lua index b065a39..14afaff 100644 --- a/apps/users.lua +++ b/apps/users.lua @@ -1,4 +1,6 @@ local app = require("lapis").Application() +local babycode = require("lib.babycode") +local html_escape = require("lapis.html").escape local db = require("lapis.db") local constants = require("constants") @@ -225,11 +227,15 @@ app:post("user_settings", "/:username/settings", function(self) end local status = self.params.status:sub(1, 100) + local original_sig = self.params.signature or "" + local rendered_sig = babycode.to_html(original_sig, html_escape) target_user:update({ status = status, + signature_original_markup = original_sig, + signature_rendered = rendered_sig, }) - util.inject_infobox(self, "Status updated.") + util.inject_infobox(self, "Settings updated.") return {redirect_to = self:url_for("user_settings", {username = self.params.username})} end) diff --git a/constants.lua b/constants.lua index 699e5f2..442c439 100644 --- a/constants.lua +++ b/constants.lua @@ -10,7 +10,7 @@ Constants.PermissionLevel = { Constants.FULL_POSTS_QUERY = [[ SELECT - posts.id, posts.created_at, post_history.content, post_history.edited_at, users.username, users.status, avatars.file_path AS avatar_path, posts.thread_id, users.id AS user_id, post_history.original_markup + posts.id, posts.created_at, post_history.content, post_history.edited_at, users.username, users.status, avatars.file_path AS avatar_path, posts.thread_id, users.id AS user_id, post_history.original_markup, users.signature_rendered FROM posts JOIN diff --git a/data/static/style.css b/data/static/style.css index cf59b4c..674dfe6 100644 --- a/data/static/style.css +++ b/data/static/style.css @@ -107,6 +107,12 @@ body { grid-area: post-content; padding: 20px; margin-right: 25%; + display: flex; + flex-direction: column; +} + +.post-inner { + height: 100%; } pre code { diff --git a/migrations.lua b/migrations.lua index 7d9c61e..aa711c9 100644 --- a/migrations.lua +++ b/migrations.lua @@ -68,4 +68,9 @@ return { schema.add_column("post_history", "original_markup", types.text{null = false}) schema.add_column("post_history", "markup_language", types.text{default = "babycode"}) end, + + [10] = function () + schema.add_column("users", "signature_original_markup", types.text{default = ""}) + schema.add_column("users", "signature_rendered", types.text{default = ""}) + end, } diff --git a/sass/style.scss b/sass/style.scss index c6ad205..2f8109d 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -143,6 +143,12 @@ body { grid-area: post-content; padding: 20px; margin-right: 25%; + display: flex; + flex-direction: column; +} + +.post-inner { + height: 100%; } pre code { diff --git a/views/common/babycode-editor-component.etlua b/views/common/babycode-editor-component.etlua index cca723d..2a94d80 100644 --- a/views/common/babycode-editor-component.etlua +++ b/views/common/babycode-editor-component.etlua @@ -4,5 +4,5 @@ - + diff --git a/views/threads/post.etlua b/views/threads/post.etlua index 06622c2..813e577 100644 --- a/views/threads/post.etlua +++ b/views/threads/post.etlua @@ -58,7 +58,15 @@