From b99255820b00547ef49045117d7346a30999870c Mon Sep 17 00:00:00 2001
From: madmaxoft
Date: Fri, 27 Dec 2013 15:26:41 +0100
Subject: APIDump: Added a quick-nav menu to class descriptions.
First part of #403.
---
MCServer/Plugins/APIDump/main_APIDump.lua | 28 ++++++++++++++++++++++------
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/MCServer/Plugins/APIDump/main_APIDump.lua b/MCServer/Plugins/APIDump/main_APIDump.lua
index 67d6d1036..42cd5bad4 100644
--- a/MCServer/Plugins/APIDump/main_APIDump.lua
+++ b/MCServer/Plugins/APIDump/main_APIDump.lua
@@ -255,7 +255,7 @@ end
-local function WriteClasses(f, a_API)
+local function WriteClasses(f, a_API, a_ClassMenu)
f:write([[
Class index
The following classes are available in the MCServer Lua scripting language:
@@ -263,7 +263,7 @@ local function WriteClasses(f, a_API)
]]);
for i, cls in ipairs(a_API) do
f:write("
", cls.Name, "\n");
- WriteHtmlClass(cls, a_API);
+ WriteHtmlClass(cls, a_API, a_ClassMenu);
end
f:write([[
@@ -378,7 +378,19 @@ function DumpAPIHtml()
LOGINFO("Cannot output HTML API: " .. err);
return;
end
+
+ -- Create a class menu that will be inserted into each class file for faster navigation (#403)
+ local ClassMenuTab = {};
+ for idx, cls in ipairs(API) do
+ table.insert(ClassMenuTab, "");
+ table.insert(ClassMenuTab, cls.Name);
+ table.insert(ClassMenuTab, "
");
+ end
+ local ClassMenu = table.concat(ClassMenuTab, "");
+ -- Write the HTML file:
f:write([[
@@ -402,7 +414,7 @@ function DumpAPIHtml()
]]);
WriteArticles(f);
- WriteClasses(f, API);
+ WriteClasses(f, API, ClassMenu);
WriteHooks(f, Hooks, UndocumentedHooks);
-- Copy the static files to the output folder (overwrite any existing):
@@ -860,7 +872,7 @@ end
-function WriteHtmlClass(a_ClassAPI, a_AllAPI)
+function WriteHtmlClass(a_ClassAPI, a_AllAPI, a_ClassMenu)
local cf, err = io.open("API/" .. a_ClassAPI.Name .. ".html", "w");
if (cf == nil) then
return;
@@ -975,7 +987,11 @@ function WriteHtmlClass(a_ClassAPI, a_AllAPI)
]], a_ClassAPI.Name, [[
- Contents
+ Quick navigation:
+ ]]);
+ cf:write(a_ClassMenu);
+ cf:write([[
+ | Contents
]]);
@@ -1073,7 +1089,7 @@ function WriteHtmlClass(a_ClassAPI, a_AllAPI)
end
end
- cf:write([[]]);
+ cf:write([[ |