Template:Lua Functions/Updating

From The Battle for Wesnoth Wiki

Reference how this page was made.

For each relevant LuaAPI page run javascript

[...document.querySelectorAll('.toclevel-2 .toctext')].map(e => e.innerText).filter(s => s.startsWith('wesnoth') || s.startsWith('wml') || s.startsWith('gui') || s.startsWith('location_set') || s.startsWith('functional') || s.startsWith('stringx') || s.startsWith('mathx') || s.startsWith('filesystem') || s.startsWith('ai') || s.startsWith('utils') || s.startsWith('unit_test')) + " @ " + document.location

Put output to separate lines of data.txt and run python

with open("data.txt") as f:
    print('{|class="reference-sidebar"')
    for line in f:
        line = line.strip().strip("'")
        line = line.replace(",wesnoth.audio,wesnoth.achievements,wesnoth.game_events,wesnoth.map,wesnoth.interface,wesnoth.paths,wesnoth.schedule,wesnoth.sides,wesnoth.sync,wesnoth.units","")
        methods, url = line.split(" @ ")
        url = url.removeprefix("https://wiki.wesnoth.org/")
        print("|-\n|''{}''".format(url.removeprefix("LuaAPI/").replace("/",".")))
        for method in methods.split(","):
            print("[[{}#{}|{}]]<br>".format(url, method, method.split(".")[-1]))
    print('|}')