Module:he-links

local m_links_templates = require("Module:links/templates") local com = require("Module:he-common")

local export = {}

function export.term(frame) local args = {}

for key, val in pairs(frame:getParent.args) do		args[key] = val end

if args["wv"] == "" then args["wv"] = nil end if args["dwv"] == "" then args["dwv"] = nil end

if args[2] == nil or args[2] == "" then local form, formwv, formdwv = com.process_wv_triad(args[1] or "", args["wv"], args["dwv"]) args[1] = form or "" if formdwv then args[2] = (formwv or form) .. " / " .. formdwv else args[2] = (formwv or form) end end

args["wv"] = nil args["dwv"] = nil

-- table.insert(args, 1, "he") -- shift manually to avoid strange bugs: args[4] = args[3] args[3] = args[2] args[2] = args[1] args[1] = "he" if args[3] and args[2]:find("", 1, true) then		-- args[2] (term) contains wikilinks, so args[3] (alt) will be ignored		-- by [[Module:links and will cause a tracking template to be		-- transcluded.		args[3] = nil		-- Special:WhatLinksHere/Wiktionary:Tracking/he-links/alt removed		require("Module:debug").track("he-links/alt removed")	end

-- Passthrough arguments after modification local frame2 = frame:newChild{title = frame:getParent:getTitle, args = args}:newChild{title = frame:getTitle, args = frame.args}

return m_links_templates.l_term_t(frame2) end

function export.strongs_list(frame) local text = frame.args[1] local translit_module = frame.args.module local translit_function = frame.args.func local transliterate if translit_module and translit_function then transliterate = require("Module:" .. translit_module)[translit_function] elseif (translit_module ~= nil) ~= (translit_function ~= nil) then error("Supply both |module= and |func= or neither") end local entry_name = require "Module:languages/data/2".he.entry_name local character_set_to_remove = "[" .. entry_name.Hebr.remove_diacritics .. "]"	local ugsub = mw.ustring.gsub local function hebrew_link(word) return ' " .. word .. " " end local function hebrew_tag(word) return ' ' .. word .. " "	end local function get_first_letter(word) return word:match("^[%z\1-\127\194-\244][\128-\191]*") end return text:gsub(		"%f[^\n%z]([^\t\n]+)\t([^\t\n]+)\t([^\t\n]+)",		function(number, word, pos)			local header = ""			local letter = get_first_letter(word)			if letter ~= prev_letter then				if number ~= "1" then					header = "\n\n"				end				header = header					-- unicode-bidi: isolate; forces the Hebrew letter to the left in headers,					-- but only &lrm; does that in the table of contents.					.. ('===%s&lrm; – %04d===\n\n')					:format(hebrew_tag(letter), tonumber(number))				prev_letter = letter			end			local tr = transliterate and " (''" .. transliterate(word) .. ")"				or ""			return header				.. ' .. number .. "/wlc H" .. number				.. ": " .. hebrew_link(word) .. tr .. " " .. pos:gsub(" ", ", ") .. "''"				.. (word:find(" ", 1, true) and (" (" .. word:gsub("[^ ]+", hebrew_link) .. ")") or "")		end) .. "" end

return export