From 3d3d1fc3ef219e0f09cad6b4965faa6eab60d621 Mon Sep 17 00:00:00 2001 From: murat Date: Mon, 29 Jun 2026 17:03:59 +0300 Subject: [PATCH] chore: add script path to package.path --- luago.lua | 124 +++--------------------------------------------------- 1 file changed, 5 insertions(+), 119 deletions(-) diff --git a/luago.lua b/luago.lua index 362e971..3ceaccf 100644 --- a/luago.lua +++ b/luago.lua @@ -1,3 +1,6 @@ +local script_dir = debug.getinfo(1, "S").source:match("@?(.*/)") +if script_dir then package.path = script_dir .. "?.lua;" .. script_dir .. "?/init.lua;" .. package.path end + local lfs = require("lfs") -- list of markdown files in working directory @@ -140,125 +143,8 @@ for index, _ in ipairs(markdownFiles) do if markdownFiles[index].hasHtml then content = io.open(markdownFiles[index].fileName .. ".html"):read("*all") end -- STYLING - local function styleLists(s) - local lines = {} - for line in (s .. "\n"):gmatch("([^\n]*)\n") do - table.insert(lines, line) - end - - local result = {} - local inUl = false - local inOl = false - - for _, line in ipairs(lines) do - local ulItem = line:match("^[%-%*%+]%s+(.*)") - local olItem = line:match("^%d+%.%s+(.*)") - - if ulItem then - if inOl then table.insert(result, ""); inOl = false end - if not inUl then table.insert(result, ""); inUl = false end - if not inOl then table.insert(result, "
    "); inOl = true end - table.insert(result, "
  1. " .. olItem .. "
  2. ") - - else - if inUl then table.insert(result, ""); inUl = false end - if inOl then table.insert(result, "
"); inOl = false end - table.insert(result, line) - end - end - - if inUl then table.insert(result, "") end - if inOl then table.insert(result, "") end - - 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 = {} - for line in (s .. "\n"):gmatch("([^\n]*)\n?") do - local nline = line:gsub("^>%s*(.*)", "
%1
") - table.insert(lines, nline) - end - 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 - local blockTags = { "ul", "ol", "li", "blockquote", "p", - "h1", "h2", "h3", "h4", "h5", "h6", "hr" } - for _, tag in ipairs(blockTags) do - s = s:gsub("()
", "%1") - s = s:gsub("
()", "%1") - s = s:gsub("(<" .. tag .. ">)
", "%1") - s = s:gsub("
(<" .. tag .. ">)", "%1") - end - -- self-closing hr - s = s:gsub("(
)
", "%1") - s = s:gsub("
(
)", "%1") - -- headers - s = s:gsub("######%s*(.-)%s*
", "
%1
") - s = s:gsub("#####%s*(.-)%s*
", "
%1
") - s = s:gsub("####%s*(.-)%s*
", "

%1

") - s = s:gsub("###%s*(.-)%s*
", "

%1

") - s = s:gsub("##%s*(.-)%s*
", "

%1

") - s = s:gsub("#%s*(.-)%s*
", "

%1

") - -- TODO: h1 and h2 using == and -- - -- bold and italic text - s = s:gsub("%*%*(.-)%*%*", "%1") - s = s:gsub("%*(.-)%*", "%1") - s = s:gsub("%_%_(.-)%_%_", "%1") - s = s:gsub("%_(.-)%_", "%1") - -- images - s = s:gsub("!%[(.-)%]%((.-)%)", '%1') - -- links - s = s:gsub("%[(.-)%]%((.-)%)", '%1') - -- code - s = s:gsub("`(.-)`", "%1") - -- horizontal rule - s = s:gsub("%-%-%-", "
") - - return s - end - markdownFiles[index].content = styling(markdownFiles[index].content) + local styling = require("styling") + markdownFiles[index].content = styling.transform(markdownFiles[index].content) -- start_idx, end_idx = c -- {{pageContent}} shortcode