From 1aa53808363171a32c253cc9217072dd230679b2 Mon Sep 17 00:00:00 2001 From: murat Date: Tue, 16 Jun 2026 20:53:14 +0300 Subject: [PATCH] feat(styling): paragraphs --- luago.lua | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/luago.lua b/luago.lua index 230ed71..2766611 100644 --- a/luago.lua +++ b/luago.lua @@ -51,7 +51,7 @@ for index, file in ipairs(markdownFiles) do end -- fill options table - for i, value in ipairs(lines) do + for _, value in ipairs(lines) do if value:sub(value:len(), value:len()) == "\n" then value = value:sub(1, value:find("\n")-1) end @@ -73,7 +73,7 @@ for index, file in ipairs(markdownFiles) do end -- replace markdownFiles.content with md file content -for index, value in ipairs(markdownFiles) do +for index, _ in ipairs(markdownFiles) do local f = io.open(markdownFiles[index].filePath) if f then local content = f:read("*a") @@ -87,7 +87,7 @@ for index, value in ipairs(markdownFiles) do end end -for index, value in ipairs(markdownFiles) do +for index, _ in ipairs(markdownFiles) do print("---------------") -- print file path with index print(index .. ': ' .. markdownFiles[index].filePath) @@ -116,7 +116,7 @@ local siteTitle lfs.rmdir("public") lfs.mkdir("public") -for index, value in ipairs(markdownFiles) do +for index, _ in ipairs(markdownFiles) do local workDir = lfs.currentdir() -- create html file for that md file local htmlFile = io.open(workDir .. "/public/" .. markdownFiles[index].fileName .. ".html", 'w') @@ -160,6 +160,37 @@ for index, value in ipairs(markdownFiles) do return table.concat(result, "\n") end + local function styleParagraph(s) + local lines = {} + for line in (s .. "\n"):gmatch("([^\n]*)\n") do + table.insert(lines, line) + end + + local result = {} + local pLines = {} + + local function flushP() + if #pLines > 0 then + table.insert(result, "

" .. table.concat(pLines, "\n") .. "

") + pLines = {} + end + end + + for _, line in ipairs(lines) do + local isBlock = line:match("^<") or line:match("^#") + local isEmpty = line:match("^%s*$") + + if isBlock or isEmpty then + flushP() + table.insert(result, line) + else + table.insert(pLines, line) + end + end + flushP() + + return table.concat(result, "\n") + end local function styling(s) -- blockquote local lines = {} @@ -170,6 +201,9 @@ for index, value in ipairs(markdownFiles) do s = table.concat(lines, "\n") -- lists s = styleLists(s) + -- paragraph + s = styleParagraph(s) + s = s:gsub("

", "") -- line breaks s = s:gsub("\r?\n", "
") -- remove
tags around block elements