Module:User:IsomorphycSandbox/grc-ascii-searchability
Appearance
- This module sandbox lacks a documentation subpage. Please create it.
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
--Update: this module is no longer in production use. The test was modestly
--successful, but a more general solution is desired.
--This module is a temporary test to see if adding invisible Romanisations will
--render Greek words more searchable in the Wiktionary search box and via
--external search engines. If it seems undesirable or does not work it will be
--removed within a week or so. Currently, this test applies only to nouns. At
--this point, an unknown time interval is likely necessary for the changes to
--propagate to all of the relevant places. --5 July 2015
local accent_m = require("Module:grc-accent")
local export = {}
local PHUCH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="U",["Φ"]="Ph",["Χ"]="Ch",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="u",["φ"]="ph",["χ"]="ch",["ψ"]="ps",["ω"]="o"}
local PHYCH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="Y",["Φ"]="Ph",["Χ"]="Ch",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="y",["φ"]="ph",["χ"]="ch",["ψ"]="ps",["ω"]="o"}
local FUCH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="U",["Φ"]="F",["Χ"]="Ch",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="u",["φ"]="ph",["χ"]="ch",["ψ"]="ps",["ω"]="o"}
local FYCH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="Y",["Φ"]="Ph",["Χ"]="Ch",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="y",["φ"]="ph",["χ"]="kh",["ψ"]="ps",["ω"]="o"}
local PHUKH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="U",["Φ"]="Ph",["Χ"]="Kh",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="u",["φ"]="ph",["χ"]="kh",["ψ"]="ps",["ω"]="o"}
local PHYKH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="Y",["Φ"]="Ph",["Χ"]="Kh",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="y",["φ"]="ph",["χ"]="kh",["ψ"]="ps",["ω"]="o"}
local FUKH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="U",["Φ"]="F",["Χ"]="Kh",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="u",["φ"]="ph",["χ"]="kh",["ψ"]="ps",["ω"]="o"}
local FYKH = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="E",["Θ"]="Th",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="X",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="Y",["Φ"]="Ph",["Χ"]="Kh",["Ψ"]="Ps",["Ω"]="O",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="e",["θ"]="th",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="x",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="y",["φ"]="ph",["χ"]="kh",["ψ"]="ps",["ω"]="o"}
local beta = { ["Α"]="A",["Β"]="B",["Γ"]="G",["Δ"]="D",["Ε"]="E",["Ϝ"]="V",["Ζ"]="Z",["Η"]="H",["Θ"]="Q",["Ι"]="I",["Κ"]="K",["Λ"]="L",["Μ"]="M",["Ν"]="N",["Ξ"]="C",["Ο"]="O",["Π"]="P",["Ρ"]="R",["Σ"]="S",["Τ"]="T",["Υ"]="U",["Φ"]="F",["Χ"]="X",["Ψ"]="Y",["Ω"]="W",["α"]="a",["β"]="b",["γ"]="g",["δ"]="d",["ε"]="e",["ϝ"]="v",["ζ"]="z",["η"]="h",["θ"]="q",["ι"]="i",["κ"]="k",["λ"]="l",["μ"]="m",["ν"]="n",["ξ"]="c",["ο"]="o",["π"]="p",["ρ"]="r",["σ"]="s",["ς"]="s",["τ"]="t",["υ"]="u",["φ"]="f",["χ"]="x",["ψ"]="y",["ω"]="w"}
local ts = { PHUCH, PHYCH, FUCH, FYCH, PHUKH, PHYKH, FUKH, FYKH, beta }
function t1(t, w)
local gs = {}
for i = 1, mw.ustring.len(w) do gs[i] = t[mw.ustring.sub(w, i, i)] or mw.ustring.sub(w, i, i) end
return table.concat(gs)
end
function print_transliterations(head)
w = accent_m.strip_accent(head)
local us, html = {}, {'<span style="visibility: hidden"> '}
for i,t in ipairs(ts) do
us[t1(t, w)] = {} end
for u,x in pairs(us) do
html[#html+1] = u
html[#html+1] = " " end
html[#html+1] = ' may be Romanised forms of Ancient Greek '..head..'.</span>'
return table.concat(html)
end -- e.g., appends to the headword for χρόνος this: <span style="visibility: hidden">khronos xronos chronos may be Romanised forms of Ancient Greek χρόνος.</span>
function export.ascii(frame)
local args = frame:getParent().args
local head = args['head'] or mw.title.getCurrentTitle().text
return print_transliterations(head)
end
return export