Mercurial Hosting > luan
comparison website/src/manual.html.luan @ 1929:31f006c64782
translation
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Thu, 01 May 2025 18:31:05 -0600 |
| parents | 4206242c7a13 |
| children | bd00b36380d9 |
comparison
equal
deleted
inserted
replaced
| 1928:e16f38f4fdfc | 1929:31f006c64782 |
|---|---|
| 1 local Luan = require "luan:Luan.luan" | 1 local Luan = require "luan:Luan.luan" |
| 2 local error = Luan.error | 2 local error = Luan.error |
| 3 local pairs = Luan.pairs or error() | |
| 4 local String = require "luan:String.luan" | |
| 5 local replace = String.replace or error() | |
| 6 local Table = require "luan:Table.luan" | |
| 7 local concat = Table.concat or error() | |
| 3 local Io = require "luan:Io.luan" | 8 local Io = require "luan:Io.luan" |
| 4 local Http = require "luan:http/Http.luan" | 9 local Site_translator = require "luan:gpt/Site_translator.luan" |
| 10 local get_lang = Site_translator.get_lang or error() | |
| 11 local text_writer = Site_translator.text_writer or error() | |
| 12 local languages = Site_translator.languages or error() | |
| 13 local set_translated = Site_translator.set_translated or error() | |
| 5 local Shared = require "site:/lib/Shared.luan" | 14 local Shared = require "site:/lib/Shared.luan" |
| 6 local head = Shared.head or error() | 15 local head = Shared.head or error() |
| 7 local docs_header = Shared.docs_header or error() | 16 local docs_header = Shared.docs_header or error() |
| 8 local show_toc = Shared.show_toc or error() | 17 local show_toc = Shared.show_toc or error() |
| 9 local show_content = Shared.show_content or error() | 18 local show_content = Shared.show_content or error() |
| 19 local show_content_info = Shared.show_content_info or error() | |
| 20 local Translator = require "luan:gpt/Translator.luan" | |
| 21 local translate_html = Translator.translate_html or error() | |
| 22 local Logging = require "luan:logging/Logging.luan" | |
| 23 local logger = Logging.logger "manual.html" | |
| 10 | 24 |
| 11 | 25 |
| 12 local content = { | 26 local content = { |
| 13 intro = { | 27 intro = { |
| 14 title = "Introduction" | 28 title = "Introduction" |
| 159 env = { | 173 env = { |
| 160 title = "Environments" | 174 title = "Environments" |
| 161 content = function() | 175 content = function() |
| 162 %> | 176 %> |
| 163 <p> | 177 <p> |
| 164 The environment of a chunk starts with only one local variable: <code><a href="#require">require</a></code>. This function is used to load and access libraries and other modules. All other variables must be added to the environment using <a href="/manual.html#local_stmt">local declarations</a>. | 178 The environment of a chunk starts with only one local variable: <code><a href="#require">require</a></code>. This function is used to load and access libraries and other modules. All other variables must be added to the environment using <a href="manual.html#local_stmt">local declarations</a>. |
| 165 </p> | 179 </p> |
| 166 | 180 |
| 167 <p> | 181 <p> |
| 168 As will be discussed in <a href="#vars">Variables</a> and <a href=#assignment">Assignment</a>, | 182 As will be discussed in <a href="#vars">Variables</a> and <a href=#assignment">Assignment</a>, |
| 169 any reference to a free name | 183 any reference to a free name |
| 2540 %> | 2554 %> |
| 2541 <p>Returns a hex digest string of <code>s</code>. Could be defined as:</p> | 2555 <p>Returns a hex digest string of <code>s</code>. Could be defined as:</p> |
| 2542 | 2556 |
| 2543 <code block> | 2557 <code block> |
| 2544 function String.digest_message(algorithm,s) | 2558 function String.digest_message(algorithm,s) |
| 2545 return <a href="/manual.html#Binary.to_hex">Binary.to_hex</a>( <a href="/manual.html#Binary.digest_message">Binary.digest_message</a>( algorithm, <a href="/manual.html#String.to_binary">String.to_binary(s)</a> ) ) | 2559 return <a href="manual.html#Binary.to_hex">Binary.to_hex</a>( <a href="manual.html#Binary.digest_message">Binary.digest_message</a>( algorithm, <a href="manual.html#String.to_binary">String.to_binary(s)</a> ) ) |
| 2546 end | 2560 end |
| 2547 </code> | 2561 </code> |
| 2548 <% | 2562 <% |
| 2549 end | 2563 end |
| 2550 } | 2564 } |
| 3671 } | 3685 } |
| 3672 } | 3686 } |
| 3673 | 3687 |
| 3674 | 3688 |
| 3675 return function() | 3689 return function() |
| 3676 Io.stdout = Http.response.text_writer() | 3690 local lang = get_lang() |
| 3691 local html = ` | |
| 3677 %> | 3692 %> |
| 3678 <!doctype html> | 3693 <!doctype html> |
| 3679 <html> | 3694 <html lang="<%=lang%>"> |
| 3680 <head> | 3695 <head> |
| 3681 <% head() %> | 3696 <% head() %> |
| 3682 <title>Luan Reference Manual</title> | 3697 <title>Luan Reference Manual</title> |
| 3683 <style> | 3698 <style> |
| 3684 p[list] { | 3699 p[list] { |
| 3719 <h2>Contents</h2> | 3734 <h2>Contents</h2> |
| 3720 <div toc> | 3735 <div toc> |
| 3721 <% show_toc(content) %> | 3736 <% show_toc(content) %> |
| 3722 </div> | 3737 </div> |
| 3723 <hr> | 3738 <hr> |
| 3724 <% show_content(content,2) %> | 3739 <div placeholder></div> |
| 3725 </div> | 3740 </div> |
| 3726 </body> | 3741 </body> |
| 3727 </html> | 3742 </html> |
| 3728 <% | 3743 <% |
| 3744 ` | |
| 3745 if lang == "en" then | |
| 3746 html = replace( html, "<div placeholder></div>", `show_content(content,2)` ) | |
| 3747 else | |
| 3748 local language = languages[lang] or error(lang) | |
| 3749 html = translate_html(html,language) | |
| 3750 local parts = {} | |
| 3751 for id, info in pairs(content) do | |
| 3752 local part = `show_content_info(id,info,2)` | |
| 3753 part = translate_html(part,language) | |
| 3754 parts[#parts+1] = part | |
| 3755 end | |
| 3756 html = replace( html, "<div placeholder></div>", concat(parts) ) | |
| 3757 set_translated() | |
| 3758 end | |
| 3759 text_writer().write(html) | |
| 3729 end | 3760 end |
