Software /
code /
prosody-modules
Comparison
mod_latex/mod_latex.lua @ 1343:7dbde05b48a9
all the things: Remove trailing whitespace
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Tue, 11 Mar 2014 18:44:01 +0100 |
parent | 126:e190c1643a8f |
child | 1432:ee2302b78c74 |
comparison
equal
deleted
inserted
replaced
1342:0ae065453dc9 | 1343:7dbde05b48a9 |
---|---|
7 local function replace_latex(data) | 7 local function replace_latex(data) |
8 module:log("debug", "Replacing latex..."); | 8 module:log("debug", "Replacing latex..."); |
9 local origin, stanza = data.origin, data.stanza; | 9 local origin, stanza = data.origin, data.stanza; |
10 local body = stanza:child_with_name("body"); | 10 local body = stanza:child_with_name("body"); |
11 if not body then return; end | 11 if not body then return; end |
12 | 12 |
13 body = body:get_text(); | 13 body = body:get_text(); |
14 if not body:match("%$%$") then | 14 if not body:match("%$%$") then |
15 return; | 15 return; |
16 end | 16 end |
17 | 17 |
18 local html = st.stanza("html", { xmlns = xmlns_xhtmlim }) | 18 local html = st.stanza("html", { xmlns = xmlns_xhtmlim }) |
19 :tag("body", { xmlns = xmlns_xhtml }); | 19 :tag("body", { xmlns = xmlns_xhtml }); |
20 | 20 |
21 local in_latex, last_char; | 21 local in_latex, last_char; |
22 for snippet, up_to in body:gmatch("(.-)%$%$()") do | 22 for snippet, up_to in body:gmatch("(.-)%$%$()") do |
23 last_char = up_to; | 23 last_char = up_to; |
24 if in_latex then | 24 if in_latex then |
25 -- Render latex and add image, next snippet is text | 25 -- Render latex and add image, next snippet is text |
27 html:tag("img", { src = "http://www.mathtran.org/cgi-bin/mathtran?D=2;tex="..urlencode(snippet), alt = snippet }):up(); | 27 html:tag("img", { src = "http://www.mathtran.org/cgi-bin/mathtran?D=2;tex="..urlencode(snippet), alt = snippet }):up(); |
28 else | 28 else |
29 -- Add text to HTML, next snippet is latex | 29 -- Add text to HTML, next snippet is latex |
30 in_latex = true; | 30 in_latex = true; |
31 html:tag("span"):text(snippet):up(); | 31 html:tag("span"):text(snippet):up(); |
32 | 32 |
33 end | 33 end |
34 end | 34 end |
35 if last_char < #body then | 35 if last_char < #body then |
36 html:tag("span"):text(body:sub(last_char, #body)):up(); | 36 html:tag("span"):text(body:sub(last_char, #body)):up(); |
37 end | 37 end |
38 | 38 |
39 for n, tag in ipairs(stanza.tags) do | 39 for n, tag in ipairs(stanza.tags) do |
40 module:log("debug", "Tag: %s|%s", tag.attr.xmlns or "", tag.name or ""); | 40 module:log("debug", "Tag: %s|%s", tag.attr.xmlns or "", tag.name or ""); |
41 if tag.name == "html" and tag.attr.xmlns == xmlns_xhtmlim then | 41 if tag.name == "html" and tag.attr.xmlns == xmlns_xhtmlim then |
42 stanza.tags[n] = html; | 42 stanza.tags[n] = html; |
43 for n, child in ipairs(stanza) do | 43 for n, child in ipairs(stanza) do |
46 end | 46 end |
47 end | 47 end |
48 return; | 48 return; |
49 end | 49 end |
50 end | 50 end |
51 | 51 |
52 stanza[#stanza+1] = html; | 52 stanza[#stanza+1] = html; |
53 stanza.tags[#stanza.tags+1] = html; | 53 stanza.tags[#stanza.tags+1] = html; |
54 end | 54 end |
55 | 55 |
56 module:hook("message/bare", replace_latex, 30); | 56 module:hook("message/bare", replace_latex, 30); |