diff options
author | the lemons <citrons@mondecitronne.com> | 2022-02-05 17:57:20 -0600 |
---|---|---|
committer | the lemons <citrons@mondecitronne.com> | 2022-02-05 17:57:20 -0600 |
commit | 07a50a4b3cd2ac4c3ef4ab314ba8bc00043d8219 (patch) | |
tree | 7a28128a071fb38ce21e1eff5b4259542196e1fe | |
parent | 0c6c8d1f682e12ec8710f0b94779ca40c7d5f508 (diff) |
improve directives
1. DEADEND defeats the collaborative purpose of the site, and BACKLINK
is fairly useless without it.
2. PAGETITLE has been added, and it should be useful in cases where
REDIRECT is used heavily.
-rw-r--r-- | about.html | 7 | ||||
-rwxr-xr-x | zzcxz.cgi | 21 |
2 files changed, 13 insertions, 15 deletions
@@ -63,13 +63,10 @@ surround text in square brackets to <code>[emphasize it as important]</code>. <li> - type <code>#BACKLINK <room> <action></code> on its own line to cause the room to link back to an already existing room. replace <code><action></code> with the text you desire to appear in the link. replace <code><room></code> with everything after <code>https://zzcxz.citrons.xyz/g/</code>. for example, to make a link with the text "go back" which links to <code>https://zzcxz.citrons.xyz/g/xxxxx</code>, type the line <code>#BACKLINK xxxxx go back</code>. <code>#BACKLINK</code> cannot add new actions. + type <code>#REDIRECT <room></code> on its own line to cause the action to bring you to <code><room></code> instead of a new room. replace <code><room></code> with the five letters at the end of the url of the desired room. for instance, to make the action link to <code>https://zzcxz.citrons.xyz/g/zzcxz</code>, type <code>#REDIRECT zzcxz</code>. <li> - type <code>#REDIRECT <room></code> to cause the action to bring you to <code><room></code> instead of a new room. like with <code>#BACKLINK</code> replace <code><room></code> with the five letters at the end of the url of the desired room. - - <li> - type <code>#DEADEND</code> to prevent people from taking additional actions on the page. this is mostly useful in combination with <code>#BACKLINK</code>. + by default, a title at the top of the page contains the action which brings you to the room. this title can be overridden with <code>#PAGETITLE <title></code>. <li> you can add <code>/raw</code> to the end of the URL of a room to see its markup (on the lines starting with tab) (<a href="/g/zzcxz/raw">example</a>). this feature could also potentially be utilized to implement third-party interfaces. @@ -144,13 +144,10 @@ local function parse_directive(line, directives) directive = directive and directive:lower() if not directive then return - elseif directive == "backlink" then - local page, action = args:match "^(%w%w%w%w%w)%s+(.+)$" - if not page then return end - directives.backlinks = directives.backlinks or {} - table.insert(directives.backlinks, {page = page, action = action}) - elseif directive == "deadend" then - directives.deadend = true + elseif directive == "pagetitle" then + if args:match "^%s*$" then return end + if utf8.len(args) > 150 then return end + directives.title = args elseif directive == "redirect" then local redirect = args:match "^%s*(%w%w%w%w%w)%s*$" if not redirect then return end @@ -265,7 +262,7 @@ local function new_action(page, action, result) local new = assert(io.open('content/'..new_name, 'w')) action = action:gsub('\n', ' ') - assert(new:write(action..'\n')) + assert(new:write((directives.title or action)..'\n')) for line in (result..'\n'):gmatch "(.-\n)" do assert(new:write('\t' .. line)) end @@ -399,6 +396,8 @@ map["^/g/(%w%w%w%w%w)/act$"] = function(p) local form = parse_qs(io.read "a") form.wyd = form.wyd or "something" form.happens = form.happens or "something" + + local prev, prev_direct = convert_markup(form.happens) return base { title = "do something new", @@ -406,8 +405,10 @@ map["^/g/(%w%w%w%w%w)/act$"] = function(p) page = p, content = convert_markup(page.content), preview = preview_template { - title = html_encode(form.wyd), - content = convert_markup(form.happens), + title = + prev_direct.title and html_encode(prev_direct.title) + or html_encode(form.wyd), + content = prev, }, title = html_encode(form.wyd), editing = html_encode(form.happens), |