Mercurial Hosting > freedit
comparison src/lib/Bbcode.luan @ 23:cdcd1b70c15e
tinymce work
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 18 Jul 2022 23:50:48 -0600 |
parents | 33731231093a |
children | 6871eec2cf4c |
comparison
equal
deleted
inserted
replaced
22:d87a8f9f43d7 | 23:cdcd1b70c15e |
---|---|
14 local is_list = Table.is_list or error() | 14 local is_list = Table.is_list or error() |
15 local concat = Table.concat or error() | 15 local concat = Table.concat or error() |
16 local String = require "luan:String.luan" | 16 local String = require "luan:String.luan" |
17 local gsub = String.gsub or error() | 17 local gsub = String.gsub or error() |
18 local matches = String.matches or error() | 18 local matches = String.matches or error() |
19 local match = String.match or error() | |
19 local User = require "site:/lib/User.luan" | 20 local User = require "site:/lib/User.luan" |
20 local Shared = require "site:/lib/Shared.luan" | 21 local Shared = require "site:/lib/Shared.luan" |
21 local list_to_set = Shared.list_to_set or error() | 22 local list_to_set = Shared.list_to_set or error() |
22 local to_list = Shared.to_list or error() | 23 local to_list = Shared.to_list or error() |
23 local Logging = require "luan:logging/Logging.luan" | 24 local Logging = require "luan:logging/Logging.luan" |
77 function html.color(bbcode,options) | 78 function html.color(bbcode,options) |
78 %><span style="color:<%=bbcode.param%>"><% to_html(bbcode.contents,options) %></span><% | 79 %><span style="color:<%=bbcode.param%>"><% to_html(bbcode.contents,options) %></span><% |
79 end | 80 end |
80 | 81 |
81 function html.size(bbcode,options) | 82 function html.size(bbcode,options) |
82 %><span style="font-size:<%=bbcode.param%>%"><% to_html(bbcode.contents,options) %></span><% | 83 %><span style="font-size:<%=bbcode.param%>"><% to_html(bbcode.contents,options) %></span><% |
83 end | 84 end |
84 | 85 |
85 function html.quote(bbcode,options) | 86 function html.quote(bbcode,options) |
86 %><blockquote><% | 87 %><blockquote><% |
87 local user_name = bbcode.param | 88 local user_name = bbcode.param |
98 to_html(bbcode.contents,options) | 99 to_html(bbcode.contents,options) |
99 %></blockquote><% | 100 %></blockquote><% |
100 options.strip_newline = true | 101 options.strip_newline = true |
101 end | 102 end |
102 | 103 |
104 local youtube_ptn1 = [[https://youtu.be/([a-zA-Z0-9_-]+)(?:\?t=([0-9]+))?]] | |
105 local youtube_ptn2 = [[https://www.youtube.com/watch\?v=([a-zA-Z0-9_-]+)(?:&t=([0-9]+)s)?]] | |
106 local bitchute_ptn = [[https://www.bitchute.com/video/([a-zA-Z0-9]+)/]] | |
107 | |
103 function html.video(bbcode,options) | 108 function html.video(bbcode,options) |
104 local url = html_encode(bbcode.contents) | 109 local url = bbcode.contents |
105 local site = bbcode.site | 110 local id, start = match(url,youtube_ptn1) |
106 if site == "youtube" then | 111 if id == nil then |
107 %><iframe width="420" height="315" src="https://www.youtube.com/embed/<%=bbcode.id%><% | 112 id, start = match(url,youtube_ptn2) |
108 local start = bbcode.start | 113 end |
114 if id ~= nil then | |
115 %><iframe width="560" height="315" src="https://www.youtube.com/embed/<%=id%><% | |
109 if start ~= nil then | 116 if start ~= nil then |
110 %>?start=<%=start%><% | 117 %>?start=<%=start%><% |
111 end | 118 end |
112 %>" frameborder="0" allowfullscreen></iframe><% | 119 %>" frameborder="0" allowfullscreen></iframe><% |
113 elseif site == "bitchute" then | 120 return |
114 %><iframe width="420" height="315" scrolling="no" frameborder="0" style="border: none;" src="https://www.bitchute.com/embed/<%=bbcode.id%>/"></iframe><% | 121 end |
115 else | 122 id = match(url,bitchute_ptn) |
116 %><a href="<%=url%>"><%=url%></a><% | 123 if id ~= nil then |
117 end | 124 %><iframe width="560" height="315" scrolling="no" frameborder="0" style="border: none;" src="https://www.bitchute.com/embed/<%=id%>/"></iframe><% |
125 return | |
126 end | |
127 url = html_encode(url) | |
128 %><a href="<%=url%>"><%=url%></a><% | |
118 end | 129 end |
119 | 130 |
120 local function list_to_html(bbcode,options) | 131 local function list_to_html(bbcode,options) |
121 local list = to_list(bbcode.contents) | 132 local list = to_list(bbcode.contents) |
122 for _, item in ipairs(list) do | 133 for _, item in ipairs(list) do |